/* Échecs & Truffes — styles strictement limités à cette page.
   Palette, typographies, largeurs et rythme issus de la charte générale du site. */
.truffles-page { background: var(--cream); }
.truffles-page .site-nav { position: relative; }
.truffles-page .truffles-main { overflow: hidden; }

.truffles-page .truffles-wrap {
    margin-inline: auto;
    max-width: var(--content-width);
    padding-inline: var(--page-padding);
}

.truffles-page .truffles-kicker {
    color: var(--terracotta);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: var(--ls-label);
    margin: 0 0 14px;
    text-transform: uppercase;
}

/* Têtière : photo lumineuse, sans voile. Le léger zoom réduit le nombre de
   personnes visibles tout en conservant l'impression de salle bien remplie. */
.truffles-page .truffles-hero {
    background: var(--chocolate);
    color: var(--paper);
    min-height: clamp(590px, 52vw, 760px);
    overflow: hidden;
    position: relative;
}

.truffles-page .truffles-hero__image {
    height: 100%;
    inset: 0;
    object-fit: cover;
    object-position: 50% 56%;
    position: absolute;
    transform: scale(1.16);
    transform-origin: 50% 58%;
    width: 100%;
}

.truffles-page .truffles-hero__copy {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    margin: 0 auto;
    max-width: var(--content-width);
    min-height: clamp(590px, 52vw, 760px);
    padding: 0 var(--page-padding) clamp(54px, 7vw, 94px);
    position: relative;
    text-shadow: 0 2px 16px rgb(0 0 0 / 58%), 0 1px 3px rgb(0 0 0 / 72%);
    z-index: 1;
}

.truffles-page .truffles-hero .truffles-kicker { color: var(--gold); }

.truffles-page .truffles-hero h1 {
    font-family: var(--serif);
    font-size: clamp(62px, 8vw, 112px);
    font-weight: 500;
    letter-spacing: var(--ls-display);
    line-height: .88;
    margin: 0;
    max-width: 760px;
    text-wrap: balance;
}

.truffles-page .truffles-hero__subtitle {
    color: var(--paper);
    font-family: var(--serif);
    font-size: clamp(24px, 3vw, 35px);
    line-height: 1.1;
    margin: 24px 0 0;
    max-width: 680px;
}

.truffles-page .truffles-origin {
    background: var(--terracotta);
    padding: clamp(58px, 7vw, 96px) var(--page-padding);
}

.truffles-page .truffles-origin__card {
    background: var(--paper);
    box-shadow: 0 24px 60px rgb(61 27 16 / 14%);
    margin: auto;
    max-width: 980px;
    padding: clamp(42px, 6vw, 76px);
}

.truffles-page .truffles-origin__heading {
    margin: 0 auto clamp(30px, 4vw, 48px);
    max-width: 980px;
}

.truffles-page .truffles-origin__heading h2 {
    color: var(--paper);
    font-family: var(--serif);
    font-size: clamp(46px, 5.6vw, 78px);
    font-weight: 500;
    letter-spacing: var(--ls-heading);
    line-height: .98;
    margin: 0;
    text-wrap: balance;
}

.truffles-page .truffles-origin__card--2027 p:first-child {
    color: var(--cocoa);
    font-family: var(--serif);
    font-size: clamp(25px, 2.6vw, 34px);
    line-height: 1.25;
    margin-bottom: 1em;
}

.truffles-page .truffles-history-opening {
    background: var(--cream);
    padding: clamp(76px, 9vw, 124px) 0;
}

.truffles-page .truffles-history-opening__inner {
    margin-inline: auto;
    max-width: 980px;
    padding-inline: var(--page-padding);
}

.truffles-page .truffles-history-opening h2 {
    font-family: var(--serif);
    font-size: clamp(48px, 5.8vw, 80px);
    font-weight: 500;
    letter-spacing: var(--ls-heading);
    line-height: .98;
    margin: 0 0 clamp(30px, 4vw, 46px);
    text-wrap: balance;
}

.truffles-page .truffles-history-opening__copy {
    border-top: 1px solid var(--line);
    padding-top: 28px;
}

.truffles-page .truffles-history-opening__copy p {
    color: var(--ink);
    font-size: clamp(17px, 1.25vw, 19px);
    line-height: 1.78;
    margin: 0 0 1.15em;
}

.truffles-page .truffles-history-opening__copy p:last-child { margin-bottom: 0; }

