/* ══════════════════════════════════════════════
   ATTous-Yennenga — Feuille de style principale
   Partagée par toutes les pages du site
══════════════════════════════════════════════ */

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

:root {
  --sage:     #3A6B4A;
  --sage-d:   #1E3D28;
  --sage-l:   #EEF4F0;
  --amber:    #C8882A;
  --amber-l:  #F5D89A;
  --ink:      #111814;
  --stone:    #5A6358;
  --sand:     #F7F4EE;
  --white:    #FFFFFF;
  --line:     rgba(0,0,0,0.08);
  --topbar-h: 36px;
  --nav-h:    68px;
  --header-h: calc(var(--topbar-h) + var(--nav-h));
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--white); color:var(--ink); overflow-x:hidden; }

/* ── UTILITAIRES ── */
.container { max-width:1180px; margin:0 auto; padding:0 40px; }
.tag { display:inline-block; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--amber); font-weight:600; margin-bottom:14px; }

h1.page-title,
h2.title {
  font-family:'Cormorant Garamond',serif;
  font-weight:700; line-height:1.1; color:var(--ink);
}
h1.page-title { font-size:clamp(42px,5vw,80px); }
h2.title      { font-size:clamp(30px,3.5vw,50px); }
h2.title em, h1.page-title em { font-style:italic; color:var(--sage); }

.subtitle { font-size:15px; line-height:1.85; color:var(--stone); max-width:520px; margin-top:18px; }

.btn { display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:3px; font-size:13px; font-weight:600; letter-spacing:.4px; text-decoration:none; transition:all .25s; cursor:pointer; border:none; font-family:inherit; }
.btn-dark  { background:var(--ink); color:var(--white); }
.btn-dark:hover  { background:var(--sage-d); }
.btn-amber { background:var(--amber); color:var(--white); }
.btn-amber:hover { background:#b07320; transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--ink); border:1.5px solid rgba(0,0,0,.2); }
.btn-ghost:hover { border-color:var(--ink); }
.btn-white { background:var(--white); color:var(--ink); }
.btn-white:hover { background:var(--amber-l); }

/* ── TOP BAR ── */
.top-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 201;
  height: var(--topbar-h);
  background: linear-gradient(90deg, var(--sage-d) 0%, #163321 100%);
  display: flex; align-items: center;
  transition: transform .3s ease;
}
.top-bar .container { display: flex; align-items: center; justify-content: center; gap: 0; position: relative; width: 100%; }
.top-bar-text { font-size: 12px; color: rgba(255,255,255,.55); letter-spacing: .3px; }
.top-bar-text strong { color: rgba(255,255,255,.8); font-weight: 600; }
.top-bar-text a { color: var(--amber-l); text-decoration: none; font-weight: 600; transition: color .2s; }
.top-bar-text a:hover { color: var(--white); }
.top-bar-close { position: absolute; right: 0; background: none; border: none; color: rgba(255,255,255,.3); cursor: pointer; font-size: 18px; padding: 0 12px; height: 100%; line-height: 1; transition: color .2s; font-family: inherit; }
.top-bar-close:hover { color: rgba(255,255,255,.75); }
body.topbar-closed .top-bar { transform: translateY(-100%); }
body.topbar-closed nav { top: 0; }

/* ── NAVBAR ── */
nav {
  position: fixed; top: var(--topbar-h); left: 0; right: 0; z-index: 200;
  height: var(--nav-h);
  display: flex; align-items: center;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
  transition: top .3s ease, box-shadow .35s ease;
}
nav.nav--scrolled { box-shadow: 0 2px 28px rgba(0,0,0,.10); border-bottom-color: transparent; }
nav .container { display: flex; align-items: center; justify-content: space-between; width: 100%; }

.nav-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav-logo-mark { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid var(--amber); }
.nav-logo-mark img { width: 100%; height: 100%; object-fit: cover; }
.nav-logo-sep { width: 1px; height: 26px; background: rgba(0,0,0,.1); flex-shrink: 0; }
.nav-logo-name { display: flex; flex-direction: column; line-height: 1.2; }
.nav-logo-name strong { font-family: 'Cormorant Garamond',serif; font-size: 17px; font-weight: 700; color: var(--ink); }
.nav-logo-name span { font-size: 10px; color: var(--stone); letter-spacing: 1.8px; text-transform: uppercase; }

nav ul { display: flex; gap: 2px; list-style: none; }
nav ul li a {
  display: block; position: relative;
  font-size: 12.5px; font-weight: 500; color: var(--stone);
  text-decoration: none; padding: 8px 13px; border-radius: 3px;
  transition: color .2s;
}
nav ul li a::after {
  content: '';
  position: absolute; bottom: 4px; left: 50%; right: 50%;
  height: 1.5px; background: var(--amber); border-radius: 2px;
  transition: left .25s ease, right .25s ease;
}
nav ul li a:hover { color: var(--ink); }
nav ul li a:hover::after { left: 13px; right: 13px; }
nav ul li a.active { color: var(--ink); font-weight: 600; }
nav ul li a.active::after { left: 13px; right: 13px; background: var(--sage); }

.nav-actions { display: flex; gap: 10px; align-items: center; }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; padding: 4px; }
.hamburger span { display: block; width: 22px; height: 1.5px; background: var(--ink); transition: all .3s; }

