/* Le Club Photo — cycle lisibilité et confort (28 août 2026) */
:root {
  --warm-accent: #a94968;
  --warm-accent-soft: #f9e9e5;
  --warm-border: #e5d3ca;
  --warm-sand: #fffaf4;
  --warm-ink: #2a2630;
}

:root[data-theme="dark"] {
  --warm-accent: #f09ab9;
  --warm-accent-soft: #35202d;
  --warm-border: #493442;
  --warm-sand: #1d1822;
  --warm-ink: #f5edf4;
}

html, body { overflow-x: hidden; }
body { font-size: 18px; line-height: 1.62; color: var(--warm-ink, inherit); }

/* Une hiérarchie plus douce, avec moins d'effet « formulaire administratif ». */
.card, .community-hero, .page-hero, .club-hero, .real-admin-page-head,
.forum-category-card, .forum-section-card, .admin-panel, .meeting-card {
  border-radius: 22px;
}

button, input, select, textarea, .button, .btn, .header-admin-link,
.header-logout-button, .account-menu summary { border-radius: 12px; }

input, select, textarea { font-size: 18px; min-height: 46px; }

.page-sub, .home-section-head p, .card p, .form-help, .help-text,
.post-body, .forum-category-copy small, .forum-category-copy em,
.activity-copy small { line-height: 1.6; }

.forum-category-copy strong, .forum-category-copy a, .home-kicker,
.section-kicker, .page-kicker, .admin-kicker { color: var(--warm-accent); }

