/* ==========================================================
   AIMA SAINT HUNON — Style complet
   Couleurs exactes + Header redesign moderne
   ==========================================================

   PALETTE OFFICIELLE :
   #e44c65  — Rose primaire
   #e44c66  — Rose logo
   #c67874  — Salmon (bordures, bg invitation)
   #ecaeae  — Rose clair (portfolio bg)
   #272833  — Bleu-gris foncé
   #1c1d26  — Très foncé
   #181920  — Le plus foncé (mobile panel)
   #777     — Gris (h2)
   white    — Fond footer
   black    — Texte body
   ========================================================== */


/* ==========================================================
   1. RESET
   ========================================================== */

*, *:before, *:after {
    margin: 0;
    padding: 0;
    border: 0;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

html, body {
    width: 100%;
    overflow-x: hidden;
}

ol, ul {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    border: 0;
    display: block;
}

a {
    text-decoration: none;
    -moz-transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out;
    -webkit-transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out;
    transition: border-color 0.2s ease-in-out, color 0.2s ease-in-out;
    color: #e44c65;
}

a:hover {
    color: #e44c65 !important;
    border-bottom-color: transparent;
}


/* ==========================================================
   2. TYPOGRAPHIE
   ========================================================== */

body, input, select, textarea {
    color: black;
    font-family: "Source Sans Pro", Helvetica, serif;
    font-size: 14pt;
    font-weight: 300;
    line-height: 2;
    letter-spacing: 0.2em;
}

body {
    background: #1c1d26;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

p { margin: 0 0 2em 0; }

h1, h3, h4, h5, h6 {
    color: #e44c65;
    text-shadow: -1px 0 #e44c65, 0 1px #e44c65,
                  1px 0 #e44c65, 0 -1px #e44c65;
    font-weight: 300;
    line-height: 1em;
    margin: 0 0 1em 0;
}

h2 {
    color: #777;
    font-weight: 300;
    line-height: 1em;
    margin: 0 0 1em 0;
}

h1 { font-size: 3em; letter-spacing: -0.025em; }
h2 { font-size: 3em; letter-spacing: -0.025em; }
h3 { font-size: 1.35em; line-height: 1.5em; }
h4 { font-size: 1.1em;  line-height: 1.5em; }
h5 { font-size: 0.9em;  line-height: 1.5em; }
h6 { font-size: 0.7em;  line-height: 1.5em; }

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: inherit;
    border: 0;
}

strong, b { color: black; font-weight: 300; }
em, i { font-style: italic; }

.container-fluid { width: 100%; }


/* ==========================================================
   3. SECTION / HEADER ELEMENTS
   ========================================================== */

section.special, article.special { text-align: center; }

header p {
    color: black;
    position: relative;
    margin: 0 0 1.5em 0;
}

header h2 + p {
    font-size: 1.25em;
    margin-top: -1em;
    line-height: 1.75em;
}

header.major {
    margin: 0 0 0 0;
    position: relative;
    text-align: center;
}

header.major:after {
    background: #e44c65;
    content: '';
    display: inline-block;
    height: 0.2em;
    max-width: 20em;
    width: 75%;
}


/* ==========================================================
   4. LAYOUT — Container / Row / Col
   ========================================================== */

.container {
    margin-left: auto;
    margin-right: auto;
    width: 70em;
    max-width: 100%;
    padding: 0 1.5em;
}

.row {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
}

.col {
    -webkit-flex: 1;
    flex: 1;
    padding: 0 1em;
    min-width: 0;
}

.justify-content-md-center {
    -webkit-justify-content: center;
    justify-content: center;
}


/* ==========================================================
   5. LOADER ANIMATION
   ========================================================== */

body.is-loading *, body.is-loading *:before, body.is-loading *:after {
    -moz-animation: none !important;
    -webkit-animation: none !important;
    animation: none !important;
    -moz-transition: none !important;
    -webkit-transition: none !important;
    transition: none !important;
}

@-webkit-keyframes overlay-hide {
    0%   { opacity: 1; z-index: 100000; }
    15%  { opacity: 1; z-index: 100000; }
    99%  { opacity: 0; z-index: 100000; }
    100% { opacity: 0; z-index: -1; }
}
@keyframes overlay-hide {
    0%   { opacity: 1; z-index: 100000; }
    15%  { opacity: 1; z-index: 100000; }
    99%  { opacity: 0; z-index: 100000; }
    100% { opacity: 0; z-index: -1; }
}

body.landing { text-decoration: none; }

body.landing:after {
    -webkit-animation: overlay-hide 1.5s ease-in forwards !important;
    animation: overlay-hide 1.5s ease-in forwards !important;
    background: RGBA(228, 76, 85, 0.2);
    content: '';
    display: block;
    height: 100%;
    left: 0;
    opacity: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: -1;
}

body.landing.is-loading:after {
    -webkit-animation: none !important;
    animation: none !important;
    opacity: 1;
    z-index: 100000;
}


/* ==========================================================
   6. PAGE WRAPPER
   ========================================================== */

   :root {
       --header-height: 72px;
   }

   #page-wrapper {
       padding-top: var(--header-height);
   }

   body.landing #page-wrapper {
       padding-top: calc(var(--header-height) + 1.5rem);
   }
   body.landing.home #page-wrapper {
   	padding-top: 0;
   }
/* ============================================================
   7. HEADER — REDESIGN MODERNE
      Glassmorphism + animations fluides + full compatible
   ============================================================ */

#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9000;
    min-height: var(--header-height);
    /* Glassmorphism transparent au départ (sur banner) */
    background: transparent;
    border-bottom: 1px solid transparent;
    transition:
        background 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: background, border-color;
}

/* Quand on scrolle — opaque avec effet verre */
#header.is-scrolled {
    background: rgba(28, 29, 38, 0.92);
    border-bottom: 1px solid rgba(228, 76, 101, 0.18);
    box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.35),
        0 1px 0 rgba(228, 76, 101, 0.08);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    backdrop-filter: blur(18px) saturate(1.4);
}

/* Inner flex container */
.header-inner {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    height: 72px;
    padding: 0 2.5em;
    max-width: 1400px;
    margin: 0 auto;
    position: relative;
}

/* Progress bar */
.header-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
    width: 0%;
    background: linear-gradient(90deg, #e44c65, #c67874, #e44c65);
    background-size: 200% 100%;
    -webkit-animation: shimmer 2s linear infinite;
    animation: shimmer 2s linear infinite;
    transition: width 0.1s linear;
    z-index: 1;
}

@-webkit-keyframes shimmer {
    0%   { background-position: 200% center; }
    100% { background-position: -200% center; }
}
@keyframes shimmer {
    0%   { background-position: 200% center; }
    100% { background-position: -200% center; }
}


