/*
Theme Name: Yallah Holding Guinea
Theme URI: https://yallah-holding.com
Author: Yallah Holding Guinea SASU
Description: Thème sur mesure pour le site institutionnel de Yallah Holding Guinea SASU. Parti pris éditorial : la transparence du registre. Les coordonnées, les données d'immatriculation et le statut de chaque domaine d'intervention sont modifiables depuis l'administration, sans toucher au code.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: Propriétaire — usage réservé à Yallah Holding Guinea SASU
Text Domain: yhg
Tags: institutionnel, holding, sur-mesure, accessible
*/

:root{
  --papier:#F5F4F2;
  --craie:#FFFFFF;
  --encre:#1A1718;
  --officiel:#524E4F;
  --rouge:#E2110D;
  --lisere:#DEDAD5;
  --mesure:74rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--papier);color:var(--encre);
  font-family:"Manrope",system-ui,sans-serif;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Bricolage Grotesque","Manrope",sans-serif;font-weight:800;line-height:1.04;letter-spacing:-.025em;margin:0}
p{margin:0 0 1.1rem}
a{color:inherit}
.wrap{width:min(100% - 2.5rem,var(--mesure));margin-inline:auto}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--encre);color:#fff;padding:.6rem 1rem;border-radius:2px}
:focus-visible{outline:2.5px solid var(--rouge);outline-offset:3px}

/* ---------- code / données de registre ---------- */
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}
.eyebrow{color:var(--officiel)}

