/* Identité du circuit : terre battue, papier et vert court. */
:root { --clay:#a8442c; --clay-dark:#84321f; --court:#173d35; --paper:#faf7f0; --ink:#243c35; --muted:#64716a; }
body { background:var(--paper); color:var(--ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; line-height:1.7; }
a { color:var(--clay); }
a:hover { color:var(--clay-dark); }
a:focus-visible,button:focus-visible { outline:3px solid #d99b46; outline-offset:4px; }
img { max-width:100%; height:auto; }
h1,h2,h3,h4,.principal h2,.principal h3,.principal h4 { font-family:Georgia,"Times New Roman",serif; color:var(--court); line-height:1.18; }
h2 { font-size:clamp(1.8rem,3vw,2.6rem); }
.navbar.bg-dark { background:var(--court)!important; padding:12px 0; box-shadow:0 3px 16px #10281f24; }
.navbar .logo { position:static; width:68px; max-width:68px; }
.navbar-brand { margin-right:2rem; }
.navbar[data-bs-theme="dark"] .navbar-nav .nav-link { color:#f7f3e8; font-weight:600; font-size:.95rem; padding:.7rem .85rem; }
.navbar[data-bs-theme="dark"] .navbar-nav .active>.nav-link { color:#ffd4a8; }
.dropdown-menu { border:1px solid #e5dfd3; border-radius:8px; padding:.5rem; box-shadow:0 12px 30px #173d3520; }
.dropdown-item { border-radius:4px; padding:.5rem .8rem; }
.dropdown-item:active { background:var(--clay); }
.jumbotronGDON { height:auto; min-height:580px; margin:0 0 4rem; padding:4.5rem 0; background:linear-gradient(100deg,rgba(24,51,42,.94),rgba(24,51,42,.65)),url('../assets/images/fond_terre.jpg') center/cover; color:white; }
.jumbotronGDON>.container>.row { align-items:center; }
.jumbotronGDON>.container>.row>.col-md:first-child { order:2; text-align:center; flex:0 0 38%; max-width:38%; }
.jumbotronGDON>.container>.row>.col-md:last-child { order:1; flex:0 0 62%; max-width:62%; padding-right:3rem; }
.jumbotronGDON .affiche { width:auto; max-height:440px; border:8px solid #fffaf0; border-radius:3px; box-shadow:0 20px 45px #0005; }
.slogan { margin:0 0 1.8rem; text-align:left!important; text-shadow:none; }
.slogan h1 { font:700 .85rem system-ui,sans-serif; letter-spacing:.22em; color:#efbd92; margin-bottom:1rem; }
.slogan h2.claude { font-family:Georgia,serif; font-weight:400; font-size:clamp(2.8rem,5vw,4.7rem); color:#fffaf0; text-shadow:none; }
.slogan .lead { max-width:510px; color:#e2e8df; font-size:1.18rem; margin-top:1.3rem; }
.btn { border-radius:6px; font-weight:600; padding:.75rem 1.2rem; transition:background-color .15s; }
.btn-primary { background:var(--clay); border-color:var(--clay); }
.btn-primary:hover,.btn-primary:focus { background:var(--clay-dark); border-color:var(--clay-dark); }
.jumbotronGDON .btn { width:100%; font-size:1rem; white-space:normal; }
.jumbotronGDON .btn img { width:27px!important; height:27px!important; margin-right:6px; }
.jumbotronGDON+.container>.row>.col-md { padding:1rem; }
.jumbotronGDON+.container .text-center { height:100%; padding:2rem 1.4rem; background:white; border:1px solid #e6e0d5; border-radius:10px; text-align:left!important; }
.jumbotronGDON+.container .text-center>img { width:70px!important; height:70px!important; margin-bottom:1.3rem; }
.jumbotronGDON+.container h4 { font-size:1.5rem; }
.principal { padding-top:2rem; padding-bottom:2rem; }
.principal .img-thumbnail { max-height:110px; width:auto; object-fit:contain; border:1px solid #e6e0d5; padding:12px; border-radius:8px; background:white; }
.principal .miniature { width:100%; max-height:none; height:230px; object-fit:cover; padding:0; border:0; box-shadow:none; border-radius:8px; }
hr.style-two { background:#ded8ca; margin-left:auto; margin-right:auto; max-width:1110px; }
.callout { margin:3rem 0; height:300px; padding:3rem 1rem; background:linear-gradient(#173d35df,#173d35df),url('../assets/images/fond_terre.jpg') center/cover; }
.callout img { max-width:110px!important; margin-bottom:1.3rem; }
.callout h1 { color:#fffaf0; font-size:clamp(1.8rem,3vw,2.8rem); max-width:750px; margin:auto; }
.text-shadow { text-shadow:none; }
.hautpage { height:250px; padding:2.5rem 0; background:linear-gradient(100deg,#173d35f0,#173d3590),url('../assets/images/fond_terre.jpg') center/cover; border:0; }
.entete { margin-top:0; }
.titre h1,.soustitre h3 { color:#fffaf0; text-shadow:none; }
.soustitre h3 { font:400 1.1rem system-ui,sans-serif; margin-top:1rem; }
.page { margin-top:200px; border-radius:10px; box-shadow:0 8px 30px #173d3510; padding:30px; }
.pageEntete { background:#f0ebe0; margin:-30px -30px 30px; padding:24px 30px; box-shadow:none; text-shadow:none; border-radius:10px 10px 0 0; }
.table { background:#fff; color:var(--ink); }
.table thead { background:var(--court); color:white; }
.form-control { border-color:#c9cec6; border-radius:6px; }
.footer { margin-top:4rem; background:var(--court); box-shadow:none; color:#e6e9df; padding:3rem 1rem; }
.footer a { color:#f1c39a; }
.footer p { margin-bottom:.5rem; font-size:.9rem; }
@media(max-width:767px) {
 .navbar { padding:8px 16px!important; }
 .navbar .logo { width:54px; }
 .jumbotronGDON { padding:2.5rem 0; margin-bottom:1.5rem; min-height:0; }
 .jumbotronGDON>.container>.row>.col-md:first-child,.jumbotronGDON>.container>.row>.col-md:last-child { flex:0 0 100%; max-width:100%; padding:0 20px; }
 .jumbotronGDON .affiche { max-height:330px; margin-top:2rem; }
 .slogan h2.claude { font-size:2.9rem; }
 .jumbotronGDON+.container .text-center { padding:1.5rem; }
 .hautpage { height:240px; padding:2rem 0; }
 .titre h1 { font-size:1.8rem; }
 .page { padding:20px; margin-top:210px; }
 .pageEntete { margin:-20px -20px 20px; padding:20px; }
 .margin30Justify,.margin50Justify { margin-left:0; margin-right:0; text-align:left; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
/* Signature commune à toutes les pages. */
.navbar-brand { line-height:1.1; padding:5px 0; }
.brand-title { display:block; color:#fffaf0; font:400 1.8rem Georgia,serif; letter-spacing:.03em; }
.brand-subtitle { display:flex; align-items:center; gap:12px; margin-top:8px; color:#fffaf0; font-size:.65rem; letter-spacing:.24em; }
.brand-subtitle::before { content:""; display:block; width:35px; height:2px; background:#de672c; }
@media(max-width:1199px) { .brand-title { font-size:1.5rem; } .navbar[data-bs-theme="dark"] .navbar-nav .nav-link { padding:.7rem .55rem; font-size:.88rem; } }
@media(max-width:400px) { .brand-title { font-size:1.3rem; } .brand-subtitle { font-size:.55rem; } }
/* Logo original du circuit, conservé dans sa forme et ses couleurs. */
.navbar .navbar-brand { display:flex; align-items:center; gap:17px; margin-right:1.4rem; }
.navbar .brand-original-logo { display:block; width:86px; height:auto; max-height:65px; object-fit:contain; flex-shrink:0; }
.brand-wordmark { display:block; }
@media(min-width:992px) and (max-width:1199px) {
 .navbar .navbar-brand { gap:12px; margin-right:1rem; }
 .navbar .brand-original-logo { width:68px; }
 .navbar .brand-title { font-size:1.25rem; }
 .navbar .brand-subtitle { font-size:.52rem; letter-spacing:.18em; }
 .navbar[data-bs-theme="dark"] .navbar-nav .nav-link { font-size:.8rem; padding:.7rem .45rem; }
}
@media(max-width:767px) {
 .navbar .navbar-brand { gap:10px; margin-right:10px; }
 .navbar .brand-original-logo { width:58px; }
 .navbar .brand-title { font-size:1.15rem; }
 .navbar .brand-subtitle { font-size:.48rem; letter-spacing:.14em; gap:7px; }
 .navbar .brand-subtitle::before { width:20px; }
}
@media(max-width:359px) {
 .navbar .brand-original-logo { width:47px; }
 .navbar .brand-title { font-size:1rem; }
 .navbar .brand-subtitle { font-size:.43rem; }
}

/* Liens FFT : logo officiel diffusé par la Ligue Hauts-de-France.
   Source : https://www.liguehautsdefrancetennis.fr/gerer-votre-club/communication/ */
.home-page a.tenup-link { display:flex; align-items:center; justify-content:center; gap:10px; padding:10px 12px; min-height:48px; border:1px solid #c9d7cd; border-radius:6px; background:#eef3ec; color:#173d35; text-decoration:none; font-size:.75rem; font-weight:600; line-height:1.3; transition:background .18s,border-color .18s,box-shadow .18s; }
.home-page .tenup-link-logo { display:block; width:78px; height:32px; flex-shrink:0; object-fit:contain; border-radius:3px; }
.home-page .tenup-link-label { flex:1; }
.home-page .tenup-link-arrow { font-size:1.1rem; color:#a8442c; flex-shrink:0; }
.home-page a.tenup-link:hover { background:#e1ebdd; border-color:#7c9c85; color:#173d35; box-shadow:0 3px 10px #173d3514; }
.home-page .calendar-tournament-action .tenup-link { flex-wrap:wrap; max-width:240px; }
@media(prefers-reduced-motion:reduce) { .home-page a.tenup-link { transition:none; } }