.truffles-page .truffles-origin__card p,
.truffles-page .truffles-territory__copy p,
.truffles-page .truffles-year__body p,
.truffles-page .truffles-duo__panel p,
.truffles-page .truffles-partners__copy p,
.truffles-page .truffles-next__copy p {
    color: var(--ink);
    font-size: clamp(17px, 1.25vw, 19px);
    line-height: 1.78;
    margin: 0 0 1.15em;
}

.truffles-page .truffles-origin__card p:last-child,
.truffles-page .truffles-territory__copy p:last-child,
.truffles-page .truffles-year__body p:last-child,
.truffles-page .truffles-duo__panel p:last-child,
.truffles-page .truffles-partners__copy p:last-child,
.truffles-page .truffles-next__copy p:last-child { margin-bottom: 0; }

.truffles-page .truffles-territory {
    padding: clamp(76px, 9vw, 124px) 0;
}

.truffles-page .truffles-territory__grid {
    align-items: start;
    display: grid;
    gap: clamp(48px, 8vw, 120px);
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
}

.truffles-page .truffles-territory h2,
.truffles-page .truffles-partners h2,
.truffles-page .truffles-next h2 {
    font-family: var(--serif);
    font-size: clamp(48px, 5.8vw, 80px);
    font-weight: 500;
    letter-spacing: var(--ls-heading);
    line-height: .98;
    margin: 0;
    text-wrap: balance;
}

.truffles-page .truffles-territory__copy {
    border-top: 1px solid var(--line);
    padding-top: 28px;
}

.truffles-page .truffles-year {
    padding: clamp(80px, 8vw, 112px) 0 clamp(86px, 9vw, 128px);
}

.truffles-page .truffles-year--dark {
    background: var(--chocolate);
    color: var(--paper);
}

.truffles-page .truffles-year--light {
    background: var(--paper);
    color: var(--ink);
}

.truffles-page .truffles-year__head {
    align-items: end;
    display: grid;
    gap: 36px;
    grid-template-columns: 180px minmax(0, 1fr);
    margin-bottom: 36px;
}

.truffles-page .truffles-year__label {
    color: var(--gold);
    font-family: var(--serif);
    font-size: clamp(62px, 7vw, 94px);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: .8;
    margin: 0;
}

.truffles-page .truffles-year--light .truffles-year__label { color: var(--terracotta); }

.truffles-page .truffles-year h2 {
    font-family: var(--serif);
    font-size: clamp(44px, 5vw, 70px);
    font-weight: 500;
    letter-spacing: var(--ls-heading);
    line-height: .98;
    margin: 0;
    max-width: 850px;
    text-wrap: balance;
}

.truffles-page .truffles-year__media {
    margin: 0 auto;
    max-width: min(1460px, 100%);
    overflow: hidden;
}

.truffles-page .truffles-year__media img {
    display: block;
    height: clamp(330px, 46vw, 650px);
    object-fit: cover;
    object-position: center 52%;
    width: 100%;
}

.truffles-page .truffles-year__media--2026 img { object-position: center 48%; }

.truffles-page .truffles-year__body {
    display: grid;
    gap: 22px;
    padding-top: 42px;
}

.truffles-page .truffles-year__body-text {
    column-gap: clamp(34px, 5vw, 72px);
    columns: 2;
}

.truffles-page .truffles-year--dark .truffles-year__body p { color: rgb(255 253 250 / 90%); }

.truffles-page .truffles-link {
    align-items: center;
    border-bottom: 1px solid currentColor;
    color: var(--terracotta);
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 10px;
    justify-self: start;
    letter-spacing: .06em;
    margin-top: 8px;
    padding-bottom: 5px;
    text-decoration: none;
    text-transform: uppercase;
}

.truffles-page .truffles-year--dark .truffles-link { color: var(--gold); }
.truffles-page .truffles-link::after { content: "→"; }

.truffles-page .truffles-duo {
    background: var(--cream);
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr;
    margin: 0 auto;
    max-width: var(--content-width);
    padding: clamp(76px, 8vw, 110px) var(--page-padding);
}

.truffles-page .truffles-duo__panel {
    min-height: 100%;
    padding: clamp(42px, 5vw, 68px);
}

