/* =========================================================
   SALTER ® — Identité visuelle LP3 / Octocracy / D. Fiorucci
   Palette : noir, blanc, gris, rouge (avec contour fin)
   ========================================================= */

:root{
  --black:#0a0a0a;
  --ink:#111111;
  --grey-900:#1a1a1a;
  --grey-700:#3a3a3a;
  --grey-500:#7a7a7a;
  --grey-300:#cccccc;
  --grey-200:#e6e6e6;
  --grey-100:#f4f4f4;
  --white:#ffffff;
  --red:#e30613;          /* rouge LP3 */
  --red-dark:#b40410;
  --outline:1.5px solid var(--ink);
  /* Police LP3 — Helvetica Neue (système Mac/iOS) avec fallback Helvetica / Arial pour Windows */
  --display:'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif;
  --sans:'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif;
  --serif:'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif; /* alias compat */
  --maxw:1200px;
  --radius:2px;
  --shadow-soft:0 6px 22px rgba(0,0,0,0.08);
  --shadow-med:0 10px 36px rgba(0,0,0,0.16);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{ color:var(--ink); text-decoration:none; }
a:hover{ color:var(--red); }

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.12;
  color:var(--ink);
  margin:0 0 0.6em;
}
h1{ font-size:clamp(2.4rem,5vw,4.4rem); font-weight:700; letter-spacing:-0.03em; }
h2{ font-size:clamp(1.8rem,3.6vw,2.8rem); font-weight:700; letter-spacing:-0.025em; }
h3{ font-size:1.4rem; font-weight:700; letter-spacing:-0.015em; }
h4{ font-weight:600; }
p{ margin:0 0 1em; }
.lead{ font-size:1.15rem; color:var(--grey-700); font-weight:400; }

.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 1.5rem;
}

/* ==================== HEADER / NAV ==================== */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,0.96);
  backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--grey-200);
}
.nav{
  display:flex; align-items:center; gap:1.5rem;
  padding:0.9rem 1.5rem;
  max-width:var(--maxw); margin:0 auto;
}
.brand{
  display:flex; align-items:center; gap:0.65rem;
  font-family:var(--display); font-size:1.25rem; font-weight:700;
  letter-spacing:0.02em; text-transform:none;
}
.brand img{ width:34px; height:34px; }
.brand .accent{ color:var(--red); }
.nav-links{
  display:flex; gap:1.4rem; margin-left:auto;
  font-size:0.95rem; align-items:center;
}
.nav-links a{
  position:relative; padding:0.4rem 0; color:var(--ink);
  border-bottom:1.5px solid transparent;
  transition:color .2s, border-color .2s;
}
.nav-links a:hover, .nav-links a.active{
  color:var(--red); border-bottom-color:var(--red);
}
.lang-switcher{
  display:flex; gap:0; margin-left:1rem;
  border:1.5px solid var(--ink); border-radius:2px; overflow:hidden;
}
.lang-switcher button{
  background:transparent; border:0; padding:0.4rem 0.65rem;
  font-size:0.78rem; font-weight:600; color:var(--ink); cursor:pointer;
  font-family:var(--sans);
  border-left:1.5px solid var(--ink);
  transition:background .2s, color .2s;
}
.lang-switcher button:first-child{ border-left:0; }
.lang-switcher button.active{ background:var(--ink); color:var(--white); }
.lang-switcher button:hover:not(.active){ background:var(--grey-100); color:var(--red); }

.mobile-toggle{
  display:none; background:none; border:1.5px solid var(--ink);
  padding:0.35rem 0.55rem; cursor:pointer; border-radius:2px;
}

@media (max-width:900px){
  .mobile-toggle{ display:inline-flex; margin-left:auto; }
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0;
    background:var(--white); border-bottom:1px solid var(--grey-200);
    padding:0.5rem 1.5rem 1rem;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{ padding:0.65rem 0; border-bottom:1px solid var(--grey-100); }
  .lang-switcher{ margin:0.5rem 0 0; }
}

