/* =====================================================
   VARIABLES LOCALES SAMAKENTRA
   ===================================================== */

#sk-announcement-overlay {
    --sk-primary: #176B70;
    --sk-primary-hover: #12595D;
    --sk-primary-active: #0E4A4D;
    --sk-secondary: #248B8E;
    --sk-aqua: #A8D3D1;
    --sk-aqua-soft: #EEF7F6;
    --sk-text: #213638;
    --sk-text-muted: #687A7B;
    --sk-border: #DFE9E8;
    --sk-white: #FFFFFF;
    --sk-accent: #E8C66A;

    position: fixed;
    inset: 0;
    z-index: 999998;

    display: flex;
    align-items: center;
    justify-content: center;

    padding:
        max(12px, env(safe-area-inset-top))
        12px
        max(12px, env(safe-area-inset-bottom));

    background: rgba(33, 54, 56, 0.32);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);

    box-sizing: border-box;

    opacity: 0;
    visibility: hidden;

    transition:
        opacity 240ms ease-out,
        visibility 240ms ease-out;
}

#sk-announcement-overlay[hidden] {
    display: none !important;
}

#sk-announcement-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}


/* =====================================================
   VIGNETTE EXTÉRIEURE
   ===================================================== */

#sk-announcement-overlay .sk-announcement {
    position: relative;

    display: grid;

    /*
     * La zone vidéo est volontairement plus haute sur PC
     * afin d’afficher une animation plus grande et mieux
     * centrée dans la partie supérieure de la vignette.
     */
    grid-template-rows:
        minmax(260px, 40%)
        minmax(0, 1fr)
        auto;

    width: min(720px, 100%);

    height: calc(100vh - 32px);
    height: calc(100dvh - 32px);
    max-height: 880px;

    border: 1px solid rgba(223, 233, 232, 0.96);
    border-radius: 24px;
    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #FFFFFF 0%,
            #FFFFFF 72%,
            #FBFDFC 100%
        );

    box-shadow:
        0 24px 70px rgba(33, 54, 56, 0.20),
        0 2px 10px rgba(33, 54, 56, 0.06);

    color: var(--sk-text);
    box-sizing: border-box;

    opacity: 0;
    transform: translateY(24px) scale(0.985);

    transition:
        opacity 260ms ease-out,
        transform 260ms ease-out;
}

#sk-announcement-overlay.is-visible .sk-announcement {
    opacity: 1;
    transform: translateY(0) scale(1);
}


/* =====================================================
   ZONE VIDÉO — PARTIE SUPÉRIEURE
   ===================================================== */

#sk-announcement-overlay .sk-announcement__media {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 0;
    min-height: 0;

    padding: 22px 64px 18px;

    overflow: hidden;
    box-sizing: border-box;

    background: #FFFFFF;
}

/*
 * Sur ordinateur, la taille dépend principalement
 * de la hauteur disponible afin que l’icône reste
 * grande sans dépasser la zone média.
 */
#sk-announcement-overlay .sk-announcement__video-card {
    position: relative;

    flex: 0 1 auto;

    width: clamp(230px, 30vh, 310px);
    width: clamp(230px, 30dvh, 310px);

    height: auto;
    max-width: 100%;
    max-height: 100%;
    aspect-ratio: 1 / 1;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: auto;
    padding: 8px;

    border: 1px solid rgba(168, 211, 209, 0.72);
    border-radius: 24px;

    background: rgba(255, 255, 255, 0.70);

    box-shadow:
        0 5px 14px rgba(23, 107, 112, 0.18),
        0 1px 3px rgba(33, 54, 56, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.98),
        inset 0 -1px 0 rgba(168, 211, 209, 0.12);

    backdrop-filter: blur(18px) saturate(125%);
    -webkit-backdrop-filter: blur(18px) saturate(125%);

    box-sizing: border-box;
    overflow: hidden;
}

#sk-announcement-overlay .sk-announcement__video-card::before {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.64) 0%,
            rgba(255, 255, 255, 0.08) 38%,
            rgba(168, 211, 209, 0.08) 100%
        );
}

#sk-announcement-overlay .sk-announcement__video {
    position: relative;
    z-index: 1;

    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: center center;

    border: 0;
    border-radius: 17px;

    background: #FFFFFF;

    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

/* Aucun contrôle de lecteur ne doit apparaître. */
#sk-announcement-overlay .sk-announcement__video::-webkit-media-controls,
#sk-announcement-overlay .sk-announcement__video::-webkit-media-controls-panel,
#sk-announcement-overlay .sk-announcement__video::-webkit-media-controls-play-button,
#sk-announcement-overlay .sk-announcement__video::-webkit-media-controls-start-playback-button {
    display: none !important;
    -webkit-appearance: none !important;
}


/* =====================================================
   CONTENU
   ===================================================== */

#sk-announcement-overlay .sk-announcement__content {
    min-width: 0;
    min-height: 0;

    padding: 0;

    overflow-y: auto;
    overflow-x: hidden;

    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;

    box-sizing: border-box;
}

