/*
Theme Name: Générer du trafic
Description: Thème enfant GeneratePress de genererdutrafic.com, trouver des clients par internet, métier par métier. Concept « Le répertoire des métiers » : Fraunces et Inter hébergées, crème #F6F3EC et orange #C2410C, vue claire (palette GeneratePress) et vue sombre (préférence du visiteur, ou bouton jour/nuit mémorisé). Accueil en motifs de blocs natifs : ouverture et recherche « Je suis… », métiers par famille, bandeau « Une fiche métier, c'est trois réponses », leviers un par un, derniers guides. Peau des blocs Fox Blocks et Fox Affiliate. Présentation seulement, socle Fox embarqué (fox-socle/).
Author: Fox
Template: generatepress
Version: 1.0.0
Fox Socle: 1.3.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: genererdutrafic-theme
*/

/*
 * Site styles only. Day colours come from the GeneratePress palette
 * (inc/site.php): var(--contrast), var(--accent), var(--base)... The night
 * view redefines the same variables below, on :root: chosen with the header
 * button (data-theme), else the visitor's system preference.
 *
 * One theme colour group outside the palette: the ink band (--gt-band,
 * --gt-band-ink, --gt-band-soft, --gt-band-hi).
 */
:root {
	--gt-serif: "Fraunces", Georgia, serif;
	--gt-sans: "Inter", system-ui, sans-serif;
	--gt-r: 14px;
	--gt-band: #1B1A17;
	--gt-band-ink: #F6F3EC;
	--gt-band-soft: #CFC8BA;
	--gt-band-hi: #FB923C;
	--gt-day: inline-block;
	--gt-night: none;
	color-scheme: light;
}

/*
 * The night view, twice with the same variables: chosen with the header
 * button (<html data-theme="dark">, remembered), or the system preference
 * when the visitor made no choice (data-theme absent).
 */
:root[data-theme="dark"] {
	--contrast: #F3EEE6;
	--contrast-2: #BDB5A8;
	--contrast-3: #3A352E;
	--base: #26221C;
	--base-2: #15130F;
	--base-3: #1E1B17;
	--accent: #FB923C;
	--on-accent: #1B1A17;
	--accent-text: #FDBA74;
	--gt-band: #0B0A08;
	--gt-band-ink: #F3EEE6;
	--gt-band-soft: #CFC8BA;
	--gt-band-hi: #FB923C;
	--gt-day: none;
	--gt-night: inline-block;
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--contrast: #F3EEE6;
		--contrast-2: #BDB5A8;
		--contrast-3: #3A352E;
		--base: #26221C;
		--base-2: #15130F;
		--base-3: #1E1B17;
		--accent: #FB923C;
		--on-accent: #1B1A17;
		--accent-text: #FDBA74;
		--gt-band: #0B0A08;
		--gt-band-ink: #F3EEE6;
		--gt-band-soft: #CFC8BA;
		--gt-band-hi: #FB923C;
		--gt-day: none;
		--gt-night: inline-block;
		color-scheme: dark;
	}
}

body {
	--fox-shadow: none;
	background: var(--base-2);
	color: var(--contrast);
	font-family: var(--gt-sans);
	font-size: 17px;
	line-height: 1.6;
	overflow-x: clip;
}
h1, h2, h3, h4, .page-title, .entry-title {
	color: var(--contrast);
	font-family: var(--gt-serif);
	font-weight: 800;
	letter-spacing: -.015em;
	line-height: 1.08;
}
h1, .entry-title, .page-title { font-size: clamp(36px, 4.6vw, 60px); }
h2 { font-size: clamp(28px, 3vw, 36px); }
h3 { font-size: 22px; font-weight: 600; line-height: 1.2; }
h4 { font-size: 19px; font-weight: 600; }
a { color: var(--accent-text); }
a:hover { color: var(--contrast); }
.entry-content a:not([class]) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
}
.entry-content > p, .entry-content > ul, .entry-content > ol { max-width: 70ch; }
::selection { background: var(--accent); color: var(--on-accent); }

/* ---------------------------------------------------------------- header */

