/*
Theme Name: CGF Child
Template: astra
Version: 2.0
*/

/* ============ VARIABLES ============ */
:root {
  --cgf-bg: #F8F5EE;         /* ivoire crème */
  --cgf-white: #FFFFFF;
  --cgf-accent: #3D2C5C;     /* violet aubergine */
  --cgf-accent-dark: #2A1B45;
  --cgf-gold: #D4A24C;       /* or safran */
  --cgf-gold-dark: #B8862C;
  --cgf-ink: #231A38;
  --cgf-muted: #7A6E8F;
  --cgf-border: #E8DFCB;
}

/* ============ GLOBAL RESET ============ */
html, body { background: var(--cgf-bg) !important; color: var(--cgf-ink); }
body, .site, .ast-container, .site-content { background: var(--cgf-bg) !important; }

body, p, li, a { font-family: 'Inter', -apple-system, system-ui, sans-serif; color: var(--cgf-ink); }
h1, h2, h3, h4, h5, h6 { font-family: 'Fraunces', Georgia, serif; color: var(--cgf-accent); font-weight: 600; letter-spacing: -0.01em; }
h1 { font-size: 44px; line-height: 1.1; font-style: italic; }
h2 { font-size: 32px; line-height: 1.2; margin-top: 44px; margin-bottom: 16px; }
h3 { font-size: 22px; line-height: 1.3; margin-top: 32px; margin-bottom: 12px; }

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Inter:wght@400;500;600;700&display=swap');

/* ============ HEADER ============ */
.site-header, .ast-primary-header-bar {
  background: var(--cgf-bg) !important;
  border-bottom: 1px solid var(--cgf-border) !important;
  padding: 4px 0 !important;
}
.site-header .site-title, .site-header .site-description,
.ast-site-identity .site-title, .ast-site-identity .site-description {
  display: none !important;
}
.ast-header-break-point .site-header .site-branding .custom-logo-link img,
.custom-logo-link img { max-width: 180px !important; height: auto !important; }

/* Nav menu */
.main-header-menu > .menu-item > a,
.main-navigation ul li a {
  font-family: 'Inter', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 500 !important;
  color: var(--cgf-accent) !important;
  letter-spacing: 0.02em !important;
  padding: 12px 18px !important;
  transition: color 0.2s !important;
}
.main-header-menu > .menu-item > a:hover,
.main-navigation ul li a:hover { color: var(--cgf-gold) !important; }
.main-header-menu > .menu-item.current-menu-item > a { color: var(--cgf-gold) !important; }

/* ============ HERO ============ */
.cgf-hero {
  background: var(--cgf-bg);
  padding: 80px 0 100px;
  overflow: hidden;
}
.cgf-hero-inner {
  max-width: 1200px; margin: 0 auto;
  padding: 0 32px;
  display: grid; grid-template-columns: 1.1fr 0.9fr;
  gap: 60px; align-items: center;
}
.cgf-hero-left { display: flex; flex-direction: column; gap: 24px; }
.cgf-eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cgf-gold); font-weight: 600;
  display: flex; align-items: center; gap: 12px;
}
.cgf-eyebrow::before { content: ""; width: 40px; height: 1.5px; background: var(--cgf-gold); display: inline-block; }
.cgf-hero-left h1 {
  font-size: 52px; line-height: 1.05; margin: 0;
  color: var(--cgf-accent); font-weight: 500; letter-spacing: -0.02em;
}
.cgf-hero-left h1 .accent { font-style: italic; color: var(--cgf-gold-dark); }
.cgf-hero-lead {
  font-size: 17px; line-height: 1.65; color: var(--cgf-muted);
  margin: 8px 0 0; max-width: 460px;
}
.cgf-hero-cta { display: flex; gap: 16px; margin-top: 12px; flex-wrap: wrap; }
.cgf-btn-primary, .cgf-btn-secondary {
  padding: 14px 28px; font-family: 'Inter', sans-serif;
  font-size: 14px; font-weight: 600; letter-spacing: 0.02em;
  border-radius: 4px; text-decoration: none !important;
  transition: transform 0.2s, background 0.2s;
  display: inline-block;
}
.cgf-btn-primary { background: var(--cgf-accent); color: var(--cgf-bg) !important; }
.cgf-btn-primary:hover { background: var(--cgf-accent-dark); transform: translateY(-1px); }
.cgf-btn-secondary { background: transparent; color: var(--cgf-accent) !important; border: 1.5px solid var(--cgf-accent); }
.cgf-btn-secondary:hover { background: var(--cgf-accent); color: var(--cgf-bg) !important; }

