/*
Theme Name: Merlin Coach
Theme URI: https://example.com
Author: Merlin
Description: Thème WordPress sur mesure pour Merlin, coach sportif et formateur — haltérophilie, musculation, préparation physique et sport santé.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: merlin-coach
*/

:root{
  --bg: #EDEEE7;
  --bg-panel: #E2E4D9;
  --bg-panel-2: #D9DBCC;
  --ink: #191C18;
  --ink-soft: #52564C;
  --ink-faint: #83887B;
  --accent: #2F4A3A;
  --accent-strong: #1F3327;
  --tan: #A8794F;
  --line: #C7C9BC;
  --plate-green: #3E7B4F;
  --plate-yellow: #C99A34;
  --plate-blue: #2F5D8A;
  --plate-red: #A6402F;
  --radius: 2px;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  letter-spacing:-0.01em;
  color:var(--ink);
}

.mono{
  font-family:'IBM Plex Mono', monospace;
  font-weight:500;
  letter-spacing:0.02em;
}

a{ color:inherit; text-decoration:none; }

img,svg{ display:block; max-width:100%; }

.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}

section{ position:relative; }

/* ---------- Focus visibility ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ---------- Header ---------- */
header.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(237,238,231,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 32px;
  max-width:1180px;
  margin:0 auto;
}
.logo{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:20px;
  letter-spacing:0.02em;
  text-transform:uppercase;
}
.logo span{ color:var(--accent); }
.nav-links{
  display:flex;
  gap:36px;
  font-size:14px;
  font-weight:500;
  color:var(--ink-soft);
  list-style:none;
}
.nav-links a{
  position:relative;
  padding-bottom:4px;
  transition:color .2s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0; height:1px;
  background:var(--accent);
  transition:width .25s ease;
}
.nav-links a:hover::after{ width:100%; }

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 22px;
  background:var(--accent);
  color:#F3F4EE;
  font-size:14px;
  font-weight:600;
  border:none;
  cursor:pointer;
  border-radius:var(--radius);
  transition:background .2s ease, transform .2s ease;
}
.btn:hover{ background:var(--accent-strong); transform:translateY(-1px); }
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--ink);
}
.btn-ghost:hover{ background:var(--ink); color:var(--bg); }

.nav .btn{ padding:10px 18px; font-size:13px; }

/* ---------- Plate rail (signature element) ---------- */
.rail{
  position:fixed;
  left:28px;
  top:50%;
  transform:translateY(-50%);
  z-index:40;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
}
.rail .bar{
  width:2px;
  height:260px;
  background:var(--line);
  position:relative;
}
.rail-item{
  position:absolute;
  left:50%;
  transform:translate(-50%,-50%);
  display:flex;
  align-items:center;
  gap:10px;
}
.rail-plate{
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--bg);
  border:2px solid var(--line);
  transition:all .3s ease;
}
.rail-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:var(--ink-faint);
  opacity:0;
  transform:translateX(-6px);
  transition:all .3s ease;
  white-space:nowrap;
}
.rail-item.active .rail-plate{
  transform:scale(1.3);
  border-color:var(--plate-color, var(--accent));
  background:var(--plate-color, var(--accent));
  box-shadow:0 0 0 3px rgba(0,0,0,0.05);
}
.rail-item.active .rail-label{
  opacity:1;
  transform:translateX(0);
  color:var(--ink);
  font-weight:600;
}
@media (max-width:1080px){ .rail{ display:none; } }

/* ---------- Hero ---------- */
.hero{
  padding:120px 0 100px;
  border-bottom:1px solid var(--line);
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  color:var(--tan);
  text-transform:uppercase;
  letter-spacing:0.14em;
  margin-bottom:22px;
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--tan);
}
.hero h1{
  font-size:clamp(38px, 5.4vw, 68px);
  line-height:1.04;
  max-width:820px;
  margin-bottom:28px;
}
.hero h1 em{
  font-style:normal;
  color:var(--accent);
}
.hero-sub{
  font-size:18px;
  color:var(--ink-soft);
  max-width:560px;
  margin-bottom:40px;
}
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:64px; }

.hero-wrap.has-media{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:center;
}
.hero-media{
  border:1px solid var(--line);
  overflow:hidden;
  aspect-ratio:4/5;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media (max-width:900px){
  .hero-wrap.has-media{ grid-template-columns:1fr; }
  .hero-media{ order:-1; aspect-ratio:16/10; max-height:360px; }
}
.hero-media.landscape{ aspect-ratio:3/2; }
@media (max-width:900px){
  .hero-media.landscape{ aspect-ratio:16/10; }
}

.hero-specs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  padding-top:28px;
}
.hero-specs div{ padding-right:20px; }
.hero-specs .num{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  color:var(--ink-faint);
  display:block;
  margin-bottom:6px;
}
.hero-specs .label{
  font-size:14px;
  font-weight:500;
  color:var(--ink-soft);
}
@media (max-width:720px){
  .hero-specs{ grid-template-columns:repeat(2,1fr); row-gap:22px; }
}

