/* Daltoshoot — feuille de style commune. Tokens alignés sur le design system (--dds-*). */
:root {
  --bg:#F6F3EC; --bg-raised:#FFFFFF; --ink:#15181D; --ink-soft:#565C68;
  --line:#DFDACD; --accent:#AD7B24; --accent-ink:#FFFFFF;
  --court:#161D28; --court-ink:#F3F0E7; --court-line:#333B48; --chip-bg:#EDE8DA;
  --shadow: 0 18px 40px -20px rgba(20,20,15,0.35);
  --status-ok:#3f7a3f; --status-err:#a53f3f;
  --font-display:'Big Shoulders Display',sans-serif; --font-body:'Work Sans',sans-serif; --font-mono:'IBM Plex Mono',monospace;
  --nav-h:64px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#0E1116; --bg-raised:#171B22; --ink:#F1EEE6; --ink-soft:#A7ADB8;
    --line:#2A2F3A; --accent:#D9A94A; --accent-ink:#15181D;
    --court:#05070A; --court-ink:#F3F0E7; --court-line:#232A36; --chip-bg:#1C212B;
    --shadow: 0 18px 40px -20px rgba(0,0,0,0.6);
    --status-ok:#8fd18f; --status-err:#e08a8a;
  }
}

/* ---------- base */
* { box-sizing:border-box; }
html { scroll-padding-top:calc(var(--nav-h) + 12px); -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior:smooth; } }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-body); -webkit-font-smoothing:antialiased; line-height:1.5; }
body.no-scroll { overflow:hidden; }
h1,h2,h3,h4 { font-family:var(--font-display); letter-spacing:0.01em; margin:0; line-height:1.05; }
p { margin:0; }
.mono { font-family:var(--font-mono); }
a { color:inherit; }
img { max-width:100%; display:block; height:auto; }
button { font-family:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.wrap { max-width:1180px; margin:0 auto; padding:0 24px; }
section { padding:88px 0; }
@media (max-width:720px) { section { padding:56px 0; } }
.skip-link { position:absolute; left:-999px; top:8px; background:var(--accent); color:var(--accent-ink); padding:10px 14px; border-radius:2px; z-index:999; font-weight:600; text-decoration:none; }
.skip-link:focus { left:8px; }
.eyebrow { font-family:var(--font-mono); font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
em.accent, h1 em, h2 em { font-style:normal; color:var(--accent); }

/* ---------- boutons */
.btn-accent { display:inline-block; background:var(--accent); color:var(--accent-ink); padding:15px 28px; border-radius:2px; text-decoration:none; font-weight:600; font-size:0.98rem; border:1px solid var(--accent); }
.btn-ghost { display:inline-block; padding:15px 28px; border-radius:2px; text-decoration:none; font-weight:600; font-size:0.98rem; border:1px solid rgba(243,240,231,0.35); color:var(--court-ink); }
.btn-ink { display:inline-block; padding:14px 24px; background:var(--ink); color:var(--bg); border-radius:2px; text-decoration:none; font-size:0.95rem; font-weight:600; border:none; cursor:pointer; }
.btn-outline { display:inline-block; padding:13px 24px; background:transparent; color:var(--ink); border-radius:2px; text-decoration:none; font-size:0.95rem; font-weight:600; border:1px solid var(--line); }
.cta-row { margin-top:36px; display:flex; gap:16px; flex-wrap:wrap; }
.chip-link { display:inline-block; font-family:var(--font-mono); font-size:0.82rem; padding:9px 16px; border-radius:20px; border:1px solid var(--line); background:var(--bg-raised); color:var(--ink-soft); text-decoration:none; }
.chip-link:hover { color:var(--ink); border-color:var(--ink); }

/* ---------- navigation */
.site-nav { position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.nav-inner { max-width:1180px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:var(--nav-h); }
.wordmark { font-family:var(--font-display); font-weight:800; font-size:1.3rem; letter-spacing:0.04em; text-decoration:none; }
.wordmark em { font-style:normal; color:var(--accent); }
.nav-links { display:flex; gap:22px; font-size:0.95rem; font-weight:500; }
.nav-links a { text-decoration:none; color:var(--ink-soft); transition:color .15s; padding-bottom:2px; border-bottom:2px solid transparent; }
.nav-links a:hover { color:var(--ink); }
.nav-links a[aria-current="page"] { color:var(--ink); border-bottom-color:var(--accent); }
.nav-cta { display:inline-block; padding:10px 20px; background:var(--ink); color:var(--bg); border-radius:2px; text-decoration:none; font-size:0.9rem; font-weight:600; white-space:nowrap; }
.menu-btn { display:none; background:none; border:1px solid var(--line); border-radius:2px; padding:8px 10px; cursor:pointer; color:var(--ink); font-size:0.9rem; }
@media (max-width:900px) {
  .nav-links, .nav-cta.desktop-only { display:none; }
  .menu-btn { display:inline-flex; }
}
#mobile-menu { position:fixed; inset:0; background:var(--bg); z-index:99; display:flex; flex-direction:column; padding:24px; gap:0; overflow-y:auto; }
#mobile-menu[hidden] { display:none; }
#mobile-menu a { padding:16px 4px; font-size:1.4rem; font-family:var(--font-display); font-weight:700; text-decoration:none; border-bottom:1px solid var(--line); }
#mobile-menu a[aria-current="page"] { color:var(--accent); }
#mobile-menu .close-row { display:flex; justify-content:flex-end; margin-bottom:8px; }
.mobile-sports { margin-top:20px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.mobile-sports .mono { font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); width:100%; }
.mobile-sports a { font-family:var(--font-mono); font-weight:500; font-size:0.85rem; border:1px solid var(--line); border-radius:20px; padding:8px 14px; }

/* ---------- fil d'Ariane */
.breadcrumb { max-width:1180px; margin:0 auto; padding:14px 24px 0; font-family:var(--font-mono); font-size:0.75rem; color:var(--ink-soft); }
.breadcrumb ol { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.breadcrumb li + li::before { content:'/'; margin-right:6px; opacity:0.5; }
.breadcrumb a { text-decoration:none; }
.breadcrumb a:hover { color:var(--ink); }

/* ---------- hero (accueil + pages sport) */
.hero { position:relative; background:var(--court); color:var(--court-ink); overflow:hidden; padding:0; }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.55; }
.hero-scrim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,7,10,0.55) 0%, rgba(5,7,10,0.75) 55%, rgba(5,7,10,0.95) 100%); }
.hero-inner { position:relative; max-width:1180px; margin:0 auto; padding:120px 24px 64px; }
.hero.compact .hero-inner { padding:88px 24px 56px; }
.hero h1 { font-size:clamp(2.6rem, 6vw, 4.6rem); line-height:0.98; font-weight:800; max-width:14ch; }
.hero-sub { margin-top:22px; font-size:1.15rem; max-width:46ch; color:#D7D2C4; line-height:1.55; }
.hero-credit { position:relative; max-width:1180px; margin:0 auto; padding:0 24px 28px; font-family:var(--font-mono); font-size:0.78rem; color:#9AA0AD; }
.hero .breadcrumb { position:relative; color:#9AA0AD; padding-top:18px; }
.cred-strip { position:relative; border-top:1px solid var(--court-line); }
.cred-grid { max-width:1180px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:repeat(4,1fr); }
.cred-tile { padding:22px 20px; border-right:1px solid var(--court-line); text-decoration:none; color:inherit; transition:background .15s; }
.cred-tile:last-child { border-right:none; }
a.cred-tile:hover { background:rgba(255,255,255,0.04); }
.cred-tile .k { font-family:var(--font-mono); font-size:0.72rem; color:var(--accent); text-transform:uppercase; letter-spacing:0.08em; }
.cred-tile .v { margin-top:6px; font-weight:600; font-size:0.98rem; }
@media (max-width:760px) {
  .cred-grid { grid-template-columns:1fr 1fr; }
  .cred-tile { border-bottom:1px solid var(--court-line); }
  .cred-tile:nth-child(even) { border-right:none; }
  .cred-tile:nth-last-child(-n+2) { border-bottom:none; }
  .hero-inner { padding:80px 24px 48px; }
}

/* ---------- en-tête de page (pages intérieures) */
.page-head { background:var(--court); color:var(--court-ink); padding:64px 0 56px; border-bottom:1px solid var(--court-line); }
.page-head h1 { font-size:clamp(2.2rem,5vw,3.6rem); font-weight:800; max-width:18ch; }
.page-head .page-sub { margin-top:16px; color:#C8C3B4; font-size:1.08rem; max-width:60ch; line-height:1.6; }
.page-head .breadcrumb { padding:0 0 22px; color:#9AA0AD; }
.page-head .wrap > .breadcrumb { max-width:none; }
@media (max-width:720px) { .page-head { padding:44px 0 40px; } }

/* ---------- têtes de section */
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; flex-wrap:wrap; }
.section-head h2 { font-size:clamp(1.8rem,3.4vw,2.6rem); }
.section-sub { color:var(--ink-soft); max-width:48ch; margin-top:10px; font-size:1rem; line-height:1.5; }
.link-more { font-weight:600; text-decoration:none; border-bottom:2px solid var(--accent); padding-bottom:2px; white-space:nowrap; }
.prose { max-width:70ch; color:var(--ink-soft); font-size:1.06rem; line-height:1.7; }
.prose p + p { margin-top:16px; }
.prose strong { color:var(--ink); }
.prose a { color:var(--ink); text-decoration-color:var(--accent); }
.prose h2 { color:var(--ink); font-size:1.7rem; margin:36px 0 12px; }
.prose h3 { color:var(--ink); font-size:1.3rem; margin:28px 0 10px; }
.prose ul, .prose ol { margin:14px 0 0; padding-left:22px; }
.prose li + li { margin-top:6px; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:820px) { .two-col { grid-template-columns:1fr; gap:32px; } }

/* ---------- galeries */
.work-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.work-tile { position:relative; grid-column:span 3; aspect-ratio:4/3; border-radius:3px; overflow:hidden; border:none; padding:0; cursor:pointer; background:var(--chip-bg); color:inherit; }
.work-tile.tile-big { grid-column:span 4; aspect-ratio:16/10; }
.work-tile.tile-wide { grid-column:span 2; aspect-ratio:3/4; }
.tile-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
@media (prefers-reduced-motion: no-preference) { .work-tile:hover .tile-img { transform:scale(1.045); } }
.tile-badge { position:absolute; top:14px; left:14px; background:rgba(5,7,10,0.55); color:#F3F0E7; font-family:var(--font-mono); font-size:0.7rem; padding:5px 10px; border-radius:2px; letter-spacing:0.04em; }
.tile-cap { position:absolute; left:0; right:0; bottom:0; padding:16px; background:linear-gradient(0deg, rgba(5,7,10,0.92) 30%, rgba(5,7,10,0)); color:#F3F0E7; display:flex; flex-direction:column; gap:2px; text-align:left; }
.tile-sport { font-family:var(--font-mono); font-size:0.7rem; color:#D9A94A; text-transform:uppercase; letter-spacing:0.05em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tile-title { font-weight:600; font-size:0.98rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.3; }
.tile-meta { font-size:0.78rem; color:#C8C3B4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:760px) {
  .work-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
  .work-tile, .work-tile.tile-big, .work-tile.tile-wide { grid-column:span 1; aspect-ratio:3/4; }
  .tile-badge { display:none; }
  .tile-cap { padding:11px; gap:1px; }
  .tile-sport { font-size:0.62rem; }
  .tile-title { font-size:0.84rem; }
  .tile-meta { font-size:0.68rem; }
}
@media (max-width:420px) {
  .work-grid { grid-template-columns:1fr; }
  .work-tile, .work-tile.tile-big, .work-tile.tile-wide { aspect-ratio:4/3; }
  .tile-badge { display:block; }
  .tile-cap { padding:16px; }
  .tile-sport { font-size:0.7rem; }
  .tile-title { font-size:0.98rem; }
  .tile-meta { font-size:0.78rem; }
}
.gallery-cta { margin-top:30px; text-align:center; }
.filter-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
.filter-btn { font-family:var(--font-mono); font-size:0.82rem; padding:9px 16px; border-radius:20px; border:1px solid var(--line); background:var(--bg-raised); color:var(--ink-soft); cursor:pointer; }
.filter-btn.active { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.full-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.full-grid .work-tile { grid-column:span 1; aspect-ratio:3/4; content-visibility:auto; }
.full-grid .work-tile[hidden] { display:none; }
@media (max-width:900px) { .full-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px) { .full-grid { grid-template-columns:repeat(2,1fr); gap:10px; } .full-grid .tile-badge { display:none; } .full-grid .tile-cap { padding:11px; } .full-grid .tile-title { font-size:0.84rem; } .full-grid .tile-meta { font-size:0.68rem; } .full-grid .tile-sport { font-size:0.62rem; } }

/* cartes sport (accueil, galerie) */
.sport-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.sport-card { position:relative; aspect-ratio:3/4; border-radius:3px; overflow:hidden; background:var(--chip-bg); text-decoration:none; color:#F3F0E7; display:block; }
.sport-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
@media (prefers-reduced-motion: no-preference) { .sport-card:hover img { transform:scale(1.045); } }
.sport-card-body { position:absolute; left:0; right:0; bottom:0; padding:18px; background:linear-gradient(0deg, rgba(5,7,10,0.92) 30%, rgba(5,7,10,0)); display:flex; flex-direction:column; gap:4px; }
.sport-card .k { font-size:1.4rem; font-family:var(--font-display); font-weight:800; letter-spacing:0.02em; text-transform:uppercase; }
.sport-card .v { font-size:0.82rem; color:#C8C3B4; }
.sport-card::after { content:'→'; position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; background:rgba(5,7,10,0.55); display:flex; align-items:center; justify-content:center; font-size:0.9rem; }
@media (max-width:760px) { .sport-cards { grid-template-columns:1fr 1fr; gap:10px; } }

/* ---------- bande clubs / piliers */
.clubs-band { background:var(--court); color:var(--court-ink); }
.clubs-band h2 { font-size:clamp(1.9rem,3.6vw,2.8rem); max-width:16ch; }
.clubs-sub { margin-top:16px; max-width:56ch; color:#C8C3B4; font-size:1.05rem; line-height:1.6; }
.pillars { margin-top:52px; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.pillar .num { font-family:var(--font-mono); color:var(--accent); font-size:0.85rem; }
.pillar h3 { margin-top:10px; font-size:1.25rem; font-weight:700; }
.pillar p { margin-top:8px; color:#B7B2A4; font-size:0.92rem; line-height:1.55; }
@media (max-width:760px) { .pillars { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .pillars { grid-template-columns:1fr; } }

/* ---------- pages sport */
.sport-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:40px; }
.sport-facts .fact { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; padding:20px; }
.sport-facts .k { font-size:0.72rem; color:var(--accent); text-transform:uppercase; letter-spacing:0.08em; }
.sport-facts .v { margin-top:8px; font-weight:600; font-size:0.95rem; line-height:1.4; }
@media (max-width:900px) { .sport-facts { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .sport-facts { grid-template-columns:1fr; } }
.deliver-list { list-style:none; padding:0; margin:24px 0 0; display:grid; gap:14px; }
.deliver-list li { padding-left:28px; position:relative; color:var(--ink-soft); line-height:1.55; }
.deliver-list li::before { content:''; position:absolute; left:0; top:10px; width:14px; height:2px; background:var(--accent); }
.other-sports { margin-top:32px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.other-sports .mono { font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-soft); margin-right:6px; }

/* ---------- tarifs */
.price-group + .price-group { margin-top:56px; }
.price-group-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.price-group-head h3, .price-group-head h2 { font-size:1.4rem; }
.price-group-note { color:var(--ink-soft); font-size:0.92rem; max-width:48ch; }
.pricing-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.price-card { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; padding:28px 24px; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.price-card.featured { border-color:var(--accent); }
.price-card .price-name { font-family:var(--font-mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); }
.price-card .price-value { font-family:var(--font-display); font-size:2rem; font-weight:800; margin-top:10px; }
.price-card .price-desc { margin-top:10px; color:var(--ink-soft); font-size:0.92rem; line-height:1.55; flex-grow:1; }
.price-card .price-tag { margin-top:16px; font-size:0.76rem; font-weight:700; padding:4px 10px; border-radius:20px; background:var(--chip-bg); color:var(--ink-soft); align-self:flex-start; }
.pack-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.pack-card { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; padding:24px 20px; text-align:center; position:relative; }
.pack-card.popular { border-color:var(--accent); }
.pack-card .pack-badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--accent); color:var(--accent-ink); font-family:var(--font-mono); font-size:0.66rem; padding:4px 12px; border-radius:20px; white-space:nowrap; text-transform:uppercase; letter-spacing:0.05em; }
.pack-card .pack-name { font-weight:700; font-size:1.02rem; }
.pack-card .pack-value { font-family:var(--font-display); font-size:2.4rem; font-weight:800; margin-top:8px; }
.pack-card .pack-per { font-size:0.78rem; color:var(--ink-soft); margin-top:4px; }
.pack-note { margin-top:24px; color:var(--ink-soft); font-size:0.92rem; line-height:1.6; text-align:center; max-width:70ch; margin-left:auto; margin-right:auto; }
.pack-note a { color:var(--ink); text-decoration-color:var(--accent); }
@media (max-width:900px) { .pricing-grid, .pack-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .pricing-grid, .pack-grid { grid-template-columns:1fr; } }
.formulas { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px; }
.formula { border:1px solid var(--line); border-radius:4px; padding:22px; background:var(--bg-raised); }
.formula .k { font-family:var(--font-mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); }
.formula .v { font-family:var(--font-display); font-size:1.8rem; font-weight:800; margin-top:6px; }
.formula p { margin-top:8px; color:var(--ink-soft); font-size:0.92rem; line-height:1.5; }
@media (max-width:760px) { .formulas { grid-template-columns:1fr; } }

/* ---------- formulaires (devis + contact) */
.quote-card { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; box-shadow:var(--shadow); padding:48px; }
.quote-form { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.quote-form .field-full { grid-column:1/-1; }
.quote-form label, .contact-form label { font-size:0.82rem; font-weight:600; color:var(--ink-soft); display:block; margin-bottom:6px; }
.quote-form input, .quote-form select, .quote-form textarea,
.contact-form input, .contact-form select, .contact-form textarea {
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:2px; background:var(--bg); color:var(--ink); font-family:inherit; font-size:0.95rem;
}
.quote-form textarea { min-height:90px; resize:vertical; }
.quote-type-row { display:flex; gap:10px; flex-wrap:wrap; }
.quote-type-btn { font-family:var(--font-mono); font-size:0.82rem; padding:10px 16px; border-radius:20px; border:1px solid var(--line); background:var(--bg); color:var(--ink-soft); cursor:pointer; }
.quote-type-btn.active { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.quote-alert { background:var(--chip-bg); border-radius:4px; padding:14px 16px; font-size:0.88rem; color:var(--ink-soft); }
.quote-result { background:var(--court); color:var(--court-ink); border-radius:4px; padding:24px 28px; display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.quote-result-label { font-family:var(--font-mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); }
.quote-result-value { font-family:var(--font-display); font-size:2.4rem; font-weight:800; }
.quote-result-detail { font-size:0.85rem; color:#C8C3B4; margin-top:4px; }
.quote-form button[type=submit], .contact-form button[type=submit] { background:var(--ink); color:var(--bg); border:none; padding:14px 20px; border-radius:2px; font-weight:600; cursor:pointer; font-size:0.98rem; }
.form-note { font-size:0.78rem; color:var(--ink-soft); margin-top:-8px; }
.form-note a { color:var(--ink); }
.form-status { font-size:0.9rem; font-weight:600; margin-top:6px; padding:10px 12px; border-radius:2px; }
.form-status.ok { background:rgba(90,160,90,0.15); color:var(--status-ok); }
.form-status.err { background:rgba(200,80,80,0.15); color:var(--status-err); }
@media (max-width:760px) { .quote-card { padding:28px 20px; } .quote-form { grid-template-columns:1fr; } }
.contact-card { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; box-shadow:var(--shadow); }
.contact-info { padding:48px; background:var(--court); color:var(--court-ink); }
.contact-info h2, .contact-info h3 { font-size:1.6rem; }
.contact-info p { color:#C8C3B4; margin-top:14px; line-height:1.6; }
.contact-line { margin-top:22px; display:flex; flex-direction:column; gap:10px; font-family:var(--font-mono); font-size:0.92rem; }
.contact-line a { text-decoration:none; color:var(--accent); }
.contact-form { padding:48px; display:flex; flex-direction:column; gap:14px; }
.contact-form textarea { min-height:100px; resize:vertical; }
.contact-form .form-note { margin-top:4px; }
@media (max-width:760px) { .contact-card { grid-template-columns:1fr; } .contact-info, .contact-form { padding:28px 20px; } }

/* ---------- à propos */
.about-card { background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; box-shadow:var(--shadow); overflow:hidden; display:grid; grid-template-columns:340px 1fr; }
.about-photo { position:relative; min-height:100%; background:var(--court); }
.about-photo img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1); }
.about-content { padding:48px; }
.about-card p { font-size:1.08rem; line-height:1.7; color:var(--ink-soft); }
.about-card p + p { margin-top:16px; }
.about-sig { margin-top:24px; font-family:var(--font-mono); font-size:0.85rem; color:var(--ink); }
.about-stats { margin-top:32px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding-top:28px; border-top:1px solid var(--line); }
.about-stats .stat b { font-family:var(--font-display); font-size:2rem; display:block; }
.about-stats .stat span { font-size:0.82rem; color:var(--ink-soft); }
@media (max-width:760px) { .about-card { grid-template-columns:1fr; } .about-photo { aspect-ratio:4/3; } .about-photo img { object-position:center 12%; } }
@media (max-width:600px) { .about-content { padding:28px 20px; } .about-stats { grid-template-columns:1fr 1fr; } }

/* ---------- FAQ */
.faq-list { max-width:820px; }
.faq-item { border-bottom:1px solid var(--line); padding:22px 0; }
.faq-item:first-child { border-top:1px solid var(--line); }
.faq-item summary { cursor:pointer; font-weight:700; font-size:1.05rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; font-family:var(--font-mono); color:var(--accent); font-size:1.5rem; flex-shrink:0; line-height:1; transition:transform .2s ease; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item p { margin-top:14px; color:var(--ink-soft); font-size:0.98rem; line-height:1.65; max-width:70ch; }
.faq-item p a { color:var(--ink); text-decoration-color:var(--accent); }

/* ---------- actualités */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.news-card { display:flex; flex-direction:column; background:var(--bg-raised); border:1px solid var(--line); border-radius:4px; overflow:hidden; text-decoration:none; box-shadow:var(--shadow); transition:border-color .15s; }
.news-card:hover { border-color:var(--accent); }
.news-cover { aspect-ratio:3/2; width:100%; object-fit:cover; }
.news-body { padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; }
.news-meta { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); }
.news-title { font-family:var(--font-display); font-size:1.4rem; font-weight:700; line-height:1.1; }
.news-desc { color:var(--ink-soft); font-size:0.92rem; line-height:1.5; }
@media (max-width:900px) { .news-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .news-grid { grid-template-columns:1fr; } }
.article { max-width:760px; }
.article-head { padding:64px 0 32px; }
.article-head h1 { font-size:clamp(2rem,4.6vw,3.2rem); font-weight:800; max-width:22ch; }
.article-head .lead { margin-top:16px; color:var(--ink-soft); font-size:1.15rem; line-height:1.6; max-width:60ch; }
.article-cover { border-radius:4px; overflow:hidden; margin:0 0 40px; }
.article-cover img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.article .prose figure { margin:28px 0; }
.article .prose figure img { border-radius:3px; }
.article .prose figcaption { margin-top:8px; font-family:var(--font-mono); font-size:0.75rem; color:var(--ink-soft); }
.article .prose blockquote { margin:24px 0; padding:4px 0 4px 20px; border-left:2px solid var(--accent); font-size:1.15rem; color:var(--ink); }
.article-foot { margin-top:48px; padding-top:28px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:center; }

/* ---------- bande d'appel */
.cta-band { background:var(--court); color:var(--court-ink); }
.cta-band .wrap { display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.cta-band h2 { font-size:clamp(1.8rem,3.4vw,2.6rem); max-width:20ch; }
.cta-band p { margin-top:10px; color:#C8C3B4; max-width:52ch; line-height:1.6; }
.cta-band .cta-row { margin-top:0; }

/* ---------- visionneuse */
#lightbox { position:fixed; inset:0; background:rgba(5,7,10,0.92); z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; }
#lightbox[hidden] { display:none; }
#lightbox img { max-width:min(94vw,1100px); max-height:76vh; width:auto; object-fit:contain; border-radius:2px; }
#lightbox .lb-cap { color:#F3F0E7; text-align:center; margin-top:16px; max-width:70ch; }
#lightbox .lb-tag { color:#D9A94A; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.05em; }
#lightbox .lb-title { font-weight:600; font-size:1.15rem; margin-top:4px; }
#lightbox .lb-meta { color:#B7B2A4; font-size:0.88rem; margin-top:2px; }
.lb-btn { position:absolute; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); color:#F3F0E7; width:44px; height:44px; border-radius:50%; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; }
.lb-close { top:20px; right:20px; }
.lb-prev { left:20px; top:50%; transform:translateY(-50%); }
.lb-next { right:20px; top:50%; transform:translateY(-50%); }
@media (max-width:600px) { .lb-prev, .lb-next { width:38px; height:38px; } #lightbox { padding:16px; } }

/* ---------- pied de page */
.site-footer { border-top:1px solid var(--line); padding:56px 0 32px; }
.footer-grid { max-width:1180px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
.footer-brand p { margin-top:14px; color:var(--ink-soft); font-size:0.92rem; line-height:1.6; max-width:44ch; }
.footer-social { margin-top:16px; display:flex; flex-wrap:wrap; gap:16px; font-family:var(--font-mono); font-size:0.82rem; }
.footer-social a { text-decoration:none; color:var(--accent); }
.footer-col { display:flex; flex-direction:column; gap:10px; font-size:0.92rem; }
.footer-col .k { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); margin-bottom:4px; }
.footer-col a { text-decoration:none; color:var(--ink-soft); }
.footer-col a:hover { color:var(--ink); }
.footer-bottom { max-width:1180px; margin:40px auto 0; padding:24px 24px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:0.8rem; color:var(--ink-soft); }
.footer-bottom a { text-decoration:none; color:var(--ink-soft); margin-left:16px; }
.footer-bottom a:first-child { margin-left:0; }
@media (max-width:760px) { .footer-grid { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1/-1; } }
@media (max-width:420px) { .footer-grid { grid-template-columns:1fr; } }

/* ---------- 404 */
.notfound { padding:120px 0; text-align:center; }
.notfound h1 { font-size:clamp(4rem,14vw,9rem); font-weight:800; color:var(--accent); line-height:1; }
.notfound p { margin-top:16px; color:var(--ink-soft); font-size:1.1rem; }
.notfound .cta-row { justify-content:center; }
