/*
 * Figestel theme styles
 *
 * 01. Design tokens
 * 02. Hero and editorial media
 * 03. Shared buttons and backgrounds
 * 04. Footer
 * 05. Cards and split layouts
 * 06. Pilotage
 * 07. History timeline
 * 08. Touch carousels
 * 09. Language switcher
 * 10. Error page
 */

/* 01. Design tokens */
:root {
    --fig-green: #304d51;
    --fig-green-dark: #203f42;
    --fig-cream: #f3f0e9;
    --fig-paper: #faf9f6;
    --fig-warm: #d5c8b7;
    --fig-muted: #68706c;
    --fig-ink: #202523;
    --fig-line: #d8d8d0;
    --fig-header-height: 80px;
    --fig-green-gradient-background:
        radial-gradient(
            circle at 76% 48%,
            rgb(72 112 116 / 42%) 0,
            rgb(39 75 79 / 18%) 32%,
            transparent 58%
        ),
        linear-gradient(
            115deg,
            #091f22 0%,
            #0f2e32 42%,
            #294d52 100%
        );
}

/* 10. Error page */
body.error404 {
    overflow: hidden;
}

.error404 #inner-wrap {
    min-height: 0;
}

.error404 #colophon {
    display: none;
}

.fig-404 {
    display: grid;
    min-height: 100vh;
    min-height: 100dvh;
    padding-top: var(--fig-header-height);
    color: var(--fig-ink);
}

.admin-bar .fig-404 {
    min-height: calc(100vh - 32px);
    min-height: calc(100dvh - 32px);
}

.fig-404__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: 100%;
    padding-block: clamp(42px, 8vh, 90px);
}

.fig-404__content {
    width: min(700px, 72%);
}

.fig-404__code {
    margin: 0 0 8px;
    color: rgb(48 77 81 / 16%);
    font-size: clamp(76px, 11vw, 150px);
    font-weight: 400;
    letter-spacing: -.07em;
    line-height: .75;
}

.fig-404__title {
    max-width: 680px;
    margin: 0;
    color: var(--global-palette3, var(--fig-ink));
}

.fig-404__title span {
    color: var(--fig-green);
}

.fig-404__copy {
    max-width: 570px;
    margin: 24px 0 30px;
    color: var(--global-palette4, var(--fig-ink));
    font-size: 16px;
    line-height: 1.65;
}

.fig-404__actions.kb-buttons-wrap {
    margin: 0;
}

.fig-404 .fig-404__button.kb-button {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    padding: 14px 21px;
    color: #fff;
    background: var(--fig-green);
    border: 1px solid var(--fig-green);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .035em;
    text-decoration: none;
    transition: gap .25s ease, background-color .25s ease, border-color .25s ease;
}

.fig-404 .fig-404__button.kb-button:hover,
.fig-404 .fig-404__button.kb-button:focus-visible {
    gap: 18px;
    color: #fff;
    background: var(--fig-green-dark);
    border-color: var(--fig-green-dark);
}

.fig-404__button .kb-svg-icon-wrap,
.fig-404__button svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 782px) {
    .admin-bar .fig-404 {
        min-height: calc(100vh - 46px);
        min-height: calc(100dvh - 46px);
    }
}

@media (max-width: 600px) {
    .fig-404__content {
        width: 88%;
    }

    .fig-404__copy {
        margin-block: 20px 24px;
    }
}

/* 02. Hero and editorial media */
.fig-hero-orbit {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--fig-cream) !important;
}

/* Maintient le contenu Kadence devant le décor */
.fig-hero-orbit > .kt-row-column-wrap {
    position: relative;
    z-index: 1;
    background: transparent;
}

/* Grand cercle et ses anneaux */
.fig-hero-orbit::before {
    content: "";
    position: absolute;
    z-index: 0;
    width: 620px;
    height: 620px;
    top: 55px;
    right: -230px;
    border: 1px solid rgba(48, 77, 81, 0.11);
    border-radius: 50%;
    background:
        radial-gradient(
            circle at 36% 34%,
            rgba(255, 255, 255, 0.32) 0 2px,
            transparent 3px
        ),
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.14),
            transparent 55%
        );
    box-shadow:
        0 0 0 80px rgba(48, 77, 81, 0.03),
        0 0 0 160px rgba(48, 77, 81, 0.02);
    pointer-events: none;
}

