@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Nunito+Sans:wght@400;500;600&display=swap');

:root{
  /* palette tirée du logo */
  --cream: #F9F1EA;      /* fond du logo */
  --sand: #F1E5D3;       /* sections alternées */
  --paper: #FFFCF7;      /* cartes */
  --olive: #758148;      /* vert du logo */
  --olive-deep: #4F5B2C; /* texte / titres */
  --orange: #F26B13;     /* orange du logo */
  --orange-deep: #C4540E;/* orange lisible sur crème */
  --rose: #C7221D;       /* rose du logo, touches ponctuelles */
  --ink: #33372A;
  --line: rgba(79,91,44,0.20);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Nunito Sans', system-ui, sans-serif;
  --radius: 18px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--font-body); font-size:17px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; color:var(--olive-deep); margin:0; letter-spacing:0; }
h1{ line-height:1.05; }

/* ---------- header ---------- */
header.site{
  position:sticky; top:0; z-index:100;
  background:rgba(249,241,234,0.94); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding:12px 32px; max-width:1180px; margin:0 auto; }
.nav .brand{
  font-family:var(--font-display); font-size:24px; font-weight:600; color:var(--olive-deep);
  text-decoration:none; display:flex; align-items:center; gap:14px;
}
.logo-mark{ width:60px; height:60px; border-radius:50%; display:block; object-fit:cover; }
.logo-mark-lg{ width:72px; height:72px; }
.nav ul{ list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.nav a.link{
  text-decoration:none; color:var(--ink); font-size:15.5px; font-weight:500;
  padding-bottom:4px; border-bottom:2px solid transparent; transition:border-color .2s, color .2s;
}
.nav a.link:hover{ color:var(--orange-deep); }
.nav a.link.active{ color:var(--olive-deep); border-color:var(--orange); }
.nav-toggle{ display:none; background:none; border:none; color:var(--olive-deep); font-size:28px; cursor:pointer; }
@media (max-width:780px){
  .nav .brand{ font-size:20px; }
  .logo-mark{ width:48px; height:48px; }
  .nav ul{
    position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0;
    background:var(--cream); border-bottom:1px solid var(--line);
    max-height:0; overflow:hidden; transition:max-height .3s ease;
  }
  .nav ul.open{ max-height:340px; }
  .nav ul li{ border-top:1px solid var(--line); }
  .nav ul li a{ display:block; padding:16px 32px; }
  .nav-toggle{ display:block; }
}

/* ---------- hero ---------- */
.hero{ position:relative; padding:90px 0 80px; overflow:hidden; background:var(--cream); }
.hero .wrap{ position:relative; z-index:2; }
.hero-grid{ display:grid; grid-template-columns:1.25fr 0.75fr; gap:50px; align-items:center; }
.hero-logo{ width:100%; max-width:380px; margin:0 auto; border-radius:50%; box-shadow:0 18px 50px rgba(117,129,72,0.22); }
@media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } .hero-logo{ max-width:240px; order:-1; } }
.hero-eyebrow{ font-size:15px; color:var(--orange-deep); font-weight:600; margin:0 0 16px; }
.hero h1{ font-size:clamp(42px,6vw,74px); max-width:15ch; }
.hero p.lede{ max-width:52ch; margin-top:24px; font-size:19px; color:var(--ink); opacity:.9; }
.hero .terrain{ position:absolute; right:-6%; top:-10%; width:60%; height:130%; opacity:.55; z-index:1; }

