/*
Theme Name: Generation Deguisement
Theme URI: https://generation-deguisement.fr
Description: Magazine feminin — maquillage, coiffure, mode et soins. Theme enfant Astra sur-mesure.
Author: Generation Deguisement
Template: astra
Version: 1.0
Text Domain: gdg
*/

@font-face{font-family:'GdgSerif';src:url(fonts/playfair.woff2) format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'GdgText';src:url(fonts/archivo.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --ground:#fbf6ec;
  --panel:#f3e9da;
  --card:#ffffff;
  --ink:#2b2622;
  --mid:#6e645c;
  --hair:#e3d8c7;
  --rose:#93414c;
  --gold:#c08a2e;
  --band:#8d4650;
  --band-ink:#fbf6ec;
  --shadow:0 14px 30px -24px rgba(43,38,34,.55);
  --wrapw:1180px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);
  font-family:'GdgText',system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:'GdgSerif',Georgia,serif;font-weight:500;line-height:1.15;text-wrap:balance}
.wrap{max-width:var(--wrapw);margin:0 auto;padding:0 28px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--ink);color:var(--ground);padding:10px 16px;z-index:99}

/* ---------- entete ---------- */
.topbar{background:var(--ground);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:30}
.topbar .inner{max-width:var(--wrapw);margin:0 auto;padding:16px 28px;display:flex;align-items:center;
  justify-content:space-between;gap:22px;flex-wrap:wrap}
.logo{font-family:'GdgSerif',Georgia,serif;font-size:20px;line-height:1.05;letter-spacing:.02em;
  text-transform:uppercase;text-decoration:none;font-weight:700}
.logo span{display:block;font-size:11px;letter-spacing:.3em;font-family:'GdgText',sans-serif;
  font-weight:600;color:var(--rose);margin-top:3px}
.topnav{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.topnav a{text-decoration:none;font-size:13.5px;color:var(--mid);padding-bottom:2px;
  border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}
.topnav a:hover,.topnav a:focus-visible{color:var(--rose);border-bottom-color:var(--rose)}
.topnav a.current{color:var(--ink)}
.btn{display:inline-block;background:var(--rose);color:#fff;text-decoration:none;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;font-weight:600;padding:11px 20px;border:none;
  transition:background .15s ease,transform .15s ease}
.btn:hover,.btn:focus-visible{background:var(--band);transform:translateY(-1px);color:#fff}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;background:var(--panel)}
.hero img{width:100%;height:clamp(340px,56vh,540px);object-fit:cover;object-position:center 35%}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,14,14,.74) 0%,rgba(20,14,14,.48) 45%,rgba(20,14,14,.08) 82%)}
.hero .inner{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.hero .box{max-width:var(--wrapw);margin:0 auto;padding:0 28px;width:100%}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold);
  margin:0 0 14px}
.hero h1{color:#fff;margin:0;font-size:clamp(30px,5vw,58px);line-height:1.06;letter-spacing:-.01em;
  max-width:17ch}
.hero p{color:rgba(255,255,255,.87);max-width:46ch;margin:18px 0 0;font-size:15.5px}

/* ---------- intro ---------- */
.intro{padding:72px 0 4px;text-align:center}
.intro .eyebrow{color:var(--rose)}
.intro h2{margin:0 auto;font-size:clamp(26px,4vw,42px);max-width:20ch}
.intro p{max-width:62ch;margin:20px auto 0;color:var(--mid)}

/* ---------- bandeau autrice ---------- */
.author{margin-top:62px;background:var(--band);color:var(--band-ink)}
.author .inner{max-width:var(--wrapw);margin:0 auto;padding:52px 28px;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:48px;align-items:center}
.author .mono{font-family:'GdgSerif',Georgia,serif;font-size:clamp(60px,11vw,132px);line-height:.9;
  opacity:.28;letter-spacing:-.02em}
.author h2{margin:0 0 16px;font-size:clamp(24px,3.4vw,34px)}
.author p{margin:0 0 14px;font-size:15px;opacity:.88;max-width:64ch}
.author .sign{font-family:'GdgSerif',Georgia,serif;font-size:22px;font-style:italic;margin-top:20px;
  display:inline-block}
.author a{color:inherit}