.forum-category-card, .forum-section-card {
  border-color: color-mix(in srgb, var(--warm-accent) 28%, var(--border-color, #e5d8dc));
  background: color-mix(in srgb, var(--warm-accent-soft) 36%, var(--card-bg, #fff));
}

.forum-category-card:hover, .forum-section-card:hover,
.button:hover, .btn:hover { border-color: var(--warm-accent); }

.cat-icon-box, .activity-empty-icon, .journey-step-number {
  background: color-mix(in srgb, var(--warm-accent-soft) 82%, transparent);
  border-color: color-mix(in srgb, var(--warm-accent) 25%, transparent);
}

.site-header nav .nav-link { min-height: 44px; font-size: 16px; }
.context-nav-inner a { min-height: 42px; font-size: 15px; }
.search-form input { min-height: 48px; }

/* Les textes courants gagnent un cran, sans gonfler les titres. */
.page-sub, .home-section-head p, .card p, .form-help, .help-text,
.forum-category-copy small, .forum-category-copy em { font-size: 17px; }

html[data-text-size="small"] body { font-size: 16px; }
html[data-text-size="small"] .page-sub, html[data-text-size="small"] .home-section-head p, html[data-text-size="small"] .card p, html[data-text-size="small"] .form-help, html[data-text-size="small"] .help-text, html[data-text-size="small"] .forum-category-copy small, html[data-text-size="small"] .forum-category-copy em { font-size: 15px; }
html[data-text-size="large"] body { font-size: 20px; }
html[data-text-size="large"] .page-sub, html[data-text-size="large"] .home-section-head p, html[data-text-size="large"] .card p, html[data-text-size="large"] .form-help, html[data-text-size="large"] .help-text, html[data-text-size="large"] .forum-category-copy small, html[data-text-size="large"] .forum-category-copy em { font-size: 19px; }
html[data-text-size="large"] .site-header nav .nav-link { font-size: 18px; }
html[data-text-size="xl"] body { font-size: 22px; }
html[data-text-size="xl"] .page-sub, html[data-text-size="xl"] .home-section-head p, html[data-text-size="xl"] .card p, html[data-text-size="xl"] .form-help, html[data-text-size="xl"] .help-text, html[data-text-size="xl"] .forum-category-copy small, html[data-text-size="xl"] .forum-category-copy em { font-size: 21px; }
html[data-text-size="xl"] .site-header nav .nav-link { font-size: 19px; }

.text-size-control { position: fixed; left: 16px; bottom: 76px; z-index: 1200; }
.text-size-control > button { border: 1px solid var(--warm-accent); background: var(--warm-accent-soft); color: var(--warm-accent); min-width: 48px; min-height: 44px; font-weight: 800; box-shadow: 0 8px 24px rgba(30, 18, 25, .12); }
.text-size-control-panel { display: none; position: absolute; left: 0; bottom: 52px; width: 272px; padding: 16px; border: 1px solid var(--warm-border); border-radius: 18px; background: var(--card-bg, #fff); box-shadow: 0 14px 34px rgba(30, 18, 25, .18); }
.text-size-control.is-open .text-size-control-panel { display: block; }
.text-size-control-panel strong { display: block; margin-bottom: 10px; }
.text-size-control-panel p { margin: 0 0 12px; font-size: 15px; line-height: 1.4; }
.text-size-control-panel .text-size-choices { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.text-size-control-panel button { min-height: 40px; border: 1px solid var(--warm-border); background: transparent; color: inherit; font-weight: 700; }
.text-size-control-panel button[aria-pressed="true"] { background: var(--warm-accent); color: #fff; border-color: var(--warm-accent); }
.text-size-control-panel em { display: block; margin-top: 10px; color: var(--muted, #6b6670); font-size: 13px; font-style: normal; }
.comfort-switch { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--warm-border); cursor: pointer; }
.comfort-switch input { min-width: 21px; min-height: 21px; margin: 0; accent-color: var(--warm-accent); }
.comfort-switch b, .comfort-switch small { display: block; }
.comfort-switch small { margin-top: 2px; font-size: 13px; }

.visitor-start, .member-essentials { margin: 28px 0; }
.visitor-start-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.visitor-start-card { min-height: 176px; background: var(--warm-sand); border-color: var(--warm-border); box-shadow: 0 8px 24px rgba(77, 50, 42, .06); }
.visitor-start-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(77, 50, 42, .12); }
.club-help-link { background: var(--warm-accent-soft); border: 1px solid var(--warm-border); border-radius: 999px; padding: 10px 14px; }

html[data-comfort="true"] body { letter-spacing: .01em; }
html[data-comfort="true"] :where(button, .button, .btn, a.btn, summary, input, select, textarea) { min-height: 52px; }
html[data-comfort="true"] .card, html[data-comfort="true"] .community-hero, html[data-comfort="true"] .page-hero, html[data-comfort="true"] .club-hero, html[data-comfort="true"] .forum-category-card, html[data-comfort="true"] .forum-section-card { margin-bottom: 24px; }
html[data-comfort="true"] .forum-category-card, html[data-comfort="true"] .visitor-start-card { border-width: 2px; }
html[data-comfort="true"] .page-sub, html[data-comfort="true"] .home-section-head p, html[data-comfort="true"] .card p { line-height: 1.78; }

@media (max-width: 760px) {
  body { font-size: 18px; }
  .site-header nav .nav-link { font-size: 16px; }
  .context-nav-inner a { font-size: 15px; }
  .text-size-control { left: 12px; bottom: 84px; }
  .text-size-control-panel { width: min(220px, calc(100vw - 24px)); }
  .visitor-start-grid { grid-template-columns: 1fr; }
  .visitor-start-card { min-height: 0; }

  /* Sur téléphone, une action doit rester lisible : l’icône complète le libellé. */
  .display-customizer { right: 12px; bottom: 84px; }
  .display-customizer-toggle {
    width: auto;
    min-height: 46px;
    height: auto;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14px;
  }
  .display-customizer-toggle b { display: inline; }
}

/* Cycle sécurité d’usage : clavier, tactile et mouvements réduits. */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--warm-accent);
  outline-offset: 3px;
}

@media (pointer: coarse) {
  :where(button, .button, .btn, a.button, summary) { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Cycle 2 — une base plus chaleureuse et moins “tableau administratif”. */
:root, :root[data-theme="light"] {
  --bg: #fbf7f2;
  --card: #fffdfb;
  --border: #e6d8cf;
  --text: #2c2630;
  --text-sub: #706773;
  --muted: #827885;
  --soft: #f5ebe3;
  --accent: #0876d9;
  --accent-dark: #0565ba;
  --shadow: 0 10px 26px rgba(89, 57, 44, .09);
}
:root[data-theme="dark"] {
  --bg: #19151c;
  --card: #251e29;
  --border: #493b4b;
  --text: #f8eff5;
  --text-sub: #c8bac5;
  --muted: #ad9eab;
  --soft: #302534;
  --accent: #f092b6;
  --accent-dark: #dc6f9d;
  --shadow: 0 12px 30px rgba(0, 0, 0, .25);
}

body, .page-shell { background: var(--bg); color: var(--text); }
.site-header, .context-nav, .site-banner { background: color-mix(in srgb, var(--card) 92%, var(--warm-sand)); border-color: var(--border); }
.site-header { box-shadow: 0 1px 0 rgba(118, 78, 60, .06); }
.card, .community-hero, .page-hero, .club-hero, .forum-section-card, .forum-category-card,
.admin-nav, .real-space-admin-menu, .space-actions, .club-dashboard-main, .club-members-preview {
  border-color: var(--border);
  box-shadow: var(--shadow);
}
.btn, .button, button { border-radius: 14px; }
.btn-primary, .button-primary { box-shadow: 0 7px 17px color-mix(in srgb, var(--accent) 24%, transparent); }
.page-title { letter-spacing: -.035em; }
.page-title { font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.08; }
.home-section-head h2, .discover-section h2, .club-hero h2 { font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.18; }
.forum-section-card h3, .club-forum-section h3, .visitor-start-card strong, .discover-card strong { font-size: 1.12rem; }
.btn, .button, button, input, select, textarea { font-size: 1rem; }
.home-kicker { color: var(--warm-accent); letter-spacing: .11em; }
.site-header nav .nav-link, .context-nav-inner a { font-weight: 750; }
.club-hero-more-actions { margin-top: 12px; }
.club-hero-more-actions > summary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 2px;
  color: var(--text-sub); font-weight: 750; cursor: pointer; list-style: none;
}
.club-hero-more-actions > summary::-webkit-details-marker { display: none; }
.club-hero-more-actions[open] > summary { color: var(--warm-accent); }
.club-hero-secondary-actions { margin-top: 4px; padding: 14px; border: 1px solid var(--warm-border); border-radius: 18px; background: color-mix(in srgb, var(--warm-sand) 76%, var(--card)); }

/* Le sous-menu mobile reste dans la carte : il défile avec la page et ne déborde jamais de l’écran. */
@media (max-width: 760px) {
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown,
  .admin-nav-modern .admin-nav-dropdown { position: static; }
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown-panel,
  .admin-nav-modern .admin-nav-dropdown-panel {
    position: static;
    width: 100%; min-width: 0; max-height: none; box-sizing: border-box;
    margin: 6px 0 0; padding: 6px; overflow: visible; box-shadow: none;
  }
  .real-space-admin-menu.real-space-admin-modern .real-space-admin-dropdown-panel a,
  .admin-nav-modern .admin-nav-dropdown-panel a { white-space: normal; font-size: 14px; padding: 11px 10px; }
  .club-hero-primary-actions .btn { width: 100%; justify-content: center; }
  .club-hero-secondary-actions { display: grid; grid-template-columns: 1fr; }
}