/* Petit point vert */
.fig-hero-orbit::after {
    content: "";
    position: absolute;
    z-index: 0;
    width: 9px;
    height: 9px;
    top: 28%;
    right: 16%;
    border-radius: 50%;
    background: var(--fig-green);
    box-shadow: 0 0 0 8px rgba(48, 77, 81, 0.09);
    pointer-events: none;
}

/* Adaptation mobile */
@media (max-width: 600px) {
    .fig-hero-orbit::before {
        width: 380px;
        height: 380px;
        top: 120px;
        right: -260px;
        box-shadow:
            0 0 0 50px rgba(48, 77, 81, 0.03),
            0 0 0 100px rgba(48, 77, 81, 0.02);
    }

    .fig-hero-orbit::after {
        display: none;
    }
}

/* Reusable editorial image zoom. Add fig-image-zoom to an image/figure block. */
.fig-image-zoom {
    overflow: hidden;
}

.fig-image-zoom img {
    scale: 1;
    transition: scale 750ms cubic-bezier(.2, .75, .25, 1);
    will-change: scale;
}

.fig-image-zoom:hover img,
.fig-image-zoom:focus-within img {
    scale: 1.045;
}

/*
 * Portfolio hotels: add fig-hotel-row to the parent Kadence Row Layout.
 * Kadence owns the column widths; this rule only keeps the three lead images
 * at a shared, responsive height.
 */
.fig-hotel-row {
    --fig-hotel-image-height: clamp(290px, 22vw, 310px);
}

.fig-hotel-row > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-image,
.fig-hotel-row > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-image > .kb-is-ratio-image {
    width: 100%;
    height: var(--fig-hotel-image-height) !important;
    padding-bottom: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden;
}

.fig-hotel-row > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 767px) {
    .fig-hotel-row {
        --fig-hotel-image-height: clamp(250px, 72vw, 300px);
    }
}

/* Background-image variant: add fig-bg-zoom to a Kadence column/section. */
.fig-bg-zoom {
    overflow: hidden;
}

.fig-bg-zoom__surface {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.fig-bg-zoom__surface::after {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    background-image: var(--fig-bg-zoom-image);
    background-position: var(--fig-bg-zoom-position, center);
    background-repeat: var(--fig-bg-zoom-repeat, no-repeat);
    background-size: var(--fig-bg-zoom-size, cover);
    border-radius: inherit;
    transform: scale(1.001);
    transition: transform 750ms cubic-bezier(.2, .75, .25, 1);
    will-change: transform;
}

.fig-bg-zoom:hover .fig-bg-zoom__surface::after,
.fig-bg-zoom:focus-within .fig-bg-zoom__surface::after,
.fig-bg-zoom__surface.fig-bg-zoom:hover::after,
.fig-bg-zoom__surface.fig-bg-zoom:focus-within::after {
    transform: scale(1.045);
}

.fig-hero-image {
    position: relative;
    width: 100%;
    height: clamp(480px, 58vw, 610px);
    margin: 0;
    overflow: hidden;

    /* Arche Figestel */
    border-radius: 48% 48% 16px 16px / 30% 30% 16px 16px !important;

    background: var(--fig-green);
    isolation: isolate;
}

/*
 * Compatible avec les différentes structures HTML
 * produites par Gutenberg et Kadence.
 */
.fig-hero-image figure,
figure.fig-hero-image,
.fig-hero-image .kb-image,
.fig-hero-image .kb-advanced-image-link {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: inherit;
}

.fig-hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    filter: saturate(.65);
    transform: scale(1.02);
}

.fig-hero-visual {
    position: relative;
}

.fig-hero-note {
    position: absolute;
    z-index: 3;
    left: -52px;
    bottom: 48px;

    width: max-content;
    max-width: 230px;
    margin: 0;
    padding: 17px 21px;

    color: #202523;
    background: rgb(255 255 255 / 96%);
    border-left: 3px solid var(--fig-green);
    box-shadow: 0 14px 34px rgb(32 37 35 / 16%);

    font-size: 13px;
    line-height: 1.5;

    transform: rotate(-1.25deg);
}

.fig-hero-note strong {
    color: var(--fig-green);
    font-weight: 600;
}

@media (max-width: 1024px) {
    .fig-hero-note {
        left: 20px;
        bottom: 28px;
        transform: none;
    }
}