/* ------ LOGO ------ */

.header-logo {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    text-decoration: none;
    position: relative;
    z-index: 2;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.logo-text {
    font-family: "Lucida Bright", "Georgia", serif;
    font-size: clamp(14px, 1.6vw, 22px);
    font-weight: 600;
    letter-spacing: 0.22em;
    color: #e44c66;
    text-transform: uppercase;
    white-space: nowrap;
    position: relative;
    transition: color 0.3s ease, text-shadow 0.3s ease;
}

.header-logo:hover .logo-text {
    color: #fff;
    text-shadow: 0 0 20px rgba(228, 76, 101, 0.7);
}

/* Logo — trait animé au survol */
.header-logo::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, #e44c65, transparent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.header-logo:hover::after {
    width: 100%;
}


/* ------ NAV DESKTOP ------ */

#nav {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
}

.nav-list {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0.25em;
}

.nav-item {
    position: relative;
}

.nav-link {
    display: -webkit-inline-flex;
    display: inline-flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.4em;
    color: rgba(255, 255, 255, 0.75);
    font-family: "Source Sans Pro", Helvetica, sans-serif;
    font-size: 0.72em;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 0.55em 1em;
    border-radius: 4px;
    position: relative;
    transition:
        color 0.25s ease,
        background 0.25s ease;
    white-space: nowrap;
    cursor: pointer;
    background: none;
    border: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

/* Trait animé sous les liens */
.nav-underline {
    position: absolute;
    bottom: 2px;
    left: 1em;
    right: 1em;
    height: 1px;
    background: #e44c65;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 1px;
    font-style: normal;
    display: block;
}

.nav-item:hover .nav-link:not(.nav-link--btn) {
    color: #ffffff;
    background: rgba(228, 76, 101, 0.06);
}

.nav-item:hover .nav-underline {
    transform: scaleX(1);
    transform-origin: left center;
}

/* Flèche dropdown */
.arrow-icon {
    width: 9px;
    height: 6px;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
    opacity: 0.5;
}

.has-dropdown:hover .arrow-icon {
    transform: rotate(180deg);
    opacity: 1;
}

/* Bouton Shop */
.nav-link--btn {
    color: #e44c65;
    border: 1px solid rgba(228, 76, 101, 0.45);
    border-radius: 20px;
    padding: 0.45em 1.2em;
    transition:
        color 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
    margin-left: 0.5em;
}

.nav-link--btn:hover {
    background: #e44c65 !important;
    color: #ffffff !important;
    border-color: #e44c65 !important;
    box-shadow: 0 4px 16px rgba(228, 76, 101, 0.4);
}

.nav-item--shop:hover .nav-underline {
    transform: scaleX(0);
}


/* ------ DROPDOWN MODERNE ------ */

.dropdown-wrap {
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 9100;
    /* Animation d'apparition */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) translateY(-8px);
    transition:
        opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        visibility 0.3s;
}

.has-dropdown:hover .dropdown-wrap {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

/* Pont invisible pour garder le hover */
.dropdown-wrap::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    height: 12px;
}

/* Pointe triangle */
.dropdown-wrap::after {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 12px;
    height: 12px;
    background: rgba(39, 40, 51, 0.98);
    border-left: 1px solid rgba(228, 76, 101, 0.15);
    border-top: 1px solid rgba(228, 76, 101, 0.15);
    z-index: -1;
    border-radius: 2px 0 0 0;
}

.dropdown {
    background: rgba(28, 29, 38, 0.97);
    border: 1px solid rgba(228, 76, 101, 0.18);
    border-radius: 10px;
    list-style: none;
    padding: 0.6em 0;
    min-width: 240px;
    -webkit-backdrop-filter: blur(20px) saturate(1.5);
    backdrop-filter: blur(20px) saturate(1.5);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.03);
    overflow: hidden;
}

.dropdown > li {
    border-top: 1px solid rgba(255, 255, 255, 0.03);
}

.dropdown > li:first-child {
    border-top: 0;
}

/* Numérotation des items dropdown avec animation décalée */
.dropdown > li:nth-child(1) { --delay: 0ms; }
.dropdown > li:nth-child(2) { --delay: 30ms; }
.dropdown > li:nth-child(3) { --delay: 60ms; }
.dropdown > li:nth-child(4) { --delay: 90ms; }
.dropdown > li:nth-child(5) { --delay: 120ms; }
.dropdown > li:nth-child(6) { --delay: 150ms; }
.dropdown > li:nth-child(7) { --delay: 180ms; }
.dropdown > li:nth-child(8) { --delay: 210ms; }
.dropdown > li:nth-child(9) { --delay: 240ms; }

.dropdown > li a {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.75em;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.75em;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.7em 1.25em;
    text-decoration: none;
    position: relative;
    transition:
        color 0.2s ease,
        background 0.2s ease,
        padding-left 0.25s ease;
    white-space: nowrap;
}

/* Barre gauche rouge */
.dropdown > li a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 20%;
    bottom: 20%;
    width: 2px;
    background: #e44c65;
    border-radius: 0 2px 2px 0;
    transform: scaleY(0);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.dropdown > li a .fa {
    font-size: 0.6em;
    color: rgba(228, 76, 101, 0.3);
    transition: color 0.2s ease, transform 0.2s ease;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.dropdown > li a:hover {
    color: #ffffff;
    background: rgba(228, 76, 101, 0.07);
    padding-left: 1.6em;
}

.dropdown > li a:hover::before {
    transform: scaleY(1);
}

.dropdown > li a:hover .fa {
    color: #e44c65;
    transform: scale(1.3) rotate(90deg);
}


/* ------ HAMBURGER BUTTON ------ */

.hamburger {
    display: none;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    width: 44px;
    height: 44px;
    background: rgba(228, 76, 101, 0.1);
    border: 1px solid rgba(228, 76, 101, 0.25);
    border-radius: 8px;
    cursor: pointer;
    gap: 5px;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.25s ease, border-color 0.25s ease;
    position: relative;
    z-index: 2;
    outline: none;
}

.hamburger:hover {
    background: rgba(228, 76, 101, 0.2);
    border-color: rgba(228, 76, 101, 0.5);
}

.ham-bar {
    display: block;
    width: 22px;
    height: 2px;
    background: #e44c65;
    border-radius: 2px;
    transition:
        transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.25s ease,
        width 0.25s ease;
}

/* Hamburger → X animation */
.hamburger.is-active .ham-bar--top {
    transform: translateY(7px) rotate(45deg);
}

.hamburger.is-active .ham-bar--mid {
    opacity: 0;
    transform: scaleX(0);
}

.hamburger.is-active .ham-bar--bot {
    transform: translateY(-7px) rotate(-45deg);
}


/* ============================================================
   8. MOBILE MENU OVERLAY & PANEL
   ============================================================ */

/* Overlay sombre */
.mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    z-index: 9100;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
    -webkit-tap-highlight-color: transparent;
}