/* ── PAGE HERO BANNER (pages internes) ── */
.page-hero {
  padding-top: var(--header-h);
  min-height: 360px;
  display:flex; align-items:flex-end;
  position:relative; overflow:hidden;
  background:var(--sage-d);
}
.page-hero-img {
  position:absolute; inset:0;
}
.page-hero-img img { width:100%; height:100%; object-fit:cover; display:block; }
.page-hero-img::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(13,27,15,.85) 0%, rgba(13,27,15,.4) 60%, transparent 100%);
}
.page-hero-content {
  position:relative; z-index:2;
  padding:60px 0;
  color:var(--white);
}
.page-hero-content .tag { color:var(--amber-l); }
.page-hero-content h1.page-title { color:var(--white); }
.page-hero-content h1.page-title em { color:var(--amber-l); }
.page-hero-content p { font-size:16px; color:rgba(255,255,255,.65); margin-top:14px; max-width:560px; }

/* BREADCRUMB */
.breadcrumb {
  display:flex; align-items:center; gap:8px;
  font-size:12px; color:rgba(255,255,255,.5);
  margin-bottom:16px; letter-spacing:.5px;
}
.breadcrumb a { color:rgba(255,255,255,.5); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:var(--amber-l); }
.breadcrumb span { color:var(--amber-l); }

/* ── MARQUEE ── */
.marquee-bar { background:var(--ink); overflow:hidden; padding:13px 0; white-space:nowrap; }
.marquee-track { display:inline-flex; gap:60px; animation:marquee 22s linear infinite; }
.marquee-track span { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.4); font-weight:500; }
.marquee-track span.dot { color:var(--amber); font-size:8px; }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── SECTION GÉNÉRIQUE ── */
.section { padding:100px 0; }
.section-alt { background:var(--sand); }
.section-dark { background:var(--sage-d); }

.section-header { margin-bottom:60px; }
.section-header.centered { text-align:center; }
.section-header.centered .subtitle { margin:0 auto; }
.section-header.split { display:flex; justify-content:space-between; align-items:flex-end; }

/* ── CARDS GÉNÉRIQUES ── */
.card {
  background:var(--white); border-radius:4px;
  border:1px solid var(--line);
  overflow:hidden;
  transition:box-shadow .3s, transform .3s;
}
.card:hover { box-shadow:0 16px 48px rgba(0,0,0,.09); transform:translateY(-4px); }

