/*
Theme Name: Deauville Insider
Description: Interface Deauville-Trouville Insider.
Version: 0.2.0
*/

:root {
    --di-night: #071722;
    --di-blue: #0d3150;
    --di-gold: #c2a160;
    --di-ivory: #f7f3ec;
    --di-white: #ffffff;
    --di-ink: #17212b;
    --di-muted: #6d747b;
    --di-line: rgba(17, 37, 52, .11);
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: var(--di-ivory);
    color: var(--di-ink);
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
}

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

button,
a {
    font: inherit;
}

.di-shell {
    width: min(1160px, calc(100% - 32px));
    margin: 0 auto;
}


/* HEADER */

.di-header {
    background: var(--di-night);
    color: white;
}

.di-header-inner {
    min-height: 92px;

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

    gap: 24px;
}

.di-logo {
    display: flex;
    align-items: center;

    min-height: 52px;
}

.di-logo img {
    width: auto;
    max-width: min(540px, 66vw);
    max-height: 68px;
}

.di-logo-text {
    font-size: clamp(22px, 4vw, 36px);
    font-weight: 650;
    letter-spacing: -.025em;
}

.di-logo-text span {
    color: var(--di-gold);
    font-weight: 500;
}

.di-lang {
    display: flex;
    gap: 5px;
}

.di-lang a {
    min-width: 42px;

    padding: 9px 11px;

    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;

    color: white;

    text-decoration: none;
    text-align: center;

    font-size: 12px;
    font-weight: 700;
}

.di-lang a.is-active {
    background: white;
    color: var(--di-night);
}


/* HERO */

.di-hero {
    position: relative;

    min-height: 490px;

    overflow: hidden;

    background:
        linear-gradient(
            120deg,
            #071722,
            #123b52
        );

    color: white;
}

.di-hero.has-image {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.di-hero.has-image::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(4,16,25,.88),
            rgba(4,16,25,.57),
            rgba(4,16,25,.22)
        );
}

.di-hero-inner {
    position: relative;
    z-index: 2;

    padding: 92px 0 110px;
}

.di-eyebrow {
    margin: 0 0 19px;

    color: #ddc794;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .20em;

    text-transform: uppercase;
}

.di-hero h1 {
    max-width: 780px;

    margin: 0;

    font-size: clamp(45px, 7vw, 80px);
    font-weight: 500;

    line-height: .98;

    letter-spacing: -.05em;
}

.di-hero p {
    max-width: 600px;

    margin: 25px 0 0;

    color: rgba(255,255,255,.75);

    font-size: 18px;
    line-height: 1.6;
}


/* ACCUEIL */

.di-main {
    padding: 46px 0 90px;
}

.di-section-title {
    margin: 0 0 26px;

    font-size: 31px;
    font-weight: 560;

    letter-spacing: -.035em;
}

.di-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 18px;
}

.di-tile {
    position: relative;

    min-height: 320px;

    overflow: hidden;

    background: white;

    border: 1px solid var(--di-line);
}

.di-tile-media {
    position: relative;

    height: 190px;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #d9d0c1,
            #f3eee6
        );
}

.di-tile-media img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.di-tile-media-placeholder {
    position: absolute;
    inset: 0;

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

    color: rgba(7,23,34,.38);

    font-size: 12px;

    text-transform: uppercase;
    letter-spacing: .16em;
}

.di-tile-picto {
    position: absolute;

    width: 58px;
    height: 58px;

    left: 22px;
    bottom: -29px;

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

    padding: 10px;

    background: white;

    border: 1px solid var(--di-line);
    border-radius: 50%;
}

.di-tile-picto img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.di-tile-body {
    padding: 42px 22px 24px;
}

.di-tile h2 {
    margin: 0;

    font-size: 23px;
    font-weight: 620;

    letter-spacing: -.025em;
}

.di-tile p {
    margin: 10px 0 0;

    color: var(--di-muted);

    font-size: 14px;
    line-height: 1.55;
}


/* ADMIN NOTE FRONT-END */

.di-media-note {
    margin-top: 38px;

    padding: 17px 20px;

    background: rgba(194,161,96,.10);

    border: 1px solid rgba(194,161,96,.28);

    color: #735e37;

    font-size: 13px;
    line-height: 1.55;
}


/* MOBILE */

@media (max-width: 840px) {

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

@media (max-width: 560px) {

    .di-shell {
        width: min(100% - 20px, 1160px);
    }

    .di-header-inner {
        min-height: 76px;
    }

    .di-logo img {
        max-width: 66vw;
        max-height: 54px;
    }

    .di-logo-text {
        font-size: 21px;
    }

    .di-hero {
        min-height: 440px;
    }

    .di-hero-inner {
        padding: 70px 0 88px;
    }

    .di-hero h1 {
        font-size: 48px;
    }

    .di-grid {
        grid-template-columns: 1fr;
    }

    .di-tile-media {
        height: 210px;
    }
}

/* ==========================================================
   AJOUTS PHASE 1 — Nav mobile basse + confort tactile
   À COLLER À LA FIN de wp-content/themes/deauville-insider/style.css
   ========================================================== */

/* Espace en bas pour ne pas masquer le contenu derrière la nav mobile */
body {
    padding-bottom: 0;
}

@media (max-width: 840px) {
    body {
        padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    }
}

/* Barre de navigation basse — visible uniquement sur mobile/tablette */
.di-bottom-nav {
    display: none;
}

@media (max-width: 840px) {

    .di-bottom-nav {
        display: flex;

        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 50;

        padding-bottom: env(safe-area-inset-bottom, 0px);

        background: var(--di-night);
        border-top: 1px solid rgba(255,255,255,.08);
    }

    .di-bottom-nav a {
        flex: 1;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;

        min-height: 60px;

        color: rgba(255,255,255,.62);

        text-decoration: none;
        font-size: 11px;
        font-weight: 600;
    }

    .di-bottom-nav a.is-active {
        color: var(--di-gold);
    }

    .di-bottom-nav a .di-nav-icon {
        font-size: 20px;
        line-height: 1;
    }
}

/* Zones tactiles plus généreuses partout sur mobile */
@media (max-width: 560px) {

    .di-lang a {
        min-width: 46px;
        padding: 11px 12px;
    }

    .di-tile {
        min-height: 300px;
    }

    .di-tile-body {
        padding: 38px 18px 20px;
    }
}

/* Le contenu ne doit jamais déborder horizontalement */
html {
    overflow-x: hidden;
}