.mobile-overlay.is-active {
    opacity: 1;
    visibility: visible;
}

/* Panel mobile slide-in depuis la gauche */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: min(320px, 88vw);
    height: 100%;
    height: 100dvh;
    background: linear-gradient(
        160deg,
        #1c1d26 0%,
        #181920 60%,
        rgba(28, 29, 38, 0.98) 100%
    );
    border-right: 1px solid rgba(228, 76, 101, 0.15);
    z-index: 9200;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    box-shadow: 4px 0 30px rgba(0, 0, 0, 0.4);
    will-change: transform;
}

.mobile-menu.is-active {
    transform: translateX(0);
    -webkit-transform: translateX(0);
}

/* Header du panel mobile */
.mobile-menu__header {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding: 1.25em 1.5em;
    border-bottom: 1px solid rgba(228, 76, 101, 0.12);
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.mobile-logo {
    font-family: "Lucida Bright", Georgia, serif;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: 0.2em;
    color: #e44c66;
    text-transform: uppercase;
}

.mobile-close {
    width: 36px;
    height: 36px;
    background: rgba(228, 76, 101, 0.1);
    border: 1px solid rgba(228, 76, 101, 0.25);
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.9em;
    cursor: pointer;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.mobile-close:hover {
    background: rgba(228, 76, 101, 0.25);
    color: #ffffff;
}

/* Navigation mobile */
.mobile-nav {
    list-style: none;
    padding: 1em 0;
    -webkit-flex: 1;
    flex: 1;
    overflow-y: auto;
}

.mobile-nav__item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.mobile-nav__link {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.9em;
    width: 100%;
    padding: 0.95em 1.5em;
    color: rgba(255, 255, 255, 0.7);
    font-family: "Source Sans Pro", sans-serif;
    font-size: 0.85em;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    transition:
        color 0.2s ease,
        background 0.2s ease,
        padding-left 0.25s ease;
    -webkit-tap-highlight-color: transparent;
    outline: none;
    text-align: left;
}

.mobile-nav__link .fa:first-child {
    width: 18px;
    text-align: center;
    color: rgba(228, 76, 101, 0.5);
    font-size: 1em;
    transition: color 0.2s ease;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.mobile-nav__link:hover,
.mobile-nav__link:focus {
    color: #ffffff;
    background: rgba(228, 76, 101, 0.07);
    padding-left: 2em;
}

.mobile-nav__link:hover .fa:first-child {
    color: #e44c65;
}

/* Lien shop mobile */
.mobile-nav__link--shop {
    color: #e44c65;
    border: 1px solid rgba(228, 76, 101, 0.3);
    border-radius: 6px;
    margin: 0.5em 1.5em;
    padding: 0.8em 1.25em;
    width: calc(100% - 3em);
    -webkit-justify-content: center;
    justify-content: center;
}

.mobile-nav__link--shop:hover {
    background: rgba(228, 76, 101, 0.15) !important;
    border-color: rgba(228, 76, 101, 0.6) !important;
    padding-left: 1.25em !important;
}

/* Chevron accordion */
.mobile-nav__chevron {
    margin-left: auto;
    font-size: 0.7em;
    color: rgba(255, 255, 255, 0.3);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.mobile-nav__accordion-btn[aria-expanded="true"] .mobile-nav__chevron {
    transform: rotate(180deg);
    color: #e44c65;
}

/* Sous-menu mobile */
.mobile-nav__sub {
    list-style: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: rgba(0, 0, 0, 0.2);
}

.mobile-nav__sub.is-open {
    max-height: 500px;
}

.mobile-nav__sub li a {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    padding: 0.75em 1.5em 0.75em 3.5em;
    color: rgba(255, 255, 255, 0.5);
    font-family: "Source Sans Pro", sans-serif;
    font-size: 0.75em;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    transition: color 0.2s ease, background 0.2s ease, padding-left 0.2s ease;
    position: relative;
}

.mobile-nav__sub li a::before {
    content: '';
    position: absolute;
    left: 2.5em;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background: rgba(228, 76, 101, 0.4);
    border-radius: 50%;
    transition: background 0.2s ease, transform 0.2s ease;
}

.mobile-nav__sub li a:hover {
    color: #ffffff;
    background: rgba(228, 76, 101, 0.06);
    padding-left: 4em;
}

.mobile-nav__sub li a:hover::before {
    background: #e44c65;
    transform: translateY(-50%) scale(1.5);
}

/* Footer du panel mobile */
.mobile-menu__footer {
    padding: 1em 1.5em;
    border-top: 1px solid rgba(228, 76, 101, 0.1);
    text-align: center;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.mobile-menu__footer p {
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.65em;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin: 0;
}


/* ==========================================================
   9. GOTO-NEXT ARROW
   ========================================================== */

.goto-next {
    border: 0;
    bottom: 0;
    display: block;
    height: 5em;
    left: 50%;
    margin: 0 0 0 -5em;
    overflow: hidden;
    position: absolute;
    text-indent: 10em;
    white-space: nowrap;
    width: 10em;
    z-index: 5;
    text-decoration: none;
}

.goto-next:before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 10px solid rgba(255, 255, 255, 0.5);
    margin: -5px 0 0 -12px;
    transition: border-top-color 0.2s ease;
}

.goto-next:hover:before {
    border-top-color: #e44c65;
}


/* ==========================================================
   10. BANNER
   ========================================================== */

#banner {
    background-attachment: fixed;
    background-image: url("assets/home/images/bak3.jpg");
    background-position: center center;
    background-size: cover;
    min-height: 100vh;
    position: relative;
    text-align: center;
    z-index: 21;
    display: flex;
    align-items: center;
    justify-content: center;
}

#banner:before {
    content: none;
    display: none;
 }

#banner:after {
    content: '';
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

#banner .content {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    max-width: 95%;
    padding: 6em;
    position: relative;
    text-align: center;
    z-index: 1;
}

#banner .content .image {
    border-radius: 100%;
    display: block;
    width: 18em;
    height: 18em;
    margin: 0 auto;
}

#banner .content .image img {
    border-radius: 100%;
    display: block;
    width: 100%;
    cursor: pointer;
}

body.is-touch #banner {
    background-attachment: scroll;
}

@media screen and (max-width: 1280px) {
  #banner .content {
    padding: 4.5em;
  }
}


@media screen and (max-width: 980px) {
  #banner {
    background-attachment: scroll;
  }
  #banner .content {
    padding: 9em 0;
  }
  #banner .content .image {
    margin: 0 auto;
  }
}

