/* Palette publique partagée : marine, écume et touches dorées discrètes. */
.ff-site { --ff-ink:#193747; --ff-muted:#556d79; --ff-bg:#f4f7f7; --ff-card:#fff; --ff-line:#dce6e8; --ff-soft:#e9f2f1; --ff-link:#215e6b; background:var(--ff-bg); color:var(--ff-ink); }
[data-theme="dark"] .ff-site { --ff-ink:#e5eef2; --ff-muted:#afc2cc; --ff-bg:#0e202c; --ff-card:#152b39; --ff-line:#2b4350; --ff-soft:#203c45; --ff-link:#97cec9; }
.ff-site :is(h1,h2,h3) { letter-spacing:-.025em; }
.ff-site :is(.topbar,.nav) { border-bottom:1px solid var(--ff-line); background:var(--ff-card); color:var(--ff-ink); }
.ff-site :is(.topbar-brand,.nav b) { color:var(--ff-ink); }
.ff-site :is(.course-card,.pricing-box,.card,.test-card,.feat-card,.preview-card,.faq details) { border-color:var(--ff-line); background:var(--ff-card); color:var(--ff-ink); border-radius:18px; box-shadow:0 6px 24px #102f3c08; }
.ff-site :is(.course-card h3,.pricing-box h3,.card h2,.card .amount b,.faq summary) { color:var(--ff-ink); }
.ff-site :is(.course-card p,.preview-card p,.price-note,.pricing-box .sub,.card .amount span,.faq p) { color:var(--ff-muted); }
.ff-site :is(.btn-gold,.btn-cta,.card--star button) { background:#1b5364; color:#fff; border:1px solid #296678; box-shadow:none; }
.ff-site :is(.btn-gold,.btn-cta,.card--star button):hover { background:#246b79; color:#fff; box-shadow:0 5px 18px #0d354226; }
.ff-site .btn-outline { border:1px solid #759faa; color:#d5e9ec; background:transparent; }
.ff-site .btn-outline:hover { background:#ffffff12; color:#fff; }
.ff-site :is(.section-header h2 span,.stat .num,.card .tag) { color:var(--ff-link); }
.ff-site :is(.soon-ribbon,.card--star .star) { background:#e0efed; color:#245862; border:1px solid #bbd7d4; box-shadow:none; letter-spacing:.01em; }
.ff-site .card--star { border:1px solid #89b4b3; box-shadow:0 8px 30px #193d4c0c; }
.ff-site .pricing-box[style] { border:1px solid #89b4b3 !important; }
.ff-site .pricing-box>div[style*="position:absolute"] { background:#e0efed !important; color:#245862 !important; border:1px solid #bbd7d4; }
.ff-site .hero-portrait img { border:2px solid #87b5b4; box-shadow:0 16px 40px #061f3433; }
.ff-site .hero h1 { text-transform:none; letter-spacing:-.035em; }
.ff-site .final-cta,[data-theme="dark"] .ff-site .final-cta { padding:42px 24px; background:linear-gradient(120deg,#16394b,#102634); color:#f0f7fa; border-block:1px solid #315460; }
.ff-site .final-cta img { max-width:88px; margin-bottom:10px; }
.ff-site .final-cta h2,[data-theme="dark"] .ff-site .final-cta h2 { color:#f0f7fa; font-size:clamp(1.5rem,3vw,2rem); line-height:1.25; }
.ff-site .final-cta p,[data-theme="dark"] .ff-site .final-cta p { color:#bed2dc; font-size:1rem; opacity:1; margin-bottom:22px; }
.ff-site .final-cta .btn,.ff-site .final-cta a[style] { background:#dcefeb !important; color:#173e43 !important; border:1px solid #b8d9d1; padding:13px 26px !important; border-radius:12px; box-shadow:none; }
.ff-site :is(input,select,textarea) { border-radius:10px; }
.ff-site :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #438a91; outline-offset:3px; }
.ff-site :is(.seats select,.seats input) { min-width:0; max-width:100%; }
.ff-site .seats { flex-wrap:wrap; }
.ff-site .cards article { background:var(--ff-card); color:var(--ff-ink); border:1px solid var(--ff-line); border-radius:18px; }
.ff-site .cards .btn { background:#1b5364; border:1px solid #296678; color:#fff; border-radius:12px; }
.ff-site .eyebrow { color:var(--ff-link); }
.ff-site .hero>div>img,.ff-site .hero-inner>img { border:2px solid #89b4b3; box-shadow:0 12px 36px #061e3433; }
.ff-site footer a { overflow-wrap:anywhere; }
.ff-site footer p a { margin:0; }
.ff-site footer>.container>div:not([style*="display:grid"])>a { display:inline-block; margin:4px 10px; }
.ff-site .card select { background:var(--ff-card) !important; color:var(--ff-ink) !important; border-color:var(--ff-line) !important; }
@media(max-width:600px) {
  .ff-site .final-cta { padding:30px 20px; }
  .ff-site .final-cta img { max-width:72px; }
  .ff-site .nav { flex-wrap:wrap; gap:10px; padding:12px 16px; }
  .ff-site .nav b { font-size:.85rem; }
}