/* ==================== HERO ==================== */
.hero{
  position:relative; padding:5rem 0 4.5rem;
  text-align:center; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(900px 600px at 50% 0%, rgba(227,6,19,0.05), transparent 60%),
    linear-gradient(180deg, var(--white) 0%, var(--grey-100) 100%);
  z-index:-1;
}
.hero-compass{ width:min(280px, 60vw); height:auto; margin:0 auto 2rem; display:block; }
.hero-title{
  font-family:var(--display);
  font-size:clamp(3rem,8vw,6rem);
  letter-spacing:0.04em; font-weight:700;
  margin-bottom:0.5rem;
}
.hero-title .dot{ color:var(--red); font-weight:400; }
.hero-tagline{
  font-family:var(--sans); font-size:clamp(1rem,1.6vw,1.25rem);
  color:var(--grey-700); max-width:760px; margin:0 auto 0.4rem;
  font-weight:400;
}
.hero-sub{
  font-family:var(--sans); font-style:normal; font-weight:500;
  font-size:clamp(1.05rem,1.7vw,1.4rem);
  color:var(--ink); max-width:780px; margin:0 auto 2rem;
  letter-spacing:-0.01em;
}
.hero-cta{
  display:inline-flex; gap:0.8rem; flex-wrap:wrap; justify-content:center;
}

.btn{
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.85rem 1.5rem; font-weight:600; font-size:0.95rem;
  border-radius:2px; cursor:pointer; font-family:var(--sans);
  transition:all .25s ease; text-decoration:none;
  border:1.5px solid var(--ink);
}
.btn-primary{ background:var(--red); color:var(--white); border-color:var(--ink); }
.btn-primary:hover{ background:var(--red-dark); color:var(--white); transform:translateY(-1px); }
.btn-ghost{ background:var(--white); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--white); }
.btn-dark{ background:var(--ink); color:var(--white); }
.btn-dark:hover{ background:var(--red); border-color:var(--ink); }

/* ==================== SECTION GENERIC ==================== */
section{ padding:5rem 0; }
.section-light{ background:var(--white); }
.section-grey{ background:var(--grey-100); }
.section-dark{ background:var(--ink); color:var(--white); }
.section-dark h2, .section-dark h3{ color:var(--white); }
.section-dark .lead{ color:var(--grey-300); }

.kicker{
  font-size:0.8rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--red); font-weight:700; margin-bottom:0.4rem;
}
.section-title{ margin-bottom:1.2rem; }
.section-intro{ max-width:780px; margin:0 0 3rem; }

/* ==================== EVOLUTION (VUCA → BANI → SALTER) ==================== */
.evolution{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;
  margin-top:2.5rem;
}
.evolution-card{
  background:var(--white); border:1.5px solid var(--ink);
  padding:1.6rem 1.4rem;
  position:relative;
  transition:transform .2s, box-shadow .2s;
}
.evolution-card.current{
  background:var(--ink); color:var(--white);
}
.evolution-card.current h3{ color:var(--white); }
.evolution-card h3{ margin-bottom:0.3rem; font-size:1.6rem; letter-spacing:0.03em; }
.evolution-card .era{
  font-size:0.78rem; text-transform:uppercase;
  letter-spacing:0.18em; color:var(--red); font-weight:700; margin-bottom:0.6rem;
}
.evolution-card.current .era{ color:var(--red); }
.evolution-card ul{ list-style:none; padding:0; margin:0.6rem 0 0; font-size:0.93rem; }
.evolution-card ul li{ padding:0.18rem 0; }
.evolution-card ul li b{ color:var(--red); }
.evolution-arrow{
  display:flex; align-items:center; justify-content:center;
  color:var(--red); font-size:1.8rem;
}
@media (max-width:900px){
  .evolution{ grid-template-columns:1fr; }
}