/* ---------- rubriques ---------- */
.cat{padding:66px 0 0}
.catbox{background:var(--panel);padding:32px;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) 300px;gap:22px;align-items:start}
.cat.rev .catbox{grid-template-columns:300px repeat(3,minmax(0,1fr))}
.catdesc{order:1;align-self:stretch;display:flex;flex-direction:column;gap:14px}
.cat.rev .catdesc{order:-1}
.catdesc img{width:100%;aspect-ratio:4/3;object-fit:cover}
.catdesc h2{font-size:30px;margin:0}
.catdesc .rule{width:44px;height:3px;background:var(--gold)}
.catdesc p{margin:0;color:var(--mid);font-size:13.5px}
.catdesc .txtcol{display:flex;flex-direction:column;gap:13px}
.catdesc .more{margin-top:auto;padding-top:8px}
.catdesc .more a{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  text-decoration:none;color:var(--rose);border-bottom:1px solid var(--rose);padding-bottom:3px}
.card{background:var(--card);box-shadow:var(--shadow);display:flex;flex-direction:column;align-self:start}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card .body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-weight:600;font-size:17.5px;line-height:1.28;margin:0}
.card h3 a{text-decoration:none}
.card h3 a:hover,.card h3 a:focus-visible{color:var(--rose)}
.card .date{font-size:12px;color:var(--mid);margin:0}
.card .btn{align-self:flex-start;margin-top:auto;font-size:11px;padding:9px 16px;background:var(--gold);
  color:#2b2622}
.card .btn:hover{background:var(--rose);color:#fff}
.empty{grid-column:span 3;background:var(--card);padding:24px;color:var(--mid);font-size:14px;
  box-shadow:var(--shadow)}

/* ---------- rendez-vous ---------- */
.seasons{margin-top:66px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:26px 0}
.seasons .inner{max-width:var(--wrapw);margin:0 auto;padding:0 28px;display:flex;gap:26px;
  align-items:center;flex-wrap:wrap;justify-content:space-between}
.seasons .lbl{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--mid)}
.seasons ul{list-style:none;display:flex;gap:26px;flex-wrap:wrap;margin:0;padding:0}
.seasons li a{font-family:'GdgSerif',Georgia,serif;font-size:18px;text-decoration:none;
  border-bottom:1px solid var(--hair);padding-bottom:3px;display:inline-block}
.seasons li a:hover,.seasons li a:focus-visible{color:var(--rose);border-bottom-color:var(--rose)}
.seasons li small{display:block;font-family:'GdgText',sans-serif;font-size:11px;color:var(--mid);
  letter-spacing:.08em;text-transform:uppercase;margin-top:4px}

/* ---------- listes ---------- */
.latest{padding:66px 0 0;text-align:center}
.latest h2{margin:0 auto 8px;font-size:clamp(24px,3.5vw,36px);max-width:24ch}
.latest .sep{width:56px;height:1px;background:var(--ink);margin:24px auto 32px;opacity:.35}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;text-align:left}

/* ---------- archive ---------- */
.archive-head{padding:56px 0 0;text-align:center}
.archive-head h1{font-size:clamp(28px,4.4vw,44px);margin:0 auto}
.archive-head p{color:var(--mid);max-width:64ch;margin:16px auto 0}
.archive-body{padding:34px 0 0}
.pagination{display:flex;gap:10px;justify-content:center;padding:40px 0 0;flex-wrap:wrap}
.pagination .page-numbers{padding:9px 15px;border:1px solid var(--hair);text-decoration:none;font-size:14px}
.pagination .current{background:var(--ink);color:var(--ground);border-color:var(--ink)}

/* ---------- article ---------- */
.art{padding:44px 0 0}
.art-inner{max-width:1080px;margin:0 auto;padding:0 28px;display:grid;
  grid-template-columns:minmax(0,1fr) 280px;gap:52px;align-items:start}
.art-head .kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  color:var(--rose);margin:0 0 14px}
.art-head h1{font-size:clamp(28px,4.2vw,46px);margin:0 0 16px}
.art-meta{color:var(--mid);font-size:13.5px;margin:0 0 26px;display:flex;gap:14px;flex-wrap:wrap}
.art-cover{margin:0 0 30px}
.art-cover img{width:100%;aspect-ratio:16/9;object-fit:cover}
.art-body{font-size:17px;line-height:1.75;max-width:68ch}
.art-body p{margin:0 0 20px}
.art-body h2{font-size:clamp(22px,3vw,30px);margin:38px 0 14px}
.art-body h3{font-size:20px;margin:28px 0 10px;font-weight:600}
.art-body ul,.art-body ol{margin:0 0 20px;padding-left:22px}
.art-body li{margin-bottom:8px}
.art-body img{margin:26px 0}
.art-body a{color:var(--rose);text-underline-offset:3px}
.art-body blockquote{margin:26px 0;padding:4px 0 4px 20px;border-left:3px solid var(--gold);
  font-family:'GdgSerif',Georgia,serif;font-size:19px;font-style:italic}