.cta-row{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }
.btn{
  display:inline-block; padding:14px 30px; border-radius:999px;
  font-family:var(--font-body); font-size:15.5px; font-weight:600; text-decoration:none;
  border:1.5px solid var(--orange-deep); transition:background .2s, color .2s, border-color .2s;
}
.btn.solid{ background:var(--orange-deep); color:#fff; }
.btn.solid:hover{ background:#A7440A; border-color:#A7440A; }
.btn.ghost{ color:var(--olive-deep); border-color:var(--olive); }
.btn.ghost:hover{ background:var(--olive); color:#fff; }

.hero-image{ margin-top:48px; border-radius:var(--radius); overflow:hidden; max-height:460px; }
.hero-image img{ width:100%; height:100%; object-fit:cover; }
.hero-image.contain{ background:var(--sand); display:flex; align-items:center; justify-content:center; height:480px; }
.hero-image.contain img{ width:auto; max-width:100%; height:100%; object-fit:contain; }
@media (max-width:600px){ .hero-image.contain{ height:360px; } }

/* ---------- sections ---------- */
section{ padding:96px 0; }
.section-dark{ background:var(--cream); }
.section-light{ background:var(--sand); }
.kicker{ font-size:14.5px; color:var(--orange-deep); font-weight:600; margin-bottom:12px; }
.section-head{ max-width:640px; margin-bottom:52px; }
.section-head h2{ font-size:clamp(32px,4vw,46px); line-height:1.1; }
.section-head p{ margin-top:16px; max-width:54ch; opacity:.88; }

.manifesto{ display:grid; grid-template-columns:1fr 1.3fr; gap:64px; align-items:start; }
.manifesto blockquote{ margin:0; font-family:var(--font-display); font-style:italic; font-size:clamp(30px,3.6vw,42px); line-height:1.2; color:var(--olive-deep); }
.manifesto .signature{ margin-top:20px; font-size:14.5px; opacity:.75; }
.manifesto-photo{ margin-top:28px; width:100%; max-width:340px; aspect-ratio:4/5; object-fit:cover; object-position:50% 40%; border-radius:var(--radius); }
.gallery{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.gallery img{ width:100%; height:100%; max-height:520px; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); }
.gallery img:first-child{ object-position:50% 45%; }
.gallery img:last-child{ object-position:70% 50%; }
@media (max-width:700px){ .gallery{ grid-template-columns:1fr; } }
.gallery-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; }
.gallery-3 img{ width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); }
@media (max-width:700px){ .gallery-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:460px){ .gallery-3{ grid-template-columns:1fr; } }
.manifesto .body p{ margin:0 0 18px; }
@media (max-width:860px){ .manifesto{ grid-template-columns:1fr; gap:30px; } }

/* destinations */
.dest-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.dest-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  text-decoration:none; color:var(--ink); position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .25s, box-shadow .25s;
}
.dest-card:hover{ transform:translateY(-4px); box-shadow:0 16px 36px rgba(117,129,72,0.18); }
.dest-card .dest-photo{ aspect-ratio:16/10; overflow:hidden; position:relative; }
.dest-card .dest-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.dest-card .dest-photo.placeholder{ background:var(--sand); display:flex; align-items:center; justify-content:center; }
.dest-card .dest-photo.placeholder .terrain-mark{ width:76px; height:76px; opacity:.55; }
.dest-card .dest-body{ padding:26px 28px 30px; flex:1; display:flex; flex-direction:column; }
.dest-card .region{ font-size:13.5px; color:var(--orange-deep); font-weight:600; margin:0 0 8px; }
.dest-card h3{ font-size:34px; margin-bottom:10px; }
.dest-card p{ font-size:15px; margin:0 0 20px; opacity:.85; }
.dest-card .go{ font-size:14.5px; font-weight:600; color:var(--olive-deep); border-bottom:2px solid var(--orange); align-self:flex-start; padding-bottom:2px; margin-top:auto; }
@media (max-width:860px){ .dest-grid{ grid-template-columns:1fr; } }

/* chiffres */
.strip{ display:grid; grid-template-columns:repeat(4,1fr); }
.strip > div{ padding:26px 24px; border-left:1px solid var(--line); }
.strip > div:first-child{ border-left:none; }
.strip .num{ font-family:var(--font-display); font-size:46px; color:var(--olive-deep); line-height:1; }
.strip .label{ font-size:14px; opacity:.8; margin-top:8px; }
@media (max-width:780px){ .strip{ grid-template-columns:1fr 1fr; } .strip > div:nth-child(3){ border-left:none; } }

