/* Styles communs à toutes les pages (reset, typo, boutons, bloc contact, pied de page, menu mobile). */

/* Police Outfit hébergée sur le site (pas d'appel à Google Fonts) */
/* Outfit 300 latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url('../fonts/outfit-latin-ext-300-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit 300 latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url('../fonts/outfit-latin-300-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Outfit 400 latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/outfit-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit 400 latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url('../fonts/outfit-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Outfit 500 latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('../fonts/outfit-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit 500 latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url('../fonts/outfit-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Outfit 600 latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('../fonts/outfit-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit 600 latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url('../fonts/outfit-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Outfit 700 latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/outfit-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit 700 latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url('../fonts/outfit-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

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

html { scroll-behavior: smooth; }

body { font-family: var(--f); background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; }

.tag::before { content: ""; width: 18px; height: 2px; background: var(--orange); }

.burger {
      display: none; background: none; border: none; cursor: pointer;
      padding: 6px; margin-left: 0.8rem; flex-shrink: 0;
    }

.burger span {
      display: block; width: 22px; height: 2px;
      background: #1C2B45; border-radius: 2px;
      transition: all 0.25s ease; margin: 5px 0;
    }

.burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }

.burger.open span:nth-child(2) { opacity: 0; }

.burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
      display: none; position: fixed; inset: 0;
      background: rgba(28,43,69,0.5); z-index: 200; backdrop-filter: blur(4px);
    }

.mobile-menu.open { display: block; }

.mobile-menu-panel {
      position: absolute; top: 0; right: 0;
      width: min(300px, 85vw); height: 100%;
      background: #fff; padding: 5rem 1.8rem 2rem;
      display: flex; flex-direction: column;
      box-shadow: -8px 0 32px rgba(28,43,69,0.15);
    }

.mobile-menu-panel a {
      display: block; padding: 0.9rem 0;
      font-family: "Outfit", sans-serif;
      font-size: 1rem; font-weight: 500;
      color: #1C2B45; text-decoration: none;
      border-bottom: 1px solid #E4E9EF; transition: color 0.2s;
    }

.mobile-menu-panel a:hover, .mobile-menu-panel a.active { color: #E8631A; }

.m-cta {
      margin-top: 1.5rem !important; background: #E8631A !important;
      color: #fff !important; text-align: center; border-radius: 4px;
      border-bottom: none !important; font-weight: 600 !important;
      padding: 0.85rem !important;
    }

.m-phone {
      margin-top: 1rem !important; font-size: 0.85rem !important;
      color: #5A6A7E !important; border-bottom: none !important;
    }

.mm-close {
      position: absolute; top: 1rem; right: 1rem;
      background: none; border: none; cursor: pointer;
      font-size: 1.6rem; color: #5A6A7E; line-height: 1;
    }

@media (max-width: 1024px) { .burger { display: flex; flex-direction: column; justify-content: center; } }

.cta-sec { padding: 0; position: relative; overflow: hidden; min-height: 420px; display: flex; align-items: center; }

.cta-bg { position: absolute; inset: 0; background: url("../photos/5-Contact - WEB/5-Contact/_DSC4279 copie.jpg") center/cover fixed; }

@media (max-width: 1024px) { .cta-bg { background-attachment: scroll; } }

.cta-ov { position: absolute; inset: 0; background: rgba(16,26,42,0.55); }

.cta-inner { position: relative; z-index: 2; max-width: 640px; margin: 0 auto; padding: 5rem 4rem; text-align: center; }

.cta-inner h2 { color: #fff; margin-bottom: 1.2rem; white-space: nowrap; }

.cta-inner p { font-size: 1.15rem; font-weight: 400; color: rgba(255,255,255,0.85); margin-bottom: 2.2rem; line-height: 1.7; text-align: center; }

.cta-btns { display: flex; gap: 12px; justify-content: center; }

.tag::before { content: ""; width: 18px; height: 2px; background: var(--orange); }

.btn-o { display: inline-flex; align-items: center; gap: 7px; background: var(--orange); color: #fff; font-weight: 600; font-size: 0.85rem; padding: 0.75rem 1.6rem; border-radius: 4px; text-decoration: none; transition: opacity 0.2s, transform 0.2s; }

.btn-o:hover { opacity: 0.88; transform: translateY(-1px); }

.btn-w { display: inline-flex; align-items: center; gap: 7px; border: 1.5px solid rgba(255,255,255,0.35); color: rgba(255,255,255,0.85); font-weight: 500; font-size: 0.85rem; padding: 0.72rem 1.4rem; border-radius: 4px; text-decoration: none; transition: border-color 0.2s, color 0.2s; }

.btn-w:hover { border-color: #fff; color: #fff; }

footer { background: #111B2D; padding: 4rem 0 2rem; }

.ft { max-width: 1200px; margin: 0 auto; padding: 0 4rem 3rem; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; border-bottom: 1px solid rgba(255,255,255,0.07); }

.fn  { font-weight: 700; font-size: 1.2rem; letter-spacing: 0.06em; color: #fff; }

.fs  { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); margin: 2px 0 0.9rem; }

.fd  { font-size: 0.82rem; line-height: 1.7; font-weight: 300; color: rgba(255,255,255,0.35); margin-bottom: 1rem; }

.fc a { display: block; font-size: 0.82rem; color: rgba(255,255,255,0.42); text-decoration: none; margin-bottom: 3px; transition: color 0.2s; }

.fc a:hover { color: var(--orange); }

.fch { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 1rem; }

.fcl { list-style: none; }

.fcl li { margin-bottom: 0.5rem; }

.fcl a { font-size: 0.82rem; color: rgba(255,255,255,0.3); text-decoration: none; font-weight: 300; transition: color 0.2s; }

.fcl a:hover { color: rgba(255,255,255,0.75); }

.fb { max-width: 1200px; margin: 0 auto; padding: 1.4rem 4rem 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.8rem; }

.fb-c { font-size: 0.72rem; color: rgba(255,255,255,0.2); }

.fb-l { display: flex; gap: 1.5rem; }

.fb-l a { font-size: 0.72rem; color: rgba(255,255,255,0.2); text-decoration: none; transition: color 0.2s; }

.fb-l a:hover { color: rgba(255,255,255,0.5); }