.truffles-page .truffles-duo__panel--paper { background: var(--paper); }
.truffles-page .truffles-duo__panel--ochre { background: #ead6b6; }

.truffles-page .truffles-duo__panel h2 {
    font-family: var(--serif);
    font-size: clamp(42px, 4.4vw, 64px);
    font-weight: 500;
    letter-spacing: var(--ls-heading);
    line-height: .98;
    margin: 0 0 26px;
    text-wrap: balance;
}

.truffles-page .truffles-sources {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.truffles-page .truffles-sources span {
    border: 1px solid rgb(72 43 27 / 24%);
    color: var(--cocoa);
    font-size: var(--fs-caption);
    font-weight: 500;
    padding: 9px 13px;
}

.truffles-page .truffles-partners {
    background: #e8ddcf;
    padding: clamp(80px, 9vw, 128px) 0;
}

.truffles-page .truffles-partners__head {
    display: grid;
    gap: clamp(50px, 7vw, 100px);
    grid-template-columns: .8fr 1.2fr;
    margin-bottom: 54px;
}

.truffles-page .truffles-partners__copy { padding-top: 10px; }

.truffles-page .truffles-partners__grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.truffles-page .truffles-partner-card {
    align-items: center;
    background: rgb(255 255 255 / 78%);
    border: 0;
    display: flex;
    justify-content: center;
    min-height: 180px;
    outline: 0;
    padding: 24px 20px;
}

.truffles-page .truffles-partner-card img {
    height: auto;
    max-height: 108px;
    max-width: 94%;
    object-fit: contain;
    width: auto;
}

.truffles-page .truffles-next {
    background: var(--terracotta);
    color: var(--paper);
    padding: clamp(84px, 9vw, 128px) 0;
}

.truffles-page .truffles-next__grid {
    align-items: start;
    display: grid;
    gap: clamp(50px, 8vw, 110px);
    grid-template-columns: .82fr 1.18fr;
}

.truffles-page .truffles-next .truffles-kicker { color: var(--gold); }
.truffles-page .truffles-next h2 { color: var(--paper); }
.truffles-page .truffles-next__copy p { color: var(--paper); }

.truffles-page .truffles-next__status {
    border: 1px solid rgb(255 255 255 / 65%);
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    margin-top: 18px;
    padding: 12px 16px;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .truffles-page .truffles-territory__grid,
    .truffles-page .truffles-partners__head,
    .truffles-page .truffles-next__grid { grid-template-columns: 1fr; }

    .truffles-page .truffles-year__head {
        gap: 10px;
        grid-template-columns: 1fr;
    }

    .truffles-page .truffles-year__label { font-size: 56px; }
    .truffles-page .truffles-partners__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
    .truffles-page .truffles-hero { min-height: 610px; }

    .truffles-page .truffles-hero__image {
        object-position: 51% 55%;
        transform: scale(1.08);
        transform-origin: 50% 56%;
    }

    .truffles-page .truffles-hero__copy {
        min-height: 610px;
        padding-bottom: 48px;
    }

    .truffles-page .truffles-hero h1 { font-size: clamp(58px, 18vw, 78px); }
    .truffles-page .truffles-hero__subtitle { font-size: 25px; }
    .truffles-page .truffles-origin { padding-inline: 20px; }
    .truffles-page .truffles-origin__card { padding: 38px 24px; }
    .truffles-page .truffles-origin__heading { margin-bottom: 28px; }
    .truffles-page .truffles-origin__heading h2 { font-size: clamp(42px, 12vw, 58px); }
    .truffles-page .truffles-origin__card--2027 p:first-child { font-size: clamp(24px, 7vw, 30px); }
    .truffles-page .truffles-history-opening { padding: 68px 0; }
    .truffles-page .truffles-history-opening__inner { padding-inline: 20px; }
    .truffles-page .truffles-history-opening h2 { font-size: clamp(42px, 12vw, 58px); }
    .truffles-page .truffles-territory { padding: 68px 0; }
    .truffles-page .truffles-year { padding-top: 68px; }

    .truffles-page .truffles-year__media img {
        height: 56vw;
        min-height: 245px;
    }

    .truffles-page .truffles-year__body-text { columns: 1; }
    .truffles-page .truffles-duo { grid-template-columns: 1fr; }
    .truffles-page .truffles-partners__grid { grid-template-columns: repeat(2, 1fr); }

    .truffles-page .truffles-partner-card {
        min-height: 145px;
        padding: 16px 12px;
    }

    .truffles-page .truffles-partner-card img { max-height: 84px; }
}

@media (max-width: 460px) {
    .truffles-page .truffles-hero__image {
        object-position: 50% 54%;
        transform: scale(1.03);
    }

    .truffles-page .truffles-partners__grid { gap: 12px; }
}
