.home-page { --court:#073e30; --clay:#c65326; --paper:#f8f6ef; color:var(--court); }
.home-page .navbar.bg-dark { background:#073e30!important; min-height:102px; }
.home-page .navbar-nav { margin-left:auto; margin-right:0!important; }
.home-page .nav-item.active>.nav-link { color:#fff!important; }
.home-page .nav-item.active>.nav-link::after { content:""; display:block; height:2px; width:40px; background:#e76b32; margin-top:8px; }
.home-hero { background:linear-gradient(90deg,#051a12d9 0%,#061e1685 45%,#05180f08 100%),url('../assets/images/tennis-hero.png') center 58%/cover; color:#fff; padding:42px 0; }
.hero-layout { display:grid; grid-template-columns:1.4fr 1fr; gap:65px; align-items:center; }
.hero-copy { padding:20px 0; }
.eyebrow { text-transform:uppercase; letter-spacing:.15em; font-size:.72rem; font-weight:600; }
.hero-copy>.eyebrow { color:#e4c39a; margin-bottom:18px; }
.hero-copy h1 { color:#fffdf3; font-size:clamp(2.4rem,3.7vw,3.6rem); line-height:1.06; letter-spacing:-.025em; margin-bottom:18px; }
.hero-copy h1 span { color:#d9d68c; }
.orange-rule { width:40px; height:3px; background:#e56b32; margin-bottom:18px; }
.hero-copy>p:not(.eyebrow) { max-width:510px; font-size:.99rem; line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:30px; }
.hero-actions .btn { padding:12px 22px; font-size:.9rem; }
.hero-actions span,.hero-actions i,.home-story .btn span { margin-left:14px; }
.hero-outline { border:1px solid #eae5cc; color:#fffdf5; background:transparent; }
.hero-outline:hover,.hero-outline:focus { color:#fff; background:#ffffff1c; border-color:#fff; }
.hero-poster { display:block; justify-self:center; }
.hero-poster img { display:block; height:455px; width:auto; max-width:100%; object-fit:contain; border:8px solid #fffdf3; box-shadow:0 8px 24px #0005; border-radius:2px; }
.home-facts { background:#fdfcf8; padding:40px 0; }
.facts-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.facts-grid>div { text-align:center; padding:0 20px; border-right:1px solid #e4e1d8; }
.facts-grid>div:last-child { border:0; }
.facts-grid i { color:var(--clay); font-size:2rem; margin-bottom:18px; }
.facts-grid h2 { font-size:1.4rem; margin-bottom:16px; }
.facts-grid p { font-size:.85rem; color:#48645b; margin:0; }
.facts-grid a { color:inherit; text-decoration-color:#9ca99e; }
.home-tournaments { padding:44px 0 48px; background:radial-gradient(ellipse at top right,#eae7dc80,transparent 40%),#f7f5ee; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.section-heading h2 { margin:0; font-size:2.65rem; }
.section-heading .orange-rule { margin-bottom:10px; }
.section-heading>a { color:#24734e; font-size:.82rem; white-space:nowrap; padding-bottom:5px; }
.section-heading>a span { margin-left:15px; }
.tournament-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.tournament-card { background:#fffdf8; border:1px solid #e3dfd4; border-radius:6px; overflow:hidden; box-shadow:0 2px 3px #173d3510; display:flex; flex-direction:column; }
.tournament-photo { position:relative; height:125px; background:url('../assets/images/tennis-hero.png') 85% 90%/cover; }
.photo-1 { background-position:50% 55%; }
.photo-2 { background-image:url('../assets/images/fond_terre.jpg'); }
.photo-3 { background-position:20% 70%; }
.date-badge { position:absolute; top:0; left:10px; background:#fffdf7; border-radius:0 0 18px 18px; width:57px; padding:8px 4px 10px; text-align:center; box-shadow:0 2px 8px #0002; }
.date-badge strong { display:block; font:700 1.6rem Georgia,serif; line-height:1.1; }
.date-badge time span { display:block; font-size:.6rem; letter-spacing:.06em; }
.date-badge small { display:block; font-size:.66rem; }
.tournament-content { padding:16px 15px 10px; flex:1; }
.tournament-tag { display:inline-block; color:#455b50; background:#edf0e8; border-radius:6px; padding:1px 9px; font-size:.65rem; margin-bottom:12px; }
.tournament-card h3 { font-size:1.25rem; margin-bottom:15px; overflow-wrap:anywhere; }
.tournament-card p { font-size:.72rem; color:#4c675d; display:flex; align-items:baseline; gap:9px; margin-bottom:10px; }
.tournament-card p i { color:#297452; flex-shrink:0; }
.tournament-card .registration-note { font-size:.68rem; color:#69786e; }
.tournament-link { border-top:1px solid #ebe7de; padding:13px 15px; font-size:.7rem; }
.tournament-link a { color:#26784d; display:flex; justify-content:space-between; gap:8px; }
.tournament-link>span { color:#6d746b; }
.tournament-empty { border:1px solid #e4dfd3; padding:35px; background:#fffdf8; text-align:center; border-radius:6px; }
.tournament-empty>i { font-size:2rem; color:var(--clay); margin-bottom:15px; }
.tournament-empty h3 { font-size:1.5rem; }
.tournament-empty p { color:#566d61; }
.home-story { display:grid; grid-template-columns:55% 45%; }
.story-tribute { background:#073e30; display:flex; gap:30px; align-items:center; padding:40px max(30px,calc((100vw - 1110px)/2)); padding-right:35px; }
.story-tribute>img { width:170px; height:235px; object-fit:cover; border:9px solid #fffdf5; transform:rotate(-3deg); filter:grayscale(1); flex-shrink:0; }
.story-tribute h2 { color:#fffdf2; font-size:1.85rem; }
.story-tribute .eyebrow { color:#efb36c; margin-bottom:10px; }
.story-tribute p:not(.eyebrow) { color:#edf2e9; font-size:.85rem; }
.home-story .btn { font-size:.78rem; padding:10px 18px; }
.story-summary { background:linear-gradient(100deg,#faf8f2 55%,#faf8f280),url('../assets/images/fond_terre.jpg') right center/cover; padding:40px; }
.story-summary h2 { font-size:1.9rem; }
.story-summary p,.story-summary li { font-size:.82rem; }
.story-summary ul { list-style:none; padding:0; }
.story-summary li { margin-bottom:5px; }
.story-summary li::before { content:'✓'; display:inline-block; background:#287c50; color:white; border-radius:50%; font-size:.65rem; line-height:16px; width:16px; text-align:center; margin-right:9px; }
.summary-button { background:#073e30; color:#fff; }
.summary-button:hover { background:#125642; color:white; }
.home-clubs,.home-events,.home-gallery { padding-top:45px; padding-bottom:25px; }
.home-clubs h2,.home-gallery h2,.home-events h2 { font-size:2rem; }
.club-logos { display:flex; flex-wrap:wrap; gap:20px; justify-content:center; }
.club-logos img { height:75px; max-width:140px; object-fit:contain; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-grid img { width:100%; height:200px; object-fit:cover; border-radius:5px; }
.home-events article { border-bottom:1px solid #ddd8ca; padding:18px 0; }
.home-events h3 { font-size:1.3rem; }
.home-page .footer { margin-top:0; background:#073e30; border-top:1px solid #809687; }
@media(max-width:1199px) { .hero-layout { gap:35px; } .story-tribute { padding:35px 25px; gap:20px; } .story-tribute>img { width:135px; height:210px; } .facts-grid>div { padding:0 12px; } }
@media(max-width:991px) { .home-page .navbar.bg-dark { min-height:85px; } .hero-copy h1 { font-size:2.6rem; } .hero-poster img { height:390px; } .hero-layout { grid-template-columns:1.4fr 1fr; gap:25px; } .hero-actions { gap:10px; } .hero-actions .btn { padding:10px 14px; } .facts-grid { grid-template-columns:repeat(2,1fr); gap:30px 0; } .facts-grid>div:nth-child(2) { border:0; } .tournament-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home-story { grid-template-columns:1fr; } .story-tribute { padding:35px max(30px,calc((100vw - 690px)/2)); } .story-summary { padding:35px max(30px,calc((100vw - 690px)/2)); } }
@media(max-width:575px) { .home-hero { padding:28px 0; } .hero-layout { grid-template-columns:1fr; gap:28px; } .hero-copy { padding:0 5px; } .hero-copy h1 { font-size:2.45rem; } .hero-copy>p:not(.eyebrow) { font-size:.9rem; } .hero-poster img { height:340px; } .hero-actions { margin-top:24px; } .hero-actions .btn { font-size:.8rem; } .home-facts { padding:30px 0; } .facts-grid h2 { font-size:1.2rem; } .facts-grid p { font-size:.73rem; } .section-heading { align-items:flex-start; flex-direction:column; gap:12px; } .section-heading h2 { font-size:2.1rem; } .tournament-grid { grid-template-columns:1fr; gap:20px; } .tournament-photo { height:170px; } .tournament-content { padding:20px; } .tournament-card h3 { font-size:1.5rem; } .tournament-card p { font-size:.85rem; } .tournament-link { padding:15px 20px; font-size:.8rem; } .story-tribute { padding:30px 22px; align-items:flex-start; gap:18px; } .story-tribute>img { width:100px; height:155px; } .story-tribute h2 { font-size:1.5rem; } .story-tribute p:not(.eyebrow) { font-size:.8rem; } .story-tribute .btn { padding:9px 10px; } .story-summary { padding:30px 24px; } .gallery-grid { grid-template-columns:repeat(2,1fr); } .gallery-grid img { height:140px; } }

.home-page .footer-signature { margin:24px 0; font-size:.7rem; letter-spacing:.18em; }
.poster-modal .modal-content { background:#faf8ef; border:0; border-radius:7px; overflow:hidden; }
.poster-modal .modal-header { border-bottom:1px solid #e2dece; align-items:center; padding:14px 20px; }
.poster-modal .modal-title { font:400 1.2rem Georgia,serif; color:#073e30; margin:0; }
.poster-modal .btn-close { opacity:.8; }
.poster-modal .modal-body { display:flex; justify-content:center; align-items:center; padding:18px; }
.poster-modal .modal-body img { display:block; width:auto; max-width:100%; max-height:calc(100vh - 150px); object-fit:contain; }
@media(max-width:575px) { .poster-modal .modal-header { padding:12px 15px; } .poster-modal .modal-title { font-size:1rem; } .poster-modal .modal-body { padding:10px; } .poster-modal .modal-body img { max-height:calc(100vh - 130px); } }

.home-facebook { padding-top:45px; padding-bottom:55px; }
.facebook-card { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); background:#073e30; color:#f7f3e8; border-radius:8px; overflow:hidden; }
.facebook-copy { padding:42px 46px; }
.facebook-copy .eyebrow { color:#e9b485; }
.facebook-copy h2 { color:#fffaf0; font-size:2.4rem; margin-bottom:20px; }
.facebook-copy>p:not(.eyebrow) { color:#dce6dc; font-size:.92rem; max-width:540px; }
.home-page .facebook-follow { display:inline-flex; align-items:center; gap:14px; background:#f7f3e8; color:#073e30; border:1px solid #f7f3e8; padding:13px 20px; margin-top:12px; font-size:.85rem; font-weight:600; white-space:normal; text-align:left; }
.home-page .facebook-follow:hover { background:#e8d7b8; border-color:#e8d7b8; color:#073e30; }
.facebook-follow .fab { font-size:1.2rem; }
.facebook-copy small { display:block; color:#bdcec1; font-size:.7rem; margin-top:12px; }
.facebook-community { display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:34px; background:#ffffff08; border-left:1px solid #ffffff20; }
.facebook-emblem { display:grid; place-items:center; width:64px; height:64px; background:#f7f3e8; color:#073e30; border-radius:50%; font-size:2rem; margin-bottom:18px; }
.facebook-community p { font-size:.95rem; line-height:1.6; margin:0; }
.facebook-community strong { color:#fffaf0; font:400 1.65rem Georgia,serif; }
.facebook-community-rule { height:2px; width:40px; background:#cd713d; margin:20px 0; }
.facebook-community ul { list-style:none; margin:0; padding:0; color:#dce6dc; font-size:.8rem; line-height:2; }
@media(max-width:767px) { .facebook-card { grid-template-columns:1fr; } .facebook-copy { padding:30px 24px; } .facebook-copy h2 { font-size:2rem; } .facebook-community { border-left:0; border-top:1px solid #ffffff20; padding:28px 24px; } .home-facebook { padding-top:30px; padding-bottom:35px; } }

.home-facebook { scroll-margin-top:110px; }

/* Les clubs de la saison, présentés avec leur identité et leur nom. */
.home-page .home-clubs { padding-top:55px; padding-bottom:45px; scroll-margin-top:110px; }
.home-clubs .section-heading { margin-bottom:18px; }
.home-clubs-intro { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; }
.home-clubs-intro>p { max-width:620px; margin:0; font-size:.9rem; color:#64716a; }
.home-clubs-count { flex-shrink:0; border:1px solid #dfdfd1; border-radius:30px; padding:8px 14px; font-size:.75rem; font-weight:600; color:#173d35; background:#f0f1e8; }
.home-clubs-count>span { font-weight:400; color:#64716a; }
.home-club-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; list-style:none; padding:0; margin:0; }
.home-club-grid>li { min-width:0; }
.home-page .home-club-card { height:100%; display:flex; flex-direction:column; padding:22px 20px 16px; background:#fffefb; border:1px solid #e5e0d4; border-radius:7px; color:#173d35; text-decoration:none; box-shadow:0 2px 4px #173d3505; transition:border-color .18s,box-shadow .18s; }
.home-page .home-club-card:hover { color:#173d35; border-color:#829a83; box-shadow:0 5px 16px #173d3510; }
.home-club-logo { height:105px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; background:#fff; border-radius:4px; }
.home-club-logo img { width:auto; height:auto; max-width:152px; max-height:95px; object-fit:contain; }
.home-club-logo .fas { font-size:2rem; color:#96a47b; }
.home-club-name { font:400 1.08rem/1.35 Georgia,serif; margin-bottom:20px; }
.home-club-action { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid #ece8de; padding-top:12px; margin-top:auto; font-size:.7rem; color:#64716a; }
.home-club-action>span { color:#a8442c; font-size:1rem; }
@media(max-width:991px) { .home-club-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .home-clubs-intro { align-items:flex-start; flex-direction:column; gap:14px; } }
@media(max-width:575px) { .home-club-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .home-page .home-club-card { padding:14px 12px 12px; } .home-club-logo { height:85px; margin-bottom:14px; } .home-club-logo img { max-width:100%; max-height:75px; } .home-club-name { font-size:1rem; } .home-page .home-clubs { padding-top:35px; padding-bottom:25px; } }
@media(prefers-reduced-motion:reduce) { .home-page .home-club-card { transition:none; } }