@media screen and (max-width: 800px) {
  #banner {
      box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25);
      min-height: 100vh;
      background-attachment: scroll;
  }
  #banner .content {
    padding: 4.0625em 1.5em 4.875em 1.5em;
  }
  #banner .content .image {
    margin: 0 auto;
    height: 9em;
    width: 9em;
  }
}

@media screen and (max-width: 480px) {
  #banner .content {
    padding: 3em 1.5625em 5.25em 1.5625em;
  }
  #banner .content .image {
    width: 7em;
    height: 7em;
    margin: 0 auto;  }
}

/* ==========================================================
   11. SPOTLIGHT
   ========================================================== */

.spotlight {
    background-attachment: fixed;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    box-shadow: 0 5em 8em 0 rgba(198, 120, 116, 0.5);
    height: 100vh;
    overflow: hidden;
    position: relative;
}

.spotlight:nth-last-of-type(1)  { z-index: 1; }
.spotlight:nth-last-of-type(2)  { z-index: 2; }
.spotlight:nth-last-of-type(3)  { z-index: 3; }
.spotlight:nth-last-of-type(4)  { z-index: 4; }
.spotlight:nth-last-of-type(5)  { z-index: 5; }
.spotlight:nth-last-of-type(6)  { z-index: 6; }
.spotlight:nth-last-of-type(7)  { z-index: 7; }
.spotlight:nth-last-of-type(8)  { z-index: 8; }
.spotlight:nth-last-of-type(9)  { z-index: 9; }
.spotlight:nth-last-of-type(10) { z-index: 10; }

/* Image fond plein écran */
.spotlight > span.image.fit1.main {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    display: none !important;
    overflow: hidden;
    margin: 0;
}

.spotlight > span.image.fit1.main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 0;
}

/* Content overlay */
.spotlight .content {
    -moz-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    -moz-transition: transform 1s ease, opacity 1s ease;
    -webkit-transition: transform 1s ease, opacity 1s ease;
    transition: transform 1s ease, opacity 1s ease;
    background: rgba(0, 0, 0, 0.9);
    border-style: solid;
    opacity: 0.75;
    position: absolute;
    z-index: 2;
}

.spotlight .goto-next {
    -moz-transform: translate(0, 0);
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
    -moz-transition: transform 0.75s ease, opacity 1s ease-in;
    -webkit-transition: transform 0.75s ease, opacity 1s ease-in;
    transition: transform 0.75s ease, opacity 1s ease-in;
    transition-delay: 0.5s;
    opacity: 1;
}

.spotlight.top .content,
.spotlight.bottom .content {
    left: 0;
    padding: 5.1em 0 3.1em 0;
    width: 100%;
}

.spotlight.top .content    { border-bottom-width: 0.35em; top: 0; }
.spotlight.bottom .content { border-top-width: 0.35em;   bottom: 0; }

.spotlight.style1 .content,
.spotlight.style2 .content,
.spotlight.style3 .content {
    border-color: #c67874;
}

/* Inactive → animation scroll */
.spotlight.inactive .content {
    opacity: 0;
}
.spotlight.inactive .goto-next {
    transform: translate(0, 1.5em);
    opacity: 0;
}
.spotlight.inactive.bottom .content {
    transform: translate(0, 5em);
}
body.is-touch .spotlight {
    background-attachment: scroll;
}

@media screen and (max-width: 1280px) {
  .spotlight.bottom .content {
    padding: 3.825em 0 2.95em 0;
  }
}

@media screen and (max-width: 980px) {
  .spotlight {
      background-attachment: scroll;
      height: auto;
  }

  /* Image spotlight en bloc au-dessus du contenu */
  .spotlight {
      background-attachment: scroll;
      background-position: center center;
      background-repeat: no-repeat;
      background-size: cover;
      height: auto;
      min-height: 70vh;
  }

  /* On n'utilise plus l'image HTML en mobile */
  .spotlight span.image.fit1.main {
      display: none !important;
  }

  /* Le contenu reste posé sur l'image */
    .spotlight .content {
        background: rgba(0, 0, 0, 0.85) !important;
        border-width: 0 !important;
        border-top-width: 0.35em !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: auto !important;
        width: 100% !important;
        padding: 4.5em 2.5em 2.5em 2.5em !important;
        position: relative !important;
        text-align: center !important;
        opacity: 1 !important;
        transform: none !important;
    }
  .spotlight .content h1,
  .spotlight .content h2,
  .spotlight .content h3,
  .spotlight .content p,
  .spotlight .content a {

       text-shadow: 0 1px 8px rgba(0,0,0,0.55);
   }
  .spotlight .goto-next { display: none !important;
  }
}

@media screen and (max-width: 800px) {
  .spotlight {
      box-shadow: 0 0.125em 0.5em 0 rgba(0, 0, 0, 0.25);
  }

  .spotlight > span.image.fit1.main { max-height: 60vh; }
  .spotlight > span.image.fit1.main img { height: 60vh; }

  .spotlight .content {
      padding: 3.25em 1.5em 1.25em 1.5em !important;
  }
}

@media screen and (max-width: 480px) {
  .spotlight > span.image.fit1.main { max-height: 50vh; }
  .spotlight > span.image.fit1.main img { height: 50vh; }
  .spotlight .content { padding: 3em 1.25em 1em 1.25em !important; }
  .spotlight .content .row {
      -webkit-flex-direction: column;
      flex-direction: column;
  }
  .spotlight .content .col { padding: 0.25em 0;
  }
}

/* ==========================================================
   12. IMAGE
   ========================================================== */

.image {
    border-radius: 4px;
    border: 0;
    display: inline-block;
    position: relative;
    overflow: hidden;
    margin-right: 0;
}

.image img {
    border-radius: 4px;
    display: block;
}

.image.fit {
    display: block;
    margin: 0 0 2em 0;
    width: 100%;
}

.image.fit img {
    width: 100%;
}

.image.fit1 img {
    width: 100%;
    border-radius: 0;
}

/* Portfolio image avec shadow rose */
.image.fit.h {
    box-shadow: 0 4px 8px 0 rgba(228, 76, 101, 0.9),
                0 6px 20px 0 rgba(0, 0, 0, 0.19);
    max-height: 200px;
    overflow: hidden;
    display: block;
    margin: 0;
}

.image.fit.h img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    transition: transform 0.4s ease;
}

.polaroid:hover .image.fit.h img {
    transform: scale(1.04);
}


/* ==========================================================
   13. POLAROID
   ========================================================== */

div.polaroid {
    width: 100%;
    background-color: white;
    margin-bottom: 25px;
    display: block;
    position: relative;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    overflow: hidden;
}

div.polaroid:hover {
    box-shadow: 0 8px 30px rgba(228, 76, 101, 0.25);
}