/* ---------- Section shell ---------- */
.section{ padding:100px 0; border-bottom:1px solid var(--line); }
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:56px;
  flex-wrap:wrap;
}
.section-tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  color:var(--tan);
  text-transform:uppercase;
  letter-spacing:0.14em;
  margin-bottom:14px;
}
.section-head h2{
  font-size:clamp(28px, 3.4vw, 40px);
  max-width:600px;
}
.section-head p{
  max-width:380px;
  color:var(--ink-soft);
  font-size:15px;
}

/* ---------- Profil ---------- */
.profil-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:64px;
}
.profil-text p{ color:var(--ink-soft); margin-bottom:18px; font-size:16px; max-width:520px; }
.profil-text strong{ color:var(--ink); font-weight:600; }

.tag-list{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  padding:8px 14px;
  border:1px solid var(--line);
  color:var(--ink-soft);
  border-radius:var(--radius);
}

.profil-side{
  background:var(--bg-panel);
  border:1px solid var(--line);
  padding:36px;
}
.profil-side h3{
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin-bottom:22px;
}
.profil-photo{
  aspect-ratio:1/1;
  overflow:hidden;
  border:1px solid var(--line);
  margin-bottom:24px;
}
.profil-photo img{ width:100%; height:100%; object-fit:cover; }
.spec-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 0;
  border-top:1px solid var(--line);
  font-size:14px;
}
.spec-row:first-of-type{ border-top:none; }
.spec-row .k{ color:var(--ink-soft); }
.spec-row .v{ font-family:'IBM Plex Mono', monospace; font-weight:500; }

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

/* ---------- Méthode ---------- */
.methode-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.methode-card{
  background:var(--bg);
  padding:40px;
}
.methode-card .mono{ font-size:12px; color:var(--tan); text-transform:uppercase; letter-spacing:0.1em; display:block; margin-bottom:16px; }
.methode-card h3{ font-size:24px; margin-bottom:16px; }
.methode-card p{ color:var(--ink-soft); font-size:15px; margin-bottom:14px; }
.methode-card ul{ list-style:none; margin-top:20px; }
.methode-card li{
  font-size:14px;
  color:var(--ink-soft);
  padding:10px 0;
  border-top:1px solid var(--line);
  display:flex;
  gap:10px;
}
.methode-card li::before{ content:"—"; color:var(--tan); }
@media (max-width:860px){ .methode-grid{ grid-template-columns:1fr; } }

.quote{
  margin-top:48px;
  padding:32px 36px;
  border-left:3px solid var(--accent);
  background:var(--bg-panel);
  font-size:17px;
  color:var(--ink);
  max-width:760px;
}
.quote span{ display:block; margin-top:14px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:0.08em; }