.cgf-hero-right { position: relative; }
.cgf-hero-card-img {
  width: 100%; height: 480px;
  background-size: cover; background-position: center;
  border-radius: 10px; position: relative;
  box-shadow: 0 20px 60px rgba(61,44,92,0.15);
}
.cgf-hero-card-overlay {
  position: absolute; bottom: -30px; left: -30px;
  background: var(--cgf-white); padding: 24px 28px;
  border-radius: 8px; box-shadow: 0 15px 40px rgba(61,44,92,0.15);
  border-left: 3px solid var(--cgf-gold);
  max-width: 320px;
}
.cgf-hero-card-eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--cgf-gold-dark); font-weight: 600;
  margin: 0 0 12px;
}
.cgf-hero-card-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.cgf-hero-card-tag {
  font-family: 'Inter', sans-serif;
  font-size: 13px; color: var(--cgf-accent); font-weight: 500;
  padding: 4px 12px; background: rgba(61,44,92,0.06);
  border-radius: 20px;
}

/* ============ SECTIONS ============ */
.cgf-section { padding: 80px 0; background: var(--cgf-bg); }
.cgf-section.alt { background: linear-gradient(180deg, var(--cgf-bg) 0%, #F0EADD 100%); }
.cgf-section-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.cgf-section-head { text-align: center; margin-bottom: 56px; max-width: 640px; margin-left: auto; margin-right: auto; }
.cgf-section-head h2 { font-size: 42px; line-height: 1.15; margin: 12px 0 16px; }
.cgf-section-head h2 .accent { font-style: italic; color: var(--cgf-gold-dark); }
.cgf-section-head p { color: var(--cgf-muted); font-size: 17px; line-height: 1.6; }

/* Cats grid */
.cgf-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cgf-cat {
  background: var(--cgf-white); padding: 32px 28px;
  border-radius: 8px; border: 1px solid var(--cgf-border);
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
  text-decoration: none !important; display: block;
}
.cgf-cat:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(61,44,92,0.08);
  border-color: var(--cgf-gold);
}
.cgf-cat h3 { color: var(--cgf-accent); font-size: 22px; margin: 0 0 12px; font-style: italic; }
.cgf-cat p { color: var(--cgf-muted); font-size: 14.5px; line-height: 1.55; margin: 0 0 16px; }
.cgf-cat-arrow {
  font-family: 'Inter', sans-serif;
  font-size: 13px; letter-spacing: 0.05em; font-weight: 600;
  color: var(--cgf-gold-dark);
}

/* ============ QUERY BLOCK (LATEST POSTS) ============ */
html body div.wp-block-query.alignwide,
html body div.wp-block-query {
  display: block !important;
  width: min(1200px, calc(100vw - 64px)) !important;
  max-width: 1200px !important;
  margin: 40px auto !important;
  padding: 0 32px !important;
  box-sizing: border-box !important;
  grid-template-columns: none !important;
}
html body .wp-block-query > .wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  width: 100% !important;
  padding: 0 !important; margin: 0 !important;
  list-style: none !important;
}
html body .wp-block-query .wp-block-post {
  display: block !important; width: 100% !important; min-width: 0 !important;
  padding: 0 !important; margin: 0 !important;
  list-style: none !important;
  background: var(--cgf-white) !important;
  border-radius: 8px !important;
  border: 1px solid var(--cgf-border) !important;
  overflow: hidden !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
}
html body .wp-block-query .wp-block-post:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(61,44,92,0.08);
}
html body .wp-block-query .wp-block-post-featured-image { display: block !important; margin: 0 !important; }
html body .wp-block-query .wp-block-post-featured-image img {
  display: block !important; width: 100% !important; height: 220px !important;
  object-fit: cover !important; border-radius: 0 !important;
}
html body .wp-block-query .wp-block-post-terms {
  display: block !important; padding: 20px 20px 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 11px !important; letter-spacing: 0.14em !important;
  text-transform: uppercase !important; color: var(--cgf-gold-dark) !important;
  font-weight: 600 !important;
}
html body .wp-block-query .wp-block-post-terms a { color: var(--cgf-gold-dark) !important; text-decoration: none !important; }
html body .wp-block-query .wp-block-post-title {
  display: block !important; padding: 8px 20px 12px !important;
  font-family: 'Fraunces', serif !important;
  font-size: 20px !important; line-height: 1.25 !important;
  color: var(--cgf-accent) !important; font-weight: 500 !important;
  font-style: italic !important;
}
html body .wp-block-query .wp-block-post-title a { color: var(--cgf-accent) !important; text-decoration: none !important; }
html body .wp-block-query .wp-block-post-excerpt {
  padding: 0 20px 24px !important;
  font-size: 14.5px !important; line-height: 1.55 !important;
  color: var(--cgf-muted) !important;
}