div.polaroid h3 {
    padding: 0.75em 0.5em;
    text-align: center;
    margin: 0;
    background: white;
    color: #e44c65;
    text-shadow: -1px 0 #e44c65, 0 1px #e44c65,
                  1px 0 #e44c65, 0 -1px #e44c65;
}


/* ==========================================================
   14. WRAPPER
   ========================================================== */

.wrapper { padding: 0; }

.wrapper.style1.s33 {
    background-color: #ecaeae;
    color: white;
    padding: 4em 0;
}

.wrapper.style2 {
    background: #c67874;
    padding: 5em 2em;
    text-align: center;
}

/* Artchain */
#huit {
    background-color: #272833;
    padding: 5em 2em;
    text-align: center;
}

#huit img {
    max-width: 220px;
    margin: 1.5em auto 0;
}

/* Fade animations */
.wrapper.fade-up > .container {
    transform: translate(0, 0);
    transition: transform 1s ease, opacity 1s ease;
    opacity: 1;
}

.wrapper.fade-up.inactive > .container {
    transform: translate(0, 1em);
    opacity: 0;
}

.wrapper.fade > .container {
    transition: opacity 1s ease;
    opacity: 1;
}

.wrapper.fade.inactive > .container {
    opacity: 0;
}


/* ==========================================================
   15. PORTFOLIO ACCORDION — VERTICAL 3D NEON
   ========================================================== */

/* ---- Keyframes ------------------------------------------ */

@-webkit-keyframes glow-pulse {
    0%,100% { box-shadow: 0 0 14px rgba(228,76,101,0.20), 0 0 35px rgba(228,76,101,0.08); }
    50%      { box-shadow: 0 0 26px rgba(228,76,101,0.40), 0 0 60px rgba(228,76,101,0.16); }
}
@keyframes glow-pulse {
    0%,100% { box-shadow: 0 0 14px rgba(228,76,101,0.20), 0 0 35px rgba(228,76,101,0.08); }
    50%      { box-shadow: 0 0 26px rgba(228,76,101,0.40), 0 0 60px rgba(228,76,101,0.16); }
}

@-webkit-keyframes item-appear {
    from { opacity:0; -webkit-transform: translateX(-16px) rotateX(-6deg); transform: translateX(-16px) rotateX(-6deg); }
    to   { opacity:1; -webkit-transform: translateX(0)     rotateX(-1deg); transform: translateX(0)     rotateX(-1deg); }
}
@keyframes item-appear {
    from { opacity:0; transform: translateX(-16px) rotateX(-6deg); }
    to   { opacity:1; transform: translateX(0)     rotateX(-1deg); }
}

@-webkit-keyframes neon-bar {
    0%,100% { opacity:0.35; }
    50%      { opacity:1.0;  }
}
@keyframes neon-bar {
    0%,100% { opacity:0.35; }
    50%      { opacity:1.0;  }
}

/* ---- Section #four — fond sombre ----------------------- */

#four {
    background: #14121c !important;
    position: relative;
}

#four::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 0%,
        rgba(228,76,101,0.07) 0%,
        transparent 65%);
    pointer-events: none;
    z-index: 0;
}

#four .container { position: relative; z-index: 1; }

#four header.major {
    margin-bottom: 2.5em;
    padding: 2em 0 0;
}

#four header.major h2 {
    font-size: 2.5em;
    color: #fff !important;
    text-shadow: 0 0 20px rgba(228,76,101,0.45), 0 0 50px rgba(228,76,101,0.18);
}

#four header.major p {
    color: rgba(255,255,255,0.4);
    font-size: 0.82em;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-bottom: 0;
}

/* ---- Conteneur vertical 3D ----------------------------- */

.pf-accordion {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    height: auto;
    max-width: 800px;
    margin: 0 auto 2em;
    border-radius: 10px;
    overflow: visible;
    border: 1px solid rgba(228,76,101,0.20);
    -webkit-animation: glow-pulse 3s ease-in-out infinite;
    animation: glow-pulse 3s ease-in-out infinite;
    -webkit-perspective: 1000px;
    perspective: 1000px;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-clip-path: inset(0 round 10px);
    clip-path: inset(0 round 10px);
}

/* ---- Item ------------------------------------------------ */

.pf-item {
    position: relative;
    border-bottom: 1px solid rgba(228,76,101,0.10);
    overflow: hidden;
    background: #1a1825;
    /* léger rotateX en état fermé */
    -webkit-transform: rotateX(-1deg);
    transform: rotateX(-1deg);
    -webkit-transform-origin: top center;
    transform-origin: top center;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transition:
        -webkit-transform 0.45s cubic-bezier(0.4,0,0.2,1),
        box-shadow 0.4s ease;
    transition:
        transform   0.45s cubic-bezier(0.4,0,0.2,1),
        box-shadow  0.4s ease;
    z-index: 1;
}

.pf-item:last-child { border-bottom: 0; }

/* Apparition séquentielle au chargement */
.pf-item:nth-child(1) { -webkit-animation: item-appear 0.5s ease 0.05s both; animation: item-appear 0.5s ease 0.05s both; }
.pf-item:nth-child(2) { -webkit-animation: item-appear 0.5s ease 0.10s both; animation: item-appear 0.5s ease 0.10s both; }
.pf-item:nth-child(3) { -webkit-animation: item-appear 0.5s ease 0.15s both; animation: item-appear 0.5s ease 0.15s both; }
.pf-item:nth-child(4) { -webkit-animation: item-appear 0.5s ease 0.20s both; animation: item-appear 0.5s ease 0.20s both; }
.pf-item:nth-child(5) { -webkit-animation: item-appear 0.5s ease 0.25s both; animation: item-appear 0.5s ease 0.25s both; }
.pf-item:nth-child(6) { -webkit-animation: item-appear 0.5s ease 0.30s both; animation: item-appear 0.5s ease 0.30s both; }
.pf-item:nth-child(7) { -webkit-animation: item-appear 0.5s ease 0.35s both; animation: item-appear 0.5s ease 0.35s both; }
.pf-item:nth-child(8) { -webkit-animation: item-appear 0.5s ease 0.40s both; animation: item-appear 0.5s ease 0.40s both; }

/* Item ouvert — sort vers l'avant */
.pf-item.is-open {
    -webkit-transform: rotateX(0deg) translateZ(10px);
    transform: rotateX(0deg) translateZ(10px);
    -webkit-transform-origin: center center;
    transform-origin: center center;
    box-shadow:
        0  0  22px rgba(228,76,101,0.40),
        0  0  50px rgba(228,76,101,0.14),
        0  6px 24px rgba(0,0,0,0.50);
    z-index: 10;
    background: #1e1a2e;
}

/* ---- TAB — header horizontal ---------------------------- */