/* ==================== AXES GRID (6 cards) ==================== */
.axes-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;
  margin-top:2rem;
}
.axis-card{
  background:var(--white); border:1.5px solid var(--ink);
  padding:1.6rem 1.4rem; cursor:pointer;
  display:flex; flex-direction:column; gap:1rem;
  position:relative; overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.axis-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--red); transform:scaleX(0); transform-origin:left;
  transition:transform .35s ease;
}
.axis-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-med); }
.axis-card:hover::before{ transform:scaleX(1); }
.axis-card .axis-letter{
  font-family:var(--display); font-size:5rem; font-weight:700; line-height:1;
  color:var(--ink); letter-spacing:-0.04em;
}
.axis-card .axis-letter .small{ color:var(--red); font-size:0.5em; vertical-align:middle; margin-left:0.2em; }
.axis-card .axis-icon{
  width:96px; height:96px; align-self:flex-end;
  position:absolute; top:1.2rem; right:1.2rem;
}
.axis-card .axis-icon img{ width:100%; height:100%; object-fit:contain; }
.axis-card h3{ font-size:1.4rem; margin-bottom:0.3rem; }
.axis-card .axis-tag{
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--red); font-weight:700;
}
.axis-card p{ font-size:0.95rem; color:var(--grey-700); margin:0; }
.axis-card .axis-arrow{
  margin-top:auto; font-weight:600; color:var(--red);
  display:inline-flex; align-items:center; gap:0.3rem;
}
@media (max-width:900px){ .axes-grid{ grid-template-columns:1fr; } }