.site-header { background: var(--base-2); border-bottom: 1px solid var(--contrast-3); }
.inside-header { padding-top: 14px; padding-bottom: 14px; }
.main-title a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--contrast);
	text-decoration: none;
}
.gt-logo, .main-title img, .site-logo img {
	flex: none;
	width: auto;
	height: 34px;
	vertical-align: middle;
}
.main-title, .gt-name {
	font-family: var(--gt-serif);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.01em;
	line-height: 1;
}
/* One logo per view: day image or file, night image or file. */
.gt-logo--day, .gt-name--day { display: var(--gt-day); }
.gt-logo--night { display: var(--gt-night); }
/* The day/night button: 44 px, the icon of the view it switches to. */
.gt-mode-item { display: flex; align-items: center; }
.gt-mode {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	margin: 0 0 0 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--base);
	color: var(--contrast);
	cursor: pointer;
}
/* Hidden until mode.js runs, its room kept: no layout shift when it shows. */
.gt-mode[hidden] { display: grid; visibility: hidden; }
.gt-mode:hover { background: var(--accent); color: var(--on-accent); }
.gt-mode__moon { display: var(--gt-day); }
.gt-mode__sun { display: var(--gt-night); }
.main-navigation .main-nav > ul > li > a { font-size: 15px; font-weight: 500; }
@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li > a { padding: 0 12px; line-height: 44px; }
	.main-navigation .main-nav > ul > li > a:hover,
	.main-navigation .main-nav > ul > li[class*="current-menu-"] > a { text-decoration: underline; text-underline-offset: .3em; }
}

/* ------------------------------------------------------- shared pieces */

.gt-kicker, .gt-label {
	margin: 0 0 16px;
	color: var(--accent-text);
	font-family: var(--gt-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.3;
	text-transform: uppercase;
}
.gt-kicker a { color: inherit; text-decoration: none; }
.gt-kicker a:hover { text-decoration: underline; }
.entry-content .gt-sec-title { margin: 0 0 24px; font-size: clamp(28px, 3vw, 32px); }
.gt-lede { margin: 0; color: var(--contrast-2); font-size: 20px; line-height: 1.55; }
.gt-more { margin: 0; font-weight: 600; }
.entry-content .gt-more a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--accent-text); text-decoration: none; }
.entry-content .gt-more a:hover { text-decoration: underline; }
.wp-block-button__link,
.wp-block-search__button,
.fxb-smartlink--button,
.fox-showcase__btn,
.fox-hl__btn,
.fct-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 24px;
	border: 2px solid var(--contrast);
	border-radius: 10px;
	background: var(--contrast);
	color: var(--base-2);
	font-family: var(--gt-sans);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
}
.entry-content .wp-block-button__link,
.entry-content .fxb-smartlink--button,
.entry-content .fox-product-link.fox-showcase__btn,
.entry-content .fox-product-link.fox-hl__btn,
.entry-content .fox-product-link.fct-btn { color: var(--base-2); text-decoration: none; }
.entry-content .wp-block-button__link:hover,
.entry-content .wp-block-search__button:hover,
.entry-content .fxb-smartlink--button:hover,
.entry-content .fox-product-link.fox-showcase__btn:hover,
.entry-content .fox-product-link.fox-hl__btn:hover,
.entry-content .fox-product-link.fct-btn:hover {
	border-color: var(--accent);
	background: var(--accent);
	color: var(--on-accent);
}
.entry-content .is-style-outline .wp-block-button__link {
	border-color: var(--contrast);
	background: transparent;
	color: var(--contrast);
}

/* -------------------------------------------------------------- home */

[class*="gt-"] > .wp-block-group__inner-container { max-width: none; margin: 0; padding: 0; }
.gt-home .entry-content > * + * { margin-top: clamp(48px, 6vw, 64px); }
.gt-home .inside-article { padding-top: 8px; }

/* Opening: kicker, the only H1, lede, the core search « Je suis… ». */
.gt-hero { padding: clamp(32px, 6vw, 72px) 0 0; }
.entry-content .gt-hero__title { max-width: 18ch; margin: 0; font-size: clamp(40px, 5.4vw, 64px); line-height: 1.05; }
.entry-content .gt-hero__lede { max-width: 680px; margin-top: 24px; }
.entry-content .gt-hero__search { max-width: 720px; margin-top: 36px; }
.gt-hero__search .wp-block-search__inside-wrapper { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; border: 0; }
.gt-hero__search .wp-block-search__input {
	flex: 1 1 360px;
	min-width: 0;
	min-height: 56px;
	padding: 0 20px;
	border: 2px solid var(--contrast);
	border-radius: 10px;
	background: var(--base-3);
	color: var(--contrast);
	font-size: 17px;
}
.gt-hero__search .wp-block-search__button { min-height: 56px; margin: 0; padding: 0 28px; font-size: 17px; }

