/*
Theme Name: Castelbrac Blog
Theme URI: https://www.castelbrac.com/
Author: Castelbrac
Author URI: https://www.castelbrac.com/
Description: Theme "Le Journal" pour le blog Castelbrac. Reprend fidelement l'identite visuelle du site principal (header, navigation, footer) afin qu'un visiteur ne remarque aucune rupture en passant du site principal au blog. Tous les liens du menu principal (sauf "Le Journal") pointent vers le site officiel, dont l'URL est centralisee dans functions.php (constante CASTELBRAC_MAIN_SITE_URL).
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: castelbrac-blog
*/

/* =========================================================
   0. VARIABLES — couleurs / typos releves sur les captures
   Modifiez uniquement ces valeurs pour ajuster la charte.
   ========================================================= */
:root{
  --cb-cream:        #efeae2;
  --cb-black:         #17181a;
  --cb-gold:          #c6a467;
  --cb-gold-dark:     #b3915a;
  --cb-dark-bg:        #17171a;
  --cb-dark-bg-2:      #1e1e22;
  --cb-off-white:     #f4f1ea;
  --cb-mauve:         #b7a6c6;
  --cb-line:          rgba(255,255,255,.14);

  --cb-font-serif:    'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --cb-font-sans:      'Jost', 'Montserrat', Helvetica, Arial, sans-serif;

  --cb-container:     1300px;

  /* Taille du logo : UN SEUL ENDROIT A MODIFIER si besoin */
  --cb-logo-h-header: 56px;
  --cb-logo-h-footer: 40px;
}

/* =========================================================
   1. RESET SOMMAIRE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--cb-font-sans);
  font-weight:300;
  color:#2b2926;
  background:#fff;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5,h6{
  font-family:var(--cb-font-serif);
  font-weight:500;
  letter-spacing:.03em;
  margin:0 0 .6em;
}
.container{ max-width:var(--cb-container); margin:0 auto; padding:0 32px; }
.screen-reader-text{
  position:absolute !important; clip:rect(1px,1px,1px,1px);
  width:1px; height:1px; overflow:hidden; word-wrap:normal !important;
}

/* =========================================================
   2. HEADER — barre superieure claire
   ========================================================= */