/* ---------- en-tête ---------- */
.topbar{position:sticky;top:0;z-index:20;background:rgba(245,244,242,.9);backdrop-filter:blur(9px);border-bottom:1px solid var(--lisere)}
.topbar .row{display:flex;align-items:center;gap:1.5rem;min-height:74px}
.mark{height:34px;width:auto;display:block;flex:0 0 auto}
nav.main{margin-left:auto;display:flex;gap:1.6rem}
nav.main a{font-size:.86rem;font-weight:500;text-decoration:none;padding:.35rem 0;border-bottom:1.5px solid transparent}
nav.main a[aria-current]{border-bottom-color:var(--rouge)}
nav.main a:hover{border-bottom-color:var(--lisere)}
.lang{display:flex;align-items:center;gap:.45rem}
.lang b{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.08em}
.lang span{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.08em;color:#A9A29C}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--lisere);border-radius:3px;width:42px;height:38px;font-size:1.1rem;cursor:pointer}

/* ---------- héros : registre gravé ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--lisere)}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(115deg,rgba(82,78,79,.055) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(65deg,rgba(226,17,13,.045) 0 1px,transparent 1px 9px);
  -webkit-mask-image:radial-gradient(120% 95% at 82% 8%,#000 8%,transparent 68%);
          mask-image:radial-gradient(120% 95% at 82% 8%,#000 8%,transparent 68%);
}
.hero .inner{position:relative;padding:5.5rem 0 0}
.hero h1{font-size:clamp(2.6rem,7.4vw,5.4rem);max-width:19ch}
.hero h1 em{font-style:normal;color:var(--rouge)}
.lede{font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:56ch;margin-top:1.7rem;color:#38332F}
.statut{display:inline-flex;align-items:center;gap:.6rem;margin-top:2rem;padding:.5rem .95rem;border:1px solid var(--lisere);background:var(--craie);border-radius:2px}
.statut i{width:7px;height:7px;border-radius:50%;background:var(--rouge);flex:0 0 auto}

/* bande de registre */
.record{margin-top:3.6rem;border-top:1px solid var(--encre);display:grid;grid-template-columns:repeat(4,1fr)}
.record div{padding:1rem 1.1rem 1.3rem;border-right:1px solid var(--lisere)}
.record div:last-child{border-right:0}
.record dt{color:var(--officiel);margin-bottom:.35rem}
.record dd{margin:0;font-family:"IBM Plex Mono",monospace;font-size:.86rem;line-height:1.45}

/* ---------- sections ---------- */
section{padding:5rem 0;border-bottom:1px solid var(--lisere)}
.lbl{display:grid;grid-template-columns:12rem 1fr;gap:2.6rem}
.lbl h2{font-size:clamp(1.5rem,2.6vw,2rem);max-width:26ch}
.lbl .body{max-width:62ch}
.lbl .body p:last-child{margin-bottom:0}

/* ---------- SIGNATURE : le registre des domaines ---------- */
.registre{background:var(--craie)}
.registre .head{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem;justify-content:space-between;border-bottom:2px solid var(--encre);padding-bottom:.9rem;margin-bottom:0}
.registre h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.dom{border-bottom:1px solid var(--lisere);padding:1.5rem 0}
.dom .line{display:flex;align-items:baseline;gap:.9rem}
.dom .nom{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:clamp(1.15rem,2.2vw,1.5rem);letter-spacing:-.02em}
.dom .leader{flex:1 1 auto;border-bottom:1.5px dotted #C9C3BC;transform:translateY(-.32em)}
.dom .etat{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--officiel);border:1px solid var(--lisere);padding:.32rem .6rem;white-space:nowrap;background:var(--papier)}
.dom p{margin:.75rem 0 0;max-width:68ch;color:#413B37;font-size:.98rem}

/* ---------- bande gouvernance ---------- */
.gouv{background:var(--officiel);color:#F2F0EE;border-bottom:0}
.gouv h2{color:#fff;font-size:clamp(1.5rem,2.6vw,2rem)}
.gouv .lbl>.mono{color:#C6BFBD}
.gouv strong{color:#fff}

/* ---------- interlocuteurs ---------- */
.cibles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border-top:1px solid var(--lisere);margin-top:2rem}
.cibles div{padding:1.15rem 1.2rem;border-right:1px solid var(--lisere);border-bottom:1px solid var(--lisere);font-size:.95rem;font-weight:500}
.cibles div:last-child{border-right:0}

/* ---------- contact ---------- */
.contact{background:var(--craie)}
.coord{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin-top:2rem}
.coord a{font-family:"IBM Plex Mono",monospace;font-size:.9rem;text-decoration:none;border-bottom:1.5px solid var(--rouge);padding-bottom:1px}
.coord p{margin:.4rem 0 0;font-size:.95rem}

/* ---------- pied de page : bloc rouge ---------- */
footer{background:var(--rouge);color:#fff;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.foot-main{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.6rem;padding:3.6rem 0 3.2rem}
.mark-w{height:40px;width:auto;display:block}
.foot-copy{margin:1.3rem 0 0;font-size:.86rem;color:rgba(255,255,255,.92)}
.foot-note{margin:.9rem 0 0;font-size:.79rem;line-height:1.55;color:rgba(255,255,255,.8);max-width:44ch}
.foot-col h3{margin:0;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.78)}
.foot-col ul{list-style:none;margin:1rem 0 0;padding:0}
.foot-col li{margin:0 0 .62rem}
.foot-col a{font-size:.95rem;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px}
.foot-col a:hover{border-bottom-color:rgba(255,255,255,.65)}
.foot-col .val{font-family:"IBM Plex Mono",monospace;font-size:.8rem;line-height:1.5;color:rgba(255,255,255,.92)}
.foot-strip{background:#B10D0A}
.foot-strip .row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.05rem 0}
.foot-legal{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;align-items:center;font-size:.81rem;color:rgba(255,255,255,.9)}
.foot-legal a{text-decoration:none;border-bottom:1px solid transparent}
.foot-legal a:hover{border-bottom-color:rgba(255,255,255,.6)}
.foot-legal .sep{color:rgba(255,255,255,.45)}
.totop{width:46px;height:46px;border-radius:50%;background:#fff;color:var(--rouge);display:grid;place-items:center;text-decoration:none;font-size:1.15rem;line-height:1;flex:0 0 auto}
.totop:hover{background:rgba(255,255,255,.88)}
@media (max-width:900px){
  .foot-main{grid-template-columns:1fr 1fr;gap:2rem}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:560px){
  .foot-main{grid-template-columns:1fr}
  .foot-strip .row{justify-content:flex-start}
}

/* ---------- révélation au défilement ---------- */
.rise{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.rise.seen{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rise{opacity:1;transform:none;transition:none}}

/* ---------- adaptatif ---------- */
@media (max-width:900px){
  .lbl{grid-template-columns:1fr;gap:1.1rem}
  .record{grid-template-columns:repeat(2,1fr)}
  .record div:nth-child(2){border-right:0}
  .record div:nth-child(-n+2){border-bottom:1px solid var(--lisere)}
}
@media (max-width:760px){
  nav.main{display:none}
  .burger{display:block}
  nav.main.open{display:flex;position:absolute;left:0;right:0;top:74px;flex-direction:column;gap:0;background:var(--craie);border-bottom:1px solid var(--lisere);padding:.5rem 1.25rem}
  nav.main.open a{padding:.85rem 0;border-bottom:1px solid var(--lisere)}
  .hero .inner{padding-top:3.4rem}
  section{padding:3.4rem 0}
}
@media (max-width:460px){
  .record{grid-template-columns:1fr}
  .record div{border-right:0;border-bottom:1px solid var(--lisere)}
  .dom .line{flex-wrap:wrap;gap:.5rem}
  .dom .leader{display:none}
}

/* ================= PIED DE PAGE — fond clair, logo officiel, rouge en accent ================= */
.site-foot{--foot:#EAE7E3;--foot-bas:#DCD8D3;--filet:#C8C2BB;
  background:var(--foot);color:var(--encre)}
.foot-main{padding:3.6rem 0 2.2rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.4rem}
/* aucune surcharge de couleur : le logo garde ses teintes officielles */
.mark-foot{height:40px;width:auto;display:block}
.foot-copy{margin:1.1rem 0 0;font-size:.86rem;font-weight:500;color:var(--officiel)}
.foot-social{list-style:none;display:flex;gap:.6rem;margin:1.2rem 0 0;padding:0}
.foot-social .soc{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.08em;
  text-transform:uppercase;border:1px solid var(--filet);border-radius:2px;padding:.34rem .6rem;color:var(--officiel)}
.foot-col{display:flex;flex-direction:column;gap:.55rem}
.foot-col .foot-h{margin:0 0 .5rem;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--officiel);padding-bottom:.5rem;border-bottom:1px solid var(--filet)}
.foot-col a{font-size:.92rem;font-weight:500;color:var(--encre);text-decoration:none;width:fit-content;
  border-bottom:1.5px solid transparent}
.foot-col a:hover{border-bottom-color:var(--rouge)}
.foot-note{margin:2.4rem 0 0;font-size:.78rem;font-weight:500;color:var(--officiel);max-width:74ch;
  border-top:1px solid var(--filet);padding-top:1.2rem}
.reg-list{margin:0}
.reg-list dt{font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--officiel);margin:1rem 0 .2rem}
.reg-list dt:first-of-type{margin-top:0}
.reg-list dd{margin:0;font-family:"IBM Plex Mono",monospace;font-size:.8rem;line-height:1.45;color:var(--encre)}
.reg-list dd.nb{white-space:nowrap}
.foot-bar{background:var(--foot-bas)}
.foot-bar-row{display:flex;align-items:center;gap:1rem;min-height:58px}
.foot-legal{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .9rem}
.foot-legal a{font-size:.82rem;font-weight:500;color:var(--encre);text-decoration:none;border-bottom:1.5px solid transparent}
.foot-legal a:hover{border-bottom-color:var(--rouge)}
.foot-legal span{color:#8F8880}
.site-foot :focus-visible{outline:2.5px solid var(--rouge);outline-offset:3px}
@media (max-width:860px){
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:520px){
  .foot-grid{grid-template-columns:1fr}
  .foot-bar-row{flex-wrap:wrap;padding-block:.9rem}
}

/* ================= PAGES INTÉRIEURES ================= */
.page-tete{padding:3.6rem 0 2.8rem;border-bottom:1px solid var(--lisere);background:var(--craie)}
.page-tete h1{font-size:clamp(2rem,5vw,3.4rem);max-width:24ch}
.page-tete .chapeau{font-size:clamp(1rem,1.5vw,1.14rem);max-width:58ch;margin-top:1.3rem;color:#38332F}
.fil{display:flex;gap:.5rem;align-items:center;margin:0 0 1.2rem;color:var(--officiel)}
.fil a{text-decoration:none;border-bottom:1px solid transparent}
.fil a:hover{border-bottom-color:var(--rouge)}

/* fiche d'identité */
.fiche{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--encre);margin-top:2.4rem}
.fiche div{padding:1.05rem 1.1rem 1.25rem;border-right:1px solid var(--lisere);border-bottom:1px solid var(--lisere)}
.fiche div:nth-child(3n){border-right:0}
.fiche dt{color:var(--officiel);margin-bottom:.3rem}
.fiche dd{margin:0;font-family:"IBM Plex Mono",monospace;font-size:.84rem;line-height:1.45}

/* blocs de principes */
.principes{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--encre);margin-top:2.4rem}
.principes article{padding:1.6rem 1.4rem;border-right:1px solid var(--lisere);border-bottom:1px solid var(--lisere)}
.principes article:last-child{border-right:0}
.principes h3{font-size:1.06rem;margin:0 0 .55rem}
.principes p{margin:0;font-size:.94rem;color:#413B37}
.principes .num{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.12em;color:var(--rouge);display:block;margin-bottom:.7rem}

/* domaine — fiche détaillée */
.dom-fiche{border-top:1px solid var(--encre);padding:2rem 0 2.2rem}
.dom-fiche:last-of-type{border-bottom:1px solid var(--encre)}
.dom-fiche .tete{display:flex;flex-wrap:wrap;align-items:baseline;gap:.9rem}
.dom-fiche h2{font-size:clamp(1.35rem,2.6vw,1.9rem)}
.dom-fiche .etat{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--officiel);border:1px solid var(--lisere);padding:.3rem .58rem;background:var(--papier)}
.dom-fiche p{margin:.9rem 0 0;max-width:70ch;color:#413B37}

/* formulaire */
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:1.8rem;max-width:44rem}
.form .large{grid-column:1 / -1}
.form label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--officiel);margin-bottom:.4rem}
.form input,.form textarea,.form select{width:100%;font:inherit;font-size:.95rem;padding:.72rem .8rem;
  border:1px solid var(--lisere);border-radius:2px;background:var(--craie);color:var(--encre)}
.form textarea{min-height:8.5rem;resize:vertical}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--officiel)}
.btn{display:inline-block;font:inherit;font-weight:700;font-size:.95rem;padding:.8rem 1.5rem;border:0;border-radius:2px;
  background:var(--encre);color:#fff;cursor:pointer}
.btn:hover{background:var(--rouge)}
.avis{margin-top:1.1rem;padding:.85rem 1rem;border-left:3px solid var(--rouge);background:var(--papier);
  font-size:.88rem;color:#413B37}
@media (max-width:820px){
  .fiche,.principes{grid-template-columns:1fr 1fr}
  .fiche div:nth-child(3n){border-right:1px solid var(--lisere)}
  .fiche div:nth-child(2n),.principes article:nth-child(2n){border-right:0}
  .principes article{border-right:1px solid var(--lisere)}
}
@media (max-width:560px){
  .fiche,.principes,.form{grid-template-columns:1fr}
  .fiche div,.principes article{border-right:0}
}


/* ================= ADAPTATIONS WORDPRESS ================= */
/* WordPress génère ses menus sous forme de listes. */
.menu-liste{list-style:none;display:flex;gap:1.6rem;margin:0;padding:0}
.menu-liste li{margin:0}
.menu-liste .current-menu-item>a,
.menu-liste .current_page_item>a{border-bottom-color:var(--rouge)}
.foot-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.foot-liste li{margin:0}
.foot-liste a{font-size:.92rem;font-weight:500;color:var(--encre);text-decoration:none;
  width:fit-content;display:inline-block;border-bottom:1.5px solid transparent}
.foot-liste a:hover{border-bottom-color:var(--rouge)}
.legal-liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1.4rem}
.legal-liste li{margin:0}

/* Logo personnalisé posé depuis l'administration */
.custom-logo-link{display:block;flex:0 0 auto}
.custom-logo{height:34px;width:auto;display:block}
.mark-foot{height:40px;width:auto;display:block}

/* Piège à robots du formulaire : invisible sans être ignoré des lecteurs d'écran */
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Styles de l'éditeur : contenu libre saisi dans les pages */
.body>p:last-child{margin-bottom:0}
.body ul,.body ol{padding-left:1.2rem;margin:0 0 1.1rem}
.body li{margin-bottom:.35rem}
.body h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:1.8rem 0 .8rem}
.body h3{font-size:1.12rem;margin:1.4rem 0 .6rem}
.body a{border-bottom:1.5px solid var(--rouge);text-decoration:none}
.body a:hover{background:rgba(226,17,13,.07)}
.body blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--rouge);color:#413B37}
.body img,.body figure{max-width:100%;height:auto}
.body table{width:100%;border-collapse:collapse;margin:1.2rem 0;font-size:.95rem}
.body th,.body td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--lisere)}
.body th{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--officiel)}
.alignwide{max-width:100%}
.wp-block-image{margin:1.4rem 0}

/* Pagination du gabarit de repli */
.pagination{display:flex;gap:.6rem;margin-top:2rem}
.pagination .page-numbers{padding:.4rem .75rem;border:1px solid var(--lisere);text-decoration:none;border-radius:2px}
.pagination .current{background:var(--encre);color:#fff;border-color:var(--encre)}

@media (max-width:760px){
  nav.main.open .menu-liste{flex-direction:column;gap:0}
  nav.main.open .menu-liste a{display:block;padding:.85rem 0;border-bottom:1px solid var(--lisere)}
}