@media (max-width: 900px) {
  html body .wp-block-query > .wp-block-post-template { grid-template-columns: 1fr !important; }
  .cgf-hero-inner { grid-template-columns: 1fr; }
  .cgf-cats { grid-template-columns: 1fr; }
  .cgf-hero-left h1 { font-size: 36px; }
}

/* ============ ARCHIVE (CATEGORY) ============ */
html body.archive main#main .ast-row,
html body.category main#main .ast-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px !important;
  align-items: stretch !important;
}
html body.archive article.post,
html body.category article.post {
  width: 100% !important; max-width: none !important;
  background: var(--cgf-white) !important;
  border: 1px solid var(--cgf-border) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  padding: 0 !important; margin: 0 !important;
}
html body.archive article.post:hover,
html body.category article.post:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(61,44,92,0.08);
}
html body.archive .post-thumb-img-content img,
html body.category .post-thumb-img-content img {
  width: 100% !important; height: 220px !important;
  object-fit: cover !important; border-radius: 0 !important;
}
html body.archive .entry-header,
html body.archive .entry-content,
html body.category .entry-header,
html body.category .entry-content {
  padding: 20px !important;
}
html body.archive .entry-title,
html body.category .entry-title {
  font-family: 'Fraunces', serif !important;
  font-size: 20px !important; font-style: italic !important;
  color: var(--cgf-accent) !important;
  margin: 6px 0 10px !important;
}
html body.archive .entry-title a,
html body.category .entry-title a { color: var(--cgf-accent) !important; text-decoration: none !important; }
html body.archive .entry-content p,
html body.category .entry-content p { color: var(--cgf-muted) !important; font-size: 14.5px !important; }
html body.archive .read-more, html body.category .read-more,
html body.archive .ast-button, html body.category .ast-button {
  color: var(--cgf-gold-dark) !important; font-weight: 600 !important;
  text-decoration: none !important; font-size: 13px !important;
}
html body.archive .page-title,
html body.category .page-title {
  text-align: center; margin: 60px 0 40px !important;
  font-size: 48px; font-style: italic;
}

