
  :root {
    --cream: #FAF7F2;
    --cream-2: #F5EFE6;
    --sage: #B5C9B1;
    --sage-2: #C8D8C4;
    --sage-deep: #8FA88B;
    --taupe: #A89880;
    --taupe-2: #BFB0A0;
    --taupe-deep: #6B5E4D;
    --ink: #2E2A24;
    --gold: #C9A56B;
    --serif: "Cormorant Garamond", "Times New Roman", serif;
    --sans: "DM Sans", "Helvetica Neue", system-ui, sans-serif;
    --maxw: 1280px;
    --pad: clamp(20px, 4vw, 56px);
  }

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
  body {
    margin: 0;
    font-family: var(--sans);
    color: var(--ink);
    background: var(--cream);
    font-size: 16px;
    line-height: 1.65;
    font-weight: 400;
    overflow-x: hidden;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  h1, h2, h3, h4 {
    font-family: var(--serif);
    font-weight: 500;
    color: var(--taupe-deep);
    margin: 0;
    letter-spacing: -0.01em;
    text-wrap: balance;
  }
  h1 { font-size: clamp(2.6rem, 6.2vw, 5.2rem); line-height: 1.02; font-weight: 400; }
  h2 { font-size: clamp(2rem, 4.4vw, 3.4rem); line-height: 1.08; }
  h3 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.2; }
  p { margin: 0 0 1em; text-wrap: pretty; }
  .italic { font-style: italic; color: var(--taupe); }

  /* ─── Nav ───────────────────────────── */
  .nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    padding: 14px var(--pad);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    background: rgba(250, 247, 242, 0.0);
    transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
  }
  .nav.scrolled {
    background: rgba(250, 247, 242, 0.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(168, 152, 128, .12);
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .nav-left, .nav-right {
    display: flex;
    gap: 18px;
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--taupe-deep);
  }
  .nav-right { justify-content: flex-end; }
  .nav-left a, .nav-right a { position: relative; padding: 6px 0; white-space: nowrap; }
  .nav-left a::after, .nav-right a::after {
    content: ""; position: absolute; left: 0; right: 100%;
    bottom: 0; height: 1px; background: var(--taupe);
    transition: right .35s ease;
  }
  .nav-left a:hover::after, .nav-right a:hover::after { right: 0; }
  .logo {
    font-family: var(--serif);
    font-size: 22px;
    font-style: italic;
    color: var(--taupe-deep);
    text-align: center;
    letter-spacing: .02em;
    line-height: 1;
  }
  .logo small {
    display: block;
    font-family: var(--sans);
    font-size: 9px;
    letter-spacing: .35em;
    text-transform: uppercase;
    font-style: normal;
    color: var(--taupe);
    margin-top: 4px;
  }
  .logo-mark{display:block;line-height:0}
  .logo-mark img{width:84px;height:84px;border-radius:50%;object-fit:cover;transition:transform .4s ease}
  .nav.scrolled .logo-mark img{width:66px;height:66px}
  .logo-mark:hover img{transform:scale(1.05)}
  .footer-brand{display:flex;align-items:center;gap:16px}
  .footer-brand img{width:72px;height:72px;border-radius:50%;object-fit:cover}
  @media (max-width:880px){.logo-mark img,.nav.scrolled .logo-mark img{width:62px;height:62px}}
  .burger {
    display: none;
    background: none; border: 0;
    width: 36px; height: 36px; cursor: pointer;
    padding: 0;
  }
  .burger span {
    display: block; width: 22px; height: 1.5px;
    background: var(--taupe-deep); margin: 5px auto;
    transition: transform .3s, opacity .3s;
  }
  .burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  .burger.open span:nth-child(2) { opacity: 0; }
  .burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

  /* Mobile drawer */
  .mobile-menu {
    position: fixed; inset: 0;
    background: var(--cream);
    z-index: 99;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 28px;
    font-family: var(--serif);
    font-size: 28px;
    color: var(--taupe-deep);
    opacity: 0;
    transition: opacity .35s ease;
  }
  .mobile-menu.show { display: flex; opacity: 1; }
  .mobile-menu a { padding: 6px 12px; }

  @media (max-width: 1080px) {
    .nav-left { display: none; }
    .nav { grid-template-columns: 1fr auto 1fr; }
    .nav-right { display: flex; justify-content: flex-end; align-items: center; }
    .nav-right a:not(.btn) { display: none; }
    .burger { display: block; grid-column: 1; grid-row: 1; justify-self: start; }
  }
  @media (max-width: 620px) {
    .nav-right { display: none; }
  }

  /* ─── Buttons ───────────────────────── */
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 30px;
    border-radius: 999px;
    font-family: var(--sans);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .04em;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .35s ease;
    line-height: 1;
  }
  .btn-primary {
    background: var(--taupe-deep);
    color: var(--cream);
  }
  .btn-primary:hover {
    background: var(--ink);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -16px rgba(46, 42, 36, .55);
  }
  .btn-ghost {
    background: transparent;
    color: var(--taupe-deep);
    border-color: var(--taupe);
  }
  .btn-ghost:hover {
    background: var(--taupe-deep);
    color: var(--cream);
    border-color: var(--taupe-deep);
  }
  .btn-gold {
    background: var(--gold);
    color: #fff;
  }
  .btn-gold:hover { background: #b08c52; transform: translateY(-2px); }
  .btn .arr { font-size: 18px; line-height: 1; transition: transform .3s ease; }
  .btn:hover .arr { transform: translateX(4px); }

  /* ─── Section helpers ────────────────── */
  section { padding: clamp(80px, 11vw, 140px) var(--pad); position: relative; }
  .container { max-width: var(--maxw); margin: 0 auto; }
  .eyebrow {
    font-family: var(--sans);
    font-size: 11px;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--taupe);
    font-weight: 500;
    margin-bottom: 16px;
    display: inline-flex; align-items: center; gap: 12px;
  }
  .eyebrow::before {
    content: ""; width: 28px; height: 1px;
    background: var(--taupe);
  }

  /* ─── Image placeholders ─────────────── */
  .ph {
    flex-direction: column;
    background:
      repeating-linear-gradient(135deg,
        rgba(168, 152, 128, .07) 0 14px,
        rgba(168, 152, 128, .14) 14px 28px),
      var(--cream-2);
    color: var(--taupe);
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    padding: 16px;
  }
  .ph small {
    display: block; opacity: .7; margin-top: 6px;
    letter-spacing: .25em; font-size: 9px;
  }

  /* ─── Hero ───────────────────────────── */
  .hero {
    min-height: 100vh;
    padding-top: 110px;
    padding-bottom: 60px;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: clamp(30px, 5vw, 90px);
    align-items: center;
    background: linear-gradient(180deg, var(--cream) 0%, var(--cream-2) 100%);
    position: relative;
  }
  .hero::before {
    content: "";
    position: absolute;
    top: 18%; right: -180px;
    width: 420px; height: 420px;
    background: var(--sage-2);
    border-radius: 50%;
    filter: blur(70px);
    opacity: .35;
    pointer-events: none;
  }
  .hero-text { position: relative; z-index: 2; }
  .hero h1 .em {
    font-style: italic;
    color: var(--sage-deep);
    font-weight: 400;
  }
  .hero p.lede {
    font-size: clamp(1.05rem, 1.4vw, 1.18rem);
    line-height: 1.65;
    color: var(--taupe-deep);
    max-width: 30em;
    margin: 28px 0 36px;
  }
  .hero .cta-row {
    display: flex; flex-wrap: wrap; gap: 14px;
    margin-bottom: 38px;
  }
  .hero-sublink{display:inline-block;font-size:13.5px;color:var(--taupe-deep);border-bottom:1px solid var(--taupe-2);padding-bottom:2px;margin:-18px 0 34px;transition:color .25s,border-color .25s}
  .hero-sublink:hover{color:var(--sage-deep);border-color:var(--sage-deep)}
  .hero-meta {
    display: flex; gap: 32px; flex-wrap: wrap;
    font-size: 12px;
    color: var(--taupe);
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .hero-meta span { display: flex; align-items: center; gap: 8px; }
  .hero-meta span::before {
    content: ""; width: 5px; height: 5px; border-radius: 50%;
    background: var(--sage-deep);
  }

  .hero-visual {
    position: relative;
    aspect-ratio: 4/5;
    max-height: 78vh;
  }
  .hero-img-main img,
  .hero-img-acc img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .hero-img-main {
    position: absolute;
    inset: 0;
    border-radius: 220px 220px 18px 18px;
    overflow: hidden;
  }
  .hero-img-acc {
    position: absolute;
    bottom: -30px; left: -50px;
    width: 42%;
    aspect-ratio: 4/5;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 30px 60px -30px rgba(46, 42, 36, .35);
    border: 6px solid var(--cream);
  }
  .hero-tag {
    text-decoration: none;
    position: absolute;
    top: -10px; right: -10px;
    width: 130px; height: 130px;
    border-radius: 50%;
    background: var(--sage);
    color: var(--ink);
    font-family: var(--serif);
    font-style: italic;
    font-size: 18px;
    display: flex; align-items: center; justify-content: center;
    text-align: center;
    line-height: 1.2;
    padding: 14px;
    transform: rotate(-8deg);
    box-shadow: 0 18px 40px -20px rgba(143, 168, 139, .8);
    animation: bobble 6s ease-in-out infinite;
    transition: background .3s ease, color .3s ease;
  }
  .hero-tag:hover{background:var(--sage-deep);color:var(--cream)}
  @keyframes bobble {
    0%, 100% { transform: rotate(-8deg) translateY(0); }
    50% { transform: rotate(-5deg) translateY(-6px); }
  }

  @media (max-width: 880px) {
    .hero {
      grid-template-columns: 1fr;
      min-height: auto;
      padding-top: 100px;
    }
    .hero-visual {
      order: -1;
      aspect-ratio: 3/4;
      max-height: 70vh;
    }
    .hero-img-acc { width: 38%; bottom: -20px; left: -16px; }
    .hero-tag { width: 100px; height: 100px; font-size: 15px; }
  }

  /* ─── About / Laurence ───────────────── */
  .about {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(40px, 6vw, 100px);
    align-items: center;
  }
  .about-img {
    aspect-ratio: 3/4;
    border-radius: 14px 14px 220px 220px;
    overflow: hidden;
    position: relative;
  }
  .about-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 22%;
    display: block;
  }
  .about-img::after {
    content: "";
    position: absolute;
    bottom: -30px; right: -30px;
    width: 90px; height: 90px;
    border-radius: 50%;
    background: var(--sage);
    box-shadow: -14px -14px 0 var(--cream);
  }
  .about h2 .sig {
    font-style: italic;
    color: var(--sage-deep);
  }
  .about-quote {
    font-family: var(--serif);
    font-style: italic;
    font-size: clamp(1.3rem, 2vw, 1.65rem);
    line-height: 1.4;
    color: var(--taupe-deep);
    border-left: 2px solid var(--sage);
    padding-left: 22px;
    margin: 30px 0;
  }
  .signature {
    font-family: "Cormorant Garamond", cursive;
    font-style: italic;
    font-size: 32px;
    color: var(--sage-deep);
    margin-top: 28px;
    transform: rotate(-3deg);
    display: inline-block;
  }

  @media (max-width: 880px) {
    .about { grid-template-columns: 1fr; }
  }

  /* ─── Eden Studio ────────────────────── */
  .eden {
    background: var(--cream-2);
  }
  .eden-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 70px;
  }
  .eden-head .eyebrow { justify-content: center; }
  .eden-head .eyebrow::before, .eden-head .eyebrow::after {
    content: ""; width: 28px; height: 1px; background: var(--taupe);
  }
  .gallery {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 130px;
    gap: 14px;
    margin-bottom: 60px;
  }
  .gallery .ph { border-radius: 10px; }
  .gallery .gimg { border-radius: 10px; overflow: hidden; position: relative; }
  .gallery .gimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .g1 { grid-column: span 7; grid-row: span 3; }
  .g2 { grid-column: span 5; grid-row: span 2; }
  .g3 { grid-column: span 3; grid-row: span 1; }
  .g4 { grid-column: span 5; grid-row: span 1; }
  .g5 { grid-column: span 5; grid-row: span 2; }
  .g6 { grid-column: span 7; grid-row: span 2; }
  .g7 { grid-column: span 4; grid-row: span 3; }
  .g8 { grid-column: span 6; grid-row: span 3; }
  .g9 { grid-column: span 6; grid-row: span 3; }

  @media (max-width: 768px) {
    .gallery {
      grid-template-columns: repeat(4, 1fr);
      grid-auto-rows: 90px;
    }
    .g1 { grid-column: span 4; grid-row: span 3; }
    .g2 { grid-column: span 4; grid-row: span 2; }
    .g4 { grid-column: span 4; grid-row: span 2; }
    .g5, .g6 { grid-column: span 4; grid-row: span 2; }
    .g7, .g8, .g9 { grid-column: span 4; grid-row: span 3; }
  }

  .video-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0 0 60px}
  .video-strip figure{margin:0}
  .video-strip video{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:12px;background:var(--ink);display:block}
  .video-strip figcaption{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe);margin-top:10px;text-align:center}
  .eden-body {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: clamp(40px, 6vw, 90px);
    align-items: start;
  }
  .features-list {
    display: grid;
    gap: 18px;
    margin: 30px 0;
    list-style: none;
    padding: 0;
  }
  .features-list li {
    display: flex; gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(168, 152, 128, .25);
    color: var(--taupe-deep);
  }
  .features-list li::before {
    content: "+";
    font-family: var(--serif);
    font-size: 24px;
    color: var(--sage-deep);
    line-height: .9;
    font-weight: 400;
  }
  .price-card {
    background: var(--cream);
    padding: 36px 32px;
    border-radius: 18px;
    border: 1px solid rgba(168, 152, 128, .25);
  }
  .price-card .row {
    display: flex; justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px dashed rgba(168, 152, 128, .35);
  }
  .price-card .row:last-of-type { border-bottom: 0; }
  .price-card .row span:first-child { color: var(--taupe-deep); }
  .price-card .row span:last-child { font-family: var(--serif); font-size: 22px; color: var(--ink); white-space: nowrap; flex: none; }
  .degress { margin-top: 22px; padding: 20px 20px 18px; border-radius: 14px; background: var(--sage-2); }
  .degress-head { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--taupe-deep); margin-bottom: 12px; }
  .degress-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; border-top: 1px solid rgba(107,94,77,.18); font-size: 14px; color: var(--taupe-deep); }
  .degress-row b { font-family: var(--serif); font-size: 18px; font-weight: 500; color: var(--ink); white-space: nowrap; }
  .degress-note { font-family: var(--serif); font-style: italic; font-size: 14px; line-height: 1.4; color: var(--taupe-deep); margin: 14px 0 0; }
  .price-card .note {
    font-size: 12px; color: var(--taupe);
    margin-top: 16px; line-height: 1.5;
  }

  @media (max-width: 880px) {
    .video-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0 0 60px}
  .video-strip figure{margin:0}
  .video-strip video{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:12px;background:var(--ink);display:block}
  .video-strip figcaption{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe);margin-top:10px;text-align:center}
  .eden-body { grid-template-columns: 1fr; }
  }

  /* ─── Chambre Côté Océan ─────────────── */
  .room{background:var(--cream)}
  .room-head{max-width:760px;margin:0 auto 60px;text-align:center}
  .room-head .eyebrow{justify-content:center}
  .room-head .eyebrow::before,.room-head .eyebrow::after{content:"";width:28px;height:1px;background:var(--taupe)}
  .room-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,4vw,60px);align-items:start}
  .room-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:12px}
  .room-mosaic .gimg{border-radius:12px;overflow:hidden}
  .room-mosaic .gimg img{width:100%;height:100%;object-fit:cover;display:block}
  .room-mosaic .gimg:first-child{grid-column:span 2;grid-row:span 2}
  .room-mosaic .gimg:nth-child(4){grid-column:span 2;grid-row:span 2}
  .room-card{background:var(--cream-2);border:1px solid rgba(168,152,128,.25);border-radius:18px;padding:34px 32px}
  .room-specs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0;list-style:none}
  .room-specs li{white-space:nowrap;font-size:12px;letter-spacing:.06em;color:var(--taupe-deep);background:var(--cream);border:1px solid rgba(168,152,128,.3);border-radius:999px;padding:7px 14px}
  .room-card .lead{color:var(--taupe-deep);font-size:15px}
  .room-opts{margin:22px 0 0;padding:20px 0 0;border-top:1px solid rgba(168,152,128,.3)}
  .room-opts h4{font-family:var(--serif);font-size:18px;color:var(--taupe-deep);margin:0 0 8px;font-weight:500}
  .room-opts p{font-size:14px;color:var(--taupe-deep);margin:0}
  .room-opts .row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;border-bottom:1px dashed rgba(168,152,128,.35)}
  .room-opts .row:last-of-type{border-bottom:0}
  .room-opts .row span:first-child{color:var(--taupe-deep);font-size:14px}
  .room-opts .row span:last-child{font-family:var(--serif);font-size:20px;color:var(--ink);white-space:nowrap;flex:none}
  .room-opts .note{font-size:12px;color:var(--taupe);margin-top:14px;line-height:1.5}
  @media (max-width:880px){.room-grid{grid-template-columns:1fr}.room-mosaic{grid-auto-rows:120px}}

  /* ─── Activities (bento) ─────────────── */
  .acts {
    background: var(--cream);
  }
  .acts-head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: end;
    margin-bottom: 60px;
  }
  .acts-head p { max-width: 32em; color: var(--taupe-deep); }

  .bento {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: minmax(180px, auto);
    gap: 18px;
  }
  .act-card {
    border-radius: 18px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    background: var(--cream-2);
    transition: transform .4s ease, box-shadow .5s ease;
    display: flex;
    flex-direction: column;
    min-height: 320px;
  }
  .act-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 50px -28px rgba(143, 168, 139, .55), 0 0 0 1px rgba(181, 201, 177, .5);
  }
  .act-card .ph {
    border-radius: 0;
    flex: 1;
    min-height: 220px;
  }
  .act-card .act-media {
    flex: 1;
    min-height: 220px;
    overflow: hidden;
    position: relative;
  }
  .act-card .act-media img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .8s ease;
  }
  .act-card:hover .act-media img { transform: scale(1.04); }
  .act-info {
    padding: 22px 24px 26px;
    background: var(--cream);
  }
  .act-info h3 { margin-bottom: 6px; }
  .act-info p {
    font-size: 14px;
    color: var(--taupe-deep);
    margin: 0;
  }
  .act-icon {
    position: absolute;
    top: 18px; left: 18px;
    width: 46px; height: 46px;
    border-radius: 50%;
    background: rgba(250, 247, 242, .9);
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    backdrop-filter: blur(8px);
    color: var(--taupe-deep);
  }
  .act-price {
    position: absolute;
    top: 18px; right: 18px;
    background: var(--ink);
    color: var(--cream);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 999px;
  }

  .act-velo  { grid-column: span 3; }
  .act-paddle{ grid-column: span 3; }
  .bento { align-items: stretch; }
  .act-velo, .act-paddle { min-height: 0; }
  @media (min-width: 881px) { .act-borne { height: 400px; } .act-borne .act-media { min-height: 0; } }
  .act-borne .act-info { justify-content: center; }
  .act-borne { grid-column: span 6; flex-direction: row-reverse; min-height: 280px; }
  .act-borne .act-media { flex: 1.2; min-height: 100%; }
  .act-borne .act-info { flex: 1; display: flex; flex-direction: column; justify-content: center; }
  .act-info .post-link { margin-top: 14px; align-self: flex-start; }
  .act-info { display: flex; flex-direction: column; align-items: flex-start; }
  .act-topo .act-price { left: 18px; right: auto; }
  .act-borne .act-price { right: 18px; left: auto; }
  @media (max-width: 880px) { .act-borne .act-price { left: 18px; right: auto; } }
  .boat-tarifs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,150px), 1fr)); gap: 14px; margin: 26px 0 20px; }
  .boat-tarifs div { background: rgba(245,239,230,.07); border: 1px solid rgba(245,239,230,.14); border-radius: 14px; padding: 16px 18px; }
  .boat-tarifs span { display: block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--taupe-2); margin-bottom: 6px; }
  .boat-tarifs b { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--cream); }
  .boat-tarifs em { display: block; font-family: var(--serif); font-size: 13px; color: var(--sage); margin-top: 4px; }
  .opts { background: var(--cream-2); }
  .opts-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 50px; }
  .opts-head p { max-width: 34em; color: var(--taupe-deep); margin: 0; }
  .opts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 20px; align-items: start; }
  .opt-card { background: var(--cream); border: 1px solid rgba(168,152,128,.22); border-radius: 18px; padding: 28px 26px 24px; }
  .opt-card h3 { font-size: 1.25rem; }
  .opt-sub { font-family: var(--serif); font-style: italic; color: var(--taupe); margin: 2px 0 18px; font-size: 15px; }
  .opt-img { margin: 0 0 18px; border-radius: 12px; overflow: hidden; aspect-ratio: 16/10; }
  .opt-img img { width: 100%; height: 100%; object-fit: cover; }
  .opt-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 0; border-top: 1px dashed rgba(168,152,128,.4); font-size: 14px; color: var(--taupe-deep); }
  .opt-row b { font-family: var(--serif); font-size: 19px; font-weight: 500; color: var(--ink); white-space: nowrap; }
  .opts-foot { margin: 40px 0 0; text-align: center; color: var(--taupe-deep); font-size: 15px; }
  .opts-foot a { border-bottom: 1px solid var(--taupe); padding-bottom: 2px; }
  .opts-foot a:hover { color: var(--sage-deep); border-color: var(--sage-deep); }
  @media (max-width: 880px) { .opts-head { grid-template-columns: 1fr; } }
  .act-bateau{ grid-column: span 3; }
  .act-topo  { grid-column: span 6; flex-direction: row; min-height: 280px; }
  .act-topo .ph, .act-topo .act-media { flex: 1.2; min-height: 100%; }
  .act-topo .act-info { flex: 1; display: flex; flex-direction: column; justify-content: center; }

  @media (max-width: 880px) {
    .acts-head { grid-template-columns: 1fr; }
    .bento { grid-template-columns: 1fr; }
    .act-velo, .act-paddle, .act-topo, .act-borne { grid-column: span 1; }
    .act-topo, .act-borne { flex-direction: column; }
    .act-topo .ph, .act-topo .act-media { min-height: 260px; }
  }

  /* ─── Balade bateau ─────────────────── */
  .boat{background:var(--ink);color:rgba(245,239,230,.78);overflow:hidden}
  .boat h2,.boat h3{color:var(--cream)}
  .boat .eyebrow{color:var(--gold)}
  .boat .eyebrow::before{background:var(--gold)}
  .boat-hero{position:relative;border-radius:18px;overflow:hidden;margin-bottom:clamp(28px,4vw,48px)}
  .boat-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;display:block}
  .boat-hero figcaption{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,4vw,44px);background:linear-gradient(0deg,rgba(24,21,18,.78),rgba(24,21,18,0));font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2.2vw,1.9rem);color:var(--cream);line-height:1.25}
  .boat-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(34px,5vw,72px);align-items:center}
  .boat-lead{font-size:15.5px;line-height:1.7;max-width:34em}
  .boat-list{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0}
  .boat-list li{display:flex;gap:16px;align-items:baseline;padding:15px 0;border-top:1px solid rgba(245,239,230,.14);color:var(--cream);font-family:var(--serif);font-size:20px}
  .boat-list li:last-child{border-bottom:1px solid rgba(245,239,230,.14)}
  .boat-list span{font-family:var(--sans);font-size:11px;letter-spacing:.25em;color:var(--gold);min-width:26px}
  .boat-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .boat-mosaic div{border-radius:14px;overflow:hidden}
  .boat-mosaic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
  .boat-mosaic div:hover img{transform:scale(1.05)}
  .boat-mosaic div:first-child{grid-column:span 2;aspect-ratio:16/9}
  .boat-mosaic div:not(:first-child){aspect-ratio:3/4}
  .boat-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
  .boat-note{font-size:12px;color:var(--taupe-2);margin:18px 0 0}
  @media (max-width:880px){.boat-grid{grid-template-columns:1fr}.boat-hero img{aspect-ratio:4/3}}

  /* ─── Wellness ───────────────────────── */
  .wellness {
    background: var(--sage-2);
    color: var(--ink);
    position: relative;
    overflow: hidden;
  }
  .wellness::before {
    content: "";
    position: absolute;
    top: -200px; left: -200px;
    width: 500px; height: 500px;
    background: var(--sage);
    border-radius: 50%;
    opacity: .35;
    filter: blur(60px);
  }
  .wellness h2, .wellness h3 { color: var(--taupe-deep); }
  .wellness .container { position: relative; z-index: 2; }

  .wellness-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 5vw, 80px);
    align-items: center;
  }
  .wellness-img {
    aspect-ratio: 4/5;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 30px 60px -30px rgba(46, 42, 36, .35);
  }
  .wellness-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .programs {
    display: grid;
    gap: 16px;
    margin-top: 30px;
  }
  .program {
    background: var(--cream);
    border-radius: 14px;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    transition: transform .3s ease;
  }
  .program:hover { transform: translateX(6px); }
  .program-num {
    font-family: var(--serif);
    font-style: italic;
    font-size: 28px;
    color: var(--sage-deep);
  }
  .program h4 {
    font-family: var(--serif);
    font-size: 20px;
    color: var(--taupe-deep);
    margin: 0 0 4px;
    font-weight: 500;
  }
  .program p { margin: 0; font-size: 13.5px; color: var(--taupe-deep); }
  .program-time {
    font-size: 12px;
    color: var(--taupe);
    letter-spacing: .1em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  @media (max-width: 880px) {
    .wellness-grid { grid-template-columns: 1fr; }
    .program { grid-template-columns: auto 1fr; }
    .program-time { grid-column: 2; font-size: 11px; }
  }

  /* ─── Testimonials ───────────────────── */
  .testi {
    background: var(--cream);
    text-align: center;
  }
  .testi-track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 60px;
    text-align: left;
  }
  .testi-card {
    background: var(--cream-2);
    padding: 36px 32px;
    border-radius: 16px;
    position: relative;
    border: 1px solid rgba(168, 152, 128, .15);
  }
  .testi-card::before {
    content: "“";
    font-family: var(--serif);
    font-size: 90px;
    color: var(--sage);
    position: absolute;
    top: 0; left: 18px;
    line-height: 1;
    opacity: .5;
  }
  .testi-card p {
    font-family: var(--serif);
    font-style: italic;
    font-size: 18px;
    line-height: 1.5;
    color: var(--taupe-deep);
    margin: 16px 0 24px;
    position: relative;
  }
  .testi-src { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--taupe); margin: 14px 0 0; }
  .testi-track { align-items: start; }
  .testi-card p { font-size: 16.5px; }
  .testi-stars {
    color: var(--gold);
    font-size: 14px;
    letter-spacing: 2px;
    margin-bottom: 12px;
  }
  .testi-name {
    font-size: 14px;
    color: var(--ink);
    font-weight: 500;
  }
  .testi-meta {
    font-size: 12px;
    color: var(--taupe);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 2px;
  }

  @media (max-width: 880px) {
    .testi-track { grid-template-columns: 1fr; }
  }

  /* ─── Blog ───────────────────────────── */
  .blog {
    background: var(--cream-2);
  }
  .blog-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 50px;
  }
  .blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
    gap: 28px;
  }
  .post {
    cursor: pointer;
    transition: transform .35s ease;
  }
  .post:hover { transform: translateY(-4px); }
  .post a{display:block;color:inherit}
  .post .pimg{aspect-ratio:4/3;border-radius:12px;margin-bottom:18px;overflow:hidden}
  .post .pimg img,.post .pimg video{width:100%;height:100%;object-fit:cover;display:block}
  .post .pimg.zoom{background:url(assets/dahl-recette.png) 7% 47%/300% auto no-repeat var(--cream-2)}
  .post .ph {
    aspect-ratio: 4/3;
    border-radius: 12px;
    margin-bottom: 18px;
  }
  .post-cat {
    font-size: 11px;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--sage-deep);
    margin-bottom: 10px;
  }
  .post h3 {
    font-size: 22px;
    margin-bottom: 8px;
  }
  .post p {
    font-size: 14px;
    color: var(--taupe-deep);
    margin: 0 0 12px;
  }
  .post-link {
    font-size: 13px;
    color: var(--taupe-deep);
    border-bottom: 1px solid var(--taupe);
    padding-bottom: 2px;
    transition: color .25s, border-color .25s;
  }
  .post:hover .post-link { color: var(--sage-deep); border-color: var(--sage-deep); }

  @media (max-width: 880px) {
    .blog-grid { grid-template-columns: 1fr; }
  }

  /* ─── Contact ────────────────────────── */
  .contact {
    background: var(--ink);
    color: var(--cream-2);
    overflow: hidden;
    position: relative;
  }
  .contact h1, .contact h2 { color: var(--cream); }
  .contact h1 { font-size: clamp(2rem, 4.4vw, 3.4rem); line-height: 1.08; }
  .contact .eyebrow { color: var(--sage); }
  .contact .eyebrow::before { background: var(--sage); }
  .contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px, 6vw, 100px);
    align-items: start;
  }
  .contact-info p { color: rgba(245, 239, 230, .75); max-width: 28em; }
  .contact-direct {
    display: grid; gap: 18px;
    margin-top: 36px;
  }
  .contact-direct a {
    display: flex; gap: 16px;
    align-items: center;
    padding: 18px 0;
    border-top: 1px solid rgba(245, 239, 230, .12);
    transition: padding-left .3s ease, color .3s ease;
  }
  .contact-direct a:hover { padding-left: 8px; color: var(--sage); }
  .contact-direct .lbl {
    font-size: 11px; letter-spacing: .25em;
    text-transform: uppercase; color: var(--taupe-2);
    width: 100px;
  }
  .contact-direct .val {
    font-family: var(--serif);
    font-size: 22px;
    flex: 1;
  }
  .contact-direct .arr {
    color: var(--sage); font-size: 22px;
    transition: transform .3s ease;
  }
  .contact-direct a:hover .arr { transform: translateX(6px); }
  .insta-card{display:flex;gap:20px;align-items:center;margin-top:34px;padding:16px;border-radius:16px;border:1px solid rgba(245,239,230,.14);background:rgba(245,239,230,.04);transition:background .3s ease,transform .3s ease}
  .insta-card:hover{background:rgba(245,239,230,.08);transform:translateY(-2px)}
  .insta-card img{width:104px;flex:none;border-radius:10px;object-fit:cover;aspect-ratio:9/16}
  .insta-txt{display:flex;flex-direction:column;gap:5px}
  .insta-txt .lbl{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--taupe-2)}
  .insta-txt .val{font-family:var(--serif);font-size:17px;color:var(--cream);line-height:1.2;word-break:normal;overflow-wrap:anywhere}
  .insta-txt .sub{font-size:13px;color:rgba(245,239,230,.6)}

  /* form */
  form {
    background: rgba(245, 239, 230, .04);
    border: 1px solid rgba(245, 239, 230, .12);
    padding: 38px 34px;
    border-radius: 18px;
  }
  .field {
    display: block;
    margin-bottom: 22px;
  }
  .field label {
    display: block;
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--taupe-2);
    margin-bottom: 8px;
  }
  .field input,
  .field textarea {
    width: 100%;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(245, 239, 230, .25);
    color: var(--cream);
    padding: 8px 0;
    font-family: var(--sans);
    font-size: 15px;
    transition: border-color .3s ease;
  }
  .field input:focus,
  .field textarea:focus {
    outline: none;
    border-color: var(--sage);
  }
  .field textarea { min-height: 90px; resize: vertical; }
  form .btn { margin-top: 8px; }
  .field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:18px}
  .field select{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(245,239,230,.25);color:var(--cream);padding:8px 0;font-family:var(--sans);font-size:15px}
  .field select option{color:var(--ink)}
  .field select:focus{outline:none;border-color:var(--sage)}
  .field input[type="date"]{color-scheme:dark}
  .opt-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
  .opt-chips label{cursor:pointer}
  .opt-chips input{position:absolute;width:1px;height:1px;min-width:0;opacity:0;pointer-events:none;clip-path:inset(50%)}
  .opt-chips span{display:inline-block;white-space:nowrap;font-size:12.5px;letter-spacing:.04em;color:rgba(245,239,230,.8);border:1px solid rgba(245,239,230,.25);border-radius:999px;padding:8px 14px;transition:background .25s,color .25s,border-color .25s}
  .opt-chips input:checked+span{background:var(--sage);border-color:var(--sage);color:var(--ink)}
  .opt-chips input:focus-visible+span{border-color:var(--sage)}
  .form-alt{font-size:12.5px;color:rgba(245,239,230,.6);text-align:center;margin-top:16px}
  .form-alt a{color:var(--sage);border-bottom:1px solid rgba(181,201,177,.4)}
  .form-msg a{color:var(--sage);border-bottom:1px solid rgba(181,201,177,.45)}
  .form-msg{font-size:13.5px;color:var(--sage);background:rgba(181,201,177,.12);border:1px solid rgba(181,201,177,.35);border-radius:12px;padding:14px 16px;margin:18px 0 0}

  @media (max-width: 880px) {
    .contact-grid { grid-template-columns: 1fr; }
  }

  /* ─── Footer ─────────────────────────── */
  footer {
    background: var(--ink);
    color: var(--taupe-2);
    padding: 50px var(--pad) 30px;
    border-top: 1px solid rgba(245, 239, 230, .08);
  }
  .footer-row {
    max-width: var(--maxw);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 12px;
    letter-spacing: .08em;
  }
  .footer-row .logo { color: var(--cream); font-size: 20px; }
  .footer-row .logo small { color: var(--taupe-2); }
  .socials { display: flex; gap: 18px; }
  .socials a {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(245, 239, 230, .2);
    display: flex; align-items: center; justify-content: center;
    transition: background .3s ease, color .3s ease, border-color .3s ease;
  }
  .socials a:hover { background: var(--sage); color: var(--ink); border-color: var(--sage); }
  .legal {
    text-align: center; font-size: 11px;
    color: var(--taupe);
    margin-top: 30px;
    opacity: .7;
  }
  .legal a:hover { color: var(--sage); }

  /* ─── WhatsApp float ─────────────────── */
  .wa-float {
    position: fixed;
    bottom: 24px; right: 24px;
    width: 58px; height: 58px;
    border-radius: 50%;
    background: #25D366;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 12px 30px -12px rgba(37, 211, 102, .8);
    z-index: 90;
    transition: transform .3s ease;
  }
  .wa-float:hover { transform: scale(1.08); }
  .wa-float svg { width: 28px; height: 28px; fill: #fff; }

  /* ─── Reveal animation ──────────────── */
  .reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .9s ease, transform .9s ease;
  }
  .reveal.in { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; }
    .hero-tag { animation: none; }
  }

  /* ─── Pages ──────────────────────────── */
  body.subpage section:first-of-type { padding-top: clamp(130px, 15vw, 190px); }
  body.subpage .page-intro + section { padding-top: clamp(20px, 3vw, 40px); }
  .page-intro { padding: clamp(130px, 15vw, 180px) var(--pad) clamp(30px, 4vw, 50px); }
  .page-intro .container { max-width: var(--maxw); margin: 0 auto; }
  .page-intro h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); }
  .page-intro p { color: var(--taupe-deep); max-width: 34em; margin-top: 18px; font-size: 1.05rem; }
  .videos { background: var(--cream); }
  @media (min-width: 881px) {
    .eden-body { grid-template-columns: 1.55fr 1fr; }
    .eden-body .features-list { columns: 2; column-gap: 36px; display: block; }
    .eden-body .features-list li { break-inside: avoid; margin-bottom: 0; }
  }
  @media (min-width: 881px) {
    .eden-body .price-card { position: sticky; top: 100px; }
    .room-grid .room-card { position: sticky; top: 100px; }
    .room-mosaic { grid-auto-rows: 218px; }
  }
  .eden-body .room-opts { margin-top: 30px; }
  .room-col { display: grid; gap: 26px; align-content: start; }
  .room-col .room-opts { margin-top: 0; }
  .chips { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
  .chips a { display: inline-flex; align-items: center; gap: 7px; padding: 10px 16px; border-radius: 999px; border: 1px solid rgba(168,152,128,.45); font-size: 13.5px; color: var(--taupe-deep); background: transparent; transition: background .25s ease, color .25s ease, border-color .25s ease; min-height: 44px; }
  .chips a::after { content: "→"; font-size: 14px; }
  .chips a:hover { background: var(--taupe-deep); color: var(--cream); border-color: var(--taupe-deep); }
  .chips-tight { margin-top: 14px; }
  .chips-tight a { padding: 8px 13px; font-size: 12.5px; min-height: 40px; }
  .reassure { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid rgba(168,152,128,.3); display: grid; gap: 9px; }
  .reassure li { display: flex; gap: 10px; align-items: baseline; font-size: 13.5px; color: var(--taupe-deep); }
  .reassure li::before { content: "✓"; color: var(--sage-deep); font-size: 13px; }
  .jump { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; margin-top: 30px; max-width: 620px; }
  .jump a { display: flex; flex-direction: column; gap: 3px; padding: 16px 20px; border-radius: 14px; background: var(--cream-2); border: 1px solid rgba(168,152,128,.25); transition: background .3s ease, transform .3s ease; }
  .jump a:hover { background: var(--sage-2); transform: translateY(-2px); }
  .jump b { font-family: var(--serif); font-size: 1.2rem; font-weight: 500; color: var(--taupe-deep); }
  .jump span { font-size: 12.5px; color: var(--taupe); letter-spacing: .04em; }
  .nav a[aria-current="page"] { color: var(--ink); }
  .nav a[aria-current="page"]::after { right: 0; }
  .home-nav { padding: clamp(40px, 6vw, 70px) var(--pad) 0; }
  .home-nav .container { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; }
  .home-btn { display: flex; flex-direction: column; gap: 6px; padding: 24px 26px; border-radius: 16px; background: var(--cream-2); border: 1px solid rgba(168,152,128,.22); transition: transform .3s ease, box-shadow .4s ease, background .3s ease; }
  .home-btn:hover { transform: translateY(-4px); background: var(--sage-2); box-shadow: 0 24px 40px -28px rgba(46,42,36,.45); }
  .home-btn b { font-family: var(--serif); font-size: 1.35rem; font-weight: 500; color: var(--taupe-deep); }
  .home-btn span { font-size: 13.5px; color: var(--taupe); line-height: 1.4; }
  .home-rooms { padding-top: clamp(50px, 7vw, 80px); }
  .home-rooms .container { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 26px; }
  .room-preview { background: var(--cream); border: 1px solid rgba(168,152,128,.22); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; transition: transform .35s ease, box-shadow .45s ease; }
  .room-preview:hover { transform: translateY(-5px); box-shadow: 0 30px 55px -32px rgba(46,42,36,.45); }
  .room-preview figure { margin: 0; aspect-ratio: 4/3; overflow: hidden; }
  .room-preview img { width: 100%; height: 100%; object-fit: cover; }
  .room-preview .rp-body { padding: 26px 28px 30px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
  .room-preview .rp-kicker { font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: var(--sage-deep); }
  .room-preview h3 { font-size: 1.6rem; }
  .room-preview p { color: var(--taupe-deep); font-size: 14.5px; margin: 0; }
  .room-preview .rp-price { font-family: var(--serif); font-size: 1.1rem; color: var(--ink); margin-top: auto; padding-top: 12px; }
  .room-preview .rp-price small { font-family: var(--sans); font-size: 12px; color: var(--taupe); letter-spacing: .06em; }
  .room-preview .btn { align-self: flex-start; margin-top: 6px; }

  /* ─── Mobile ─────────────────────────── */
  html { overflow-x: clip; }
  @media (max-width: 880px) {
    .nav-right a, .mobile-menu a, .nav-left a { min-height: 44px; display: flex; align-items: center; }
    .nav-right { gap: 12px; }
    .socials a { width: 44px; height: 44px; }
    .btn { min-height: 48px; padding: 15px 26px; }
    .wa-float { width: 54px; height: 54px; bottom: 18px; right: 18px; }
  }
  @media (max-width: 640px) {
    :root { --pad: 18px; }
    .hero { padding-top: 96px; padding-bottom: 40px; gap: 26px; }
    .hero-visual { max-height: 58vh; aspect-ratio: 4/5; }
    .hero-img-main { border-radius: 150px 150px 14px 14px; }
    .hero-img-acc { width: 36%; left: -8px; bottom: -14px; border-width: 5px; }
    .hero-tag { width: 92px; height: 92px; font-size: 14px; top: -6px; right: -4px; }
    .hero p.lede { margin: 20px 0 26px; }
    .hero .cta-row { gap: 10px; }
    .hero .cta-row .btn { width: 100%; justify-content: center; }
    .hero-meta { gap: 10px 20px; font-size: 11.5px; }
    .eyebrow { font-size: 12px; letter-spacing: .22em; }
    .act-price, .rp-kicker, .post-cat, .degress-head, .opt-sub, .testi-meta, .program-time,
    .boat-tarifs span, .price-card h3 span, .room-card h4 span, figcaption { font-size: 12.5px; }
    .hero-meta { font-size: 12.5px; }
    .logo small, .footer-brand .logo small { font-size: 10.5px; letter-spacing: .22em; }
    .legal { font-size: 12px; line-height: 1.8; }
    .gallery { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 12px; }
    .gallery > * { grid-column: 1 / -1 !important; grid-row: auto !important; aspect-ratio: 4/3; min-height: 0; }
    .room-mosaic { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 12px; }
    .room-mosaic > * { grid-column: 1 / -1 !important; grid-row: auto !important; aspect-ratio: 4/3; }
    .contact-grid, .room-grid, .eden-body, .wellness-grid, .about, .acts-head, .opts-head, .blog-grid, .testi-track, .bento, .opts-grid, .home-nav .container, .home-rooms .container { grid-template-columns: minmax(0, 1fr); }
    form { padding: 26px 20px; }
    .price-card, .opt-card { padding: 26px 22px; }
    .act-info, .rp-body { padding: 22px 20px 24px; }
    .boat-tarifs { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .boat-tarifs div { padding: 14px 16px; }
    .page-intro { padding-top: 110px; }
    .home-btn { padding: 20px 22px; }
    .room-preview .btn, .act-info .btn { width: 100%; justify-content: center; }
    .testi-card { padding: 30px 22px; }
    .degress { padding: 18px 16px 16px; }
    .opt-row, .degress-row { font-size: 13.5px; }
  }
  @media (max-width: 380px) {
    h1 { font-size: 2.3rem; }
    .hero-tag { display: none; }
  }