/*
 * Le bloc label, titre et message reste centré
 * verticalement dans son espace disponible.
 */
#sk-announcement-overlay .sk-announcement__content-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-height: 100%;

    padding: 12px 28px 10px;

    box-sizing: border-box;
}

#sk-announcement-overlay .sk-announcement__label {
    margin: 0 0 8px;

    color: var(--sk-secondary);

    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

#sk-announcement-overlay .sk-announcement__title {
    margin: 0 0 10px;

    color: var(--sk-text);

    font-size: clamp(23px, 3vw, 31px);
    font-weight: 700;
    line-height: 1.16;

    text-wrap: balance;
}

#sk-announcement-overlay .sk-announcement__message {
    margin: 0;

    color: var(--sk-text-muted);

    font-size: clamp(15px, 1.7vw, 17px);
    font-weight: 400;
    line-height: 1.62;
}


/* =====================================================
   ACTIONS — TOUJOURS VISIBLES
   ===================================================== */

#sk-announcement-overlay .sk-announcement__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;

    width: 100%;

    padding:
        10px
        28px
        calc(18px + env(safe-area-inset-bottom));

    border-top: 1px solid rgba(223, 233, 232, 0.74);

    background: rgba(255, 255, 255, 0.96);

    box-sizing: border-box;
}

#sk-announcement-overlay .sk-announcement__button,
#sk-announcement-overlay .sk-announcement__later {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    width: 100%;
    min-height: 46px;

    padding: 0 18px;

    border-radius: 14px;

    font-family: inherit;
    font-size: 15px;
    font-weight: 650;
    line-height: 1;

    cursor: pointer;
    box-sizing: border-box;

    transition:
        background 180ms ease-out,
        border-color 180ms ease-out,
        color 180ms ease-out,
        transform 180ms ease-out;
}

#sk-announcement-overlay .sk-announcement__button {
    border: 1px solid var(--sk-primary);

    background: var(--sk-primary);
    color: var(--sk-white);

    text-decoration: none;
}

#sk-announcement-overlay .sk-announcement__button:hover {
    border-color: var(--sk-primary-hover);

    background: var(--sk-primary-hover);
    color: var(--sk-white);
}

#sk-announcement-overlay .sk-announcement__button:active {
    border-color: var(--sk-primary-active);

    background: var(--sk-primary-active);

    transform: translateY(1px);
}

#sk-announcement-overlay .sk-announcement__button svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#sk-announcement-overlay .sk-announcement__later {
    border: 1px solid var(--sk-aqua);

    background: var(--sk-white);
    color: var(--sk-primary);
}

#sk-announcement-overlay .sk-announcement__later:hover {
    border-color: var(--sk-secondary);

    background: var(--sk-aqua-soft);
    color: var(--sk-primary-hover);
}


/* =====================================================
   BOUTON FERMETURE SUPÉRIEUR
   ===================================================== */

#sk-announcement-overlay .sk-announcement__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 10;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    padding: 0;

    border: 1px solid rgba(36, 139, 142, 0.64);
    border-radius: 50%;

    background: rgba(255, 255, 255, 0.88);
    color: var(--sk-text-muted);

    box-shadow: 0 6px 18px rgba(33, 54, 56, 0.10);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    cursor: pointer;
    box-sizing: border-box;
}

#sk-announcement-overlay .sk-announcement__close:hover {
    border-color: var(--sk-primary);

    background: var(--sk-aqua-soft);
    color: var(--sk-primary);
}

#sk-announcement-overlay .sk-announcement__close svg {
    width: 20px;
    height: 20px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}


/* =====================================================
   ACCESSIBILITÉ
   ===================================================== */

#sk-announcement-overlay button:focus-visible,
#sk-announcement-overlay a:focus-visible {
    outline: 3px solid var(--sk-secondary);
    outline-offset: 3px;
}


/* =====================================================
   MOBILE ET TABLETTE
   ===================================================== */

@media (max-width: 700px) {

    #sk-announcement-overlay {
        padding:
            max(8px, env(safe-area-inset-top))
            8px
            max(8px, env(safe-area-inset-bottom));
    }

    #sk-announcement-overlay .sk-announcement {
        grid-template-rows:
            minmax(170px, 34%)
            minmax(0, 1fr)
            auto;

        width: 100%;

        height: calc(100vh - 16px);
        height: calc(100dvh - 16px);
        max-height: none;

        border-radius: 22px;
    }

    #sk-announcement-overlay .sk-announcement__media {
        padding: 14px 52px 10px;
    }

    /*
     * Sur mobile, la carte reprend toute la hauteur
     * disponible dans la zone sans devenir excessive.
     */
    #sk-announcement-overlay .sk-announcement__video-card {
        width: auto;
        height: 100%;

        max-width: 100%;
        max-height: 280px;

        padding: 6px;

        border-radius: 20px;
    }

    #sk-announcement-overlay .sk-announcement__video {
        border-radius: 15px;
    }

    #sk-announcement-overlay .sk-announcement__content-inner {
        padding: 8px 18px;
    }

    #sk-announcement-overlay .sk-announcement__label {
        margin-bottom: 6px;

        font-size: 11px;
    }

    #sk-announcement-overlay .sk-announcement__title {
        margin-bottom: 8px;

        font-size: clamp(19px, 5.4vw, 24px);
        line-height: 1.16;
    }

    #sk-announcement-overlay .sk-announcement__message {
        font-size: clamp(13.7px, 3.8vw, 15px);
        line-height: 1.52;
    }

    #sk-announcement-overlay .sk-announcement__actions {
        padding:
            9px
            18px
            calc(14px + env(safe-area-inset-bottom));
    }

    #sk-announcement-overlay .sk-announcement__button,
    #sk-announcement-overlay .sk-announcement__later {
        min-height: 44px;

        font-size: 15px;
    }

    #sk-announcement-overlay .sk-announcement__close {
        top: 8px;
        right: 8px;
    }
}