/* ==================== AXES DETAIL ==================== */
.axis-detail{
  border:1.5px solid var(--ink);
  margin:1.5rem 0;
  background:var(--white);
}
.axis-detail summary{
  cursor:pointer; padding:1.4rem 1.6rem;
  display:flex; align-items:center; gap:1.2rem;
  list-style:none;
  background:var(--white);
  transition:background .2s;
}
.axis-detail summary::-webkit-details-marker{ display:none; }
.axis-detail summary:hover{ background:var(--grey-100); }
.axis-detail[open] summary{ background:var(--grey-100); border-bottom:1.5px solid var(--ink); }
.axis-detail .axis-mark{
  font-family:var(--display); font-size:3rem; font-weight:700; line-height:1; color:var(--ink);
  flex-shrink:0; min-width:60px; letter-spacing:-0.04em;
}
.axis-detail .axis-mark .dot{ color:var(--red); }
.axis-detail .axis-summary-title{ flex:1; }
.axis-detail .axis-summary-title h3{ margin:0 0 0.2rem; font-size:1.3rem; }
.axis-detail .axis-summary-title .axis-tag{
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--red); font-weight:700;
}
.axis-detail .chevron{
  font-size:1.4rem; color:var(--red); transition:transform .25s;
}
.axis-detail[open] .chevron{ transform:rotate(45deg); }
.axis-detail-body{
  padding:1.6rem 1.8rem;
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.axis-detail-body h4{
  font-family:var(--sans); font-size:0.82rem; text-transform:uppercase;
  letter-spacing:0.18em; font-weight:700; color:var(--red); margin:0 0 0.5rem;
}
.axis-detail-body .solutions ul{ padding-left:1.2rem; margin:0; }
.axis-detail-body .solutions ul li{ padding:0.18rem 0; }
.axis-detail-body .key-insight{
  margin-top:1.2rem; padding:0.9rem 1.1rem;
  border-left:3px solid var(--red); background:var(--grey-100);
  font-style:italic; color:var(--grey-700);
}
@media (max-width:780px){
  .axis-detail-body{ grid-template-columns:1fr; gap:1.2rem; }
}

/* ==================== DIAGNOSTIC TOOL ==================== */
.tool-wrap{
  background:var(--white); border:1.5px solid var(--ink);
  padding:0;
  box-shadow:var(--shadow-soft);
}
.tool-head{
  padding:1.6rem 1.8rem;
  background:var(--ink); color:var(--white);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
}
.tool-head h3{ color:var(--white); margin:0; font-size:1.4rem; }
.tool-head .badge{
  display:inline-block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.16em;
  border:1.5px solid var(--red); color:var(--red); padding:0.25rem 0.6rem; font-weight:700;
}
.tool-body{ padding:1.8rem; }
.tool-intro{ margin-bottom:1.6rem; color:var(--grey-700); }

.questions{ display:flex; flex-direction:column; gap:1.4rem; }
.question{
  border:1.5px solid var(--grey-300); padding:1.1rem 1.2rem;
  background:var(--white); transition:border-color .2s;
}
.question.answered{ border-color:var(--ink); }
.question .qlabel{
  display:flex; align-items:center; gap:0.7rem; margin-bottom:0.7rem;
  font-weight:600; font-size:1rem;
}
.question .qlabel .qletter{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px;
  background:var(--ink); color:var(--white); font-family:var(--display);
  font-weight:700; font-size:1rem;
}
.question .qhint{ font-size:0.85rem; color:var(--grey-500); margin:0.2rem 0 0.7rem; }
.scale{
  display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center;
}
.scale-label{ font-size:0.78rem; color:var(--grey-500); letter-spacing:0.04em; }
.scale-options{
  display:flex; gap:0.5rem;
}
.scale-options label{
  width:42px; height:42px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1.5px solid var(--ink); cursor:pointer; font-weight:700;
  transition:all .2s;
  user-select:none;
}
.scale-options input{ position:absolute; opacity:0; pointer-events:none; }
.scale-options label:hover{ background:var(--grey-100); }
.scale-options input:checked + span{
  background:var(--red); color:var(--white);
  width:42px; height:42px;
  display:inline-flex; align-items:center; justify-content:center;
}
.scale-options label.selected{ background:var(--red); color:var(--white); border-color:var(--ink); }
.scale-options label.selected span{ color:var(--white); }

.tool-actions{
  margin-top:2rem; display:flex; gap:0.8rem; flex-wrap:wrap; align-items:center;
}
.tool-progress{
  margin-left:auto; font-size:0.85rem; color:var(--grey-700);
}

/* ==================== RESULTS ==================== */
.results{ display:none; padding:1.8rem; background:var(--grey-100); border-top:1.5px solid var(--ink); }
.results.visible{ display:block; }
.results-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap:2rem; align-items:start;
}
.radar-wrap{ background:var(--white); border:1.5px solid var(--ink); padding:1.2rem; }
.radar-wrap canvas{ width:100% !important; height:auto !important; }
.score-summary{ background:var(--white); border:1.5px solid var(--ink); padding:1.4rem; }
.score-summary h4{ margin:0 0 0.6rem; font-family:var(--display); font-size:1.2rem; font-weight:700; letter-spacing:-0.01em; }
.score-line{
  display:grid; grid-template-columns: 30px 1fr 80px 40px; gap:0.6rem; align-items:center;
  padding:0.4rem 0; border-bottom:1px dashed var(--grey-300); font-size:0.92rem;
}
.score-line:last-child{ border-bottom:0; }
.score-letter{ font-family:var(--display); font-size:1.4rem; font-weight:700; color:var(--ink); text-align:center; letter-spacing:-0.02em; }
.score-letter.high{ color:var(--red); }
.score-bar{ background:var(--grey-200); height:8px; position:relative; }
.score-bar span{ display:block; height:100%; background:var(--ink); }
.score-bar span.high{ background:var(--red); }
.score-value{ font-weight:700; text-align:right; }
.score-interpretation{
  margin-top:1.2rem; padding:1rem 1.2rem;
  border-left:4px solid var(--red); background:var(--grey-100);
}
.score-interpretation h5{
  font-family:var(--sans); margin:0 0 0.3rem; text-transform:uppercase;
  font-size:0.78rem; letter-spacing:0.16em; color:var(--red); font-weight:700;
}
.result-actions{
  margin-top:1.4rem; display:flex; flex-wrap:wrap; gap:0.7rem; align-items:center;
}
.email-input{
  padding:0.7rem 0.9rem; border:1.5px solid var(--ink); font-size:0.92rem;
  font-family:var(--sans); flex:1; min-width:200px; border-radius:2px;
}
@media (max-width:900px){
  .results-grid{ grid-template-columns:1fr; }
}