/* ── REVEAL ANIMATION ── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── PRE-FOOTER CTA ── */
.footer-cta {
  background: linear-gradient(135deg, var(--sage-d) 0%, #0D2016 100%);
  padding: 80px 0;
  position: relative; overflow: hidden;
}
.footer-cta::before {
  content: ''; position: absolute; top: -80px; right: -80px;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(200,136,42,.12) 0%, transparent 65%);
}
.footer-cta::after {
  content: ''; position: absolute; bottom: -60px; left: -40px;
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(58,107,74,.3) 0%, transparent 65%);
}
.footer-cta-inner {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap;
}
.footer-cta-text h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(28px, 3.5vw, 50px);
  font-weight: 700; color: white; line-height: 1.15;
}
.footer-cta-text h2 em { font-style: italic; color: var(--amber-l); }
.footer-cta-text p { font-size: 14px; color: rgba(255,255,255,.42); margin-top: 10px; max-width: 440px; line-height: 1.7; }
.footer-cta-actions { display: flex; gap: 12px; flex-shrink: 0; flex-wrap: wrap; }
.btn-outline-white { background: transparent; color: rgba(255,255,255,.8); border: 1.5px solid rgba(255,255,255,.2); }
.btn-outline-white:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.4); color: white; }

/* ── FOOTER ── */
footer { background: #060C08; color: rgba(255,255,255,.4); padding: 64px 0 0; border-top: 2px solid rgba(200,136,42,.35); }
.footer-top { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 52px; }
.footer-brand p { font-size: 13px; line-height: 1.8; color: rgba(255,255,255,.32); margin-top: 14px; max-width: 220px; }

.footer-newsletter { margin-top: 22px; }
.footer-newsletter label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.28); display: block; margin-bottom: 8px; }
.footer-nl-form { display: flex; }
.footer-nl-form input { flex: 1; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-right: none; border-radius: 3px 0 0 3px; padding: 9px 12px; color: white; font-family: inherit; font-size: 12px; outline: none; min-width: 0; transition: border-color .2s; }
.footer-nl-form input::placeholder { color: rgba(255,255,255,.18); }
.footer-nl-form input:focus { border-color: rgba(200,136,42,.45); }
.footer-nl-form button { background: var(--amber); border: none; border-radius: 0 3px 3px 0; padding: 9px 15px; color: white; cursor: pointer; font-size: 15px; font-weight: 700; transition: background .2s; flex-shrink: 0; }
.footer-nl-form button:hover { background: #b07320; }

.footer-socials { display: flex; gap: 8px; margin-top: 22px; }
.footer-social { width: 36px; height: 36px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: all .25s; }
.footer-social:hover { background: var(--amber); border-color: var(--amber); transform: translateY(-3px); }
.footer-social svg { width: 14px; height: 14px; fill: none; stroke: rgba(255,255,255,.55); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke .25s; }
.footer-social:hover svg { stroke: white; }
.footer-social .icon-filled { fill: rgba(255,255,255,.55); stroke: none; transition: fill .25s; }
.footer-social:hover .icon-filled { fill: white; }

.footer-col h5 { font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: 20px; font-weight: 600; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.07); }
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul a { font-size: 13px; color: rgba(255,255,255,.33); text-decoration: none; transition: color .2s, padding-left .2s; display: inline-block; }
.footer-col ul a:hover { color: rgba(255,255,255,.82); padding-left: 5px; }

.footer-bottom { border-top: 1px solid rgba(255,255,255,.07); padding: 22px 0; display: flex; justify-content: space-between; align-items: center; font-size: 11.5px; color: rgba(255,255,255,.22); flex-wrap: wrap; gap: 10px; }
.footer-bottom-right { display: flex; gap: 8px; align-items: center; }
.footer-badge { font-size: 9.5px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.1); border-radius: 2px; padding: 3px 8px; }

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-cta-inner { flex-direction: column; gap: 28px; }
}
@media(max-width:768px){
  .top-bar { display: none; }
  nav { top: 0; }
  nav ul, .nav-actions { display: none; }
  .hamburger { display: flex; }
  .container { padding: 0 20px; }
  .section-header.split { flex-direction: column; align-items: flex-start; gap: 16px; }
  .footer-top { grid-template-columns: 1fr; }
  .page-hero { min-height: 280px; padding-top: var(--nav-h); }
  .footer-cta-actions { width: 100%; }
  .footer-cta-actions .btn { flex: 1; justify-content: center; }
}