.pf-tab {
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    width: 100%;
    padding: 1em 1.5em;
    gap: 1em;
    background: linear-gradient(
        90deg,
        rgba(228,76,101,0.16) 0%,
        rgba(228,76,101,0.04) 60%,
        rgba(228,76,101,0.10) 100%
    );
    border: none;
    cursor: pointer;
    outline: none;
    text-align: left;
    position: relative;
    overflow: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-transition: background 0.28s ease;
    transition: background 0.28s ease;
    min-height: 56px;
}

/* Barre neon gauche */
.pf-tab::before {
    content: '';
    position: absolute;
    top: 12%;
    left: 0;
    width: 3px;
    height: 76%;
    background: linear-gradient(
        180deg,
        transparent,
        #e44c65 35%, #e44c65 65%,
        transparent
    );
    border-radius: 0 2px 2px 0;
    opacity: 0.3;
    -webkit-animation: neon-bar 2.5s ease-in-out infinite;
    animation: neon-bar 2.5s ease-in-out infinite;
    -webkit-transition: opacity 0.3s ease, box-shadow 0.3s ease;
    transition: opacity 0.3s ease, box-shadow 0.3s ease;
}

.pf-tab:hover { background: rgba(228,76,101,0.18); }

.pf-tab:hover::before,
.pf-item.is-open > .pf-tab::before {
    opacity: 1;
    box-shadow: 0 0 8px #e44c65, 0 0 18px rgba(228,76,101,0.55);
}

.pf-item.is-open > .pf-tab {
    background: linear-gradient(
        90deg,
        rgba(228,76,101,0.28) 0%,
        rgba(228,76,101,0.08) 60%,
        rgba(228,76,101,0.18) 100%
    );
}

/* Numéro */
.pf-num {
    font-family: "Source Sans Pro", sans-serif;
    font-size: 0.65em;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: rgba(228,76,101,0.45);
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
    min-width: 2em;
    -webkit-transition: color 0.25s ease;
    transition: color 0.25s ease;
}

/* Texte lisible : couleur seule, pas de glow */
.pf-item.is-open .pf-num,
.pf-tab:hover .pf-num {
    color: #e44c65;
}

/* Label catégorie */
.pf-label {
    -webkit-flex: 1;
    flex: 1;
    font-family: "Source Sans Pro", Helvetica, sans-serif;
    font-size: 0.80em;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-transition: color 0.25s ease;
    transition: color 0.25s ease;
    /* PAS de text-shadow : lisibilité maximale */
}

/* Hover / ouvert : blanc pur, lisible */
.pf-item.is-open .pf-label,
.pf-tab:hover .pf-label {
    color: #ffffff;
}

/* Icône +/× */
.pf-icon-acc {
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(228,76,101,0.40);
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
    color: rgba(228,76,101,0.6);
    font-size: 0.7em;
    -webkit-transition:
        background   0.25s ease,
        border-color 0.25s ease,
        color        0.25s ease,
        -webkit-transform 0.38s cubic-bezier(0.4,0,0.2,1);
    transition:
        background   0.25s ease,
        border-color 0.25s ease,
        color        0.25s ease,
        transform    0.38s cubic-bezier(0.4,0,0.2,1);
}

.pf-item.is-open .pf-icon-acc {
    background: #e44c65;
    border-color: #e44c65;
    color: #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

/* ---- Panel image (max-height slide) --------------------- */

.pf-panel {
    max-height: 0;
    overflow: hidden;
    -webkit-transition: max-height 0.52s cubic-bezier(0.4,0,0.2,1);
    transition: max-height 0.52s cubic-bezier(0.4,0,0.2,1);
    /* reset valeurs horizontales si présentes */
    position: relative;
    top: auto; left: auto; right: auto; bottom: auto;
    opacity: 1;
}

.pf-item.is-open > .pf-panel {
    max-height: 380px;
}

/* Lien image */
.pf-link {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    line-height: 0;
}

.pf-link img {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: center;
    -webkit-transform: scale(1.03) rotateX(1deg);
    transform: scale(1.03) rotateX(1deg);
    -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.4,0,0.2,1);
    transition: transform 0.6s cubic-bezier(0.4,0,0.2,1);
}

.pf-link:hover img {
    -webkit-transform: scale(1.07) rotateX(0deg);
    transform: scale(1.07) rotateX(0deg);
}

/* Overlay diagonal */
.pf-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        transparent 40%,
        rgba(228,76,101,0.78) 100%
    );
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: flex-end;
    align-items: flex-end;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    padding: 1.25em 1.6em;
    opacity: 0;
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
}

.pf-link:hover .pf-overlay { opacity: 1; }

.pf-overlay-inner {
    color: #fff;
    font-family: "Source Sans Pro", sans-serif;
    font-size: 0.82em;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    gap: 0.5em;
    -webkit-transform: translateY(8px);
    transform: translateY(8px);
    -webkit-transition: -webkit-transform 0.32s ease;
    transition: transform 0.32s ease;
    line-height: 1;
}

.pf-link:hover .pf-overlay-inner {
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

/* ================================================================
   RESPONSIVE — Tablette 980px
================================================================ */

@media screen and (max-width: 980px) {
    .pf-accordion { max-width: 100%; }
}

/* ================================================================
   RESPONSIVE — Mobile ≤ 700px — simplifié
================================================================ */

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

    .pf-accordion {
        -webkit-perspective: none;
        perspective: none;
        -webkit-clip-path: none;
        clip-path: none;
        border-radius: 6px;
        overflow: hidden;
    }

    .pf-item {
        -webkit-transform: none !important;
        transform: none !important;
    }

    .pf-item.is-open {
        -webkit-transform: none !important;
        transform: none !important;
        box-shadow: inset 0 0 0 1px rgba(228,76,101,0.35);
    }

    .pf-tab { padding: 0.85em 1em; min-height: 48px; }

    .pf-label { font-size: 0.72em; letter-spacing: 0.13em; }

    .pf-link img { height: 220px; -webkit-transform: none; transform: none; }
    .pf-link:hover img { -webkit-transform: scale(1.03); transform: scale(1.03); }

    .pf-item.is-open > .pf-panel { max-height: 290px; }
}

@media screen and (max-width: 480px) {
    .pf-label  { font-size: 0.66em; letter-spacing: 0.09em; }
    .pf-link img { height: 185px; }
    .pf-item.is-open > .pf-panel { max-height: 245px; }
}


/* ==========================================================
   16. #FIVE CTA
   ========================================================== */

#five { text-align: center; }

#five h2 { color: white; }
#five p  { color: rgba(255, 255, 255, 0.8); margin: 0; }


/* ==========================================================
   17. ICON
   ========================================================== */

.icon {
    text-decoration: none;
    border-bottom: none;
    position: relative;
}

.icon:before {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-transform: none !important;
}

.icon > .label { display: none; }