/* ============ SINGLE POST ============ */
body.single-post .entry-header { margin-bottom: 32px; }
body.single-post .entry-title {
  font-size: 44px; line-height: 1.12; font-style: italic;
  color: var(--cgf-accent); font-family: 'Fraunces', serif;
  margin: 20px 0 24px;
}
body.single-post .entry-content { font-size: 17px; line-height: 1.75; color: var(--cgf-ink); max-width: 720px; margin: 0 auto; }
body.single-post .entry-content > * { max-width: 720px; margin-left: auto; margin-right: auto; }
body.single-post .entry-content h2, body.single-post .entry-content h3 { color: var(--cgf-accent); }
body.single-post .entry-content a { color: var(--cgf-gold-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.single-post .entry-content a:hover { color: var(--cgf-accent); }
body.single-post .entry-content strong { color: var(--cgf-accent); }
body.single-post .entry-content ul, body.single-post .entry-content ol { padding-left: 24px; margin: 16px 0; }
body.single-post .entry-content li { margin-bottom: 8px; }
body.single-post .entry-content blockquote,
body.single-post .entry-content .cgf-summary {
  background: rgba(212, 162, 76, 0.08) !important;
  border-left: 4px solid var(--cgf-gold) !important;
  padding: 24px 28px !important;
  border-radius: 4px !important;
  margin: 32px 0 !important;
  font-style: normal !important;
}
body.single-post .cgf-summary p, body.single-post blockquote p { margin: 0; color: var(--cgf-ink); }
body.single-post .post-thumbnail img, body.single-post .cgf-hero-img {
  border-radius: 8px; margin-bottom: 20px; max-height: 500px; object-fit: cover;
}
body.single-post .post-navigation, body.single-post .nav-links,
body.single-post .navigation.post-navigation { display: none !important; }

/* Byline (injected by mu-plugin) */
.cgf-byline {
  display: flex; flex-wrap: wrap; gap: 20px; align-items: center;
  padding: 16px 0; margin: 8px 0 24px;
  border-top: 1px solid var(--cgf-border);
  border-bottom: 1px solid var(--cgf-border);
  font-family: 'Inter', sans-serif; font-size: 13.5px;
  color: var(--cgf-muted);
}
.cgf-byline-item { display: flex; align-items: center; gap: 6px; }
.cgf-byline-eyebrow {
  color: var(--cgf-gold-dark); font-weight: 600;
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
}
.cgf-byline-cat {
  padding: 4px 10px; background: var(--cgf-accent); color: var(--cgf-bg) !important;
  border-radius: 20px; font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; font-weight: 600; text-decoration: none;
}

/* À lire aussi block */
.cgf-related {
  max-width: 1200px; margin: 60px auto 40px;
  padding: 0 32px;
}
.cgf-related-head {
  display: flex; justify-content: space-between; align-items: baseline;
  border-top: 1px solid var(--cgf-border);
  padding-top: 32px; margin-bottom: 32px;
}
.cgf-related-eyebrow {
  font-family: 'Inter', sans-serif; font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cgf-gold-dark); font-weight: 600;
}
.cgf-related h2 {
  font-family: 'Fraunces', serif; font-size: 32px; font-style: italic;
  color: var(--cgf-accent); margin: 8px 0 0;
}
.cgf-related-all { color: var(--cgf-gold-dark); font-size: 13px; font-weight: 600; text-decoration: none; }
.cgf-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cgf-related-card {
  background: var(--cgf-white); border: 1px solid var(--cgf-border);
  border-radius: 8px; overflow: hidden;
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
  text-decoration: none;
}
.cgf-related-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(61,44,92,0.08);
  border-color: var(--cgf-gold);
}
.cgf-related-card img { width: 100%; height: 180px; object-fit: cover; display: block; }
.cgf-related-body { padding: 20px; }
.cgf-related-cat {
  font-family: 'Inter', sans-serif; font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--cgf-gold-dark); font-weight: 600;
  margin-bottom: 8px; display: block;
}
.cgf-related-title {
  font-family: 'Fraunces', serif; font-size: 18px; font-style: italic;
  color: var(--cgf-accent); font-weight: 500;
  line-height: 1.3; margin: 0 0 10px;
}
.cgf-related-excerpt { color: var(--cgf-muted); font-size: 14px; line-height: 1.5; margin: 0 0 12px; }
.cgf-related-cta { color: var(--cgf-gold-dark); font-weight: 600; font-size: 13px; }