/* ==================== AI PERSONALISED BLOCK ==================== */
.ai-block{
  margin-top:2rem;
  padding:1.8rem;
  border:1.5px solid var(--ink);
  background:var(--white);
  box-shadow:var(--shadow-soft);
}
.ai-block .kicker{ margin-top:0; }
.ai-block h3{ margin:0 0 0.6rem; font-size:1.35rem; }
.ai-intro{ color:var(--grey-700); margin:0 0 1.3rem; font-size:0.97rem; }
.ai-label{ display:block; font-weight:700; font-size:0.95rem; margin:0.6rem 0 0.3rem; color:var(--ink); }
.ai-hint{ font-size:0.85rem; color:var(--grey-500); margin:0 0 0.6rem; }
.ai-block textarea{
  width:100%; min-height:120px; max-height:240px; resize:vertical;
  padding:0.9rem 1rem; border:1.5px solid var(--ink); border-radius:2px;
  font-family:var(--sans); font-size:0.95rem; line-height:1.5;
  background:var(--white); color:var(--ink);
}
.ai-block textarea:focus{ outline:2px solid var(--red); outline-offset:1px; }
.ai-meta{
  display:flex; justify-content:flex-end;
  margin:0.3rem 0 0.9rem; font-size:0.8rem; color:var(--grey-500);
}
.ai-meta span.over{ color:var(--red); font-weight:700; }
.ai-actions{
  display:flex; align-items:center; gap:0.9rem; flex-wrap:wrap;
  margin-bottom:0.6rem;
}
.ai-status{ font-size:0.88rem; color:var(--grey-700); }
.ai-status.error{ color:var(--red); }
.ai-status.loading::before{
  content:""; display:inline-block; width:14px; height:14px;
  border:2px solid var(--grey-300); border-top-color:var(--red);
  border-radius:50%; vertical-align:-2px; margin-right:0.5rem;
  animation:ai-spin 0.8s linear infinite;
}
@keyframes ai-spin { to { transform:rotate(360deg); } }

.ai-results{
  margin-top:1.6rem; padding:1.4rem 1.5rem;
  background:var(--grey-100); border-left:4px solid var(--red);
}
.ai-results h4{
  margin:0 0 0.8rem; font-size:1.2rem; color:var(--ink);
}
.ai-results h5{
  font-family:var(--sans); font-size:0.78rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--red); font-weight:700;
  margin:1.1rem 0 0.4rem;
}
.ai-results h5:first-of-type{ margin-top:0.6rem; }
.ai-results p{ margin:0 0 0.4rem; }
.ai-results ul{ margin:0 0 0.4rem; padding-left:1.2rem; }
.ai-results ul li{ padding:0.18rem 0; }
.ai-axes-list ul{ list-style:none; padding:0; }
.ai-axes-list ul li{
  padding:0.55rem 0; border-bottom:1px dashed var(--grey-300);
}
.ai-axes-list ul li:last-child{ border-bottom:0; }
.ai-axes-list ul li b{
  display:inline-block; min-width:24px; font-weight:700; color:var(--red);
}
.ai-disclaimer{
  margin-top:1.2rem; padding-top:0.8rem; border-top:1px solid var(--grey-300);
  font-size:0.78rem; color:var(--grey-500); font-style:italic;
}
.ai-actions-end{ margin-top:0.8rem; }

/* AI block — header with badge */
.ai-header{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  flex-wrap:wrap; margin-bottom:0.2rem;
}
.ai-badge{
  display:inline-flex; align-items:center; gap:0.4rem;
  background:var(--ink); color:var(--white);
  padding:0.32rem 0.7rem; font-size:0.72rem; font-weight:700;
  letter-spacing:0.06em; text-transform:uppercase;
  border:1.5px solid var(--ink); border-radius:2px;
}
/* Privacy notice (above textarea) */
.ai-privacy-notice{
  margin:1rem 0 1.2rem;
  padding:0.95rem 1.1rem;
  background:var(--grey-100);
  border-left:4px solid var(--ink);
  font-size:0.88rem; line-height:1.55; color:var(--grey-700);
}
.ai-privacy-notice h5{
  margin:0 0 0.35rem; font-family:var(--sans);
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--ink); font-weight:700;
}
.ai-privacy-notice p{ margin:0 0 0.45rem; }
.ai-privacy-notice p:last-child{ margin-bottom:0; }
.ai-privacy-link{
  color:var(--red); font-weight:600; border-bottom:1.5px dashed var(--red); padding-bottom:1px;
}
.ai-privacy-link:hover{ color:var(--red-dark); border-bottom-style:solid; }