.cb-topbar{
  background:var(--cb-cream);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.cb-topbar .container{
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.cb-menu-toggle{
  display:flex; align-items:center; gap:10px;
  background:var(--cb-black); color:#fff;
  border:none; padding:11px 22px;
  font-family:var(--cb-font-sans); font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; cursor:pointer;
}
.cb-menu-toggle .bars{ display:flex; flex-direction:column; gap:4px; }
.cb-menu-toggle .bars span{ width:16px; height:1px; background:var(--cb-gold); display:block; }
.cb-menu-toggle .bars span:nth-child(2){ width:10px; }

.cb-gift-link{
  display:flex; align-items:center; gap:8px;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--cb-black);
}
.cb-gift-link svg{ width:16px; height:16px; fill:none; stroke:var(--cb-gold); stroke-width:1.4; }

/* =========================================================
   3. HERO HEADER — logo + reservation (sur image / fond fonce)
   ========================================================= */
.cb-hero-header{
  position:relative;
  background:linear-gradient(180deg,rgba(20,18,16,.55),rgba(20,18,16,.25));
  color:#fff;
}
.cb-hero-header.no-image{ background:var(--cb-black); }
.cb-hero-header .container{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px; gap:24px; flex-wrap:wrap;
}

/* --- LOGO : conteneur fige a la hauteur voulue, tout enfant (img, svg,
   texte) est mis a l'echelle DANS cette boite. C'est ce verrou de
   conteneur — et non plus seulement l'image — qui empeche tout
   debordement, quelle que soit la resolution du fichier fourni. */
.cb-logo{
  flex:0 0 auto;
  height:var(--cb-logo-h-header);
  display:flex;
  align-items:center;
  justify-content:center;
}
.cb-logo a{
  display:flex; align-items:center; justify-content:center;
  height:100%; max-width:220px; color:#fff;
}
.cb-logo img{
  height:100% !important;
  width:auto !important;
  max-width:220px !important;
  max-height:100% !important;
  display:block;
  object-fit:contain;
}
.cb-logo .cb-logo-mark{ height:60%; width:auto; display:block; fill:none; stroke:#fff; stroke-width:.6; margin:0 auto; }
.cb-logo .cb-wordmark{
  font-family:var(--cb-font-serif); font-size:20px; letter-spacing:.28em;
  text-transform:uppercase; margin:0; line-height:1;
}
.cb-logo .cb-baseline{
  font-family:var(--cb-font-sans); font-size:8px; letter-spacing:.3em;
  text-transform:uppercase; opacity:.75; margin-top:2px;
}
.cb-logo .cb-stars{ color:var(--cb-gold); font-size:9px; letter-spacing:.2em; margin-top:2px; }
.cb-logo .cb-textlogo{ display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; }
.cb-bundled-logo--header{ filter:brightness(0) invert(1); }
.cb-bundled-logo--footer{ filter:brightness(0) invert(1); opacity:.95; }

.cb-book-nav{ display:flex; align-items:center; gap:0; border:1px solid rgba(255,255,255,.6); }
.cb-book-btn{
  padding:14px 26px; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  background:var(--cb-off-white); color:var(--cb-black); border-right:1px solid rgba(0,0,0,.15);
  font-family:var(--cb-font-sans);
}
.cb-book-icons{ display:flex; }
.cb-book-icons a{
  width:52px; height:48px; display:flex; align-items:center; justify-content:center;
  border-right:1px solid rgba(255,255,255,.6);
}
.cb-book-icons a:last-child{ border-right:none; }
.cb-book-icons svg{ width:20px; height:20px; fill:none; stroke:#fff; stroke-width:1.3; }

/* =========================================================
   4. NAVIGATION PRINCIPALE (menu deroulant plein ecran)
   ========================================================= */
.cb-nav-overlay{
  position:fixed; inset:0; background:var(--cb-black);
  color:var(--cb-off-white);
  z-index:200; padding:90px 32px 40px;
  transform:translateY(-100%); transition:transform .35s ease;
  overflow-y:auto;
}
.cb-nav-overlay.is-open{ transform:translateY(0); }
.cb-nav-close{
  position:absolute; top:24px; right:32px; background:none; border:none;
  color:#fff; font-size:13px; letter-spacing:.2em; text-transform:uppercase; cursor:pointer;
}
.cb-primary-menu{
  max-width:var(--cb-container); margin:0 auto;
  columns:3; column-gap:60px;
}
.cb-primary-menu > li{ break-inside:avoid; margin-bottom:22px; }
.cb-primary-menu > li > a{
  font-family:var(--cb-font-serif); font-size:19px; letter-spacing:.05em;
  text-transform:uppercase; color:#fff; display:inline-block; padding:4px 0;
  border-bottom:1px solid transparent;
}
.cb-primary-menu > li > a:hover,
.cb-primary-menu > li.current-menu-item > a,
.cb-primary-menu > li.current_page_item > a{ color:var(--cb-gold); border-color:var(--cb-gold); }
.cb-primary-menu .sub-menu{ margin:8px 0 0 4px; }
.cb-primary-menu .sub-menu li{ margin-bottom:8px; }
.cb-primary-menu .sub-menu a{
  font-family:var(--cb-font-sans); font-size:12px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--cb-off-white); opacity:.75;
}
.cb-primary-menu .sub-menu a:hover{ opacity:1; color:var(--cb-gold); }
.cb-primary-menu li.cb-journal-item > a{ color:var(--cb-gold); }

/* =========================================================
   5. CONTENU — Journal / articles
   ========================================================= */
.cb-page-header{
  background:var(--cb-black); color:#fff; text-align:center;
  padding:70px 32px;
}
.cb-page-header h1{ color:#fff; font-size:34px; margin-bottom:.3em; }
.cb-page-header p{ opacity:.75; font-family:var(--cb-font-sans); font-size:13px; letter-spacing:.08em; }

.cb-content-wrap{ padding:64px 32px 90px; }
.cb-content-grid{
  max-width:var(--cb-container); margin:0 auto;
  display:grid; grid-template-columns:2fr 1fr; gap:64px;
}
@media (max-width:900px){ .cb-content-grid{ grid-template-columns:1fr; } }

.cb-post-list{ display:grid; gap:56px; }
.cb-post-card article{ display:grid; grid-template-columns:280px 1fr; gap:30px; }
@media (max-width:640px){ .cb-post-card article{ grid-template-columns:1fr; } }
.cb-post-card .cb-thumb{ overflow:hidden; }
.cb-post-card .cb-thumb img{ transition:transform .5s ease; }
.cb-post-card:hover .cb-thumb img{ transform:scale(1.05); }
.cb-post-card .cb-meta{
  font-family:var(--cb-font-sans); font-size:11px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--cb-gold-dark); margin-bottom:10px;
}
.cb-post-card h2{ font-size:24px; }
.cb-post-card h2 a:hover{ color:var(--cb-gold-dark); }
.cb-post-card .cb-excerpt{ color:#555; font-size:15px; }
.cb-post-card .cb-readmore{
  display:inline-block; margin-top:14px; font-size:11px; letter-spacing:.15em;
  text-transform:uppercase; border-bottom:1px solid var(--cb-black); padding-bottom:3px;
}

.cb-pagination{ margin-top:60px; display:flex; gap:14px; justify-content:center; font-family:var(--cb-font-sans); font-size:13px; }
.cb-pagination a,.cb-pagination span{ padding:8px 14px; border:1px solid #ddd; }
.cb-pagination .current{ background:var(--cb-black); color:#fff; border-color:var(--cb-black); }

/* single post */
.cb-single-header{ max-width:900px; margin:0 auto 30px; text-align:center; }
.cb-single-header .cb-meta{ font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--cb-gold-dark); margin-bottom:14px; }
.cb-single-header h1{ font-size:38px; }
.cb-single-thumb{ max-width:var(--cb-container); margin:0 auto 40px; }
.cb-entry-content{ max-width:760px; margin:0 auto; font-size:17px; color:#333; }
.cb-entry-content p{ margin:0 0 1.4em; }
.cb-entry-content h2,.cb-entry-content h3{ margin-top:1.6em; }
.cb-entry-content blockquote{
  border-left:2px solid var(--cb-gold); margin:2em 0; padding:.2em 0 .2em 24px;
  font-family:var(--cb-font-serif); font-style:italic; font-size:20px; color:#333;
}
.cb-entry-content img{ margin:1.6em 0; }
.cb-tags{ max-width:760px; margin:40px auto 0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.cb-tags a{ border:1px solid #ddd; padding:5px 12px; margin:0 6px 6px 0; display:inline-block; }

/* sidebar */
.cb-sidebar .widget{ margin-bottom:48px; }
.cb-sidebar .widget-title{
  font-family:var(--cb-font-sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  border-bottom:1px solid #ddd; padding-bottom:12px; margin-bottom:18px; color:var(--cb-black);
}
.cb-sidebar ul li{ margin-bottom:10px; font-size:14px; }
.cb-sidebar a:hover{ color:var(--cb-gold-dark); }

/* comments */
.cb-comments{ max-width:760px; margin:70px auto 0; }
.cb-comments-title{ font-size:22px; margin-bottom:30px; }
.comment-list{ margin:0 0 30px; }
.comment-list .comment{ border-bottom:1px solid #eee; padding:20px 0; }
.comment-list .comment-author{ font-weight:600; font-size:14px; }
.comment-list .comment-meta{ font-size:11px; color:#999; margin-bottom:8px; }
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%; border:1px solid #ddd; padding:12px 14px; font-family:var(--cb-font-sans); margin-bottom:16px;
}
.comment-form textarea{ min-height:140px; }
.cb-btn{
  display:inline-block; background:var(--cb-black); color:#fff; border:none;
  padding:13px 30px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; cursor:pointer;
}
.cb-btn:hover{ background:var(--cb-gold-dark); }

/* 404 / search */
.cb-error-page{ text-align:center; padding:110px 32px; }
.cb-error-page h1{ font-size:80px; color:var(--cb-gold-dark); }
.search-form{ display:flex; gap:0; max-width:520px; margin:0 auto; }
.search-form input[type=search]{ flex:1; border:1px solid #ddd; padding:12px 16px; font-family:var(--cb-font-sans); }
.search-form button{ background:var(--cb-black); color:#fff; border:none; padding:0 22px; cursor:pointer; }

/* =========================================================
   6. FOOTER — identique au site principal
   ========================================================= */
.cb-footer{
  background:
    radial-gradient(circle at 50% 0, var(--cb-dark-bg-2) 0, var(--cb-dark-bg) 70%);
  color:var(--cb-off-white);
  position:relative;
}
.cb-footer-main{
  padding:70px 32px 50px;
  display:grid; grid-template-columns:1fr auto 1fr; gap:30px; align-items:center;
}
@media (max-width:900px){ .cb-footer-main{ grid-template-columns:1fr; text-align:center; } }
.cb-footer-contact{ font-size:13px; line-height:2; letter-spacing:.03em; }
.cb-footer-contact a{ opacity:.9; }

.cb-footer-logo{
  height:var(--cb-logo-h-footer);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto;
}
.cb-footer-logo a{ display:flex; align-items:center; justify-content:center; height:100%; max-width:180px; }
.cb-footer-logo img{
  height:100% !important;
  width:auto !important;
  max-width:180px !important;
  max-height:100% !important;
  display:block;
  object-fit:contain;
  filter:brightness(0) invert(1); opacity:.92;
}
.cb-footer-logo .cb-wordmark{ color:#fff; font-size:16px; letter-spacing:.24em; }
.cb-footer-logo .cb-baseline{ color:#fff; opacity:.6; font-size:7px; letter-spacing:.28em; }
.cb-footer-logo .cb-stars{ color:var(--cb-gold); font-size:8px; }
.cb-footer-social{ display:flex; gap:12px; justify-content:flex-end; }
@media (max-width:900px){ .cb-footer-social{ justify-content:center; } }
.cb-footer-social a{
  width:38px; height:38px; border-radius:50%; background:#000;
  display:flex; align-items:center; justify-content:center;
}
.cb-footer-social svg{ width:16px; height:16px; fill:#fff; }

.cb-newsletter{ text-align:center; padding:20px 32px 50px; border-top:1px solid var(--cb-line); }
.cb-newsletter h4{ color:#fff; font-size:14px; letter-spacing:.25em; margin-bottom:20px; }
.cb-newsletter form{ display:flex; justify-content:center; gap:0; max-width:520px; margin:0 auto; flex-wrap:wrap; }
.cb-newsletter input[type=email]{ flex:1; min-width:220px; border:none; padding:14px 18px; font-family:var(--cb-font-sans); }
.cb-newsletter button{
  background:var(--cb-gold); color:#fff; border:none; padding:14px 30px;
  font-size:12px; letter-spacing:.15em; text-transform:uppercase; cursor:pointer;
}
.cb-newsletter button:hover{ background:var(--cb-gold-dark); }

.cb-footer-codes{
  text-align:center; font-size:11px; letter-spacing:.08em; color:var(--cb-mauve);
  padding:24px 32px; border-top:1px solid var(--cb-line);
}
.cb-footer-codes span{ margin:0 10px; }

.cb-footer-legal{
  text-align:center; font-size:11px; letter-spacing:.06em; color:var(--cb-mauve);
  padding:20px 32px 40px;
}
.cb-footer-legal a{ margin:0 8px; }
.cb-footer-legal a:hover{ color:#fff; }

/* =========================================================
   7. RESPONSIVE
   ========================================================= */
@media (max-width:640px){
  .cb-topbar .container{ height:56px; }
  .cb-hero-header .container{ flex-direction:column; padding:18px 0; }
  .cb-book-nav{ flex-wrap:wrap; }
  .cb-primary-menu{ columns:1; }
  .cb-content-grid{ gap:40px; }
}