.art-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:26px}
.art-side .blk{background:var(--panel);padding:22px}
.art-side h2{font-size:19px;margin:0 0 14px}
.art-side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.art-side li a{text-decoration:none;font-size:14px;line-height:1.4;border-bottom:1px solid transparent}
.art-side li a:hover{color:var(--rose);border-bottom-color:var(--rose)}
.authorbox{margin-top:44px;background:var(--panel);padding:26px;display:flex;gap:20px;flex-wrap:wrap}
.authorbox h2{margin:0 0 8px;font-size:20px}
.authorbox p{margin:0;color:var(--mid);font-size:14px;max-width:70ch}

/* ---------- page ---------- */
.pagewrap{padding:52px 0 0}
.pagewrap .inner{max-width:820px;margin:0 auto;padding:0 28px}
.pagewrap h1{font-size:clamp(28px,4.2vw,44px);margin:0 0 26px}
.pagewrap .content{font-size:17px;line-height:1.75}
.pagewrap .content h2{font-size:26px;margin:34px 0 12px}
.pagewrap .content p{margin:0 0 18px}
.pagewrap .content ul{margin:0 0 18px;padding-left:22px}

/* ---------- pied ---------- */
.site-footer{margin-top:72px;background:var(--panel);border-top:1px solid var(--hair);padding:44px 0 46px}
.foot{max-width:var(--wrapw);margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;
  gap:28px;flex-wrap:wrap;align-items:flex-start}
.foot .who{max-width:44ch}
.foot .who strong{font-family:'GdgSerif',Georgia,serif;font-weight:700;font-size:19px;
  text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:10px}
.foot .who p{margin:0;font-size:13.5px;color:var(--mid)}
.foot .col b{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:12px;font-weight:600}
.foot nav{display:flex;flex-direction:column;gap:10px;font-size:13.5px}
.foot nav a{text-decoration:none;color:var(--mid)}
.foot nav a:hover{color:var(--rose)}
.credits{max-width:var(--wrapw);margin:30px auto 0;padding:18px 28px 0;border-top:1px solid var(--hair);
  font-size:11.5px;color:var(--mid);display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}
.credits a{color:var(--mid)}

a:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

@media (max-width:1040px){
  .catbox,.cat.rev .catbox{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catdesc,.cat.rev .catdesc{order:-1;grid-column:1 / -1;flex-direction:row;gap:22px;align-items:flex-start}
  .catdesc img{width:220px;flex:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .empty{grid-column:1 / -1}
  .art-inner{grid-template-columns:1fr;gap:36px}
  .art-side{position:static}
  .author .inner{grid-template-columns:1fr;gap:18px}
  .author .mono{display:none}
}
@media (max-width:640px){
  .catbox,.cat.rev .catbox,.grid{grid-template-columns:1fr}
  .catdesc,.cat.rev .catdesc{flex-direction:column}
  .catdesc img{width:100%}
  .topnav{gap:14px}
  .wrap,.topbar .inner,.hero .box,.seasons .inner,.foot{padding-left:20px;padding-right:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- index A-Z ---------- */
.az{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 34px}
.az a,.az span{font-family:'GdgSerif',Georgia,serif;font-size:21px;line-height:1;padding:11px 0 9px;
  width:calc((100% - 6px*12)/13);min-width:42px;text-align:center;border:1px solid var(--hair);
  background:var(--card);text-decoration:none;display:block}
.az small{display:block;font-family:'GdgText',sans-serif;font-size:9.5px;color:var(--mid);margin-top:5px}
.az a:hover{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.az .off{opacity:.4}
.azblock{margin:0 0 26px}
.azblock h2{font-size:24px;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--hair)}
.azblock ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.azblock li a{text-decoration:none;border-bottom:1px solid transparent}
.azblock li a:hover{color:var(--rose);border-bottom-color:var(--rose)}
@media (max-width:640px){.az a,.az span{width:calc((100% - 6px*5)/6)}}

/* Bandeau autrice en bas de page : il colle au pied du site. */
.author-end{margin-bottom:0}
body.home .site-footer{margin-top:0}