/* Anonymization hint */
.ai-hint.anonymize{
  background:var(--grey-100); padding:0.55rem 0.8rem;
  border-left:3px solid var(--red);
  color:var(--grey-700); font-style:italic;
  margin:0.4rem 0 0.7rem;
}

/* Consent checkbox */
.ai-consent{
  display:flex; align-items:flex-start; gap:0.7rem;
  margin:1rem 0; padding:0.85rem 1rem;
  background:var(--white); border:1.5px solid var(--ink);
  cursor:pointer; font-size:0.92rem; line-height:1.5; color:var(--ink);
  transition:border-color .2s, background .2s;
}
.ai-consent:hover{ background:var(--grey-100); }
.ai-consent.invalid{ border-color:var(--red); background:#fff4f4; }
.ai-consent input[type="checkbox"]{
  margin-top:0.25rem; width:18px; height:18px; flex-shrink:0;
  accent-color:var(--red); cursor:pointer;
}
.ai-consent span{ flex:1; }

/* ==================== PRIVACY & AI SECTION ==================== */
.privacy-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem;
  margin-top:1.5rem;
}
.privacy-card{
  background:var(--white); border:1.5px solid var(--ink);
  padding:1.25rem 1.3rem;
}
.privacy-card.highlight{
  background:#fff4f4; border-color:var(--red); border-width:1.5px;
  grid-column:1 / -1;
}
.privacy-card h4{
  margin:0 0 0.5rem; font-family:var(--display);
  font-size:1.02rem; font-weight:700; letter-spacing:-0.005em;
  color:var(--ink);
}
.privacy-card.highlight h4{ color:var(--red); }
.privacy-card p{ margin:0; font-size:0.92rem; line-height:1.55; color:var(--grey-700); }
.privacy-updated{
  margin-top:1.8rem; font-size:0.82rem; color:var(--grey-500); font-style:italic;
}
@media (max-width:780px){ .privacy-grid{ grid-template-columns:1fr; } }

/* Footer legal links */
.footer-legal-links{ display:flex; gap:0.6rem; flex-wrap:wrap; align-items:center; }
.footer-legal-links a{ color:var(--grey-300); border-bottom:1px solid transparent; padding-bottom:1px; }
.footer-legal-links a:hover{ color:var(--white); border-bottom-color:var(--red); }
.footer-legal-links .dot{ color:var(--grey-500); }

/* ==================== WHO IS IT FOR ==================== */
.audience{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:2rem;
}
.aud-card{
  background:var(--white); border:1.5px solid var(--ink); padding:1.4rem;
  transition:transform .2s, box-shadow .2s;
}
.aud-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-soft); }
.aud-card h4{ margin:0 0 0.4rem; font-size:1.15rem; font-family:var(--sans); font-weight:700; }
.aud-card .num{
  display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center;
  background:var(--ink); color:var(--white); font-family:var(--display); font-weight:700; font-size:1rem;
  margin-bottom:0.7rem;
}
.aud-card p{ margin:0; font-size:0.93rem; color:var(--grey-700); }
@media (max-width:900px){ .audience{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .audience{ grid-template-columns:1fr; } }

/* ==================== AUTHOR / METHOD ==================== */
.method-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem;
}
.method-card{
  border:1.5px solid var(--grey-300); padding:1.2rem 1.1rem; background:var(--white);
  text-align:center;
}
.method-card h4{ margin:0.4rem 0 0.3rem; font-size:1rem; }
.method-card p{ font-size:0.85rem; color:var(--grey-700); margin:0; }
.method-card .mk{
  display:inline-block; padding:0.2rem 0.5rem; font-size:0.7rem;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--red);
  border:1.5px solid var(--red); font-weight:700;
}
@media (max-width:900px){ .method-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .method-grid{ grid-template-columns:1fr; } }