@media (max-width: 600px) {
    .fig-hero-note {
        left: 12px;
        bottom: 14px;
        max-width: calc(100% - 24px);
        padding: 13px 15px;
        font-size: 12px;
        box-shadow: 0 10px 24px rgb(32 37 35 / 18%);
    }
}

/* 03. Shared buttons and backgrounds */
.fig-green-gradient,
.fig-dial-section,
#colophon.site-footer {
    color: #fff;
    background: var(--fig-green-gradient-background);
}

/* Shared interaction for right-hand arrows on Kadence buttons. */
.kb-buttons-wrap {
    overflow: visible;
}

.kb-button {
    position: relative;
    z-index: 1;
    overflow: visible;
}

.kb-button:hover,
.kb-button:focus-visible {
    z-index: 2;
}

.kb-button .kt-btn-icon-side-right {
    overflow: visible;
    transition: transform 280ms cubic-bezier(.2, .75, .25, 1);
    will-change: transform;
}

.kb-button .kt-btn-icon-side-right svg {
    overflow: visible;
}

.kb-button:hover .kt-btn-icon-side-right,
.kb-button:focus-visible .kt-btn-icon-side-right {
    transform: translate3d(3px, 0, 0);
}

.kb-button:active .kt-btn-icon-side-right {
    transform: translate3d(2px, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .kb-button .kt-btn-icon-side-right {
        transition: none;
    }

    .kb-button:hover .kt-btn-icon-side-right,
    .kb-button:focus-visible .kt-btn-icon-side-right,
    .kb-button:active .kt-btn-icon-side-right {
        transform: none;
    }
}

/* 04. Footer
 *
 * Kadence does not expose #colophon in the block editor. The gradient lives on
 * the actual footer; its generated wrappers stay transparent so it remains one
 * continuous background rather than restarting inside the widget Row Layout.
 */
#colophon.site-footer .site-footer-wrap,
#colophon.site-footer .site-footer-row-container,
#colophon.site-footer .site-footer-row-container-inner,
#colophon.site-footer .fig-green-gradient,
#colophon.site-footer .fig-dial-section {
    background: transparent !important;
}

#colophon.site-footer .site-bottom-footer-inner-wrap {
    padding-top: 0 !important;
}

#colophon.site-footer {
    --fig-footer-title: var(--global-palette9, #fff);
    --fig-footer-link: rgb(250 249 246 / 68%);
    --fig-footer-link-hover: var(--global-palette9, #fff);
}

#colophon.site-footer h2,
#colophon.site-footer h3,
#colophon.site-footer h4 {
    color: var(--fig-footer-title);
}

#colophon.site-footer .wp-block-kadence-advancedheading:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
    color: var(--fig-footer-link);
}

#colophon.site-footer a {
    color: var(--fig-footer-link);
    transition: color 200ms ease;
}

#colophon.site-footer a .wp-block-kadence-advancedheading {
    color: inherit;
    transition: color 200ms ease;
}

#colophon.site-footer a:hover,
#colophon.site-footer a:focus-visible,
#colophon.site-footer a:hover *,
#colophon.site-footer a:focus-visible * {
    color: var(--fig-footer-link-hover) !important;
}

/* 05. Cards and split layouts */
/* Reusable concentric decoration for the lower-right corner of a section. */
.fig-orbit-bottom-right {
    --fig-orbit-rgb: 48 77 81;
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.fig-orbit-bottom-right > .kt-row-column-wrap {
    position: relative;
    z-index: 1;
}

.fig-orbit-bottom-right::before {
    content: "";
    position: absolute;
    z-index: 0;
    right: -230px;
    bottom: -230px;
    width: 620px;
    height: 620px;
    border: 1px solid rgb(var(--fig-orbit-rgb) / 11%);
    border-radius: 50%;
    background:
        radial-gradient(
            circle at 36% 34%,
            rgb(255 255 255 / 32%) 0 2px,
            transparent 3px
        ),
        linear-gradient(
            145deg,
            rgb(255 255 255 / 14%),
            transparent 55%
        );
    box-shadow:
        0 0 0 80px rgb(var(--fig-orbit-rgb) / 3%),
        0 0 0 160px rgb(var(--fig-orbit-rgb) / 2%);
    pointer-events: none;
}

.fig-green-gradient.fig-orbit-bottom-right,
.fig-dial-section.fig-orbit-bottom-right {
    --fig-orbit-rgb: 255 255 255;
}

@media (max-width: 600px) {
    .fig-orbit-bottom-right::before {
        right: -260px;
        bottom: -220px;
        width: 380px;
        height: 380px;
        box-shadow:
            0 0 0 50px rgb(var(--fig-orbit-rgb) / 3%),
            0 0 0 100px rgb(var(--fig-orbit-rgb) / 2%);
    }

}

.fig-card-image {
    position: relative;
    margin: 0;
    overflow: hidden;
}

.fig-card-image img {
    display: block;
    width: 100%;
}

.fig-card-image::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;

    display: grid;
    place-items: end;

    width: 115px;
    height: 100px;
    padding: 0 12px 10px 0;

    color: var(--fig-green);
    background: #f7f5f0;
    border-radius: 100% 0 0 0;

    font-size: 34px;
    font-weight: 400;
    line-height: 1;
    box-sizing: border-box;
    transition:
        color 250ms ease,
        background-color 250ms ease;
}