/* The families: cards with their jobs as pills. */
.gt-familles__grid > .wp-block-group__inner-container,
.gt-familles__grid:not(:has(> .wp-block-group__inner-container)),
.gt-leviers__grid > .wp-block-group__inner-container,
.gt-leviers__grid:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: 20px;
}
.gt-leviers__grid > .wp-block-group__inner-container,
.gt-leviers__grid:not(:has(> .wp-block-group__inner-container)) {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: 16px;
}
.gt-famille,
.gt-famille > .wp-block-group__inner-container {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 14px;
}
.gt-famille {
	padding: 24px;
	border: 1px solid var(--contrast-3);
	border-radius: var(--gt-r);
	background: var(--base-3);
}
.entry-content .gt-famille__title { margin: 0; font-family: var(--gt-sans); font-size: 19px; font-weight: 600; }
.entry-content .gt-famille__title a { color: var(--contrast); text-decoration: none; }
.entry-content .gt-famille__title a:hover { color: var(--accent-text); text-decoration: underline; }
.entry-content .gt-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.entry-content .gt-pills > li {
	margin: 0;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--base);
	color: var(--contrast);
	font-size: 14px;
	line-height: 1.4;
}
.entry-content .gt-pills a { color: inherit; text-decoration: none; }
.entry-content .gt-pills > li:has(a):hover { background: var(--accent); color: var(--on-accent); }
.gt-famille .gt-more { margin-top: auto; font-size: 14px; }

/* The ink band: a job sheet in three answers, numbered by CSS. */
.gt-band {
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
	padding: 64px max(24px, calc(50vw - 560px));
	background: var(--gt-band);
	color: var(--gt-band-ink);
}
.gt-fiche > .wp-block-group__inner-container,
.gt-fiche:not(:has(> .wp-block-group__inner-container)) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 40px;
}
.entry-content .gt-fiche__title { margin: 0 0 16px; color: var(--gt-band-ink); font-size: clamp(30px, 3.2vw, 36px); line-height: 1.15; }
.entry-content .gt-fiche__lede { margin: 0; color: var(--gt-band-soft); font-size: 17px; line-height: 1.6; }
.entry-content .gt-steps {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gt-n;
}
.entry-content .gt-steps > li {
	position: relative;
	margin: 0;
	padding-left: 40px;
	font-size: 17px;
	line-height: 1.5;
	counter-increment: gt-n;
}
.gt-steps > li::before {
	content: counter(gt-n);
	position: absolute;
	top: -2px;
	left: 0;
	color: var(--gt-band-hi);
	font-family: var(--gt-serif);
	font-size: 32px;
	line-height: 1;
}
.gt-steps strong { color: var(--gt-band-ink); }

/* The levers: one card each, clickable as a whole when linked. */
.gt-leviers__head > .wp-block-group__inner-container,
.gt-leviers__head:not(:has(> .wp-block-group__inner-container)) {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 24px;
}
.gt-leviers__head .gt-sec-title { margin-bottom: 0; }
.gt-levier {
	position: relative;
	padding: 18px 20px;
	border: 1px solid var(--contrast-3);
	border-radius: 12px;
	background: var(--base-3);
}
.gt-levier:has(a):hover { border-color: var(--accent); }
.entry-content .gt-levier__name { margin: 0 0 6px; font-size: 17px; font-weight: 600; line-height: 1.3; }
.entry-content .gt-levier__name a { color: var(--contrast); text-decoration: none; }
.gt-levier__name a::after { content: ""; position: absolute; inset: 0; border-radius: 12px; }
.entry-content .gt-levier__hint { margin: 0; color: var(--contrast-2); font-size: 14px; line-height: 1.4; }