/* ==================== CONCLUSION QUOTE ==================== */
.quote-block{
  text-align:center; padding:3rem 1rem; max-width:880px; margin:0 auto;
}
.quote-block::before{
  content:"“"; display:block; font-family:Georgia, 'Times New Roman', serif; font-size:7rem; color:var(--red);
  line-height:0.5; height:50px; margin-bottom:1rem; font-weight:400;
}
.quote-block p{
  font-family:var(--display); font-style:normal; font-weight:300;
  font-size:clamp(1.3rem,2.5vw,1.9rem); color:var(--white); letter-spacing:-0.015em;
  line-height:1.4;
}
.quote-block cite{ display:block; margin-top:1rem; color:var(--grey-300); font-style:normal; font-size:0.9rem; letter-spacing:0.12em; text-transform:uppercase; }

/* ==================== CONTACT ==================== */
.contact-grid{
  display:grid; grid-template-columns: 1.2fr 1fr; gap:2.5rem; align-items:start;
}
.contact-block h3{ font-size:1.6rem; }
.contact-block a.email{
  display:inline-block; font-size:1.4rem; font-weight:600; color:var(--ink);
  border-bottom:2px solid var(--red); padding-bottom:0.2rem;
}
.contact-block a.email:hover{ color:var(--red); }
.contact-links{ list-style:none; padding:0; margin:1rem 0 0; }
.contact-links li{ padding:0.4rem 0; }
.contact-links li a{ font-weight:500; }
.contact-links li a::after{ content:" ↗"; color:var(--red); }
.contact-side{
  padding:1.5rem; border:1.5px solid var(--ink); background:var(--white);
}
.contact-side h4{ margin-top:0; font-family:var(--sans); font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:0.16em; color:var(--red); }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }

/* ==================== FOOTER ==================== */
footer{
  background:var(--ink); color:var(--grey-300);
  padding:3rem 0 1.5rem; font-size:0.9rem;
}
footer .container{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:1.6rem; }
footer h5{
  font-family:var(--sans); font-weight:700; font-size:0.78rem;
  letter-spacing:0.18em; text-transform:uppercase; color:var(--red); margin:0 0 0.8rem;
}
footer a{ color:var(--grey-300); }
footer a:hover{ color:var(--white); }
footer ul{ list-style:none; padding:0; margin:0; }
footer ul li{ padding:0.2rem 0; }
.footer-brand{ display:flex; align-items:center; gap:0.7rem; margin-bottom:0.8rem; }
.footer-brand img{ width:38px; height:38px; }
.footer-brand .name{ font-family:var(--display); color:var(--white); font-size:1.25rem; letter-spacing:0.02em; font-weight:700; }
.footer-tagline{ color:var(--grey-300); font-style:italic; }
.copyright{
  margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid #2a2a2a;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size:0.8rem; color:var(--grey-500);
}
@media (max-width:900px){ footer .container{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ footer .container{ grid-template-columns:1fr; } }

/* ==================== UTILS ==================== */
.fade-in{ opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease; }
.fade-in.visible{ opacity:1; transform:none; }
.text-red{ color:var(--red); }
/* Trademark ® : petit et surélevé (style superscript) */
.reg{
  font-size:0.45em;
  vertical-align:0.65em;
  line-height:1;
  font-weight:400;
  letter-spacing:0;
  color:var(--red);
  margin-left:0.05em;
}
.divider{
  width:60px; height:3px; background:var(--red); margin:1rem 0 1.4rem;
}
.section-dark .divider{ background:var(--red); }

/* Hide native radio */
.scale-options input[type="radio"]{
  position:absolute; opacity:0; pointer-events:none;
}

/* Print styles for PDF capture */
@media print {
  .site-header, footer, .tool-actions, .result-actions { display:none; }
  body{ background:#fff; color:#000; }
}