/* footer */
footer.site{ background:var(--sand); border-top:1px solid var(--line); padding:60px 0 36px; }
.footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; }
.footer-grid h4{ font-family:var(--font-body); font-size:14px; color:var(--orange-deep); margin:0 0 16px; font-weight:700; }
.footer-grid p, .footer-grid a{ font-size:15px; text-decoration:none; display:block; margin-bottom:10px; }
.footer-grid a.brand{ display:flex; align-items:center; gap:14px; font-family:var(--font-display); font-size:24px; font-weight:600; color:var(--olive-deep); }
.footer-bottom{ margin-top:44px; padding-top:22px; border-top:1px solid var(--line); font-size:13.5px; opacity:.7; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
@media (max-width:780px){ .footer-grid{ grid-template-columns:1fr; } }

/* pages destination */
.dest-hero{ padding:90px 0 70px; position:relative; overflow:hidden; background:var(--cream); }
.dest-hero .wrap{ position:relative; z-index:2; }
.dest-hero .terrain{ opacity:.5 !important; z-index:1; }
.dest-hero .region-tag{ color:var(--orange-deep); font-weight:600; font-size:15px; margin-bottom:14px; }
.dest-hero h1{ font-size:clamp(44px,6.4vw,80px); max-width:16ch; }
.dest-hero p.lede{ max-width:54ch; margin-top:22px; font-size:19px; opacity:.9; }

.info-cols{ display:grid; grid-template-columns:1.3fr 1fr; gap:60px; }
.info-cols h2{ font-size:clamp(32px,3.6vw,42px); margin-bottom:18px; line-height:1.1; }
.info-cols p{ margin:0 0 16px; }
.route-list{ list-style:none; margin:0; padding:0; }
.route-list li{ display:flex; gap:20px; padding:20px 0; border-top:1px solid var(--line); }
.route-list li:last-child{ border-bottom:1px solid var(--line); }
.route-list .day{ font-family:var(--font-display); font-size:24px; font-weight:600; min-width:68px; color:var(--orange-deep); }
.route-list .desc h4{ margin:0 0 4px; font-family:var(--font-body); font-weight:700; font-size:16px; color:var(--olive-deep); }
.route-list .desc p{ margin:0; font-size:15px; opacity:.85; }
@media (max-width:860px){ .info-cols{ grid-template-columns:1fr; gap:40px; } }

.facts-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
.facts-card h4{ font-family:var(--font-body); font-size:14px; color:var(--orange-deep); margin:0 0 16px; font-weight:700; }
.facts-card dl{ margin:0; display:grid; grid-template-columns:1fr 1fr; gap:14px 12px; }
.facts-card dt{ font-size:13.5px; opacity:.65; }
.facts-card dd{ margin:0; font-size:15.5px; font-weight:600; overflow-wrap:anywhere; }
.price-line{ display:flex; align-items:baseline; gap:12px; }
.price-line .amount{ font-family:var(--font-display); font-size:44px; font-weight:600; color:var(--orange-deep); line-height:1; }
.price-line .unit{ font-size:14.5px; opacity:.7; }

.two-list{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:28px; }
.two-list h4{ font-family:var(--font-body); font-size:14px; color:var(--orange-deep); margin:0 0 12px; font-weight:700; }
.two-list ul{ list-style:none; margin:0; padding:0; }
.two-list li{ padding:11px 0 11px 30px; border-top:1px solid var(--line); font-size:15.5px; position:relative; }
.two-list li::before{
  content:""; position:absolute; left:2px; top:13px; width:14px; height:16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 30'%3E%3Cpath d='M14 29C24 26 24 16 14 1C4 16 4 26 14 29Z' fill='%23758148'/%3E%3Cpath d='M14 26.5L14 3.5' stroke='white' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; background-position:center;
}
.two-list li:last-child{ border-bottom:1px solid var(--line); }
@media (max-width:700px){ .two-list{ grid-template-columns:1fr; } }

.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:36px; }
.team-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.team-card .photo{ aspect-ratio:4/5; overflow:hidden; }
.team-card .photo img{ width:100%; height:100%; object-fit:cover; }
.team-card .info{ padding:22px 24px 26px; }
.team-card h4{ font-size:28px; margin:0 0 8px; }
.team-card p{ font-size:15px; margin:0; opacity:.88; }
@media (max-width:860px){ .team-grid{ grid-template-columns:1fr !important; } }

/* contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.form-row{ margin-bottom:22px; display:flex; flex-direction:column; gap:8px; }
.form-row label{ font-size:14.5px; font-weight:600; color:var(--olive-deep); }
.form-row input,.form-row select,.form-row textarea{
  background:var(--paper); border:1px solid var(--line); border-radius:12px;
  color:var(--ink); font-family:var(--font-body); font-size:16px; padding:13px 16px;
}
.form-row textarea{ resize:vertical; min-height:120px; }
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{ outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(242,107,19,0.15); }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }

a:focus-visible, button:focus-visible{ outline:2px solid var(--orange-deep); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition:none !important; animation:none !important; } }
