:root{
  --ink:#1B1F2A; --paper:#FAFAF7; --line:#E2E1DB; --accent:#3457D5; --slate:#6B7280;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --serif:Georgia,'Iowan Old Style','Times New Roman',serif;
}
*{box-sizing:border-box;}
body{margin:0;font-family:var(--sans);background:#fff;color:#1B1F2A;}

.site-nav{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; gap:4px; flex-wrap:wrap;
  padding:14px 8%;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid #ECEAE2;
}
.site-nav a{
  color:var(--slate); text-decoration:none;
  padding:8px 14px; border-radius:999px; font-size:14px;
  transition:background .15s, color .15s;
}
.site-nav a:hover{ background:#F1F0EA; color:#1B1F2A; }
.site-nav a.active{ background:var(--accent); color:#fff; }

.gp-section{padding:64px 8%;border-bottom:1px solid #ECEAE2;}
.gp-section:last-child{border-bottom:none;}
.gp-inner{max-width:1080px;margin:0 auto;}
.gp-title{font-family:var(--serif);font-size:clamp(26px,4vw,42px);margin:0 0 16px;line-height:1.15;color:#1B1F2A;}
.gp-text{font-size:16px;line-height:1.65;color:#3A3F4B;}
.gp-text strong,.gp-text b{color:#1B1F2A;}
.gp-media img{width:100%;border-radius:10px;display:block;}
.gp-media{display:flex;align-items:center;}
.gp-media iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:10px;}
.gp-cta{display:inline-block;margin-top:22px;padding:12px 26px;background:var(--accent);color:#fff;text-decoration:none;border-radius:7px;font-weight:600;font-size:14px;}

.gp-hero{text-align:center;}
.gp-hero .gp-media{margin-bottom:28px;border-radius:12px;overflow:hidden;max-height:440px;}
.gp-hero .gp-media img{max-height:440px;object-fit:cover;}
.gp-hero .gp-inner{max-width:760px;}

.gp-split .gp-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.gp-split.gp-right .gp-media{order:2;}
.gp-split .gp-media{border-radius:10px;overflow:hidden;}
.gp-split .gp-media img{height:100%;object-fit:cover;}
@media(max-width:720px){.gp-split .gp-inner{grid-template-columns:1fr;}.gp-split.gp-right .gp-media{order:0;}}

.gp-faq-item{border-bottom:1px solid var(--line);}
.gp-faq-item:first-child{border-top:1px solid var(--line);}
.gp-faq-q{display:flex;justify-content:space-between;align-items:center;padding:20px 4px;cursor:pointer;font-family:var(--serif);font-size:19px;color:#1B1F2A;}
.gp-faq-q .plus{font-family:var(--sans);font-size:20px;color:var(--accent);transition:.2s;}
.gp-faq-item.open .plus{transform:rotate(45deg);}
.gp-faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.gp-faq-item.open .gp-faq-a{max-height:800px;}
.gp-faq-a-inner{padding:0 4px 22px;}

/* Bandeau plein écran, texte superposé */
.gp-banner{
  position:relative; padding:0; min-height:440px;
  display:flex; align-items:center; justify-content:center;
  text-align:center; overflow:hidden;
}
.gp-banner .gp-media{
  position:absolute; inset:0; margin:0; z-index:0;
}
.gp-banner .gp-media img{ width:100%; height:100%; object-fit:cover; }
.gp-banner .gp-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55));
}
.gp-banner .gp-inner{
  position:relative; z-index:1; max-width:760px; padding:60px 24px;
}
.gp-banner .gp-title, .gp-banner .gp-text{ color:#fff; }
.gp-banner .gp-cta{ background:#fff; color:#1B1F2A; }

/* Vidéo verticale : on garde un cadre 16:9 même si la source est en portrait,
   la vidéo s'inscrit dedans sans être recadrée (bandes noires sur les côtés
   plutôt qu'un player très haut) */
/* Vidéo : garde ses proportions naturelles (portrait ou paysage),
   juste plafonnée en hauteur pour ne pas dominer la page */
.gp-video {
  max-width: 100%;
  max-height: 600px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  background: #000;
  border-radius: 10px;
}

/* Photo gauche/droite : la photo reste alignée en haut du bloc,
   même si le texte à côté est plus long qu'elle */
.gp-split .gp-inner {
  align-items: flex-start;
}


.gp-contact-form {
  background: #F6F5F1;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 40px;
}
.gp-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 600px) {
  .gp-field-row { grid-template-columns: 1fr; }
}
.gp-field { margin-bottom: 20px; }
.gp-field label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; color: #1B1F2A; }
.gp-field input, .gp-field textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line);
  border-radius: 8px; font-family: inherit; font-size: 15px;
  background: #fff; transition: border-color .15s;
}
.gp-field input:focus, .gp-field textarea:focus {
  outline: none; border-color: var(--accent);
}
.gp-hp { position: absolute; left: -9999px; top: -9999px; }
.gp-contact-submit {
  border: none; cursor: pointer; font-family: inherit; font-size: 14px;
  padding: 13px 32px;
}
.gp-contact-status { margin-top: 14px; font-size: 14px; }
.gp-contact-status.ok { color: #1a7f37; }
.gp-contact-status.err { color: #c0392b; }