/* The latest guides: the query loop, three cards. */
.entry-content .gt-guides__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gt-guides__list > li { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.entry-content .gt-guides__image { margin: 0; overflow: hidden; border-radius: 12px; background: var(--base); }
.gt-guides__image img { width: 100%; height: 100%; object-fit: cover; }
.entry-content .gt-guides__kind {
	margin: 0;
	color: var(--accent-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.entry-content .gt-guides__kind a { color: inherit; text-decoration: none; }
.entry-content .gt-guides__title { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.25; }
.entry-content .gt-guides__title a { color: var(--contrast); text-decoration: none; }
.entry-content .gt-guides__title a:hover { color: var(--accent-text); text-decoration: underline; }

/* ------------------------------------------------- posts and archives */

.gt-kicker + .entry-title { margin-top: 0; }
.page-header {
	margin-bottom: 40px;
	padding: clamp(24px, 4vw, 40px);
	border-radius: var(--gt-r);
	background: var(--base);
}
.page-header .page-title { margin: 0; }
.taxonomy-description { max-width: 62ch; margin-top: 16px; color: var(--contrast-2); }
.taxonomy-description p:last-child { margin-bottom: 0; }
.blog .site-main > article,
.archive .site-main > article,
.search .site-main > article { margin-bottom: 20px; }
.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	padding: clamp(20px, 3vw, 28px);
	border: 1px solid var(--contrast-3);
	border-radius: var(--gt-r);
	background: var(--base-3);
}
.blog .entry-title, .archive .entry-title, .search .entry-title { font-size: clamp(22px, 2.4vw, 26px); font-weight: 600; }
.entry-title a { color: var(--contrast); text-decoration: none; }
.entry-title a:hover { color: var(--accent-text); text-decoration: underline; }
.entry-meta, .entry-meta a { color: var(--contrast-2); font-size: 14px; }
.entry-meta a:hover { color: var(--contrast); }
.post-image img, .featured-image img { border-radius: 12px; }
.blog .post-image img, .archive .post-image img, .search .post-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.entry-content blockquote {
	margin: 2em 0;
	padding: 20px 24px;
	border: 0;
	border-left: 4px solid var(--accent);
	border-radius: 0 12px 12px 0;
	background: var(--base);
	font-family: var(--gt-serif);
	font-size: 21px;
	font-style: normal;
}
.entry-content hr { border: 0; border-top: 1px solid var(--contrast-3); }
.entry-content table, .entry-content th, .entry-content td { border-color: var(--contrast-3); }
.entry-content thead th { background: var(--base); }
button, input[type="submit"], input[type="button"] { min-height: 48px; border-radius: 10px; font-weight: 600; }
input[type="text"], input[type="email"], input[type="search"], input[type="url"], textarea, select { min-height: 44px; border-radius: 10px; }

/* ------------------------------------------------------------ footer */

.site-footer, .site-info { background: var(--base-2); color: var(--contrast-2); }
.site-info { border-top: 1px solid var(--contrast-3); font-size: 14px; }
.site-info a { color: var(--contrast-2); }
.site-info .inside-site-info { padding-top: 28px; padding-bottom: 28px; }
.site-info .copyright-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	width: 100%;
	text-align: left;
}
.gt-foot-menu { display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; padding: 0; list-style: none; }
.gt-foot-menu a { display: inline-flex; align-items: center; min-height: 44px; color: var(--contrast-2); }
.gt-foot-menu a:hover { color: var(--accent-text); text-decoration: underline; }

/* ---------------------------------------------------- Fox Blocks skin */

.entry-content .fxb-key-points-block,
.entry-content .fxb-verdict-box {
	margin: 2em 0;
	padding: clamp(22px, 4vw, 32px);
	border: 1px solid var(--contrast-3);
	border-radius: var(--gt-r);
	background: var(--base-3);
}
.entry-content .fxb-verdict-box { border: 0; background: var(--gt-band); color: var(--gt-band-ink); }
.entry-content .fxb-verdict-box .fxb-verdict-box__title, .entry-content .fxb-verdict-box p { color: inherit; }
.fxb-key-points__heading,
.entry-content .fxb-expert-tip__title {
	margin: 0 0 10px;
	color: var(--accent-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.fxb-key-points__item { border: 0; border-radius: 10px; background: var(--base); }
.entry-content .fxb-key-points__number { background: transparent; color: var(--accent-text); font-family: var(--gt-serif); }
.entry-content .fxb-expert-tip {
	margin: 2em 0;
	padding: 20px 24px;
	border: 0;
	border-left: 4px solid var(--accent);
	border-radius: 0 12px 12px 0;
	background: var(--base);
}
.entry-content .fxb-expert-tip::before { background: var(--accent); }
.fxb-expert-tip__icon { color: var(--accent-text); }
.fxb-expert-tip__content p { margin: 0; }
.entry-content .fxb-verdict-box .fxb-badge {
	display: inline-block;
	padding: 6px 12px;
	border: 0;
	border-radius: 999px;
	background: var(--gt-band-hi);
	color: var(--gt-band);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.fxb-verdict-box__title { margin: 12px 0 8px; font-size: clamp(24px, 2.8vw, 32px); }
.entry-content .fxb-pros-cons { gap: 16px; margin: 2em 0; }
.entry-content .fxb-pros-cons__column,
.entry-content .fxb-scores {
	padding: 20px 22px;
	border: 1px solid var(--contrast-3);
	border-radius: var(--gt-r);
	background: var(--base-3);
}
.fxb-pros-cons__heading { margin: 0 0 10px; font-size: 19px; }
.entry-content .fxb-scores [class*="__track"],
.entry-content .fxb-scores [class*="__bar-bg"] { height: 6px; border-radius: 3px; background: var(--contrast-3); }
.entry-content .fxb-scores [class*="__fill"] { height: 6px; border-radius: 3px; background: var(--accent); }
.entry-content .fxb-ctable,
.entry-content .fct-wrap { margin: 2em 0; }
.entry-content .fxb-ctable__table,
.entry-content .fct-table {
	overflow: hidden;
	border: 0;
	border-radius: var(--gt-r);
	background: var(--base-3);
	box-shadow: 0 0 0 1px var(--contrast-3);
}
.entry-content .fxb-ctable__table th,
.entry-content .fxb-ctable__table td,
.entry-content .fct-table th,
.entry-content .fct-table td {
	border: 0;
	border-bottom: 1px solid var(--contrast-3);
	background: transparent;
	color: var(--contrast);
}
.entry-content .fxb-ctable__table thead th,
.entry-content .fct-table thead th { background: var(--base); }
.entry-content .fxb-faq__item {
	border: 0;
	border-bottom: 1px solid var(--contrast-3);
	border-radius: 0;
	background: transparent;
}
.entry-content .fxb-faq__question-text { font-family: var(--gt-serif); font-size: 19px; font-weight: 600; }
.fxb-faq__icon { color: var(--accent-text); }
.entry-content .fxb-link-cards .fxb-lcard,
.entry-content .fox-showcase,
.entry-content .fox-hl__item,
.entry-content .fct-card {
	border: 0;
	border-radius: var(--gt-r);
	background: var(--base-3);
	box-shadow: 0 0 0 1px var(--contrast-3);
	color: var(--contrast);
}
.fxb-lcard__title { font-family: var(--gt-serif); font-weight: 600; }
.fxb-lcard__excerpt { color: var(--contrast-2); }
.entry-content .fxb-lcard__cta { color: var(--accent-text); font-weight: 600; }
.entry-content .fxb-smartlink--link,
.entry-content a.fxb-smartlink--inline {
	color: var(--accent-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
}
.fxb-smartlink--pending { color: inherit; text-decoration: none; }
.entry-content .fxb-smartlink--button.fxb-smartlink--pending {
	border-style: dashed;
	border-color: var(--contrast-2);
	background: transparent;
	color: var(--contrast-2);
}
.entry-content .fox-showcase__title a,
.entry-content .fox-hl__product-title a,
.entry-content .fct-card__title a { color: var(--contrast); font-weight: 600; }
.entry-content .fox-sticky-bar { background: var(--base-3); box-shadow: 0 -1px 0 var(--contrast-3); }

/* ------------------------------------------------------------ mobile */

@media (max-width: 768px) {
	/* Logo, day/night button and menu toggle on one line at 375 px. */
	.gt-logo, .main-title img, .site-logo img { height: 28px; }
	.main-title, .gt-name { font-size: 19px; }
	.gt-mode { margin-left: 0; }
	.inside-header { padding-right: 16px; padding-left: 16px; }
	.gt-lede { font-size: 18px; }
	.gt-hero__search .wp-block-search__button { flex: 1 1 100%; }
	.gt-band { padding-top: 48px; padding-bottom: 48px; }
}
