/* ==========================================================================
   Paris Tennis Club — ptc.css
   Feuille de modernisation. Elle se charge APRES les autres et les surcharge.
   Elle ne demande aucune modification des pages : les anciennes balises
   <font>, <blockquote> et les tableaux de mise en page sont neutralises ici.
   Palette reprise du logo : orange #EF6826.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@85..125,400..700&display=swap');

:root{
  --ptc-orange:#EF6826;
  --ptc-orange-fonce:#C24A12;
  --ptc-encre:#22140F;
  --ptc-encre-doux:#6E5A50;
  --ptc-papier:#FFFFFF;
  --ptc-papier-creux:#F4F1EF;
  --ptc-trait:#E2D6CD;
  --ptc-court:#3A6B55;      /* beton poreux (quick) */
  --ptc-resine:#3D6480;     /* resine (dur) */
  --ptc-mesure:68ch;
}

/* ————— Fondations ————————————————————————————————————————————————— */

body{
  background:var(--ptc-papier);
  color:var(--ptc-encre);
  font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* Neutralisation des anciennes balises de presentation.
   Les attributs face/size/color sont des indications de presentation :
   n'importe quelle regle CSS les emporte. */
font{
  font-family:inherit !important;
  font-size:inherit !important;
  color:inherit;
}
font[color="#006600"], font[color="#CC6600"], font[color="#FF6600"]{
  color:var(--ptc-orange-fonce);
  font-weight:600;
}
font[color="#67B0D1"]{ color:var(--ptc-encre-doux); font-style:normal; }
font[size="-1"], font[size="-2"]{ font-size:inherit !important; }
font[size="+1"], font[size="+2"]{ font-size:1.05em !important; }

b, strong{ font-weight:600; }
i, em{ font-style:italic; }

p{ max-width:var(--ptc-mesure); }

/* ————— Titres ————————————————————————————————————————————————————— */

h1,h2,h3,h4{
  font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  font-variation-settings:"wdth" 118;
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--ptc-encre);
  text-transform:none;
}
.section-heading h2{
  font-size:clamp(1.7rem,4vw,2.6rem);
  font-weight:700;
  display:inline-block;
  background:var(--ptc-orange);
  color:#fff;
  padding:.04em .3em .12em;
  clip-path:polygon(1% 6%, 99% 0, 100% 92%, 2% 100%);
}
.section-heading .fa-angle-down{ display:none; }
.section-heading{ margin-bottom:clamp(18px,3vw,30px); }

/* ————— Liens et boutons ——————————————————————————————————————————— */

a{ color:var(--ptc-orange-fonce); text-underline-offset:.18em; text-decoration-thickness:1px; }
a:hover, a:focus{ color:var(--ptc-encre); }
a:focus-visible{ outline:2px solid var(--ptc-orange); outline-offset:3px; border-radius:2px; }

.btn, button, input[type="submit"]{
  font-family:inherit; font-weight:600; border-radius:0;
  border:1.5px solid var(--ptc-orange);
  background:var(--ptc-orange); color:#fff;
  padding:10px 18px;
  transition:background .15s ease-in-out;
}
.btn:hover, button:hover, input[type="submit"]:hover{
  background:var(--ptc-orange-fonce); border-color:var(--ptc-orange-fonce); color:#fff;
}

/* ————— Navigation ————————————————————————————————————————————————— */

.navbar, .navbar-default{
  background:var(--ptc-papier) !important;
  border:0; border-bottom:2px solid var(--ptc-encre);
  border-radius:0; box-shadow:none;
}
.navbar-default .navbar-nav > li > a{
  color:var(--ptc-encre); font-weight:600;
  font-size:1.02rem !important; line-height:1.4;
  text-transform:none; letter-spacing:0;
  padding:18px 14px;
}
.navbar-default .navbar-nav > li > a .caret{ border-top-color:var(--ptc-orange); }
.navbar-nav .dropdown-menu > li > a{
  font-family:inherit; font-size:.98rem; font-weight:500;
  color:var(--ptc-encre); padding:9px 16px; text-transform:none;
}
.navbar-nav .dropdown-menu{ border-radius:0; border:1.5px solid var(--ptc-encre); box-shadow:none; }
.navbar-nav .dropdown-menu > li > a:hover{ background:var(--ptc-papier-creux); color:var(--ptc-orange-fonce); }
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > .active > a{
  color:var(--ptc-orange-fonce); background:transparent;
}
.navbar-brand img{ max-height:52px; width:auto; }

