/* ==========================================================================
   AFFAIRE MAROC - extras (search, newsletter, cookies, ads, author)
   ========================================================================== */

/* ============== SEARCH MODAL ============== */
.search-overlay{
  position:fixed; inset:0; background:rgba(14,14,12,.72);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  z-index:9000; display:none; opacity:0; transition:opacity .2s ease;
  align-items:flex-start; justify-content:center; padding:5vh 1rem 1rem;
}
.search-overlay.open{ display:flex; opacity:1; }
.search-box{
  background:#F7F4ED; width:100%; max-width:680px; border-radius:8px;
  box-shadow:0 30px 80px rgba(0,0,0,.45); overflow:hidden;
  display:flex; flex-direction:column; max-height:88vh;
}
.search-input-row{
  display:flex; align-items:center; gap:.85rem;
  padding:1.15rem 1.25rem; border-bottom:1px solid rgba(14,14,12,.1);
}
.search-input-row svg{ flex-shrink:0; color:#0E0E0C; opacity:.55; }
.search-input{
  flex:1; border:0; background:transparent; outline:none;
  font:500 1.05rem/1.4 'Inter',sans-serif; color:#0E0E0C;
  letter-spacing:-.01em; padding:.25rem 0;
}
.search-input::placeholder{ color:rgba(14,14,12,.4); font-weight:400; }
.search-close{
  background:rgba(14,14,12,.06); border:0; border-radius:4px;
  font:500 .7rem/1 'Inter',sans-serif; color:#0E0E0C;
  padding:.45rem .55rem; cursor:pointer; letter-spacing:.06em;
}
.search-close:hover{ background:rgba(14,14,12,.12); }
.search-results{
  flex:1; overflow-y:auto; padding:.25rem 0;
}
.search-empty{
  padding:2rem 1.5rem; text-align:center; color:rgba(14,14,12,.45);
  font:400 .85rem/1.5 'Inter',sans-serif;
}
.search-meta{
  padding:.7rem 1.25rem .35rem; font:500 .65rem/1 'Inter',sans-serif;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(14,14,12,.4);
  border-bottom:1px solid rgba(14,14,12,.06);
}
.search-result{
  display:block; padding:.85rem 1.25rem; text-decoration:none;
  color:#0E0E0C; border-bottom:1px solid rgba(14,14,12,.05);
  transition:background .12s ease;
}
.search-result:hover, .search-result.active{
  background:rgba(184,35,46,.05); color:#0E0E0C;
}
.search-result-cat{
  font:500 .6rem/1 'Inter',sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:#B8232E; margin-bottom:.3rem;
}
.search-result-title{
  font:500 .98rem/1.35 'Fraunces',serif; letter-spacing:-.005em;
  margin-bottom:.25rem;
}
.search-result mark{
  background:rgba(184,35,46,.18); color:#0E0E0C; padding:0 1px; border-radius:2px;
}
.search-result-desc{
  font:400 .8rem/1.45 'Inter',sans-serif; color:rgba(14,14,12,.6);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.search-hint{
  padding:.7rem 1.25rem; font:400 .7rem/1.4 'Inter',sans-serif;
  color:rgba(14,14,12,.42); border-top:1px solid rgba(14,14,12,.06);
  display:flex; gap:1rem; flex-wrap:wrap;
}
.search-hint kbd{
  background:rgba(14,14,12,.08); padding:1px 5px; border-radius:3px;
  font:500 .68rem/1 'JetBrains Mono',monospace; color:#0E0E0C;
}

/* ============== COOKIE BANNER ============== */
.ck-banner{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:8000;
  background:#0E0E0C; color:#F7F4ED; padding:1.15rem 1.4rem;
  border-radius:6px; box-shadow:0 18px 50px rgba(0,0,0,.4);
  display:none; max-width:760px; margin-left:auto;
}
.ck-banner.show{ display:block; animation:ck-up .35s ease both; }
@keyframes ck-up { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.ck-grid{
  display:grid; grid-template-columns:1fr auto; gap:1rem 1.5rem; align-items:center;
}
.ck-text{
  font:400 .82rem/1.5 'Inter',sans-serif; color:rgba(247,244,237,.85);
}
.ck-text strong{ color:#F7F4ED; display:block; margin-bottom:.2rem; font-size:.92rem; }
.ck-text a{ color:#F7F4ED; text-decoration:underline; text-decoration-color:rgba(247,244,237,.4); }
.ck-buttons{ display:flex; gap:.6rem; flex-shrink:0; }
.ck-buttons button{
  font:500 .72rem/1 'Inter',sans-serif; letter-spacing:.06em;
  padding:.7rem 1.05rem; border-radius:4px; cursor:pointer;
  border:1px solid rgba(247,244,237,.2); background:transparent; color:#F7F4ED;
  text-transform:uppercase;
}
.ck-buttons .ck-accept{
  background:#B8232E; border-color:#B8232E; color:#F7F4ED;
}
.ck-buttons .ck-accept:hover{ background:#9F1E27; border-color:#9F1E27; }
.ck-buttons .ck-refuse:hover{ background:rgba(247,244,237,.08); }
@media (max-width:600px){
  .ck-grid{ grid-template-columns:1fr; gap:.9rem; }
  .ck-buttons{ width:100%; }
  .ck-buttons button{ flex:1; }
}

/* ============== AD SLOTS ============== */
.ad-slot{
  margin:2.5rem auto; max-width:728px; min-height:90px;
  background:rgba(14,14,12,.025); border:1px dashed rgba(14,14,12,.12);
  display:flex; align-items:center; justify-content:center; padding:1rem;
  position:relative;
}
.ad-slot::before{
  content:"PUBLICITÉ"; position:absolute; top:.5rem; left:.75rem;
  font:500 .55rem/1 'Inter',sans-serif; letter-spacing:.16em;
  color:rgba(14,14,12,.35); text-transform:uppercase;
}
.ad-slot ins.adsbygoogle{ display:block; width:100%; }
.ad-in-article{ margin:3rem auto; }
.ad-end-article{ margin:2rem auto 1rem; }

/* ============== NEWSLETTER FEEDBACK ============== */
.nl-msg{
  margin-top:1rem; padding:.85rem 1rem; border-radius:5px;
  font:400 .82rem/1.5 'Inter',sans-serif;
  display:none;
}
.nl-msg.ok{ background:rgba(31,77,58,.12); color:#1F4D3A; border-left:3px solid #1F4D3A; display:block; }
.nl-msg.err{ background:rgba(184,35,46,.1); color:#9F1E27; border-left:3px solid #B8232E; display:block; }

/* ============== AUTHOR PAGE ============== */
.au-hero{
  padding:5rem 0 3.5rem; border-bottom:1px solid rgba(14,14,12,.08);
  background:#F7F4ED;
}
.au-hero .w{ display:grid; grid-template-columns:auto 1fr; gap:3rem; align-items:center; }
.au-photo{
  width:200px; height:200px; border-radius:50%;
  background:linear-gradient(140deg,#1F4D3A,#0E0E0C);
  display:flex; align-items:center; justify-content:center;
  font:600 4.5rem/1 'Fraunces',serif; color:#F7F4ED;
  box-shadow:0 16px 40px rgba(14,14,12,.18);
  flex-shrink:0;
}
.au-id .au-eyebrow{
  font:500 .68rem/1 'Inter',sans-serif; letter-spacing:.18em;
  text-transform:uppercase; color:#B8232E; margin-bottom:.85rem; display:block;
}
.au-id h1{
  font:600 2.85rem/1.05 'Fraunces',serif; letter-spacing:-.025em;
  margin:0 0 .8rem;
}
.au-id .au-role{
  font:400 1.05rem/1.5 'Inter',sans-serif; color:rgba(14,14,12,.6);
  margin-bottom:1.5rem;
}
.au-meta{
  display:flex; gap:1.6rem; flex-wrap:wrap;
  font:400 .8rem/1 'Inter',sans-serif; color:rgba(14,14,12,.55);
}
.au-meta strong{ display:block; color:#0E0E0C; font-weight:600; font-size:.95rem; margin-bottom:.25rem; }
.au-bio{ padding:5rem 0; }
.au-bio .w{ max-width:760px; }
.au-bio h2{
  font:600 1.6rem/1.2 'Fraunces',serif; letter-spacing:-.015em;
  margin:2.5rem 0 1.1rem;
}
.au-bio h2:first-child{ margin-top:0; }
.au-bio p{
  font:400 1.04rem/1.7 'Inter',sans-serif; color:rgba(14,14,12,.82);
  margin-bottom:1.1rem;
}
.au-bio p strong{ color:#0E0E0C; font-weight:600; }
.au-art{
  background:#F2EEE3; padding:5rem 0; border-top:1px solid rgba(14,14,12,.06);
}
.au-art-h{
  font:500 .65rem/1 'Inter',sans-serif; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(14,14,12,.5); margin-bottom:.8rem;
}
.au-art-title{
  font:600 2rem/1.1 'Fraunces',serif; letter-spacing:-.02em;
  margin-bottom:2.5rem;
}
.au-art-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
}
.au-art-c{
  text-decoration:none; color:#0E0E0C;
  display:block; padding-bottom:1rem;
  border-bottom:1px solid rgba(14,14,12,.08);
  transition:border-color .15s ease;
}
.au-art-c:hover{ border-color:#B8232E; }
.au-art-c .ac-cat{
  font:500 .6rem/1 'Inter',sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:#B8232E; margin-bottom:.5rem;
}
.au-art-c h3{
  font:500 1.05rem/1.3 'Fraunces',serif; letter-spacing:-.005em;
  margin:0 0 .5rem;
}
.au-art-c p{
  font:400 .82rem/1.5 'Inter',sans-serif; color:rgba(14,14,12,.55);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (max-width:880px){
  .au-hero .w{ grid-template-columns:1fr; gap:2rem; text-align:center; }
  .au-photo{ margin:0 auto; width:160px; height:160px; font-size:3.5rem; }
  .au-meta{ justify-content:center; }
  .au-id h1{ font-size:2.2rem; }
  .au-art-grid{ grid-template-columns:1fr; gap:1.5rem; }
}

/* ============== SEARCH PAGE ============== */
.sp-hero{ padding:4rem 0 2rem; }
.sp-hero h1{
  font:600 3rem/1.05 'Fraunces',serif; letter-spacing:-.025em; margin:0 0 .6rem;
}
.sp-hero p{ font:400 1.05rem/1.5 'Inter',sans-serif; color:rgba(14,14,12,.6); margin:0; }
.sp-form{
  display:flex; gap:.75rem; margin-top:2rem; max-width:680px;
  background:#FFFFFF; border:1px solid rgba(14,14,12,.12);
  padding:.4rem .4rem .4rem 1.25rem; border-radius:6px;
}
.sp-form svg{ flex-shrink:0; color:rgba(14,14,12,.5); align-self:center; }
.sp-form input{
  flex:1; border:0; outline:none; background:transparent;
  font:500 1.02rem/1.4 'Inter',sans-serif; color:#0E0E0C; padding:.85rem .5rem;
}
.sp-form input::placeholder{ color:rgba(14,14,12,.4); font-weight:400; }
.sp-form button{
  background:#0E0E0C; color:#F7F4ED; border:0; padding:.75rem 1.5rem;
  border-radius:4px; font:500 .8rem/1 'Inter',sans-serif;
  letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
}
.sp-form button:hover{ background:#B8232E; }
.sp-results{ padding:3rem 0 6rem; }
.sp-stats{
  font:500 .7rem/1 'Inter',sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(14,14,12,.5);
  margin-bottom:1.5rem; padding-bottom:1.25rem;
  border-bottom:1px solid rgba(14,14,12,.08);
}
.sp-list{ display:flex; flex-direction:column; gap:1.6rem; }
.sp-item{
  text-decoration:none; color:#0E0E0C;
  display:block; padding-bottom:1.6rem;
  border-bottom:1px solid rgba(14,14,12,.08);
}
.sp-item:hover h3{ color:#B8232E; }
.sp-item .ac-cat{
  font:500 .62rem/1 'Inter',sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:#B8232E; margin-bottom:.5rem;
}
.sp-item h3{
  font:500 1.4rem/1.2 'Fraunces',serif; letter-spacing:-.012em;
  margin:0 0 .55rem; transition:color .15s ease;
}
.sp-item h3 mark, .sp-item p mark{
  background:rgba(184,35,46,.18); color:#0E0E0C; padding:0 2px; border-radius:2px;
}
.sp-item p{
  font:400 .92rem/1.55 'Inter',sans-serif; color:rgba(14,14,12,.65); margin:0;
}
.sp-empty{
  padding:3rem 0; text-align:center; color:rgba(14,14,12,.5);
  font:400 1rem/1.5 'Inter',sans-serif;
}
.sp-empty strong{
  display:block; color:#0E0E0C; font:500 1.4rem/1.2 'Fraunces',serif; margin-bottom:.6rem;
}

/* Header search button hover state */
.hdr-search{ cursor:pointer; }
