/* JCT Accueil : en-tête, pied de page et habillage commun (accueil + pages, articles, catégories). */

/* ---------- Palette : le thème actuel passe au vert JAMMIN’ ---------- */
body.jct-shell {
	--wp--preset--color--primary: #0b7a48;
	--wp--preset--color--secondary: #0a3322;
	--wp--preset--color--button: #0b7a48;
	--wp--preset--color--buttontext: #ffffff;
	--wp--preset--color--canvas: #f4f9f5;
	--wp--preset--color--foreground: #1f2937;
	font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	overflow-x: clip;
}
body.jct-shell main :is(h1, h2, h3, h4, h5, h6) { font-family: 'Source Serif 4', Georgia, serif; }
body.jct-shell main a:not(.wp-block-button__link):not(.wp-element-button) { color: #0b7a48; }
body.jct-shell main a:not(.wp-block-button__link):hover { color: #065232; }
body.jct-shell .wp-block-button__link:not(.has-background) { background: #0b7a48; color: #fff; border-radius: 8px; }
body.jct-shell .wp-block-button__link:not(.has-background):hover { background: #065232; color: #fff; }
/* le bandeau JAMMIN’ remplace le titre du thème (un seul H1 par page) */
body.jct-shell main .wp-block-post-title,
body.jct-shell main .wp-block-query-title { display: none; }

/* ---------- Base de l'en-tête et du pied de page ---------- */
.jct-topbar, .jct-hd, .jct-ft, .jct-banner { font-family: 'IBM Plex Sans', sans-serif; -webkit-font-smoothing: antialiased; }
.jct-topbar *, .jct-hd *, .jct-ft *, .jct-banner * { box-sizing: border-box; }
.jct-wrap { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 16px; }
@media (min-width: 640px) { .jct-wrap { padding: 0 24px; } }
@media (min-width: 1024px) { .jct-wrap { padding: 0 32px; } }
.jct-ico { flex: 0 0 auto; display: inline-block; vertical-align: -2px; }

/* ---------- Liseré tricolore + barre de contact ---------- */
.jct-tribar { height: 4px; background: linear-gradient(90deg, #089858 0 34%, #ffc20e 34% 67%, #e63b12 67% 100%); }
.jct-topbar { background: #0a3322; color: #d1d5db; font-size: 12px; line-height: 1.5; border-bottom: 1px solid rgba(255, 255, 255, .1); padding: 8px 0; }
.jct-topbar-in { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 8px; }
.jct-tb-left { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; }
.jct-tb-i { display: inline-flex; align-items: center; gap: 6px; color: #d1d5db; text-decoration: none; transition: color .2s; }
a.jct-tb-i:hover { color: #fff; }
.jct-tb-i .jct-ico { color: #ffc20e; }
.jct-lang { display: flex; align-items: center; gap: 6px; }
.jct-lang-label { font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #9ca3af; margin-right: 6px; }
.jct-lang button { appearance: none; border: 0; background: transparent; color: #d1d5db; font: inherit; font-size: 11px; font-weight: 500; line-height: 1.4; padding: 2px 8px; border-radius: 4px; cursor: pointer; }
.jct-lang button:hover { background: #0f4a31; }
.jct-lang button.is-on { background: #ffc20e; color: #0a3322; font-weight: 700; }
@media (min-width: 768px) { .jct-topbar-in { flex-direction: row; } .jct-tb-left { justify-content: flex-start; } }

/* ---------- En-tête collant ---------- */
.jct-hd { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-bottom: 1px solid #f3f4f6; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.admin-bar .jct-hd { top: 32px; }
@media (max-width: 782px) { .admin-bar .jct-hd { top: 46px; } }
.jct-hd-in { display: flex; align-items: center; justify-content: space-between; height: 80px; gap: 24px; }
.jct-logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.jct-logo img { display: block; height: 40px; width: auto; max-width: none; }
@media (min-width: 640px) { .jct-logo img { height: 48px; } }
.jct-nav { display: none; align-items: center; gap: 28px; font-size: 14px; font-weight: 500; }
.jct-nav a { color: #374151; text-decoration: none; padding: 8px 0; border-bottom: 2px solid transparent; line-height: 1.4; transition: color .2s, border-color .2s; }
.jct-nav a:hover, .jct-nav a[aria-current="page"] { color: #0b7a48; border-bottom-color: #0b7a48; }
.jct-cta { display: none; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; border-radius: 8px; background: #0b7a48; color: #fff !important; font-size: 14px; font-weight: 600; line-height: 1.4; text-decoration: none; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); transition: background .2s; }
.jct-cta:hover { background: #065232; }
.jct-cta .jct-ico { color: #ffc20e; }
.jct-burger { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #374151; cursor: pointer; }
.jct-burger:hover { background: #f3f4f6; }
.jct-mm { display: none; background: #fff; border-bottom: 1px solid #e5e7eb; padding: 8px 16px 24px; }
.jct-mm:not(.hidden) { display: block; }
.jct-mm a { display: block; padding: 10px 0; border-bottom: 1px solid #f3f4f6; color: #374151; font-size: 16px; font-weight: 500; text-decoration: none; }
.jct-mm a[aria-current="page"], .jct-mm a:hover { color: #0b7a48; }
.jct-mm .jct-mm-cta { margin-top: 16px; padding: 12px; border: 0; border-radius: 8px; background: #0b7a48; color: #fff; text-align: center; font-weight: 600; }
.jct-mm .jct-mm-cta:hover { color: #fff; background: #065232; }
@media (min-width: 1024px) {
	.jct-nav { display: flex; }
	.jct-cta { display: inline-flex; }
	.jct-burger { display: none; }
	.jct-mm, .jct-mm:not(.hidden) { display: none; }
}

/* ---------- Bandeau de titre des pages intérieures ---------- */
.jct-banner { background: linear-gradient(135deg, #0a3322 0%, #0f4a31 55%, #0b7a48 100%); color: #fff; padding: 48px 0 52px; }
.jct-banner-kick { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 14px; color: #ffc20e; font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.jct-banner-kick::before { content: ""; width: 25px; height: 2px; background: currentColor; }
.jct-banner h1 { margin: 0; max-width: 880px; color: #fff; font-family: 'IBM Plex Sans', sans-serif; font-size: clamp(28px, 4vw, 44px); font-weight: 700; line-height: 1.12; letter-spacing: -.03em; }
@media (min-width: 640px) { .jct-banner { padding: 64px 0 68px; } }

/* ---------- Pied de page ---------- */
.jct-ft { background: #0a3322; color: #fff; padding: 48px 0; border-top: 1px solid rgba(8, 152, 88, .3); font-size: 12px; line-height: 1.6; }
.jct-ft-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 768px) { .jct-ft-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.jct-ft p { margin: 0 0 16px; color: #d1d5db; }
.jct-ft .jct-ft-copy { margin: 0; color: #9ca3af; }
.jct-ft-logo { display: inline-block; margin-bottom: 16px; padding: 12px 16px; border-radius: 12px; background: #fff; }
.jct-ft-logo img { display: block; height: 40px; width: auto; max-width: none; }
.jct-ft .jct-ft-t { margin: 0 0 16px; color: #ffc20e; font-family: 'IBM Plex Sans', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; line-height: 1.4; }
.jct-ft ul { list-style: none; margin: 0; padding: 0; }
.jct-ft li { margin: 0 0 8px; }
.jct-ft a { color: #d1d5db; text-decoration: none; transition: color .2s; }
.jct-ft a:hover { color: #fff; }

/* ---------- Formulaire Contact Form 7 ---------- */
.wpcf7 form p { margin: 0 0 1rem; }
.wpcf7 label { display: block; font-size: .8125rem; font-weight: 600; color: #374151; }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: .25rem; }
.wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=file]), .wpcf7 textarea, .wpcf7 select { width: 100%; box-sizing: border-box; padding: .625rem 1rem; border: 1px solid #d1d5db; border-radius: .5rem; background: #fff; font: inherit; font-size: .875rem; color: #1f2937; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { outline: 2px solid #0b7a48; outline-offset: 1px; border-color: transparent; }
.wpcf7 input[type=submit] { width: 100%; min-height: 48px; padding: .875rem 1.5rem; border: 0; border-radius: .5rem; background: #0b7a48; color: #fff; font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; transition: background .2s; }
.wpcf7 input[type=submit]:hover { background: #065232; }
.wpcf7-not-valid-tip { display: block; margin-top: .25rem; font-size: .75rem; color: #b42318; }
.wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: .75rem 1rem; border-radius: .5rem; border: 1px solid #0b7a48; font-size: .875rem; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: #b42318; }
.wpcf7-spinner { display: none; }

@media (prefers-reduced-motion: reduce) { .jct-nav a, .jct-cta, .jct-tb-i, .jct-ft a { transition: none; } }