.fig-card:hover .fig-card-image::after,
.fig-card:focus-within .fig-card-image::after,
.fig-card-image:hover::after,
.fig-card-image:focus-within::after {
    color: #fff;
    background-color: var(--fig-green);
}

.fig-card-image--01::after { content: "01"; }
.fig-card-image--02::after { content: "02"; }
.fig-card-image--03::after { content: "03"; }

.fig-split-band,
.fig-split-band > .kt-row-column-wrap {
    overflow: visible;
}

.fig-split-band__panel > .kt-inside-inner-col {
    position: relative;
    isolation: isolate;
}

.fig-split-band__panel--start > .kt-inside-inner-col::before,
.fig-split-band__panel--end > .kt-inside-inner-col::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    width: 50vw;
    background: inherit;
    pointer-events: none;
}

.fig-split-band__panel--start > .kt-inside-inner-col::before {
    right: 100%;
}

.fig-split-band__panel--end > .kt-inside-inner-col::after {
    left: 100%;
}

/* Keep the reusable gradient continuous across a split panel and its bleed. */
.fig-split-band__panel--start.fig-green-gradient,
.fig-split-band__panel--end.fig-green-gradient {
    background: transparent !important;
}

.fig-split-band__panel--start.fig-green-gradient > .kt-inside-inner-col::before,
.fig-split-band__panel--end.fig-green-gradient > .kt-inside-inner-col::after {
    width: calc(100% + 50vw);
    background: var(--fig-green-gradient-background);
}

.fig-split-band__panel--start.fig-green-gradient > .kt-inside-inner-col::before {
    right: 0;
}

.fig-split-band__panel--end.fig-green-gradient > .kt-inside-inner-col::after {
    left: 0;
}

