/* ==========================================================================
   Aïkido Club Tomoe — reproduction du thème du site actuel (WordPress/Entex)
   Valeurs reprises des styles calculés du site en ligne, en CSS autonome.
   ========================================================================== */

:root{
  --vert-titre:#4c5e37;      /* titres de page */
  --vert-texte:#5d6f48;      /* corps de texte */
  --nav-actif:#ffffff;
  --nav-lien:#b4c6de;
  --filet:#dbdbdb;
  --widget-titre:rgba(0,44,68,.525);
  --footer-bg:rgba(0,0,0,.83);
  --footer-texte:#b3b3b3;
  --largeur-site:1088px;
}

*{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:#f2f2f2 url("../img/bg-pattern.jpg") repeat;
  font-family:Arial,Helvetica,sans-serif;
  font-size:15px;
  line-height:1.43;
  color:var(--vert-texte);
}

img{max-width:100%;height:auto;}

a{color:var(--vert-titre);}
a:hover{color:#3a4a29;}

/* ---------- En-tête ---------- */
.entete{
  position:relative;
  background:#000;
  border-bottom:3px solid #fff;
  overflow:hidden;
}
.entete::before{
  content:"";
  position:absolute; inset:0;
  background:url("../img/header.jpg") no-repeat 50% 19%;
  background-size:cover;
  opacity:.85;
}
.entete-inner{
  position:relative; z-index:2;
  max-width:var(--largeur-site);
  margin:0 auto;
  padding:22px 16px;
  display:flex; align-items:center; gap:22px;
  min-height:107px;
}
/* Cadre du logo : fond transparent (le noir de l'en-tête traverse),
   filet blanc de 1 px et marge intérieure — comme le thème d'origine. */
.site-logo{
  flex:none;
  border:1px solid #fff;
  padding:9.375px;
  line-height:0;
}
.site-logo .logo{width:73px; height:73px; display:block;}
.site-titre{
  font-family:"Quattrocento Sans",Arial,sans-serif;
  font-size:32px; font-weight:400; letter-spacing:.32px;
  text-transform:uppercase; color:#fff; line-height:1.15;
  margin:0; text-decoration:none; display:block;
}
a.site-titre:hover{color:#fff;}
.site-accroche{
  font-family:"ABeeZee",Arial,sans-serif;
  font-size:16px; letter-spacing:2.08px; color:#fff;
  margin-top:4px;
}

/* ---------- Navigation ---------- */
.nav-principale{
  background:#1a1a1a;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.nav-inner{
  max-width:var(--largeur-site);
  margin:0 auto;
  padding:0 16px;
  display:flex; align-items:center; flex-wrap:wrap;
}
#menu-principal{display:flex;align-items:center;flex-wrap:wrap;}

.nav-principale a{
  font-family:"Source Sans Pro",Arial,sans-serif;
  font-size:13.125px; font-weight:600; letter-spacing:1px;
  text-transform:uppercase; text-decoration:none;
  color:var(--nav-lien);
  line-height:35.44px;
  padding:0 13.125px;
  white-space:nowrap;
}
.nav-principale a:first-child{padding-left:0;}
.nav-principale a:hover{color:#fff;}
.nav-principale a[aria-current="page"]{color:var(--nav-actif);}

/* sous-menu AÏKIDO : affiché en ligne, décalé */
.nav-sous{
  background:#111;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.nav-sous .nav-inner{padding-top:2px;padding-bottom:2px;}
.nav-sous a{
  font-family:"Source Sans Pro",Arial,sans-serif;
  font-size:12px; font-weight:600; letter-spacing:.8px; line-height:28px;
  text-transform:uppercase; text-decoration:none;
  color:#8f9db1;
  padding:0 13.125px;
  white-space:nowrap;
}
.nav-sous a:first-child{padding-left:0;}
.nav-sous a:hover{color:#fff;}
.nav-sous a[aria-current="page"]{color:#fff;}

/* bouton menu mobile */
.menu-btn{
  display:none;
  margin-left:auto;
  background:none;border:1px solid rgba(255,255,255,.5);
  color:#fff;font-size:18px;line-height:1;
  padding:7px 11px;cursor:pointer;
}

/* ---------- Mise en page ---------- */
.grille{
  max-width:var(--largeur-site);
  margin:0 auto;
  /* panneau blanc à 94 % posé sur le motif de fond, comme le thème d'origine */
  background:rgba(255,255,255,.94);
  padding:26px 16px 40px;
  display:grid;
  grid-template-columns:minmax(0,713px) minmax(0,338px);
  gap:37px;
  align-items:start;
}

.fil-ariane{
  font-family:"Source Sans Pro",Arial,sans-serif;
  font-size:11.25px; letter-spacing:1px; text-transform:uppercase;
  color:#8a8f80; margin-bottom:18px;
}
.fil-ariane a{color:#8a8f80;text-decoration:none;}
.fil-ariane a:hover{text-decoration:underline;}

h1.titre-page{
  font-family:"Oswald",Arial,sans-serif;
  font-size:32.82px; font-weight:600; letter-spacing:.33px;
  text-transform:uppercase; color:var(--vert-titre);
  border-bottom:2px solid var(--filet);
  padding:0 0 5px; margin:0 0 8px;
  line-height:1.25;
}

article p{margin:30px 0 0;}
article h1:not(.titre-page),
article h2{
  font-family:"Oswald",Arial,sans-serif;
  font-weight:600; text-transform:uppercase;
  color:var(--vert-titre); letter-spacing:.3px;
  margin:34px 0 0; font-size:24px; line-height:1.3;
}
article h3{
  font-family:"Oswald",Arial,sans-serif;
  font-weight:500; text-transform:uppercase;
  color:var(--vert-titre); margin:28px 0 0; font-size:19px;
}
article ul{margin:14px 0 0;padding-left:22px;}
article li{margin:4px 0;}
article figure{margin:26px 0 0;text-align:center;}
article figure img{display:inline-block;}
article strong{color:#46552f;}
article hr{border:0;border-top:1px solid var(--filet);margin:32px 0 0;}

.chapo{font-style:italic;text-align:center;}

/* alignements repris du contenu WordPress */
.txt-centre{text-align:center;}
.txt-droite{text-align:right;}
.txt-gauche{text-align:left;}
.img-droite{float:right;margin:26px 0 16px 24px;max-width:45%;}
.img-gauche{float:left;margin:26px 24px 16px 0;max-width:45%;}
.img-centre{margin-left:auto;margin-right:auto;text-align:center;}
article::after{content:"";display:block;clear:both;}

/* ---------- Colonne latérale ---------- */
aside{font-size:14px;}
.widget{margin-bottom:34px;}
.widget-titre{
  font-family:"Source Sans Pro",Arial,sans-serif;
  font-size:14.06px; font-weight:600; letter-spacing:1.17px;
  text-transform:uppercase; color:var(--widget-titre);
  padding:3.5px 2px 4.7px; margin:0 0 14px;
  border-bottom:1px solid var(--filet);
}
.widget p{margin:0 0 12px;font-style:italic;}
.widget img{display:block;}
.ratio-video{position:relative;padding-top:56.25%;background:#000;}
.ratio-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ---------- Formulaire de contact ---------- */
.form-contact{margin-top:26px;max-width:520px;}
.form-contact label{display:block;margin-bottom:16px;font-size:14px;}
.form-contact span{display:block;margin-bottom:5px;font-weight:bold;color:#46552f;}
.form-contact input[type=text],
.form-contact input[type=email],
.form-contact textarea{
  width:100%;padding:9px 10px;
  border:1px solid #c6c6c6;background:#fff;
  font-family:inherit;font-size:15px;color:#333;
}
.form-contact textarea{min-height:150px;resize:vertical;}
.form-contact button{
  font-family:"Source Sans Pro",Arial,sans-serif;
  background:var(--vert-titre);color:#fff;border:0;
  padding:11px 22px;font-size:14px;font-weight:600;
  letter-spacing:.6px;text-transform:uppercase;cursor:pointer;
}
.form-contact button:hover{background:#3a4a29;}
.contact-direct{
  margin-top:30px;padding-top:20px;border-top:1px solid var(--filet);
  font-size:15px;
}

/* ---------- Pied de page ---------- */
.pied{
  background:var(--footer-bg);
  color:var(--footer-texte);
  margin-top:10px;
}
.pied-inner{
  max-width:var(--largeur-site);margin:0 auto;padding:26px 16px;
  display:flex;flex-wrap:wrap;gap:16px 32px;
  align-items:center;justify-content:space-between;
  font-size:14px;
}
.pied a{color:var(--footer-texte);text-decoration:none;}
.pied a:hover{color:#fff;}
.pied-reseaux{display:flex;gap:18px;flex-wrap:wrap;}
.pied-legal{font-size:12.5px;opacity:.85;width:100%;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .grille{grid-template-columns:1fr;gap:34px;}
  .entete-inner{gap:16px;padding:18px 16px;min-height:0;}
  .site-titre{font-size:23px;}
  .site-accroche{font-size:13px;letter-spacing:1.4px;}
  .site-logo{padding:6px;}
  .site-logo .logo{width:52px;height:52px;}

  .menu-btn{display:block;}
  .nav-inner{position:relative;}
  #menu-principal{
    display:none;width:100%;flex-direction:column;align-items:flex-start;
  }
  #menu-principal.ouvert{display:flex;}
  .nav-principale a{padding:0;line-height:40px;}
  .nav-sous .nav-inner{flex-direction:column;align-items:flex-start;}
  .nav-sous a{padding:0;}
}

@media print{
  .nav-principale,.nav-sous,.menu-btn,aside{display:none;}
  body{background:#fff;}
  .grille{grid-template-columns:1fr;}
}
