/*
Theme Name:   Ecran Theme
Theme URI:    https://mon-ecran-pc-incurve.fr/
Description:  Thème enfant de GeneratePress pour un site d'écrans PC incurvés. Palette sombre "cockpit" (encre, cyan, violet, or), typographies Space Grotesk / Space Mono / Inter, signature "arc incurvé" sous les titres. Style les blocs Gutenberg et les widgets Fox Affiliate / Fox Blocks.
Author:       mon-écran-pc-incurvé
Template:     generatepress
Version:      1.0.0
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  ecran-theme
*/

/* =========================================================
   0. DESIGN TOKENS — repris de la home
   ========================================================= */
:root{
  --ink:#0B0E14;
  --ink-2:#0F141D;
  --panel:#151B27;
  --panel-2:#1B2331;
  --line:#28313F;
  --line-2:#333F50;
  --cyan:#37E5DC;
  --cyan-dim:#1F8F8A;
  --violet:#8B7BFF;
  --gold:#F5C55B;
  --text:#EBF1F7;
  --muted:#8593A6;
  --muted-2:#5E6B7D;
  --shadow:0 20px 60px -20px rgba(0,0,0,.7);
  --r:16px;
  --font-display:'Space Grotesk',system-ui,sans-serif;
  --font-mono:'Space Mono',ui-monospace,monospace;
  --font-body:'Inter',system-ui,sans-serif;
}

/* =========================================================
   1. BASE / TYPOGRAPHIE
   ========================================================= */
html{scroll-behavior:smooth}
body{
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
::selection{background:rgba(55,229,220,.28);color:#fff}

a{color:var(--cyan);text-decoration:none;transition:color .2s}
a:hover,a:focus{color:#7FF0EA}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}

h1,h2,h3,h4,h5,h6,
.entry-title,.page-header h1,.main-title{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.02em;
  color:var(--text);
  line-height:1.15;
}
h1,.entry-title{font-weight:700;letter-spacing:-.03em}

code,kbd,pre,.mono{font-family:var(--font-mono);font-size:.92em}
code,kbd{background:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;color:var(--cyan)}
pre{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:20px;overflow:auto}
pre code{background:none;border:0;padding:0}

/* Signature : arc incurvé sous les H1 d'articles et de pages */
.entry-header .entry-title,
.page-header h1{
  position:relative;
  display:inline-block;
  padding-bottom:20px;
  margin-bottom:14px;
}
.entry-header .entry-title::after,
.page-header h1::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:min(100%,320px);height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 40' preserveAspectRatio='none'%3E%3Cpath d='M4 30 Q200 4 396 30' stroke='%2337E5DC' stroke-width='9' stroke-linecap='round' opacity='0.18'/%3E%3Cpath d='M4 30 Q200 4 396 30' stroke='%2337E5DC' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
  pointer-events:none;
}

/* =========================================================
   2. HEADER STICKY (GeneratePress)
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(11,14,20,.72);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}

.site-header .main-title a,
.site-header .main-title{
  font-family:var(--font-display);
  font-weight:600;letter-spacing:-.01em;
  color:var(--text);
}
.site-header .main-title a:hover{color:var(--cyan)}
.site-description{
  font-family:var(--font-mono);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted-2);
}

/* Navigation */
.main-navigation,
.main-navigation .main-nav ul li a{
  background:transparent;
  font-family:var(--font-body);
  font-size:14px;color:var(--muted);
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li[class*="current-menu-"] > a{color:var(--cyan)}
.main-navigation ul ul{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow);
}
.main-navigation ul ul li a{color:var(--muted)}
.main-navigation ul ul li a:hover{color:var(--cyan);background:var(--ink-2)}
.menu-toggle,button.menu-toggle:hover,button.menu-toggle:focus{
  background:transparent;color:var(--text);
}

/* =========================================================
   3. CONTENU / ARTICLES
   ========================================================= */
.site-content{background:var(--ink)}
/* Largeur du container : 1200 px */
.grid-container,
.site-header .inside-header,
.inside-footer-widgets{max-width:1200px}
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.one-container .container,
.separate-containers .paging-navigation{
  background:transparent;
}
.inside-article{color:var(--text)}

.entry-meta,.posted-on,.byline,.cat-links,.tags-links{
  font-family:var(--font-mono);
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted-2);
}
.entry-meta a{color:var(--cyan-dim)}
.entry-meta a:hover{color:var(--cyan)}

.entry-content{font-size:17px;color:var(--text)}
.entry-content p{margin-bottom:1.5em}
.entry-content h2{
  font-size:clamp(24px,3.6vw,32px);
  margin-top:2.2em;margin-bottom:.7em;
  padding-top:.9em;border-top:1px solid var(--line);
}
.entry-content h2::before{
  content:"//";
  font-family:var(--font-mono);
  font-size:.55em;color:var(--cyan-dim);
  display:block;letter-spacing:.22em;margin-bottom:10px;
}
.entry-content h3{font-size:clamp(19px,2.6vw,23px);margin-top:1.8em;margin-bottom:.6em}
.entry-content li{margin-bottom:.5em}
.entry-content strong,.entry-content b{color:#fff;font-weight:600}

blockquote,.wp-block-quote{
  border-left:3px solid var(--cyan);
  background:var(--ink-2);
  border-radius:0 var(--r) var(--r) 0;
  padding:18px 24px;color:var(--muted);
  font-style:normal;
}
hr,.wp-block-separator{border:0;border-top:1px solid var(--line);opacity:1}

/* Images */
.entry-content img,.wp-block-image img{border-radius:12px}
figcaption,.wp-caption-text{
  font-family:var(--font-mono);font-size:12px;color:var(--muted-2);
}

/* Tableaux (comparatifs) */
.entry-content table,.wp-block-table table{
  width:100%;border-collapse:separate;border-spacing:0;
  background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  font-size:15px;
}
.entry-content th,.wp-block-table th{
  background:var(--ink-2);
  font-family:var(--font-mono);font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);
  border-bottom:1px solid var(--line-2);padding:12px 14px;text-align:left;
}
.entry-content td,.wp-block-table td{
  border-bottom:1px solid var(--line);padding:12px 14px;color:var(--text);
}
.entry-content tr:last-child td{border-bottom:0}
.entry-content tbody tr:hover td{background:rgba(55,229,220,.04)}

/* =========================================================
   4. BOUTONS / CTA
   ========================================================= */
.button,button,input[type="button"],input[type="submit"],
.wp-block-button__link{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-body);font-weight:600;font-size:14px;
  padding:12px 20px;border-radius:11px;border:0;
  background:var(--cyan);color:#04211F;
  transition:transform .2s,box-shadow .2s;
  text-decoration:none;
}
.button:hover,button:hover,input[type="submit"]:hover,
.wp-block-button__link:hover{
  background:var(--cyan);color:#04211F;
  box-shadow:0 8px 24px -8px rgba(55,229,220,.6);
  transform:translateY(-1px);
}
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent;color:var(--cyan);
  border:1px solid var(--line-2);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  border-color:var(--cyan);box-shadow:none;
}