/* 06. Pilotage */
.fig-pilotage .fig-pilotage-row {
    border-top: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {
    .fig-pilotage > .kt-row-column-wrap > .wp-block-kadence-column.fig-pilotage-row
        > .kt-inside-inner-col > .kb-row-layout-wrap.fig-pilotage-row {
        transition: box-shadow 360ms ease;
    }

    .fig-pilotage > .kt-row-column-wrap > .wp-block-kadence-column.fig-pilotage-row:hover
        > .kt-inside-inner-col > .kb-row-layout-wrap.fig-pilotage-row,
    .fig-pilotage > .kt-row-column-wrap > .wp-block-kadence-column.fig-pilotage-row:focus-within
        > .kt-inside-inner-col > .kb-row-layout-wrap.fig-pilotage-row {
        box-shadow: inset 0 0 0 999px rgb(48 77 81 / 6%);
    }
}

@media (min-width: 1025px) {
    .fig-pilotage .fig-pilotage-row {
        clip-path: none;
    }

    .fig-pilotage > .kt-row-column-wrap > .wp-block-kadence-column.fig-pilotage-row--offset {
        clip-path: none;
        transform: translateX(24px);
    }

    .fig-pilotage > .kt-row-column-wrap > .wp-block-kadence-column.fig-pilotage-row--offset
        .kb-row-layout-wrap.fig-pilotage-row--offset {
        transform: none;
    }
}

.fig-pilotage .fig-pilotage-row > .kt-inside-inner-col {
    border-top: 0 !important;
    border-bottom: 0 !important;
}

.fig-pilotage .fig-pilotage-row > .kt-inside-inner-col > .kb-row-layout-wrap {
    border-top: 1px solid var(--global-palette6, #718096) !important;
    border-bottom: 0 !important;
}

.fig-pilotage .fig-pilotage-row:last-child > .kt-inside-inner-col > .kb-row-layout-wrap {
    border-bottom: 1px solid var(--global-palette6, #718096) !important;
}

/* Oversized service indexes echo the mobile treatment and sit behind the copy. */
@media (min-width: 1025px) {
    .fig-pilotage .fig-pilotage-row {
        position: relative;
        isolation: isolate;
        overflow: visible;
    }

    .fig-pilotage .fig-pilotage__number {
        position: relative;
        z-index: 0;
        top: 26px;
        left: -10px;
        margin: 0 !important;
        opacity: .14 !important;
        color: var(--global-palette7, #d7d0bf) !important;
        -webkit-text-fill-color: var(--global-palette7, #d7d0bf);
        -webkit-text-stroke: 0;
        transform: scale(8);
        transform-origin: left center;
        font-weight: 500 !important;
        font-variant-numeric: tabular-nums;
        line-height: 1 !important;
        letter-spacing: -.08em !important;
        white-space: nowrap;
        pointer-events: none;
    }

    .fig-pilotage .fig-pilotage-row > .kt-row-column-wrap > .wp-block-kadence-column:last-child {
        position: relative;
        z-index: 1;
    }
}

/* Kadence owns this grid's layout; CSS only styles its indexes. */
@media (min-width: 1025px) {
    .fig-pilotage > .kt-row-column-wrap.kt-has-3-columns .fig-pilotage__number {
        position: static;
        top: auto;
        left: auto;
        margin: 0 !important;
        color: var(--global-palette7, #d7d0bf) !important;
        -webkit-text-fill-color: var(--global-palette7, #d7d0bf);
        font-size: clamp(54px, 4.4vw, 68px) !important;
        font-weight: 400 !important;
        line-height: .78 !important;
        letter-spacing: -.07em !important;
        opacity: .22 !important;
        transform: none;
        transform-origin: initial;
    }
}

@media (max-width: 767px) {
    .fig-split-band__panel--start > .kt-inside-inner-col::before,
    .fig-split-band__panel--end > .kt-inside-inner-col::after {
        display: block;
        right: auto !important;
        left: calc(50% - 50vw) !important;
        width: 100vw !important;
        transform: none;
    }

    .fig-split-band__panel--start.fig-green-gradient,
    .fig-split-band__panel--end.fig-green-gradient {
        background: var(--fig-green-gradient-background) !important;
    }
}

@media (max-width: 1024px) {
    .single-content .fig-pilotage > .kt-inside-inner-col,
    .single-content .fig-pilotage > .kt-row-column-wrap {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .single-content .fig-pilotage .fig-pilotage-row,
    .single-content .fig-pilotage .fig-pilotage-row--offset {
        min-width: 0;
        clip-path: none;
        transform: none;
    }

    .single-content .fig-pilotage .fig-pilotage-row {
        position: relative;
        isolation: isolate;
    }

    .single-content .fig-pilotage .fig-pilotage-row > .kt-row-column-wrap {
        position: relative;
    }

    .single-content .fig-pilotage .fig-pilotage__number {
        position: absolute !important;
        z-index: 0;
        top: 10px !important;
        right: 14px !important;
        left: auto !important;
        margin: 0 !important;
        opacity: .13 !important;
        color: var(--global-palette7, #d7d0bf) !important;
        -webkit-text-fill-color: var(--global-palette7, #d7d0bf);
        -webkit-text-stroke: 0;
        font-size: clamp(76px, 24vw, 108px) !important;
        font-weight: 500 !important;
        line-height: .78 !important;
        letter-spacing: -.08em !important;
        text-align: right;
        white-space: nowrap;
        pointer-events: none;
    }

    .single-content .fig-pilotage .fig-pilotage-row > .kt-row-column-wrap > .wp-block-kadence-column:not(:first-child) {
        position: relative;
        z-index: 1;
    }
}

/* Four-card variants: shared mobile structure, explicit visual intent. */
@media (max-width: 767px) {
    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column.fig-pilotage-row
        > .kt-inside-inner-col
        > .fig-pilotage-row {
        border-top: 0 !important;
        border-bottom: 0 !important;
    }

    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column.fig-pilotage-row
        + .wp-block-kadence-column.fig-pilotage-row {
        border-top: 1px solid var(--global-palette6, #718096) !important;
    }

    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column
        .fig-pilotage-row
        > .kt-row-column-wrap.kt-has-3-columns {
        position: relative;
        isolation: isolate;
    }

    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column
        .fig-pilotage-row
        > .kt-row-column-wrap.kt-has-3-columns
        > .wp-block-kadence-column:first-child
        .wp-block-kadence-advancedheading {
        position: absolute !important;
        z-index: 0;
        top: 8px !important;
        right: 12px !important;
        left: auto !important;
        margin: 0 !important;
        opacity: .09 !important;
        color: var(--global-palette1, #304d51) !important;
        -webkit-text-fill-color: var(--global-palette1, #304d51);
        font-size: clamp(82px, 25vw, 108px) !important;
        font-weight: 500 !important;
        line-height: .78 !important;
        letter-spacing: -.08em !important;
        white-space: nowrap;
        pointer-events: none;
    }

    /* On dark gradient sections, keep the mobile index legible. */
    .fig-pilotage--dark
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column
        .fig-pilotage-row
        > .kt-row-column-wrap.kt-has-3-columns
        > .wp-block-kadence-column:first-child
        .wp-block-kadence-advancedheading {
        color: var(--global-palette7, #d7d0bf) !important;
        -webkit-text-fill-color: var(--global-palette7, #d7d0bf);
        opacity: .22 !important;
    }

    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column
        .fig-pilotage-row
        > .kt-row-column-wrap.kt-has-3-columns
        > .wp-block-kadence-column:not(:first-child) {
        position: relative;
        z-index: 1;
        min-width: 0;
        text-align: left;
    }

    :is(.fig-pilotage--light, .fig-pilotage--dark)
        > .kt-row-column-wrap.kt-has-4-columns
        > .wp-block-kadence-column
        .fig-pilotage-row
        > .kt-row-column-wrap.kt-has-3-columns
        > .wp-block-kadence-column:not(:first-child)
        .wp-block-kadence-advancedheading {
        text-align: left !important;
    }
}

/* 07. History timeline */

.fig-history,
.fig-history > .kt-row-column-wrap {
    overflow: visible;
}

.fig-history__intro {
    position: sticky;
    top: calc(var(--fig-header-height, 88px) + 42px);
    align-self: start;
}

.fig-timeline > .kt-inside-inner-col {
    --fig-timeline-axis: 11px;
    --fig-timeline-gutter: 75px;
    position: relative;
    isolation: isolate;
    overflow: visible !important;
    padding-left: var(--fig-timeline-gutter);
}

.fig-timeline > .kt-inside-inner-col::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 14px;
    bottom: 0;
    left: calc(var(--fig-timeline-axis) - var(--fig-timeline-gutter));
    width: 1px;
    background: var(--fig-green);
    pointer-events: none;
}

.fig-timeline__item {
    position: relative;
    z-index: 1;
    overflow: visible !important;
}

.fig-timeline__item > .kt-row-column-wrap {
    min-height: 220px;
    padding: 0 0 65px !important;
}

.fig-timeline__item::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 28px;
    left: calc(var(--fig-timeline-axis) - var(--fig-timeline-gutter));
    width: 11px;
    height: 11px;
    border: 2px solid var(--fig-green);
    border-radius: 50%;
    background: var(--fig-cream);
    box-shadow: 0 0 0 8px rgb(48 77 81 / 8%);
    transform: translateX(-50%);
}

.fig-timeline__item--highlight {
    margin: 10px 0 75px;
    color: #fff;
}

.fig-timeline__item--highlight > .kt-row-column-wrap {
    min-height: 0;
    margin-inline: -42px;
    padding: 38px 42px 42px !important;
    background: var(--fig-green);
    box-shadow: 0 24px 65px rgb(32 63 66 / 14%);
}

.fig-timeline__item--highlight::before {
    top: 66px;
    border-color: var(--fig-warm);
    background: var(--fig-warm);
    box-shadow: 0 0 0 10px rgb(213 200 183 / 14%);
}

@media (max-width: 900px) {
    .fig-history__intro {
        position: static;
    }

}

@media (max-width: 767px) {
    .fig-timeline > .kt-inside-inner-col {
        --fig-timeline-axis: 5px;
        --fig-timeline-gutter: 35px;
        padding-left: 0;
    }

    .fig-timeline > .kt-inside-inner-col::before {
        left: var(--fig-timeline-axis);
    }

    .fig-timeline__item::before {
        left: var(--fig-timeline-axis);
        transform: translateX(calc(-50% - 8px));
    }

    .fig-timeline__item > .kt-row-column-wrap {
        display: block;
        min-height: 0;
        padding: 0 0 62px var(--fig-timeline-gutter) !important;
    }

    .fig-timeline__item::before {
        top: 23px;
        width: 9px;
        height: 9px;
    }

    .fig-timeline__item--highlight {
        margin: 0 0 62px;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .fig-timeline__item--highlight > .kt-row-column-wrap {
        width: calc(100% - var(--fig-timeline-gutter));
        margin-left: var(--fig-timeline-gutter);
        margin-right: 0;
        padding: 28px 24px 30px !important;
        background: var(--fig-green);
        box-shadow: 0 24px 65px rgb(32 63 66 / 14%);
    }

    .fig-timeline__item--highlight::before {
        top: 51px;
    }

}

/* 08. Touch carousels */
/* Native touch carousel on mobile and tablet; desktop layout stays unchanged. */
@media (max-width: 1024px) {
    .fig-mobile-carousel {
        position: relative;
    }

    .fig-mobile-carousel > .kt-row-column-wrap {
        display: flex !important;
        flex-wrap: nowrap;
        gap: 0;
        min-height: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        scrollbar-width: none;
        overscroll-behavior-x: contain;
        touch-action: pan-x pan-y;
        -webkit-overflow-scrolling: touch;
    }

    .fig-mobile-carousel > .kt-row-column-wrap::-webkit-scrollbar {
        display: none;
    }

    .fig-hotels-carousel__group,
    .fig-hotels-carousel__group > .kt-inside-inner-col,
    .fig-hotels-carousel__group > .kt-inside-inner-col > .kb-row-layout-wrap,
    .fig-hotels-carousel__group > .kt-inside-inner-col > .kb-row-layout-wrap > .kt-row-column-wrap {
        display: contents !important;
    }

    .fig-mobile-carousel__slide {
        flex: 0 0 100%;
        width: 100%;
        min-width: 0;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .fig-mobile-carousel__controls {
        position: absolute;
        z-index: 5;
        top: 50%;
        right: 12px;
        left: 12px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        pointer-events: none;
        transform: translateY(-50%);
    }

    .fig-mobile-carousel__arrow {
        display: grid;
        place-items: center;
        width: 42px;
        height: 42px;
        padding: 0;
        line-height: 1;
        pointer-events: auto;
    }

    .fig-mobile-carousel__arrow:disabled {
        cursor: default;
        opacity: .3;
    }

}

@media (min-width: 1025px) {
    .fig-mobile-carousel__controls {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fig-image-zoom img {
        transition: none;
    }

    .fig-image-zoom:hover img,
    .fig-image-zoom:focus-within img {
        scale: 1;
    }

    .fig-bg-zoom__surface::after,
    .fig-bg-zoom:hover .fig-bg-zoom__surface::after,
    .fig-bg-zoom:focus-within .fig-bg-zoom__surface::after {
        transform: scale(1.001);
        transition: none;
    }

    .fig-mobile-carousel > .kt-row-column-wrap {
        scroll-behavior: auto;
    }
}

/* Minimal image navigation: large tap target, visually light chevron. */
.fig-mobile-carousel__arrow {
    position: relative;
    color: #fff;
    background: var(--fig-green);
    border: 0;
    border-radius: 50%;
    font-size: 0;
    backdrop-filter: none;
    box-shadow: 0 5px 16px rgb(0 0 0 / 20%);
    filter: none;
}

.fig-mobile-carousel__arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 16px;
    height: 1.5px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.fig-mobile-carousel__arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    display: block;
    width: 9px;
    height: 9px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
}

.fig-mobile-carousel__arrow:first-child::after {
    left: 43%;
    transform: translate(-50%, -50%) rotate(-135deg);
}

.fig-mobile-carousel__arrow:last-child::after {
    left: 57%;
    transform: translate(-50%, -50%) rotate(45deg);
}

.fig-mobile-carousel__arrow:disabled {
    opacity: 0;
    pointer-events: none;
}

/* 09. Language switcher: [figestel_language_switcher] */
.fig-language-switcher__list {
    display: inline-flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fig-language-switcher__item {
    display: flex;
    align-items: center;
}

.fig-language-switcher__item + .fig-language-switcher__item::before {
    width: 1px;
    height: 0.9em;
    margin-inline: 0.65em;
    background: currentColor;
    content: "";
    opacity: 0.35;
}

.fig-language-switcher__link {
    color: inherit;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    opacity: 0.55;
    transition: opacity 180ms ease;
}

.fig-language-switcher__link:hover,
.fig-language-switcher__link:focus-visible,
.fig-language-switcher__link.is-active {
    color: inherit;
    opacity: 1;
}

.fig-language-switcher__link:focus-visible {
    outline: 1px solid currentColor;
    outline-offset: 4px;
}

/* 10. Editorial reveal system */
.fig-reveal-title {
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transform: translate3d(0, .65em, 0);
    transition:
        opacity 700ms cubic-bezier(.22, 1, .36, 1),
        clip-path 850ms cubic-bezier(.22, 1, .36, 1),
        transform 850ms cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, clip-path, transform;
}

.fig-reveal-title.is-visible {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0);
}

.fig-reveal-image {
    opacity: 0;
    clip-path: inset(0 0 14% 0);
    transform: translate3d(0, 18px, 0);
    transition:
        opacity 650ms ease,
        clip-path 950ms cubic-bezier(.22, 1, .36, 1),
        transform 950ms cubic-bezier(.22, 1, .36, 1);
    will-change: opacity, clip-path, transform;
}

.fig-reveal-image.fig-image-revealed {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0);
}

.fig-reveal-image img,
img.fig-reveal-image {
    transform: scale(1.04);
    transition:
        transform 1100ms cubic-bezier(.22, 1, .36, 1),
        scale 750ms cubic-bezier(.2, .75, .25, 1);
    will-change: transform, scale;
}

.fig-reveal-image.fig-image-revealed img,
img.fig-reveal-image.fig-image-revealed {
    transform: scale(1);
}

.fig-reveal-image.fig-bg-zoom:not(.is-visible) .fig-bg-zoom__surface::after,
.fig-reveal-image.fig-bg-zoom.fig-bg-zoom__surface:not(.is-visible)::after {
    transform: scale(1.06);
}

.fig-reveal-timeline > .kt-inside-inner-col::before {
    transform: scaleY(0);
    transform-origin: center top;
    transition: transform 1200ms cubic-bezier(.22, 1, .36, 1);
}

.fig-reveal-timeline.is-visible > .kt-inside-inner-col::before {
    transform: scaleY(1);
}

.fig-reveal-timeline .fig-timeline__item {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 650ms ease,
        transform 800ms cubic-bezier(.22, 1, .36, 1);
    transition-delay: calc(180ms + var(--fig-reveal-index, 0) * 120ms);
}

.fig-reveal-timeline .fig-timeline__item.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.fig-reveal-pilotage-row
    > .kt-inside-inner-col
    > .fig-pilotage-row
    > .kt-row-column-wrap
    > .wp-block-kadence-column {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    transition:
        opacity 700ms cubic-bezier(.22, 1, .36, 1),
        transform 850ms cubic-bezier(.22, 1, .36, 1);
    transition-delay: calc(var(--fig-reveal-index, 0) * 90ms);
    will-change: opacity, transform;
}

.fig-reveal-pilotage-row.is-visible
    > .kt-inside-inner-col
    > .fig-pilotage-row
    > .kt-row-column-wrap
    > .wp-block-kadence-column {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .fig-reveal-title,
    .fig-reveal-image,
    .fig-reveal-image.fig-image-zoom img,
    .fig-reveal-image.fig-bg-zoom .fig-bg-zoom__surface::after,
    .fig-reveal-image.fig-bg-zoom.fig-bg-zoom__surface::after,
    .fig-reveal-timeline > .kt-inside-inner-col::before,
    .fig-reveal-timeline .fig-timeline__item,
    .fig-reveal-pilotage-row
        > .kt-inside-inner-col
        > .fig-pilotage-row
        > .kt-row-column-wrap
        > .wp-block-kadence-column {
        opacity: 1 !important;
        clip-path: none !important;
        transform: none !important;
        transition: none !important;
    }
}