/* ---------- Programmes ---------- */
.prog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.prog-card{
  border:1px solid var(--line);
  padding:34px 30px;
  display:flex;
  flex-direction:column;
  height:100%;
  transition:border-color .2s ease, transform .2s ease;
}
.prog-card:hover{ border-color:var(--accent); transform:translateY(-4px); }
.prog-img{
  aspect-ratio:4/3;
  overflow:hidden;
  margin:-34px -30px 24px;
  border-bottom:1px solid var(--line);
}
.prog-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.prog-num{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-faint); margin-bottom:20px; }
.prog-card h3{ font-size:21px; margin-bottom:12px; }
.prog-card p{ color:var(--ink-soft); font-size:14.5px; margin-bottom:24px; flex-grow:1; }
.prog-card a{
  font-size:13px;
  font-weight:600;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.prog-card a:hover{ gap:10px; }
@media (max-width:900px){ .prog-grid{ grid-template-columns:1fr; } }

/* ---------- Bénéfices ---------- */
.benef-strip{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.benef-item{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:30px 20px;
  text-align:center;
}
.benef-item .mono{ font-size:11px; color:var(--tan); display:block; margin-bottom:10px; }
.benef-item div.label{ font-weight:600; font-size:15px; }
@media (max-width:900px){ .benef-strip{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:64px;
}
.contact-info h2{ font-size:clamp(26px,3vw,36px); margin-bottom:20px; }
.contact-info p{ color:var(--ink-soft); margin-bottom:32px; max-width:420px; }
.contact-detail{ margin-bottom:18px; }
.contact-detail .k{ font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-faint); display:block; margin-bottom:4px; }
.contact-detail .v{ font-size:15px; font-weight:500; }

form{ display:flex; flex-direction:column; gap:20px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:13px; font-weight:600; color:var(--ink-soft); }
.field input, .field select, .field textarea{
  background:var(--bg-panel);
  border:1px solid var(--line);
  padding:14px 16px;
  font-family:'Inter', sans-serif;
  font-size:15px;
  color:var(--ink);
  border-radius:var(--radius);
  width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;
  border-color:var(--accent);
  background:var(--bg);
}
.field textarea{ resize:vertical; min-height:110px; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:640px){ .row2{ grid-template-columns:1fr; } .contact-grid{ grid-template-columns:1fr; } }

.form-note{ font-size:12px; color:var(--ink-faint); margin-top:-4px; }
.form-msg{
  padding:16px 18px;
  background:var(--bg-panel);
  border:1px solid var(--accent);
  color:var(--accent-strong);
  font-size:14px;
  font-weight:500;
  margin-bottom:20px;
}
.form-msg.error{
  border-color:var(--plate-red);
  color:var(--plate-red);
}
.honeypot-field{ position:absolute; left:-9999px; top:-9999px; }

/* ---------- Performances ---------- */
.perf-strip{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  margin-bottom:40px;
}
.perf-item{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:24px 16px;
  text-align:center;
}
.perf-val{ display:block; font-size:22px; color:var(--accent); margin-bottom:6px; }
.perf-label{ font-size:13px; color:var(--ink-soft); }
@media (max-width:760px){ .perf-strip{ grid-template-columns:repeat(2,1fr); } }

.certif-strip{
  display:flex;
  align-items:center;
  gap:40px;
  flex-wrap:wrap;
  padding-top:32px;
  border-top:1px solid var(--line);
}
.certif-badges{ display:flex; align-items:center; gap:20px; flex-shrink:0; }
.certif-logo{ height:56px; width:auto; }
.certif-logo-round{ height:64px; }
.certif-list{ list-style:none; display:flex; flex-wrap:wrap; gap:12px 24px; }
.certif-list li{
  font-size:13px;
  color:var(--ink-soft);
  padding-left:14px;
  position:relative;
}
.certif-list li::before{
  content:"";
  position:absolute;
  left:0; top:7px;
  width:6px; height:6px;
  border-radius:50%;
  background:var(--accent);
}

.profil-side.photo-only{
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  background:none;
  min-height:420px;
}
.profil-photo-solo{
  margin-bottom:0;
  border:none;
  height:100%;
  aspect-ratio:auto;
}
.profil-photo-solo img{ width:100%; height:100%; object-fit:cover; }

.certif-strip.centered{
  justify-content:center;
  text-align:center;
  flex-direction:column;
}
.certif-strip.centered .certif-badges{ justify-content:center; }
.certif-list.centered{ justify-content:center; }

/* ---------- Tarifs (simplifié) ---------- */
.tarif-highlight{
  border:1px solid var(--line);
  padding:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  flex-wrap:wrap;
  background:var(--bg-panel);
}
.tarif-price-range{ flex-shrink:0; }
.tarif-price{
  font-family:'Space Grotesk', sans-serif;
  font-weight:700;
  font-size:56px;
  color:var(--accent);
  line-height:1;
}
.tarif-dash{ font-size:32px; color:var(--ink-faint); margin:0 6px; }
.tarif-unit{ display:block; font-size:14px; color:var(--ink-soft); margin-top:8px; }
.tarif-includes{ list-style:none; display:grid; gap:12px; }
.tarif-includes li{
  font-size:14px;
  color:var(--ink-soft);
  padding-left:20px;
  position:relative;
}
.tarif-includes li::before{
  content:"";
  position:absolute; left:0; top:7px;
  width:7px; height:7px;
  border-radius:50%;
  background:var(--accent);
}
@media (max-width:760px){
  .tarif-highlight{ flex-direction:column; align-items:flex-start; padding:32px; }
}

/* ---------- Avis ---------- */
.avis-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.avis-card{
  border:1px solid var(--line);
  padding:28px 26px;
  background:var(--bg-panel);
}
.avis-card p{ font-size:15px; color:var(--ink); margin-bottom:16px; line-height:1.55; }
.avis-author{ font-size:12px; color:var(--tan); text-transform:uppercase; letter-spacing:0.06em; }
@media (max-width:900px){ .avis-grid{ grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
footer.site-footer{ padding:48px 0; }
.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}
.footer-row .logo{ font-size:16px; }
.footer-links{ display:flex; gap:28px; font-size:13px; color:var(--ink-soft); list-style:none; }
.footer-links a:hover{ color:var(--ink); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}

/* ---------- Mobile nav ---------- */
@media (max-width:760px){
  .nav-links{ display:none; }
  .hero{ padding:90px 0 70px; }
  .section{ padding:70px 0; }
}
