:root {
  --navy: #17243a;
  --ink: #263247;
  --muted: #687386;
  --coral: #c85f55;
  --cream: #f7f5f1;
  --paper: #ffffff;
  --line: #dde1e5;
  --sans: "Source Sans 3", sans-serif;
  --serif: "Source Sans 3", sans-serif;
  --font: "Source Sans 3", sans-serif;
  --shadow: 0 16px 42px rgba(23, 36, 58, .08);
}

body { font: 400 17px/1.55 var(--sans); letter-spacing: .002em; }
h1, h2, h3 { letter-spacing: -.025em; }
.display, .section-title, .member-title h2, .member-welcome h1,
.account-intro h1, .forms h2, .signup-shell h1, .signup-shell h2 {
  font-family: var(--sans) !important;
  font-weight: 600 !important;
}
.display { font-size: clamp(40px, 4.6vw, 64px); line-height: 1.04; }
.section-title { font-size: clamp(32px, 3.6vw, 47px); line-height: 1.1; }
.lead { font-size: 19px; line-height: 1.6; }
.eyebrow { font-size: 12px; letter-spacing: .12em; }

.header { height: 80px; gap: 32px; background: rgba(247, 245, 241, .96); }
.logo img { width: 46px; height: 46px; }
.logo span {
  min-width: auto; padding: 0; background: transparent; color: var(--navy);
  border-radius: 0; box-shadow: none; font-size: 13px; line-height: .92;
  letter-spacing: .01em;
}
.logo span::after { display: none; }
.logo strong { font-size: 20px; font-weight: 700; letter-spacing: -.03em; }
.nav { gap: 24px; height: 100%; align-items: stretch; }
.nav a {
  display: flex; align-items: center; padding: 2px 0 0; border-bottom-width: 2px;
  font-size: 14px; font-weight: 600; color: #4e596b;
}
.actions { gap: 14px; }
.link-button { font-size: 14px; font-weight: 600; }
.button { min-height: 46px; padding: 0 20px; border-radius: 7px; font-size: 15px; font-weight: 600; box-shadow: none; }
.section { padding: 86px 0; }
.page-hero { padding: 78px 0 62px; background: #faf9f7; }
.trustbar div { padding: 19px; }
.trustbar b { font-size: 18px; }
.card, .profile, .story-card, .story-frame, .editorial-card,
.price-card, .contact-card, .contact-form, .faq details {
  border-radius: 11px; box-shadow: none;
}
.card { padding: 26px; }
.card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(23, 36, 58, .07); }
.card .number { font: 600 31px/1 var(--sans); }
.card h3 { font: 600 25px/1.2 var(--sans); }
.editorial-card { padding: 48px; }
.editorial-card h3 { font: 600 34px/1.15 var(--sans); }
.editorial-card::before { font-family: var(--sans); font-weight: 700; }
.story-copy blockquote, .quote-wall .card p { font-family: var(--sans); font-weight: 500; }
.story-copy blockquote { font-size: 25px; }
.story-card h2 { font: 600 31px/1.15 var(--sans); }
.cta-band h2 { font: 600 40px/1.1 var(--sans); }
.faq details { padding: 17px 20px; }
.faq summary { font-weight: 600; }
.footer { padding-top: 54px; }
.footer h3 { font-size: 16px; letter-spacing: 0; }
.footer a, .footer p { font-size: 15px; }

/* Espace membre */
.member-header { min-height: 74px; padding: 0 3.5vw; gap: 24px; box-shadow: none; }
.member-header nav { height: 74px; gap: 2px; }
.member-header nav button, #logout {
  padding: 0 11px; border-bottom: 2px solid transparent; border-radius: 0;
  font-size: 14px; font-weight: 600; white-space: nowrap;
}
.member-header nav button.active { border-bottom-width: 2px; }
.member-main { width: min(1120px, calc(100% - 48px)); margin-top: 34px; }
.member-welcome h1 { font-size: clamp(36px, 4.5vw, 47px) !important; }
.member-welcome aside { padding: 13px 16px; border-radius: 8px; }
.member-tools { margin: 28px 0; gap: 12px; }
.member-tools article {
  padding: 18px 20px; border: 1px solid var(--line); border-radius: 9px;
  background: #fff; color: var(--ink);
}
.member-tools span, .member-tools small { color: var(--muted); }
.member-tools button { background: transparent; color: var(--coral); padding: 6px 0; font-weight: 600; }
.member-tools strong { font-size: 21px; }
.member-title { margin: 38px 0 16px; }
.member-title h2 { font-size: clamp(28px, 3.2vw, 36px) !important; line-height: 1.14; }
.member-search-panel { padding: 17px; border-radius: 10px; box-shadow: none; }
.member-search-panel input, .member-search-panel select,
.member-form input, .member-form textarea, .member-form select {
  border-radius: 6px; border-color: #cfd5dc; box-shadow: none;
}
.member-search-panel input:focus, .member-search-panel select:focus,
.member-form input:focus, .member-form textarea:focus, .member-form select:focus {
  outline: 2px solid rgba(200, 95, 85, .22); outline-offset: 1px; border-color: var(--coral);
}
.member-card { border-radius: 10px; box-shadow: none; }
.member-card:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(23, 36, 58, .08); }
.member-card h3 { font-family: var(--sans); font-size: 23px; font-weight: 600; }
.member-card-content { padding: 17px 18px 19px; }
.member-actions button { border-radius: 6px; font-weight: 600; }
.profile-intro-card, .profile-form-premium, .album-choice-card {
  border-radius: 11px; box-shadow: none;
}
.profile-intro-icon { width: 36px; height: 36px; font-size: 16px; }
.profile-section legend { font: 600 21px/1.2 var(--sans); }
.member-photo-slot { border-radius: 8px; }
.account-grid article { border-radius: 10px; box-shadow: none; }
dialog { border-radius: 11px; }
dialog h2 { font-family: var(--sans); font-size: 29px; font-weight: 600; }

/* Connexion et inscription */
.account-card, .signup-shell { border-radius: 12px; box-shadow: var(--shadow); }
.account-intro, .forms, .signup-shell aside, .signup-shell > section { padding: 48px; }
.account-intro h1 { font-size: 43px !important; }
.forms h2, .signup-shell h2 { font-size: 32px !important; }
input, select, textarea, .primary { border-radius: 6px; }
.primary { font-size: 16px; font-weight: 600; }

/* Back-office */
.sidebar nav button { border-radius: 6px; font-weight: 500; }
.sidebar nav button.active { background: rgba(255, 255, 255, .1); }
.login-card, .members-panel, .winner-panel, .stats article { border-radius: 10px; box-shadow: none; }
main > header h1 { font-family: var(--sans); font-size: 39px; font-weight: 600; }
.stats strong { font-family: var(--sans); font-size: 33px; font-weight: 600; }

@media (max-width: 1000px) {
  .header { height: 74px; }
  .member-header { flex-wrap: wrap; padding: 10px 18px; }
  .member-header nav { order: 3; width: 100%; height: auto; overflow-x: auto; border-top: 1px solid var(--line); }
  .member-header nav button { min-height: 46px; }
}
@media (max-width: 650px) {
  body { font-size: 16px; }
  .display { font-size: 43px; }
  .lead { font-size: 17px; }
  .section { padding: 64px 0; }
  .account-intro, .forms, .signup-shell aside, .signup-shell > section { padding: 30px 24px; }
}
