/* ANAT — reprend la charte du thème Sultan (bleu #00367e) */
:root { --blue:#00367e; --blue-light:#69a2cd; --link:#2a7ab8; --text:#333; --muted:#777; --border:#e5e5e5; --bg-soft:#f5f5f5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.55; color:var(--text); background:#fff; }
img { max-width:100%; height:auto; }
a { color:var(--link); }
h1,h2,h3,h4,h5,h6 { color:var(--blue); line-height:1.2; margin:0 0 .6em; }
h1 { font-size:2.4rem; font-weight:700; } h2 { font-size:1.6rem; } h3 { font-size:1.35rem; font-weight:400; } h4 { font-size:1.15rem; } h5 { font-size:1.05rem; } h6 { font-size:1rem; }
.container { max-width:1140px; margin:0 auto; padding:0 16px; }
.container.narrow { max-width:760px; }

/* En-tête + menu */
.site-header { border-bottom:1px solid var(--border); background:#fff; position:sticky; top:0; z-index:50; }
.logo { text-align:center; padding:14px 0 4px; } .logo img { width:160px; height:auto; }
.main-nav > ul { list-style:none; margin:0; padding:10px 16px 14px; display:flex; flex-wrap:wrap; justify-content:center; gap:4px 26px; }
.main-nav li { position:relative; }
.main-nav a { color:var(--blue); text-decoration:none; text-transform:uppercase; font-size:16px; display:inline-block; padding:6px 0; }
.main-nav li.active > a, .main-nav a:hover { color:var(--link); }
.main-nav li.has-sub > a::after { content:" ▾"; font-size:.8em; }
.main-nav .member-item > a { font-weight:700; }
.main-nav ul.sub { display:none; position:absolute; left:-14px; top:100%; min-width:250px; background:#fff; list-style:none; margin:0; padding:8px 0; box-shadow:0 6px 20px rgba(0,0,0,.12); }
.main-nav ul.sub a { display:block; padding:8px 18px; font-size:14px; }
.main-nav li:hover > ul.sub, .main-nav li:focus-within > ul.sub { display:block; }
.nav-toggle, .sub-toggle { display:none; }
@media (min-width:901px) { .site-header { position:static; } }

.member-bar { background:#e8f1fa; color:var(--blue); font-size:14px; padding:6px 0; }

/* Sections issues de SP Page Builder */
.section { padding:50px 0; }
.band { background:var(--blue-light); }
.band h1 { margin:0; }
.row { display:flex; flex-wrap:wrap; margin:0 -15px; }
.col { padding:0 15px; flex:0 0 100%; max-width:100%; }
@media (min-width:768px) {
  .col-3 { flex-basis:25%; max-width:25%; } .col-4 { flex-basis:33.333%; max-width:33.333%; } .col-6 { flex-basis:50%; max-width:50%; }
  .col-8 { flex-basis:66.666%; max-width:66.666%; } .col-9 { flex-basis:75%; max-width:75%; }
}
.addon { margin-bottom:30px; }
.addon.text .text-body > *:last-child { margin-bottom:0; }
.addon.image { margin:0 0 30px; text-align:center; }
.addon.image .caption { text-align:left; margin-top:10px; }
.addon.button { margin:0 0 14px; }
.btn { display:inline-block; padding:8px 18px; border-radius:4px; text-decoration:none; border:0; cursor:pointer; font-size:15px; font-family:inherit; line-height:1.4; }
.btn-light { background:#eee; color:var(--blue); } .btn-light:hover { background:#e2e2e2; }
.btn-primary { background:var(--blue); color:#fff; } .btn-primary:hover { background:#002a63; color:#fff; }
.btn-lg { padding:20px 28px; font-size:17px; } .btn-block { display:block; width:100%; text-align:center; }
.btn-sm { padding:5px 10px; font-size:13px; }
.person { display:grid; grid-template-columns:150px 1fr; gap:24px 60px; align-items:start; margin-bottom:40px; }
@media (min-width:768px) { .person { grid-template-columns:400px 1fr; } }
.person img { width:132px; height:132px; object-fit:cover; }
.person h4 { font-size:15px; color:#222; margin:10px 0 4px; } .person .desig { color:#999; font-size:13px; margin:0 0 10px; } .person .intro { font-size:14px; }
.team { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:30px; }
.team .member { display:flex; gap:16px; align-items:flex-start; }
.team img { width:128px; height:128px; object-fit:cover; flex:none; }
.team strong { display:block; color:#222; font-size:17px; line-height:1.25; } .team span { display:block; font-size:12px; color:#555; text-transform:uppercase; margin-top:10px; }
.embed iframe { width:100%; border:0; display:block; }
.embed-video { position:relative; aspect-ratio:16/9; } .embed-video iframe { position:absolute; inset:0; height:100% !important; }
.post { border-bottom:1px solid var(--border); padding-bottom:20px; margin-bottom:20px; }

/* Formulaires */
.form { display:grid; gap:14px; margin:20px 0 30px; }
.form label { display:grid; gap:6px; font-size:15px; }
.form label.check { display:flex; gap:10px; align-items:flex-start; }
.form input[type=text], .form input[type=email], .form input[type=password], .form input[type=tel], .form textarea {
  width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:4px; font:inherit; }
.form input:focus, .form textarea:focus { outline:2px solid var(--link); border-color:var(--link); }
.form h2 { margin:14px 0 0; }
.form button { justify-self:start; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.flashes { padding-top:20px; }
.flash { padding:12px 16px; border-radius:4px; margin:0 0 12px; background:#eef4fb; border-left:4px solid var(--link); }
.flash-success { background:#ecf8f0; border-color:#2e9e5b; } .flash-error { background:#fdeeee; border-color:#c0392b; } .flash-warning { background:#fff6e5; border-color:#e0a100; }
.notice { display:inline-block; background:var(--bg-soft); padding:10px 14px; border-radius:4px; font-weight:700; }
.table { width:100%; border-collapse:collapse; font-size:14px; margin:10px 0 30px; }
.table th, .table td { border-bottom:1px solid var(--border); padding:8px 6px; text-align:left; vertical-align:middle; }
.table tr.muted td { color:#aaa; }
.table .actions form { display:flex; gap:6px; flex-wrap:wrap; }
.tabs { display:flex; gap:20px; flex-wrap:wrap; border-bottom:1px solid var(--border); margin-bottom:20px; }
.tabs a { padding:8px 0; text-decoration:none; } .tabs a.on { border-bottom:3px solid var(--blue); color:var(--blue); font-weight:700; }
@media (max-width:700px) { .table { display:block; overflow-x:auto; } }

/* Pied de page */
.site-footer { background:var(--blue); color:#c8d3e6; padding:40px 0; font-size:14px; margin-top:40px; }
.site-footer .container { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.site-footer a { color:#fff; }

/* Mobile */
@media (max-width:900px) {
  h1 { font-size:1.8rem; }
  .logo img { width:110px; }
  .nav-toggle { display:block; margin:0 auto 10px; background:none; border:1px solid var(--blue); color:var(--blue); padding:6px 16px; border-radius:4px; font:inherit; }
  .main-nav > ul { display:none; flex-direction:column; gap:0; padding:0 16px 12px; }
  .main-nav.open > ul { display:flex; }
  .main-nav li { border-top:1px solid var(--border); }
  .main-nav li.has-sub > a::after { content:""; }
  .main-nav ul.sub { position:static; box-shadow:none; padding:0 0 8px 16px; min-width:0; }
  .main-nav li:hover > ul.sub { display:none; }
  .main-nav li.open > ul.sub { display:block; }
  .sub-toggle { display:block; position:absolute; right:0; top:2px; width:40px; height:34px; background:none; border:0; color:var(--blue); font-size:16px; }
  .sub-toggle::after { content:"▾"; }
  .person { grid-template-columns:1fr; gap:10px; }
}
.legal h2 { font-size:1.3rem; margin-top:1.6em; } .legal ul { padding-left:1.2em; }
.sponsor .lead { font-size:1.15rem; }
.sponsor h2 { font-size:1.35rem; margin-top:1.4em; }
.sponsor-card { border:1px solid var(--border); border-radius:6px; padding:24px; text-align:center; position:sticky; top:20px; }
.sponsor-card img { max-width:220px; margin-bottom:12px; }
.offers { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:24px; margin:30px 0 40px; }
.offer { border:1px solid var(--border); border-radius:6px; padding:24px; }
.offer.on { border-color:var(--blue); box-shadow:0 0 0 2px var(--blue) inset; }
.offer h2 { font-size:1.25rem; margin:0 0 6px; } .offer .price { font-size:2rem; font-weight:700; color:var(--blue); margin:0 0 12px; }
.offer ul { padding-left:1.1em; font-size:14px; }
.narrow-form { max-width:760px; }
.form fieldset.choice { border:1px solid var(--border); border-radius:4px; padding:10px 16px; display:grid; gap:8px; }
.form small { color:var(--muted); }
