/* ===========================
       RESET & ROOT VARIABLES
    =========================== */
    *,
    *::before,
    *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    :root {
      --cream: #F5EDD8;
      --sand: #D4B896;
      --ocean: #1A6B8A;
      --deep: #0D3547;
      --foam: #E8F4F8;
      --gold: #C9A84C;
      --dark: #080F14;
      --text-light: rgba(255, 255, 255, 0.92);
      --text-muted: rgba(255, 255, 255, 0.6);
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      background-image: url("../assets/plage.png");
      background-size: cover;
      background-attachment: fixed;
      color: white;
      font-family: 'Inter', sans-serif;
      overflow-x: hidden;
    }

    /* ===========================
       CUSTOM CURSOR
    =========================== */
    .cursor {
      width: 12px;
      height: 12px;
      background: var(--gold);
      border-radius: 50%;
      position: fixed;
      top: 0;
      left: 0;
      pointer-events: none;
      z-index: 9999;
      transform: translate(-50%, -50%);
      transition: transform 0.1s ease;
      mix-blend-mode: difference;
    }

    .cursor-follower {
      width: 36px;
      height: 36px;
      border: 1.5px solid rgba(201, 168, 76, 0.6);
      border-radius: 50%;
      position: fixed;
      top: 0;
      left: 0;
      pointer-events: none;
      z-index: 9998;
      transform: translate(-50%, -50%);
      transition: width 0.3s, height 0.3s;
    }

    /* ===========================
       NAVIGATION
    =========================== */
    nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 24px 48px;
      mix-blend-mode: normal;
    }

    .nav-logo {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 600;
      color: white;
      letter-spacing: 0.04em;
      opacity: 0;
    }

    .nav-links {
      display: flex;
      gap: 36px;
      list-style: none;
      opacity: 0;
    }

    .nav-toggle {
      display: none;
      width: 42px;
      height: 42px;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(255, 255, 255, 0.18);
      border-radius: 14px;
      background: rgba(8, 15, 20, 0.58);
      color: white;
      cursor: pointer;
      backdrop-filter: blur(14px);
    }

    .nav-toggle svg {
      width: 22px;
      height: 22px;
    }

    .nav-links a {
      font-family: 'Inter', sans-serif;
      font-size: 0.78rem;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.7);
      text-decoration: none;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      transition: color 0.3s;
    }

    .nav-links a:hover {
      color: var(--gold);
    }

    /* ===========================
       SECTION — HERO (HOME)
    =========================== */
    #home {
      position: relative;
      height: 100vh;
      min-height: 700px;
      overflow: hidden;
      display: flex;
      align-items: center;
      /* ← centre verticalement (était flex-end) */
      padding: 0 6vw;
    }

    .home-bg {
      position: absolute;
      inset: 0;
      background-image: url("../assets/plage.png");
      background-size: cover;
      background-position: center;
      will-change: transform;
    }

    .home-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom,
          rgba(8, 15, 20, 0.15) 0%,
          rgba(8, 15, 20, 0.0) 40%,
          rgba(8, 15, 20, 0.7) 80%,
          rgba(8, 15, 20, 0.75) 95%);
    }

    .home-content {
      position: relative;
      z-index: 2;
      max-width: 700px;
    }

    .home-eyebrow {
      font-family: 'Inter', sans-serif;
      font-size: 0.72rem;
      font-weight: 500;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgb(255, 255, 255);
      margin-bottom: 20px;
      opacity: 0;
    }

    .home-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(3.8rem, 8vw, 7rem);
      font-style: bold;
      font-weight: 300;
      line-height: 1.0;
      color: white;
      margin-bottom: 28px;
      overflow: hidden;
    }

    .home-title span {
      display: block;
      opacity: 0;
      transform: translateY(60px);
    }

    .home-subtitle {
      font-family: 'Inter', sans-serif;
      font-size: clamp(1.4rem, 1.8vw, 1.05rem);
      font-weight: 300;
      line-height: 1.75;
      color: rgba(255, 255, 255, 0.75);
      max-width: 440px;
      margin-bottom: 40px;
      opacity: 0;
    }

    .cta-group {
      display: flex;
      align-items: center;
      gap: 24px;
      opacity: 0;
    }

    .btn-primary {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 14px 32px;
      background: var(--gold);
      color: var(--dark);
      font-family: 'Inter', sans-serif;
      font-size: 0.8rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      border: none;
      cursor: pointer;
      clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
      transition: background 0.3s, transform 0.2s;
    }

    .btn-primary:hover {
      background: var(--cream);
      transform: translateY(-2px);
    }

    /* Play Store button variant */
    .btn-playstore {
      padding: 12px 28px 12px 20px;
      gap: 14px;
      text-transform: none;
      letter-spacing: 0;
    }

    .btn-ghost {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: 'Inter', sans-serif;
      font-size: 0.78rem;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.65);
      text-decoration: none;
      letter-spacing: 0.06em;
      transition: color 0.3s;
    }

    .btn-ghost:hover {
      color: white;
    }

    .btn-ghost::after {
      content: '→';
      transition: transform 0.3s;
    }

    .btn-ghost:hover::after {
      transform: translateX(4px);
    }

    /* Smartphone hero image */
    .home-phone {
      position: absolute;
      right: 6vw;
      bottom: -4vh;
      width: clamp(220px, 28vw, 380px);
      z-index: 3;
      opacity: 0;
      filter: drop-shadow(0 40px 80px rgba(0, 0, 0, 0.6));
    }

    .home-phone img {
      width: 100%;
      height: auto;
      display: block;
    }

    /* Scroll indicator */
    .scroll-indicator {
      position: absolute;
      bottom: 40px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      opacity: 0;
      z-index: 3;
    }

    .scroll-indicator span {
      font-size: 0.62rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.45);
    }

    .scroll-line {
      width: 1px;
      height: 48px;
      background: linear-gradient(to bottom, rgba(201, 168, 76, 0.8), transparent);
      animation: scrollPulse 2s ease-in-out infinite;
    }

    @keyframes scrollPulse {

      0%,
      100% {
        opacity: 0.3;
        transform: scaleY(1);
      }

      50% {
        opacity: 1;
        transform: scaleY(1.2);
      }
    }

    /* ===========================
       SECTION — VISION
    =========================== */
    #vision {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      display: flex;
      align-items: center;
      padding: 0px 6vw;
    }

    .vision-bg {
      position: absolute;
      inset: 0;
      background-image: url("../assets/plage2.png");
      background-size: cover;
      background-position: center;
      will-change: transform;
    }

    .vision-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg,
          rgba(8, 15, 20, 0.85) 0%,
          rgba(8, 15, 20, 0.5) 50%,
          rgba(8, 15, 20, 0.7) 100%);
    }

    .vision-content {
      position: relative;
      z-index: 2;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      width: 100%;
      max-width: 1200px;
      margin: 0 auto;
    }

    /*.vision-text {}*/

    .section-tag {
      display: inline-block;
      font-family: 'Inter', sans-serif;
      font-size: 0.68rem;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 24px;
      padding: 6px 14px;
      border: 1px solid rgba(201, 168, 76, 0.4);
    }

    .vision-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.5rem, 5vw, 4.5rem);
      font-weight: 300;
      line-height: 1.1;
      color: white;
      margin-bottom: 32px;
    }

    .vision-title em {
      font-style: italic;
      color: var(--gold);
    }

    .vision-description {
      font-family: 'Inter', sans-serif;
      font-size: 1rem;
      font-weight: 300;
      line-height: 1.8;
      color: rgba(255, 255, 255, 0.72);
      max-width: 400px;
    }

    .vision-phones {
      position: relative;
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: -30px;
      height: 500px;
    }

    .phone-stack {
      position: relative;
      width: 100%;
      height: 100%;
    }

    .phone-item {
      position: absolute;
      width: clamp(170px, 18vw, 240px);
      filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.5));
      opacity: 0;
    }

    .phone-item:nth-child(1) {
      left: 0;
      top: 50%;
      transform: translateY(-50%) rotate(-6deg);
      z-index: 1;
    }

    .phone-item:nth-child(2) {
      right: 0;
      top: 50%;
      transform: translateY(-55%) rotate(5deg);
      z-index: 2;
    }

    .phone-item img {
      width: 100%;
      height: auto;
      display: block;
    }

    /* Vision horizontal divider */
    .vision-divider {
      position: relative;
      z-index: 2;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
    }

    /* ===========================
       SECTION — PÊCHEURS
    =========================== */
    #pecheurs {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      padding: 0px 6vw;
    }

    .pecheurs-bg {
      position: absolute;
      inset: 0;
      background-image: url("../assets/plage3.png");
      background-size: cover;
      background-position: center;
      will-change: transform;
    }

    .pecheurs-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom,
          rgba(8, 15, 20, 0.75) 0%,
          rgba(8, 15, 20, 0.6) 60%,
          rgba(8, 15, 20, 0.75) 100%);
    }

    .section-content {
      position: relative;
      z-index: 2;
      max-width: 1200px;
      margin: 0 auto;
    }

    .section-header {
      text-align: center;
      margin-bottom: 80px;
    }

    .section-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.8rem, 5.5vw, 5rem);
      font-weight: 300;
      line-height: 1.1;
      color: white;
      margin-bottom: 20px;
    }

    .section-title em {
      font-style: italic;
      color: var(--gold);
    }

    .section-lead {
      font-family: 'Inter', sans-serif;
      font-size: 0.95rem;
      font-weight: 300;
      color: rgba(255, 255, 255, 0.6);
      letter-spacing: 0.04em;
    }

    /* Features Grid */
    .features-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      align-items: start;
    }

    .feature-card {
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(12px);
      padding: 40px 32px;
      position: relative;
      overflow: hidden;
      opacity: 0;
      transform: translateY(40px);
      transition: border-color 0.4s, background 0.4s;
    }

    .feature-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--gold), transparent);
      opacity: 0;
      transition: opacity 0.4s;
    }

    .feature-card:hover {
      border-color: rgba(201, 168, 76, 0.3);
      background: rgba(255, 255, 255, 0.07);
    }

    .feature-card:hover::before {
      opacity: 1;
    }

    .feature-number {
      font-family: 'Cormorant Garamond', serif;
      font-size: 5rem;
      font-weight: 300;
      color: rgba(201, 168, 76, 0.1);
      line-height: 1;
      position: absolute;
      top: 16px;
      right: 20px;
    }

    .feature-emoji {
      font-size: 2rem;
      margin-bottom: 20px;
      display: block;
    }

    .feature-title {
      font-family: 'Syne', sans-serif;
      font-size: 1.05rem;
      font-weight: 700;
      color: white;
      margin-bottom: 12px;
      letter-spacing: 0.02em;
    }

    .feature-desc {
      font-family: 'Inter', sans-serif;
      font-size: 0.88rem;
      font-weight: 300;
      line-height: 1.75;
      color: rgba(255, 255, 255, 0.65);
      margin-bottom: 24px;
    }

    .feature-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .tag {
      font-family: 'Inter', sans-serif;
      font-size: 0.65rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gold);
      padding: 4px 10px;
      border: 1px solid rgba(201, 168, 76, 0.3);
    }

    /* Phone images under feature cards */
    .phone-showcase {
      display: flex;
      justify-content: center;
      gap: 40px;
      margin-top: 60px;
      align-items: flex-end;
    }

    .showcase-phone {
      width: clamp(120px, 14vw, 180px);
      opacity: 0;
      transform: translateY(30px);
      filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.5));
    }

    .showcase-phone img {
      width: 100%;
      height: auto;
      display: block;
    }

    .showcase-caption {
      font-family: 'Inter', sans-serif;
      font-size: 0.65rem;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.4);
      text-align: center;
      letter-spacing: 0.08em;
      margin-top: 12px;
    }

    /* ===========================
       SECTION — CONSOMMATEURS
    =========================== */
    #consommateurs {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      padding: 0px 6vw;
    }

    .conso-bg {
      position: absolute;
      inset: 0;
      background-image: url("../assets/plage4.png");
      background-size: cover;
      background-position: center top;
      will-change: transform;
    }

    .conso-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom,
          rgba(8, 15, 20, 0.8) 0%,
          rgba(8, 15, 20, 0.55) 50%,
          rgba(8, 15, 20, 0.75) 100%);
    }

    /* Flipped layout */
    .conso-layout {
      display: grid;
      grid-template-columns: 5fr 7fr;
      gap: 60px;
      align-items: stretch;
      position: relative;
      z-index: 2;
      max-width: 1200px;
      margin: 0 auto;
    }

    /* Single-column cards inside conso (no room for 3-col grid) */
    .conso-grid {
      grid-template-columns: 1fr !important;
      gap: 24px !important;
    }

    .conso-phones {
      display: flex;
      flex-direction: column;
      gap: 24px;
      align-items: center;
      justify-content: flex-start;
      margin-top: 80px;
      /* ← LIGNE 701 : augmente pour descendre les téléphones */
    }

    .conso-phone-item {
      width: clamp(160px, 18vw, 230px);
      opacity: 0;
      filter: drop-shadow(0 25px 50px rgba(0, 0, 0, 0.5));
    }

    .conso-phone-item:first-child {
      transform: rotate(-3deg);
    }

    .conso-phone-item:last-child {
      transform: rotate(3deg);
    }

    .conso-phone-item img {
      width: 100%;
      height: auto;
      display: block;
    }

    /* ===========================
       SECTION — CONTACT / FOOTER
    =========================== */
    #contact {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 120px 6vw;
    }

    .contact-bg {
      position: absolute;
      inset: 0;
      background-image: url("../assets/plage5.png");
      background-size: cover;
      background-position: center top;
      will-change: transform;
    }

    .contact-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom,
          rgba(8, 15, 20, 0.6) 0%,
          rgba(8, 15, 20, 0.3) 30%,
          rgba(8, 15, 20, 0.75) 100%);
    }

    .contact-content {
      position: relative;
      z-index: 2;
      text-align: center;
      max-width: 700px;
    }

    .contact-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(3rem, 6vw, 5.5rem);
      font-weight: 300;
      line-height: 1.1;
      color: white;
      margin-bottom: 28px;
    }

    .contact-title em {
      font-style: italic;
      color: var(--gold);
    }

    .contact-sub {
      font-family: 'Inter', sans-serif;
      font-size: 1rem;
      font-weight: 300;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.8;
      margin-bottom: 48px;
    }

    .contact-actions {
      display: flex;
      justify-content: center;
      gap: 20px;
      flex-wrap: wrap;
    }

    /* Footer bar */
    .footer-bar {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      padding: 24px 6vw;
      display: flex;
      justify-content: space-between;
      align-items: center;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
      z-index: 2;
    }

    .footer-logo {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.2rem;
      font-weight: 600;
      color: white;
    }

    .footer-copy {
      font-family: 'Inter', sans-serif;
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.35);
      letter-spacing: 0.06em;
    }

    /* ===========================
       HORIZONTAL DIVIDER
    =========================== */
    .h-divider {
      width: 60px;
      height: 1px;
      background: var(--gold);
      margin: 32px 0;
      opacity: 0.5;
    }

    /* ===========================
       NOISE TEXTURE OVERLAY
    =========================== */
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
      background-size: 200px 200px;
      opacity: 0.025;
      pointer-events: none;
      z-index: 9997;
    }

    /* ===========================
       RESPONSIVE
    =========================== */
    @media (max-width: 900px) {
      nav {
        padding: 20px 24px;
        flex-wrap: wrap;
        gap: 12px;
      }

      .nav-toggle {
        display: inline-flex;
      }

      .nav-links {
        flex: 0 0 100%;
        display: grid;
        gap: 8px;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
        transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
      }

      .nav-links.is-open {
        max-height: 26rem;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
      }

      .nav-links a {
        display: block;
        padding: 12px 14px;
        border: 1px solid rgba(255, 255, 255, 0.12);
        border-radius: 12px;
        background: rgba(8, 15, 20, 0.72);
      }

      #home {
        padding: 0 6vw 12vh;
      }

      .home-phone {
        right: 50%;
        transform: translateX(50%);
        bottom: -2vh;
        width: clamp(180px, 50vw, 280px);
        opacity: 0.5;
        pointer-events: none;
      }

      .vision-content {
        grid-template-columns: 1fr;
        gap: 48px;
      }

      .vision-phones {
        height: 320px;
        justify-content: center;
      }

      .phone-item {
        width: clamp(130px, 30vw, 180px);
      }

      .features-grid {
        grid-template-columns: 1fr;
        gap: 20px;
      }

      .conso-layout {
        grid-template-columns: 1fr;
        gap: 40px;
      }

      .conso-phones {
        flex-direction: row;
        justify-content: center;
      }

      .footer-bar {
        flex-direction: column;
        gap: 10px;
        text-align: center;
      }
    }

    @media (max-width: 600px) {
      .section-title {
        font-size: 2.2rem;
      }

      .vision-title {
        font-size: 2.2rem;
      }

      .cta-group {
        flex-direction: column;
        align-items: flex-start;
      }

      .phone-showcase {
        gap: 20px;
      }

      .contact-actions {
        flex-direction: column;
        align-items: center;
      }

      .conso-phones {
        gap: -10px;
        /* Les téléphones vont se chevaucher légèrement sur petit écran */
      }

      .conso-phone-item {
        width: clamp(90px, 28vw, 140px);
      }
    }