/* =========================================================
   5. CARTES, ARCHIVES, WIDGETS DE COLONNE
   ========================================================= */
/* Listes d'articles (blog / catégories) en cartes panneau */
.blog .inside-article,.archive .inside-article,.search .inside-article{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:28px;
  transition:transform .3s,border-color .3s,box-shadow .3s;
}
.blog .inside-article:hover,.archive .inside-article:hover{
  border-color:var(--line-2);
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}
.read-more,.entry-content a.more-link{
  font-weight:600;font-size:14px;color:var(--cyan);
}

/* Sidebar */
.sidebar .widget{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:22px;
}
.widget-title{
  font-family:var(--font-mono);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cyan-dim);margin-bottom:14px;
}
.sidebar .widget a{color:var(--muted)}
.sidebar .widget a:hover{color:var(--cyan)}

/* Pagination */
.paging-navigation .page-numbers{
  font-family:var(--font-mono);
  background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:8px 14px;color:var(--muted);
}
.paging-navigation .page-numbers.current,
.paging-navigation .page-numbers:hover{
  border-color:var(--cyan);color:var(--cyan);background:var(--ink-2);
}

/* =========================================================
   6. WIDGETS FOX (Affiliate + Blocks) — habillage panneau
   Sélecteurs volontairement souples ; ajuster si le markup
   réel des plugins diffère.
   ========================================================= */
.entry-content [class*="fox-affiliate"],
.entry-content [class*="fox_affiliate"],
.entry-content [class*="fxb-"]{
  color:var(--text);
}
.entry-content div[class*="fox-affiliate"],
.entry-content div[class*="fxb-faq"],
.entry-content div[class*="fxb-pros-cons"],
.entry-content div[class*="fxb-criteria"],
.entry-content div[class*="fxb-verdict"],
.entry-content div[class*="fxb-key-points"],
.entry-content div[class*="fxb-link-cards"],
.entry-content div[class*="fxb-expert-tip"]{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:22px;
  margin:1.8em 0;
}
.entry-content div[class*="fxb-expert-tip"]{border-left:3px solid var(--gold)}
/* Lien conditionnel inline en attente : texte simple discret */
.fxb-smartlink--inline:not([href]){
  color:var(--text);border-bottom:1px dotted var(--muted-2);cursor:default;
}

/* =========================================================
   7. FOOTER
   ========================================================= */
.site-footer,.footer-widgets{
  background:var(--ink-2);
  border-top:1px solid var(--line);
  color:var(--muted-2);
}
.site-info{
  font-size:13px;color:var(--muted-2);
  padding:26px 0;text-align:center;
}
.site-info a{color:var(--muted)}
.site-info a:hover{color:var(--cyan)}
.footer-widgets .widget-title{color:var(--cyan-dim)}
.footer-widgets a{color:var(--muted)}
.footer-widgets a:hover{color:var(--cyan)}

/* =========================================================
   8. FORMULAIRES / COMMENTAIRES / RECHERCHE
   ========================================================= */
input[type="text"],input[type="email"],input[type="url"],
input[type="search"],input[type="password"],textarea,select{
  background:var(--ink-2);
  border:1px solid var(--line);
  border-radius:11px;color:var(--text);
  padding:11px 14px;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(55,229,220,.15);
  outline:none;
}
::placeholder{color:var(--muted-2)}
.comments-area{border-top:1px solid var(--line);margin-top:40px;padding-top:30px}
.comment-body{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}

/* =========================================================
   9. ACCESSIBILITÉ / MOTION
   ========================================================= */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
