
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --ocre:#C8823A; --siene:#A0522D; --ivoire:#F5EFE0; --ivoire-dim:#EDE4D0;
      --or:#D4A84B; --olive:#6B7B3A; --olive-dim:#4E5C2A; --bleu:#2C4A6E;
      --bleu-dim:#1A3050; --charbon:#1C1A17; --gris-doux:#8B8070; --blanc:#FDFBF7;
      --font-serif:'Playfair Display',Georgia,serif; --font-sans:'Inter',system-ui,sans-serif;
      --radius:4px; --shadow:0 8px 40px rgba(28,26,23,.18); --shadow-sm:0 2px 16px rgba(28,26,23,.10);
      --trans:all .35s cubic-bezier(.4,0,.2,1);
    }
    html { scroll-behavior:smooth; font-size:16px; }
    body { font-family:var(--font-sans); background:var(--charbon); color:var(--charbon); line-height:1.6; overflow-x:hidden; }
    img { display:block; max-width:100%; }
    a { text-decoration:none; color:inherit; }
    .container { width:min(1200px,92%); margin-inline:auto; }
    .tag { display:inline-block; font-family:var(--font-sans); font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ocre); margin-bottom:.8rem; }
    .section-title { font-family:var(--font-serif); font-size:clamp(2rem,4vw,3rem); font-weight:600; line-height:1.15; }
    .section-title em { font-style:italic; color:var(--ocre); }
    .section-subtitle { font-size:1.05rem; max-width:52ch; margin-top:.8rem; line-height:1.7; }
    .btn { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; border-radius:var(--radius); font-family:var(--font-sans); font-size:.85rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; border:none; transition:var(--trans); }
    .btn-primary { background:var(--ocre); color:var(--blanc); }
    .btn-primary:hover { background:var(--siene); transform:translateY(-1px); box-shadow:0 6px 24px rgba(200,130,58,.35); }
    .btn-outline-light { background:transparent; color:var(--blanc); border:1.5px solid rgba(255,255,255,.5); }
    .btn-outline-light:hover { background:rgba(255,255,255,.1); border-color:var(--blanc); }

    /* NAV */
    .nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:1.2rem 0; transition:var(--trans); background:rgba(28,26,23,.92); backdrop-filter:blur(12px); }
    .nav-inner { display:flex; align-items:center; justify-content:space-between; }
    .nav-logo { display:flex; flex-direction:column; line-height:1; }
    .nav-logo-main { font-family:var(--font-serif); font-size:1.3rem; font-weight:700; color:var(--blanc); letter-spacing:.02em; }
    .nav-logo-sub { font-size:.65rem; font-weight:400; letter-spacing:.22em; text-transform:uppercase; color:var(--or); margin-top:2px; }
    .nav-links { display:flex; align-items:center; gap:2rem; list-style:none; }
    .nav-links a { font-size:.8rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8); transition:var(--trans); }
    .nav-links a:hover, .nav-links a.active { color:var(--or); }
    .nav-cta { background:var(--ocre); color:var(--blanc)!important; padding:.5rem 1.2rem; border-radius:var(--radius); }
    .nav-cta:hover { background:var(--siene)!important; }
    .nav-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:.4rem; }
    .nav-hamburger span { display:block; width:22px; height:2px; background:var(--blanc); transition:var(--trans); }

    /* HERO */
    .hero-page { position:relative; height:100svh; min-height:580px; display:flex; align-items:flex-end; overflow:hidden; }
    .hero-bg { position:absolute; inset:0; background-image:url('../images/photo_22.jpg'); background-size:cover; background-position:center; }
    .hero-bg::before {
      content:''; position:absolute; inset:0;
      background: linear-gradient(to bottom, rgba(28,26,23,.4) 0%, rgba(28,26,23,.0) 25%, rgba(28,26,23,.55) 75%, rgba(28,26,23,.92) 100%);
    }
    .hero-content { position:relative; z-index:2; padding:0 0 5rem; width:100%; }
    .hero-eyebrow { display:flex; align-items:center; gap:1rem; margin-bottom:1.2rem; }
    .hero-eyebrow-line { width:40px; height:1px; background:var(--or); }
    .hero-eyebrow span { font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--or); }
    .hero-title { font-family:var(--font-serif); font-size:clamp(2.8rem,6vw,4.8rem); font-weight:700; color:var(--blanc); line-height:1.08; max-width:16ch; margin-bottom:1.2rem; }
    .hero-title em { font-style:italic; color:var(--or); }
    .hero-desc { font-size:1.1rem; color:rgba(255,255,255,.75); max-width:48ch; line-height:1.65; margin-bottom:2rem; }
    .hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }

    /* ART CONCEPT */
    .art-concept { background:var(--charbon); padding:7rem 0; position:relative; overflow:hidden; }
    .art-concept::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 50% at 80% 30%, rgba(212,168,75,.06) 0%, transparent 60%); }
    .art-concept .tag { color:var(--or); }
    .art-concept .section-title { color:var(--ivoire); }
    .art-concept .section-subtitle { color:rgba(245,239,224,.6); }

    .concept-layout { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; margin-top:4rem; }

    .concept-text-side { position:relative; z-index:1; }

    .art-pillars { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2.5rem; }
    .art-pillar { padding:1.4rem; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); border-radius:var(--radius); transition:var(--trans); }
    .art-pillar:hover { border-color:rgba(212,168,75,.3); background:rgba(212,168,75,.06); }
    .art-pillar-icon { font-size:1.4rem; margin-bottom:.6rem; }
    .art-pillar-title { font-family:var(--font-serif); font-size:.9rem; font-weight:600; color:var(--or); margin-bottom:.25rem; }
    .art-pillar-text { font-size:.78rem; color:rgba(245,239,224,.5); line-height:1.55; }

    .concept-img-side { position:relative; }
    .concept-main-img { width:100%; aspect-ratio:4/5; border-radius:2px; background-image:url('../images/photo_21.jpg'); background-size:cover; background-position:center; }
    .concept-float-img { position:absolute; bottom:-2rem; right:-2rem; width:50%; aspect-ratio:1; border-radius:2px; background-image:url('../images/photo_05.jpg'); background-size:cover; background-position:center; border:5px solid var(--charbon); box-shadow:var(--shadow); }

    /* GALERIE GRID */
    .galerie-grid-section { background:var(--charbon); padding:5rem 0 7rem; }
    .galerie-grid-section .tag { color:var(--or); }
    .galerie-grid-section .section-title { color:var(--ivoire); }

    .section-header-dark { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3rem; }

    /* MASONRY-LIKE GRID */
    .photo-grid {
      display:grid;
      grid-template-columns:repeat(12, 1fr);
      grid-auto-rows:120px;
      gap:8px;
      margin-top:2rem;
    }

    .photo-item {
      border-radius:2px;
      overflow:hidden;
      cursor:pointer;
      position:relative;
      background-size:cover;
      background-position:center;
      transition:var(--trans);
    }

    .photo-item:hover { transform:scale(1.02); z-index:2; }

    .photo-item::after {
      content:'';
      position:absolute;
      inset:0;
      background:rgba(28,26,23,0);
      transition:var(--trans);
    }

    .photo-item:hover::after { background:rgba(28,26,23,.2); }

    .photo-item .photo-label {
      position:absolute;
      bottom:0; left:0; right:0;
      padding:.6rem .8rem;
      background:linear-gradient(transparent, rgba(28,26,23,.8));
      font-size:.65rem;
      font-weight:600;
      letter-spacing:.1em;
      text-transform:uppercase;
      color:rgba(255,255,255,.7);
      opacity:0;
      transition:var(--trans);
      z-index:1;
    }

    .photo-item:hover .photo-label { opacity:1; }

    /* Grid layout assignments */
    .p1 { grid-column:span 4; grid-row:span 3; background-image:url('../images/photo_22.jpg'); }
    .p2 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_13.jpg'); }
    .p3 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_14.jpg'); }
    .p4 { grid-column:span 3; grid-row:span 2; background-image:url('../images/photo_05.jpg'); }
    .p5 { grid-column:span 3; grid-row:span 1; background-image:url('../images/photo_08.jpg'); }
    .p6 { grid-column:span 2; grid-row:span 1; background-image:url('../images/photo_21.jpg'); }
    .p7 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_07.jpg'); }
    .p8 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_01.jpg'); }
    .p9 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_33.jpg'); }
    .p10 { grid-column:span 3; grid-row:span 2; background-image:url('../images/photo_10.jpg'); }
    .p11 { grid-column:span 5; grid-row:span 2; background-image:url('../images/photo_03.jpg'); }
    .p12 { grid-column:span 4; grid-row:span 2; background-image:url('../images/photo_04.jpg'); }

    /* SECTIONS THÉMATIQUES */
    .themes-section { background:var(--blanc); padding:7rem 0; }

    .themes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3.5rem; }

    .theme-card { border-radius:2px; overflow:hidden; position:relative; cursor:pointer; }

    .theme-img { aspect-ratio:3/4; position:relative; overflow:hidden; }
    .theme-img-bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s cubic-bezier(.4,0,.2,1); }
    .theme-card:hover .theme-img-bg { transform:scale(1.05); }
    .theme-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(28,26,23,.9) 0%, rgba(28,26,23,.2) 55%, transparent 100%); }

    .theme-content { position:absolute; bottom:0; left:0; right:0; padding:2rem; }
    .theme-num { font-family:var(--font-serif); font-size:.75rem; font-weight:600; color:var(--or); letter-spacing:.2em; text-transform:uppercase; margin-bottom:.4rem; }
    .theme-title { font-family:var(--font-serif); font-size:1.4rem; font-weight:700; color:var(--blanc); margin-bottom:.5rem; line-height:1.2; }
    .theme-text { font-size:.8rem; color:rgba(255,255,255,.65); line-height:1.55; }

    /* PISCINE SECTION */
    .piscine-section { background:var(--charbon); padding:7rem 0; position:relative; overflow:hidden; }
    .piscine-section::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 70% at 30% 60%, rgba(44,74,110,.2) 0%, transparent 60%); }
    .piscine-section .tag { color:var(--or); }
    .piscine-section .section-title { color:var(--ivoire); }
    .piscine-section .section-subtitle { color:rgba(245,239,224,.6); }

    .piscine-layout { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; margin-top:3rem; }

    .piscine-imgs { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
    .piscine-img { border-radius:2px; background-size:cover; background-position:center; }
    .piscine-img.tall { grid-row:span 2; aspect-ratio:3/5; background-image:url('../images/photo_02.jpg'); }
    .piscine-img.wide { aspect-ratio:4/3; }
    .piscine-img.wi1 { background-image:url('../images/photo_13.jpg'); }
    .piscine-img.wi2 { background-image:url('../images/photo_33.jpg'); }

    .piscine-text .section-subtitle { max-width:40ch; }
    .piscine-features { margin-top:2rem; display:flex; flex-direction:column; gap:.8rem; }
    .piscine-feature { display:flex; align-items:center; gap:.8rem; }
    .piscine-feature-dot { width:6px; height:6px; border-radius:50%; background:var(--or); flex-shrink:0; }
    .piscine-feature-text { font-size:.88rem; color:rgba(245,239,224,.7); }

    /* CTA */
    .cta-art { background:var(--ivoire); padding:5rem 0; text-align:center; }
    .cta-art .section-title { color:var(--charbon); }
    .cta-art .section-subtitle { color:var(--gris-doux); margin:0 auto 2.5rem; text-align:center; }

    /* FOOTER */
    .footer { background:var(--charbon); padding:5rem 0 2rem; border-top:1px solid rgba(255,255,255,.06); }
    .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; margin-bottom:4rem; }
    .footer-brand-name { font-family:var(--font-serif); font-size:1.4rem; font-weight:700; color:var(--blanc); margin-bottom:.3rem; }
    .footer-brand-sub { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--or); margin-bottom:1rem; }
    .footer-brand-desc { font-size:.82rem; color:rgba(255,255,255,.45); line-height:1.65; max-width:30ch; }
    .footer-social { display:flex; gap:.7rem; margin-top:1.5rem; }
    .footer-social-btn { width:36px; height:36px; border-radius:var(--radius); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); font-size:.8rem; font-weight:700; transition:var(--trans); cursor:pointer; }
    .footer-social-btn:hover { background:var(--ocre); border-color:var(--ocre); color:var(--blanc); }
    .footer-col-title { font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--or); margin-bottom:1.2rem; }
    .footer-links { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
    .footer-links a { font-size:.82rem; color:rgba(255,255,255,.45); transition:var(--trans); }
    .footer-links a:hover { color:var(--ivoire); padding-left:.3rem; }
    .footer-contact-item { display:flex; gap:.8rem; align-items:flex-start; margin-bottom:.9rem; }
    .footer-contact-icon { font-size:.9rem; margin-top:.1rem; flex-shrink:0; }
    .footer-contact-text { font-size:.82rem; color:rgba(255,255,255,.45); line-height:1.5; }
    .footer-contact-text a { color:var(--or); }
    .footer-contact-text a:hover { color:var(--ivoire); }
    .footer-bottom { border-top:1px solid rgba(255,255,255,.06); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
    .footer-copy { font-size:.75rem; color:rgba(255,255,255,.25); }
    .footer-platforms { display:flex; gap:.8rem; align-items:center; }
    .footer-platform-badge { font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.3); border:1px solid rgba(255,255,255,.1); padding:.2rem .7rem; border-radius:2px; }

    /* WA FLOAT */
    .wa-float { position:fixed; bottom:2rem; right:2rem; z-index:999; display:flex; flex-direction:column; align-items:flex-end; gap:.8rem; }
    .wa-float-popup { background:var(--blanc); border-radius:var(--radius); padding:1rem 1.2rem; box-shadow:var(--shadow); max-width:220px; font-size:.82rem; color:var(--charbon); line-height:1.5; opacity:0; transform:translateY(8px); transition:var(--trans); pointer-events:none; }
    .wa-float:hover .wa-float-popup { opacity:1; transform:translateY(0); }
    .wa-float-popup strong { display:block; font-weight:700; margin-bottom:.2rem; color:#075E54; }
    .wa-float-btn { width:58px; height:58px; border-radius:50%; background:#25D366; box-shadow:0 6px 24px rgba(37,211,102,.45); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--trans); animation:waPulse 3s ease-in-out infinite; text-decoration:none; }
    .wa-float-btn:hover { transform:scale(1.1); background:#128C7E; animation:none; }
    .wa-float-btn svg { width:28px; height:28px; }
    @keyframes waPulse { 0%,100%{box-shadow:0 6px 24px rgba(37,211,102,.45);}50%{box-shadow:0 6px 40px rgba(37,211,102,.7),0 0 0 8px rgba(37,211,102,.12);} }

    /* ANIMATIONS */
    .fade-up { opacity:0; transform:translateY(30px); transition:opacity .7s ease,transform .7s ease; }
    .fade-up.visible { opacity:1; transform:translateY(0); }
    .fade-up.delay-1 { transition-delay:.1s; }
    .fade-up.delay-2 { transition-delay:.2s; }
    .fade-up.delay-3 { transition-delay:.3s; }

    /* RESPONSIVE */
    @media (max-width:1024px) {
      .concept-layout { grid-template-columns:1fr; gap:3rem; }
      .concept-float-img { display:none; }
      .themes-grid { grid-template-columns:1fr 1fr; }
      .piscine-layout { grid-template-columns:1fr; }
      .footer-grid { grid-template-columns:1fr 1fr; }
      .photo-grid { grid-template-columns:repeat(6,1fr); grid-auto-rows:100px; }
      .p1,.p2,.p3,.p4,.p7,.p8,.p9,.p10,.p11,.p12 { grid-column:span 3; grid-row:span 2; }
      .p5,.p6 { grid-column:span 3; grid-row:span 2; }
    }
    @media (max-width:768px) {
      .nav-links { display:none; }
      .nav-hamburger { display:flex; }
      .themes-grid { grid-template-columns:1fr; }
      .piscine-imgs { grid-template-columns:1fr; }
      .piscine-img.tall { grid-row:auto; aspect-ratio:16/9; }
      .footer-grid { grid-template-columns:1fr; gap:2rem; }
      .photo-grid { grid-template-columns:repeat(4,1fr); grid-auto-rows:80px; }
      .p1,.p2,.p3,.p7,.p8,.p9 { grid-column:span 2; grid-row:span 2; }
      .p4,.p5,.p6,.p10,.p11,.p12 { grid-column:span 2; grid-row:span 2; }
      .section-header-dark { flex-direction:column; align-items:flex-start; gap:1rem; }
    }
  