@media (max-width: 900px) {
  .cgf-related-grid, .cgf-related-head { grid-template-columns: 1fr; }
  .cgf-related-head { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ============ FOOTER 4 COLONNES ============ */
body > footer.site-footer:first-of-type,
.ast-hfb-footer { display: none !important; }
body > footer.site-footer:last-of-type { display: block !important; }

.cgf-footer {
  background: var(--cgf-accent);
  color: var(--cgf-bg);
  padding: 80px 0 32px;
  margin-top: 80px;
}
.cgf-footer-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 32px;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 60px;
}
body footer.site-footer .cgf-footer * {
  color: var(--cgf-bg) !important;
  background: transparent !important;
}
.cgf-footer h4 {
  font-family: 'Inter', sans-serif;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--cgf-gold) !important; font-weight: 700;
  margin: 0 0 20px;
}
.cgf-footer-brand { font-family: 'Fraunces', serif; font-size: 24px; font-style: italic; margin: 0 0 12px; }
.cgf-footer-tagline { font-size: 14.5px; line-height: 1.6; color: rgba(248,245,238,0.75) !important; margin: 0 0 20px; }
.cgf-footer ul { list-style: none; padding: 0; margin: 0; }
.cgf-footer li { margin-bottom: 10px; }
.cgf-footer a {
  color: rgba(248,245,238,0.85) !important;
  text-decoration: none; font-size: 14px;
  transition: color 0.2s;
}
.cgf-footer a:hover { color: var(--cgf-gold) !important; }
.cgf-footer-bottom {
  max-width: 1200px; margin: 60px auto 0; padding: 24px 32px 0;
  border-top: 1px solid rgba(248,245,238,0.15);
  font-size: 12.5px; color: rgba(248,245,238,0.6) !important;
  text-align: center;
}

@media (max-width: 900px) {
  .cgf-footer-inner { grid-template-columns: 1fr; gap: 40px; }
}

/* ============ MISC ============ */
.entry-content img { max-width: 100%; height: auto; border-radius: 6px; }
.wp-block-post-featured-image img { border-radius: 8px; }

/* Force alignwide */
html body.page .entry-content, html body.home .entry-content { max-width: 1200px; margin: 0 auto; }

/* Anti default astra sidebar */
.ast-container { max-width: 1400px !important; }


/* Hide "Accueil" title on homepage */
body.home .entry-title,
body.home .ast-page-title,
body.page-id-21 .entry-header,
body.front-page .entry-title,
body.home .entry-header { display: none !important; }

/* Fix Astra search button */
.search-form input[type="submit"], .wp-block-search__button, .ast-search-menu-icon input[type="submit"] {
  background: var(--cgf-accent) !important;
  color: var(--cgf-bg) !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  padding: 10px 20px !important;
}

/* Remove Astra "Powered by" footer */
.ast-footer-copyright-section,
.site-primary-footer-wrap,
.ast-small-footer,
footer.site-footer:not(.cgf-footer-wrapper) {
  display: none !important;
}
body > footer.site-footer.cgf-footer-wrapper { display: block !important; }

/* Ensure custom logo shows well */
.custom-logo-link { display: flex; align-items: center; }


/* ============ SOMMAIRE (TOC sidebar) ============ */
body.single-post .entry-content { max-width: none; }
.cgf-toc {
    float: right;
    width: 260px;
    background: var(--cgf-white);
    border: 1px solid var(--cgf-border);
    padding: 22px 26px;
    margin: 0 0 24px 40px;
    border-radius: 8px;
    position: sticky;
    top: 20px;
    box-shadow: 0 4px 12px rgba(61,44,92,0.04);
}
.cgf-toc-title {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--cgf-gold-dark) !important;
    font-weight: 700 !important;
    margin: 0 0 14px !important;
}
.cgf-toc ol {
    list-style: decimal outside;
    padding-left: 22px;
    margin: 0;
    color: var(--cgf-muted);
}
.cgf-toc li {
    margin-bottom: 10px;
    font-size: 13.5px;
    line-height: 1.4;
}
.cgf-toc li::marker { color: var(--cgf-gold-dark); font-weight: 600; }
.cgf-toc a {
    color: var(--cgf-accent) !important;
    text-decoration: none !important;
    line-height: 1.35;
    transition: color 0.2s;
}
.cgf-toc a:hover { color: var(--cgf-gold-dark) !important; }

@media (max-width: 900px) {
    .cgf-toc {
        float: none;
        width: 100%;
        margin: 24px 0;
        position: static;
    }
}

/* Smooth scroll to anchor */
html { scroll-behavior: smooth; scroll-padding-top: 20px; }


/* Hide Astra default single post meta (By ... / date) */
body.single-post .entry-meta,
body.single-post .post-meta,
body.single-post header.entry-header .entry-meta,
body.single-post .ast-single-post-meta,
body.single-post .posted-by,
body.single-post .posted-on,
body.single-post .ast-author-name { display: none !important; }