/* =====================================================
   ORDINATEURS PEU HAUTS
   L’ancienne règle réduisait trop fortement l’icône
   sur les écrans PC d’environ 720 px de hauteur.
   ===================================================== */

@media (min-width: 701px) and (max-height: 720px) {

    #sk-announcement-overlay .sk-announcement {
        grid-template-rows:
            minmax(220px, 34%)
            minmax(0, 1fr)
            auto;
    }

    #sk-announcement-overlay .sk-announcement__media {
        padding:
            14px
            64px
            10px;
    }

    #sk-announcement-overlay .sk-announcement__video-card {
        width: clamp(205px, 31vh, 235px);
        width: clamp(205px, 31dvh, 235px);

        height: auto;
        max-height: 100%;
    }

    #sk-announcement-overlay .sk-announcement__content-inner {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    #sk-announcement-overlay .sk-announcement__label {
        margin-bottom: 5px;
    }

    #sk-announcement-overlay .sk-announcement__title {
        margin-bottom: 7px;

        font-size: clamp(20px, 2.4vw, 25px);
    }

    #sk-announcement-overlay .sk-announcement__message {
        font-size: 14px;
        line-height: 1.48;
    }

    #sk-announcement-overlay .sk-announcement__actions {
        padding-top: 7px;
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
    }
}


/* =====================================================
   MOBILES PEU HAUTS
   ===================================================== */

@media (max-width: 700px) and (max-height: 720px) {

    #sk-announcement-overlay .sk-announcement {
        grid-template-rows:
            minmax(145px, 27%)
            minmax(0, 1fr)
            auto;
    }

    #sk-announcement-overlay .sk-announcement__media {
        padding-top: 10px;
        padding-bottom: 8px;
    }

    #sk-announcement-overlay .sk-announcement__video-card {
        width: auto;
        height: 100%;

        max-height: 220px;
    }

    #sk-announcement-overlay .sk-announcement__content-inner {
        padding-top: 5px;
        padding-bottom: 5px;
    }

    #sk-announcement-overlay .sk-announcement__label {
        margin-bottom: 4px;
    }

    #sk-announcement-overlay .sk-announcement__title {
        margin-bottom: 6px;

        font-size: clamp(18px, 4.8vw, 22px);
    }

    #sk-announcement-overlay .sk-announcement__message {
        font-size: 13.5px;
        line-height: 1.44;
    }

    #sk-announcement-overlay .sk-announcement__actions {
        padding-top: 7px;
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
    }
}


/* =====================================================
   TRÈS PETITS ÉCRANS
   ===================================================== */

@media (max-width: 390px) {

    #sk-announcement-overlay .sk-announcement__media {
        padding-left: 46px;
        padding-right: 46px;
    }

    #sk-announcement-overlay .sk-announcement__content-inner {
        padding-left: 16px;
        padding-right: 16px;
    }

    #sk-announcement-overlay .sk-announcement__actions {
        padding-left: 16px;
        padding-right: 16px;
    }
}


/* =====================================================
   RÉDUCTION DES ANIMATIONS DE L’INTERFACE
   La vidéo reste une information visuelle ponctuelle.
   ===================================================== */

@media (prefers-reduced-motion: reduce) {

    #sk-announcement-overlay,
    #sk-announcement-overlay .sk-announcement,
    #sk-announcement-overlay .sk-announcement__button,
    #sk-announcement-overlay .sk-announcement__later {
        transition: none !important;
    }
}

/* =====================================================
   EXTENSION WORDPRESS — CAS SANS VIDÉO
   ===================================================== */

#sk-announcement-overlay .sk-announcement--no-media {
    grid-template-rows: minmax(0, 1fr) auto;
    max-height: 620px;
}

#sk-announcement-overlay .sk-announcement--no-media .sk-announcement__content-inner {
    padding-top: 70px;
    padding-bottom: 32px;
}

@media (max-width: 700px) {
    #sk-announcement-overlay .sk-announcement--no-media {
        grid-template-rows: minmax(0, 1fr) auto;
        max-height: none;
    }

    #sk-announcement-overlay .sk-announcement--no-media .sk-announcement__content-inner {
        padding-top: 62px;
        padding-bottom: 24px;
    }
}