.icon.alt:before {
    color: #1c1d26 !important;
    text-shadow: 1px 0 0 #fff, -1px 0 0 #fff,
                 0 1px 0 #fff,  0 -1px 0 #fff;
}


/* ==========================================================
   18. FOOTER
   ========================================================== */

#footer {
    background: white;
    color: black;
    padding: 6em 0;
    text-align: center;
}

#footer #content {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 2em;
}

#footer h2 { color: #777; }

#footer .contact {
    color: inherit;
    text-decoration: none;
}

#footer .contact:hover { color: #e44c65 !important; }

#footer #contact-form {
    margin: 1.5em 0;
    color: black;
}

#footer #contact-form a { color: #e44c65; }
#footer #contact-form div { display: inline; }

/* Icons */
ul.icons {
    cursor: default;
    list-style: none;
    padding: 0;
    margin: 2em 0;
}

ul.icons li {
    display: inline-block;
    height: 2.5em;
    line-height: 2.5em;
    padding: 0 0.5em;
}

ul.icons li .icon:before { font-size: 4em; }

#footer .icons .icon.alt {
    text-decoration: none;
    margin: 3em 3em 3em 3em;
}

#footer .icons .icon.alt:before {
    color: #272833 !important;
    text-shadow: 1px 0 0 rgba(255,255,255,0.5), -1px 0 0 rgba(255,255,255,0.5),
                 0 1px 0 rgba(255,255,255,0.5),  0 -1px 0 rgba(255,255,255,0.5);
}

/* Copyright */
#footer .copyright {
    color: rgba(0, 0, 0, 0.5);
    font-size: 0.8em;
    line-height: 1em;
    margin: 2em 0 0 0;
    padding: 0;
    text-align: center;
}

#footer .copyright li {
    border-left: solid 1px rgba(0, 0, 0, 0.2);
    display: inline-block;
    list-style: none;
    margin-left: 1.5em;
    padding-left: 1.5em;
}

#footer .copyright li:first-child {
    border-left: 0;
    margin-left: 0;
    padding-left: 0;
}


/* ==========================================================
   19. BUTTON
   ========================================================== */

input[type="submit"],
input[type="reset"],
input[type="button"],
.button {
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.2s ease-in-out,
                color 0.2s ease-in-out,
                box-shadow 0.2s ease-in-out;
    background-color: transparent;
    border-radius: 4px;
    border: 0;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3);
    color: #ffffff !important;
    cursor: pointer;
    display: inline-block;
    font-weight: 300;
    height: 3em;
    line-height: 3em;
    padding: 0 2.25em;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

input[type="submit"]:hover,
.button:hover {
    box-shadow: inset 0 0 0 1px #e44c65;
    color: #e44c65 !important;
}

.button.special {
    background-color: #e44c65;
    box-shadow: none;
    color: #ffffff !important;
}

.button.special:hover {
    background-color: #e76278;
}


/* ==========================================================
   20. HOVER EFFECTS
   ========================================================== */

.hvr-shrink {
    display: inline-block;
    vertical-align: middle;
    transform: perspective(1px) translateZ(0);
    -webkit-transform: perspective(1px) translateZ(0);
    transition-duration: 0.3s;
    transition-property: transform;
}

.hvr-shrink:hover,
.hvr-shrink:focus,
.hvr-shrink:active {
    transform: scale(0.9);
    -webkit-transform: scale(0.9);
}

.hvr-pulse-grow {
    display: inline-block;
    vertical-align: middle;
    transform: perspective(1px) translateZ(0);
    -webkit-transform: perspective(1px) translateZ(0);
}

@-webkit-keyframes hvr-pulse-grow-anim { to { transform: scale(1.1); } }
@keyframes hvr-pulse-grow-anim         { to { transform: scale(1.1); } }

.hvr-pulse-grow:hover,
.hvr-pulse-grow:focus,
.hvr-pulse-grow:active {
    -webkit-animation: hvr-pulse-grow-anim 0.3s linear;
    animation: hvr-pulse-grow-anim 0.3s linear;
}


/* ==========================================================
   21. SCROLL-TO-TOP
   ========================================================== */

.back-to-top {
    position: fixed;
    bottom: 2em;
    right: 2em;
    background: rgba(28, 29, 38, 0.92);
    color: #ffffff;
    border: 1px solid rgba(228, 76, 101, 0.35);
    padding: 0.6em 1em;
    cursor: pointer;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 0.75em;
    font-weight: 600;
    letter-spacing: 0.15em;
    border-radius: 6px;
    z-index: 8999;
    display: none;
    transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.back-to-top:hover {
    background: rgba(228, 76, 101, 0.15);
    box-shadow: 0 0 0 1px #e44c65;
    color: #e44c65;
}

.back-to-top.visible {
    display: block;
}


/* ==========================================================
   22. RESPONSIVE — Large 1280px
   ========================================================== */

@media screen and (max-width: 1280px) {
    body, input, select, textarea { font-size: 11.5pt; }

    .header-inner { padding: 0 1.5em; }


    #footer { padding: 4.5em 0; }
    .container { width: 90%; }
}


/* ==========================================================
   23. RESPONSIVE — Medium 980px
   ========================================================== */

@media screen and (max-width: 980px) {
    body, input, select, textarea { font-size: 12pt; }

    #footer { padding: 4.5em 0; }
    .container { width: 100% !important; padding: 0 1.5em; }

    .portfolio-item {
        -webkit-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
}


/* ==========================================================
   24. RESPONSIVE — Header breakpoint 900px
   ========================================================== */

@media screen and (max-width: 900px) {
    /* Masquer nav desktop */
    #nav { display: none; }

    /* Afficher hamburger */
    .hamburger { display: -webkit-flex; display: flex; }

    .header-inner { height: 60px; padding: 0 1.25em; }
}


/* ==========================================================
   25. RESPONSIVE — Small 736px / 800px
   ========================================================== */

@media screen and (max-width: 800px) {
    html, body { overflow-x: hidden; }
    body, input, select, textarea { font-size: 12pt; }

    h1 { font-size: 1.6em; }
    h2 { font-size: 1.5em; }
    h3 { font-size: 1.2em; }
    h4 { font-size: 1em; }

    header p br { display: none; }
    header h2 + p { font-size: 1em; }
    header.major { margin: 0 0 2em 0; }



    .wrapper { padding: 3.25em 1.5em 1.25em 1.5em; }
    .wrapper.style1.s33 { padding: 3em 1.5em; }

    /* Portfolio */
    .portfolio-item {
        -webkit-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
        padding: 0.75em 1.5em;
    }

    /* Footer */
    #footer { padding: 3.25em 1.5em; }

    #footer .icons .icon.alt {
        margin: 1.5em 0.75em;
    }

    .back-to-top { bottom: 1em; right: 1em; }
}


/* ==========================================================
   26. RESPONSIVE — XSmall 480px
   ========================================================== */

@media screen and (max-width: 480px) {
    html, body { min-width: 320px; }
    body, input, select, textarea { font-size: 12pt; }


    .wrapper { padding: 3em 1.25em 1em 1.25em; }
    .wrapper.style1.s33 { padding: 2.5em 1.25em; }

    #four header.major h2 { font-size: 1.8em; }

    .portfolio-item { padding: 0.5em 1em; }

    .image.fit.h { max-height: 150px; }
    .image.fit.h img { height: 150px; }

    #footer { padding: 3em 1.25em; }

    #footer .copyright li {
        border-left: 0;
        display: block;
        margin: 0;
        padding: 0.25em 0;
    }

    ul.icons li .icon:before { font-size: 2.5em; }
    #footer .icons .icon.alt { margin: 1em 0.5em; }
}
/* ==========================================================
   27. RESPONSIVE — Card presentation
   ========================================================== */