/* Bouton du menu sur petit ecran : il etait blanc sur fond blanc, donc invisible */
.navbar-toggle{
  color:#fff !important;
  background:var(--ptc-orange) !important;
  border:0 !important; border-radius:0 !important;
  padding:10px 13px !important;
  margin:14px 14px 14px 0;
  opacity:1 !important;
}
.navbar-toggle .fa-bars{ font-size:22px; line-height:1; }
.navbar-header{ padding-right:4px; }
.navbar-toggle:hover, .navbar-toggle:focus{ background:var(--ptc-orange-fonce) !important; color:#fff !important; }
.navbar-toggle:focus-visible{ outline:2px solid var(--ptc-encre); outline-offset:2px; }
.navbar-default .navbar-toggle .icon-bar{ background-color:#fff; }

/* La barre du site porte la classe navbar-custom, pas navbar-default :
   il faut viser les deux, sinon le bouton reste blanc sur blanc. */
.navbar.navbar-custom{
  background:var(--ptc-papier) !important;
  border-bottom:2px solid var(--ptc-encre);
}
.navbar-custom .navbar-toggle,
.navbar-custom .navbar-toggle:hover,
.navbar-custom .navbar-toggle:focus{
  background:var(--ptc-orange) !important;
  color:#fff !important;
  border:0 !important;
  opacity:1 !important;
}
.navbar-custom .navbar-toggle .fa-bars,
.navbar-custom .navbar-toggle i{ color:#fff !important; font-size:22px; }
.navbar-custom ul.nav li a{ color:var(--ptc-encre) !important; }
.navbar-custom ul.nav li a:hover,
.navbar-custom ul.nav li.active a{ color:var(--ptc-orange-fonce) !important; }
.navbar-custom ul.nav ul.dropdown-menu li a{ color:var(--ptc-encre) !important; }

/* ————— Sections ——————————————————————————————————————————————————— */

.home-section{
  padding:clamp(34px,5vw,64px) 0;
  border-top:2px solid var(--ptc-encre);
  background:var(--ptc-papier);
  text-align:left;
}
.home-section:first-of-type{ border-top:0; }
.intro, #intro{ border-top:0; }

/* ————— Listes et citations ———————————————————————————————————————— */

blockquote{
  border:0; border-left:3px solid var(--ptc-orange);
  margin:1.1em 0 1.6em; padding:.1em 0 .1em 18px;
  font-size:inherit; color:inherit;
}
blockquote ul{ padding-left:1.1em; margin:.4em 0; }
blockquote li{ margin:.3em 0; }

/* ————— Tableaux de creneaux ——————————————————————————————————————— */

table{ border-collapse:collapse; width:100%; max-width:760px; background:transparent !important; }
table td{
  border:0; border-top:1px solid var(--ptc-trait);
  padding:10px 12px; vertical-align:middle;
}
/* En-tete : les anciennes cellules vertes deviennent l'encre du club */
table td[bgcolor="#006600"]{
  background:var(--ptc-encre) !important; color:#fff;
  border-top:0; font-weight:600;
}
table td[bgcolor="#006600"] font{ color:#fff !important; }
/* Lignes alternees */
table td[bgcolor="#FFCC99"]{ background:var(--ptc-papier-creux) !important; }
table[bgcolor="#FFFFCC"]{ background:transparent !important; }

/* ————— Pied de page ——————————————————————————————————————————————— */

footer{
  background:var(--ptc-orange); color:#fff;
  border-top:0; border-bottom:0;
  padding:clamp(30px,5vw,54px) 0;
  text-align:left;
}
footer a{ color:#fff; text-decoration:underline; }
footer a:hover{ color:var(--ptc-encre); }
footer .boxed-grey{ background:transparent; border:0; padding:0; }
footer font, footer address, footer strong, footer b, footer h1, footer h2, footer h3, footer h4{ color:#fff; }
footer address{ font-style:normal; line-height:1.7; }
footer img{ vertical-align:middle; }
footer a[href*="richer-solution"]{ color:#fff; font-size:.9rem; opacity:.85; }
footer hr{ border-color:rgba(255,255,255,.35); }
/* Les logos federaux sont sur fond blanc : on leur donne une pastille */
footer .col-md-6 img[src*="fft"], footer .col-md-6 img[src*="ligue"],
footer img[src*="fft"], footer img[src*="ligue"]{
  background:#fff; padding:3px; border-radius:2px;
}

.company-social{
  padding:0; margin:.4em 0 0;
  display:flex; flex-wrap:nowrap; gap:10px;  /* Facebook et Sportwhen cote a cote */
  list-style:none;
  width:max-content; min-width:100px;        /* la cellule du tableau fait 10% : on force la largeur */
}
/* La cellule qui les contient ne doit pas les comprimer */
footer td:has(> .company-social), footer td:has(.company-social){ width:auto !important; white-space:nowrap; }
.company-social li{ display:block; margin:0 !important; }
.company-social a{ border-radius:0; }
.company-social .social-facebook a{ background:#2F5F94; }
.company-social .social-sportwhen a{ background:#0d1a14; }

#menufooter{
  background:var(--ptc-orange) !important;
  color:#fff;
  border:0 !important;
  border-top:1px solid rgba(255,255,255,.3) !important;
  padding:18px 16px 30px !important;
  font-size:1.2rem;
  line-height:2.5;
}
#menufooter center{ max-width:1080px; margin:0 auto; }
#menufooter a{
  color:#fff !important;
  font-size:1.2rem; font-weight:500; text-decoration:none;
  padding:6px 12px; white-space:nowrap;
}
#menufooter a:hover, #menufooter a:focus-visible{
  color:var(--ptc-encre) !important; text-decoration:underline;
}

/* ————— Formulaires ———————————————————————————————————————————————— */

input[type="text"], input[type="email"], input[type="tel"], textarea, select{
  font-family:inherit; font-size:inherit; border-radius:0;
  border:1.5px solid var(--ptc-trait); background:#fff;
  padding:9px 12px; width:100%; max-width:480px;
}
input:focus, textarea:focus, select:focus{
  outline:2px solid var(--ptc-orange); outline-offset:1px; border-color:var(--ptc-orange);
}

/* ————— Mouvement ————————————————————————————————————————————————— */

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ————— Petits ecrans —————————————————————————————————————————————— */

@media (max-width:767px){
  body{ font-size:16px; }
  .home-section{ padding:26px 0; }
  blockquote{ padding-left:14px; }
  table td{ padding:8px 9px; font-size:.92rem; }
  .navbar-brand img{ max-height:42px; }
  iframe{ max-width:100%; }
}

/* ————— Modules Sportwhen (inc/sportwhen.php) ————————————————————— */

.sw-embed{ max-width:100%; margin:24px 0; border:1.5px solid var(--ptc-trait); background:#fff; }
.sw-embed iframe{ display:block; width:100%; border:0; }
.sw-embed--booking iframe{ height:760px; }
.sw-embed--card{ max-width:640px; }
.sw-embed--card iframe{ height:110px; }
.sw-fallback{ font-size:.9rem; color:var(--ptc-encre-doux); }

/* Bouton aux couleurs de Sportwhen : le membre identifie un compte Sportwhen, pas un compte du club */
.sw-btn{
  display:inline-block; margin-top:8px; padding:10px 18px; border-radius:0;
  background:#c6f432; color:#101a33 !important; font-weight:600; text-decoration:none;
}
.sw-btn:hover, .sw-btn:focus{ background:#b3e01f; color:#101a33 !important; text-decoration:none; }

@media (max-width:767px){
  .sw-embed--booking iframe{ height:900px; }
  .sw-embed--card iframe{ height:170px; }
}

.sw-embed--members iframe{ height:520px; }
@media (max-width:767px){ .sw-embed--members iframe{ height:720px; } }