/* ── GRID ── */
.sculpture-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75em;
    padding: 0;
    margin: 0 0 1.5em 0;
    justify-content: center;
    align-items: center;
}

/* ── CARD ── */
.sculpture-card {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background-color: #272833;
    aspect-ratio: 1 / 1;
    text-decoration: none;
    cursor: pointer;
    opacity: 0;
    transform: translateY(14px);
    transition:
        opacity     0.45s ease,
        transform   0.45s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow  0.3s ease;
}
.sculpture-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.sculpture-card img {
    display: block;
    width: 100%;
    height: 100%;  /* nécessaire car le reset global force height:auto */
    object-fit: cover;
    object-position: center top;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── LABEL HOVER ── */
.sculpture-card__label {
    position: absolute;
    inset: auto 0 0 0;
    padding: 1.75em 0.5em 0.55em;
    background: linear-gradient(to bottom, transparent 0%, rgba(28,29,38,0.92) 100%);
    color: #ffffff;
    font-size: 0.6em;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-align: center;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity 0.28s ease, transform 0.28s ease;
}

/* ── HOVER / FOCUS ── */
.sculpture-card:hover,
.sculpture-card:focus-visible {
    box-shadow: 0 6px 20px rgba(228,76,101,0.32), 0 2px 6px rgba(0,0,0,0.28);
}
.sculpture-card:hover img,
.sculpture-card:focus-visible img { transform: scale(1.07); }
.sculpture-card:hover .sculpture-card__label,
.sculpture-card:focus-visible .sculpture-card__label {
    opacity: 1;
    transform: translateY(0);
}
/* Neutralise le color:inherit du reset global sur les <a> */
.sculpture-card:hover { color: inherit !important; }
.sculpture-card:focus-visible {
    outline: 2px solid #e44c65;
    outline-offset: 2px;
}

/* ── RESPONSIVE ── */
@media (min-width: 480px) {
    .sculpture-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.875em; }
}
@media (min-width: 900px) {
    .sculpture-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1em; }
}

/* ── SOUS-INTERTITRE ── */
.sculpture-subheader {
    margin: 3em 0 1.5em;
    text-align: center;
}

/* ── REDUCED MOTION — désactive les animations de reveal ── */
@media (prefers-reduced-motion: reduce) {
    .sculpture-card {
        opacity: 1;
        transform: none;
        transition: box-shadow 0.3s ease;
    }
    .sculpture-card img { transition: none; }
    .sculpture-card__label { transition: none; }
}

/* =============================================================
   VIDEOS PAGE — layout 2 colonnes propre
   Scope: .video-grid, .video-column, .video-card, .video-card__title
   .video-section-intro, .video-column-intro
   Ne pas modifier les sélecteurs globaux existants.
   ============================================================= */

/* 1. Grille 2 colonnes — surcharge align-items:center du .row global */
.video-grid {
  align-items: flex-start;
  gap: 2rem;
}

/* 2. Chaque colonne : stack vertical de cartes */
.video-column {
  flex: 0 0 calc(50% - 1rem);
  max-width: calc(50% - 1rem);
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  gap: 1.5rem;
  /* Annule le padding global .col (0 1em) remplacé par gap */
  padding: 0 0.5em;
}

/* 3. Titre de colonne */
.video-column-intro {
  font-family: "Source Sans Pro", Helvetica, sans-serif;
  font-size: 0.9em;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c67874;
  margin: 0 0 0.25rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(228, 76, 101, 0.25);
}

/* 4. Carte vidéo */
.video-card {
  background: #1e1d24;
  border: 1px solid rgba(198, 120, 116, 0.18);
  border-radius: 14px;
  padding: 0.9rem;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.22),
    0 0 0 0 transparent;
  overflow: hidden;
  -webkit-transition: box-shadow 0.3s ease, border-color 0.3s ease;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.video-card:hover {
  border-color: rgba(228, 76, 101, 0.42);
  box-shadow:
    0 4px 20px rgba(228, 76, 101, 0.15),
    0 2px 8px rgba(0, 0, 0, 0.28);
}

/* 5. iframe responsive 16:9 — écrase width/height HTML inline */
.video-card iframe {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  min-height: 0;
  border: 0;
  border-radius: 10px;
  background: #000;
}

/* 6. Titre sous la vidéo */
.video-card__title {
  margin: 0.75rem 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-family: "Source Sans Pro", Helvetica, sans-serif;
  font-size: 0.82em;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.video-card__title a {
  color: #e44c65;
  text-decoration: underline;
  text-decoration-color: rgba(228, 76, 101, 0.45);
  text-underline-offset: 2px;
  border-bottom: none;
}

.video-card__title a:hover {
  color: #fff;
  text-decoration-color: #e44c65;
}

/* 7. Sous-titre de section interne (OhLALA!) */
.video-section-intro {
  margin: 0.5rem 0;
  padding: 0.9rem 1rem;
  background: rgba(228, 76, 101, 0.06);
  border-left: 3px solid rgba(228, 76, 101, 0.5);
  border-radius: 0 8px 8px 0;
}

.video-section-intro h3 {
  font-size: 0.9em;
  line-height: 1.6;
  margin: 0;
  color: #e8a0a8;
  text-shadow: none;
  letter-spacing: 0.05em;
}

/* 8. RESPONSIVE — tablette : 1 colonne */
@media screen and (max-width: 980px) {
  .video-grid {
    gap: 1.5rem;
  }

  .video-column {
    -webkit-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
  }
}

/* 9. RESPONSIVE — mobile */
@media screen and (max-width: 480px) {
  .video-card {
    padding: 0.7rem;
    border-radius: 10px;
  }

  .video-card iframe {
    border-radius: 7px;
  }

  .video-card__title {
    font-size: 0.78em;
  }
}
