/*
Theme Name: go fenêtres
Description: Thème enfant GeneratePress de go-fenetres.net, guide indépendant d’entretien, de réglage et de dépannage des fenêtres. Maquette « Le plan coté » (v2) : papier millimétré en haut de l’accueil et sur l’en-tête des articles, encre, jaune mètre ruban en aplat, Archivo condensé et JetBrains Mono hébergées. Socle Fox embarqué (fox-socle/). Présentation seulement.
Author: Fox
Template: generatepress
Version: 1.0.0
Fox Socle: 1.1.1
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: go-fenetres-theme
*/

/*
 * Colours: the GeneratePress palette of inc/site.php, through its variables.
 * --contrast ink, --contrast-2 ink 2, --contrast-3 grid line, --base pale
 * yellow, --base-2 paper, --base-3 white, --accent tape yellow (a fill under
 * ink text, never a text colour). The dark theme redefines them below.
 * Drawings sit on a white sheet in both themes (--gf-sheet*).
 * Width axis: font-stretch drives Archivo's wdth axis (socle 1.1.1 « stretch »).
 * Never the `font` shorthand: it resets font-stretch.
 * Floor: 12 px for any text.
 */

:root {
	--gf-sans: "Archivo", "Arial Narrow", system-ui, sans-serif;
	--gf-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
	--gf-on-tape: #13294b;
	--gf-sheet: #fff;
	--gf-sheet-ink: #13294b;
	--gf-sheet-ink2: #4a5d7a;
	--gf-foot-bg: #13294b;
	--gf-foot-text: #dfe6ee;
	--gf-grid: linear-gradient(var(--contrast-3) 1px, transparent 1px), linear-gradient(90deg, var(--contrast-3) 1px, transparent 1px);
}

@media (prefers-color-scheme: dark) {
	:root {
		--contrast: #e8eef6;
		--contrast-2: #a9b8cc;
		--contrast-3: #233753;
		--base: #2a2716;
		--base-2: #0e1a2e;
		--base-3: #15243b;
		--gf-foot-bg: #08111f;
		--gf-foot-text: #c9d4e2;
		color-scheme: dark;
	}
}

/* Fox Blocks and Fox Affiliate: what the socle does not map yet (fonts, text
   on the accent fill). Set on body, over their :root defaults. To remove once
   the socle maps them. */
body {
	--fxb-font-body: var(--gf-sans);
	--fxb-font-display: var(--gf-sans);
	--fxb-font-mono: var(--gf-mono);
	--fxb-on-accent: var(--gf-on-tape);
	--fox-font: var(--gf-sans);
	--fox-btn-text: var(--gf-on-tape);
	overflow-x: clip;
	background: var(--base-2);
	color: var(--contrast);
	font-size: 1.0625rem;
	line-height: 1.6;
}

body,
button,
input,
select,
textarea {
	font-family: var(--gf-sans);
}

h1,
h2,
h3,
h4 {
	font-family: var(--gf-sans);
	font-weight: 800;
	line-height: 1.1;
	color: var(--contrast);
	text-wrap: balance;
}

h1,
h2 {
	font-stretch: 72%;
	text-transform: uppercase;
	letter-spacing: .005em;
}

h3 {
	font-stretch: 85%;
	font-size: 1.25rem;
}

a {
	color: var(--contrast);
}

.entry-content a,
.page-content a,
.taxonomy-description a {
	text-decoration-color: var(--accent);
	text-decoration-thickness: 3px;
	text-underline-offset: 3px;
}

.entry-content a:hover,
.entry-content a:focus {
	color: var(--contrast);
	text-decoration-color: var(--contrast);
}

/* Fox Blocks colours some links with --fxb-accent / --fxb-fox-orange: ink here. */
.entry-content a.fxb-smartlink--inline,
.fxb-ahead__toc-list a,
.fxb-lcard__excerpt a,
.fxb-author__links a,
.fxb-author__role,
.fxb-faq__question:hover {
	color: var(--contrast);
}

mark,
.gf-tape {
	background: var(--accent);
	color: var(--gf-on-tape);
	padding: 0 .12em;
	white-space: nowrap;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.gf-eyebrow,
.gf-code,
.gf-note,
.entry-meta,
.gf-chip,
.gf-dim {
	font-family: var(--gf-mono);
	font-size: 12px;
	font-stretch: 100%;
	letter-spacing: .06em;
	color: var(--contrast-2);
}

.gf-eyebrow {
	margin: 0 0 10px;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.gf-eyebrow a {
	color: inherit;
	text-decoration: none;
}

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

.site-header {
	border-bottom: 2px solid var(--contrast);
}

.inside-header {
	padding-top: 12px;
	padding-bottom: 12px;
}

.main-title {
	font-size: 26px;
	font-weight: 800;
	font-stretch: 72%;
	line-height: 1;
	letter-spacing: .01em;
	text-transform: uppercase;
}

.main-title a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}

.gf-logo {
	width: 30px;
	height: 34px;
	flex: none;
}

.main-navigation .main-nav ul li a {
	font-size: 14px;
	font-weight: 600;
	padding-left: 10px;
	padding-right: 10px;
}

@media (min-width: 769px) {
	.main-navigation .main-nav > ul > li > a {
		background: linear-gradient(var(--accent), var(--accent)) no-repeat 10px calc(50% + 13px) / 0 3px;
	}
	.main-navigation .main-nav > ul > li > a:hover,
	.main-navigation .main-nav > ul > li.current-menu-item > a,
	.main-navigation .main-nav > ul > li.current-post-parent > a,
	.main-navigation .main-nav > ul > li.current-menu-ancestor > a {
		background-size: calc(100% - 20px) 3px;
	}
}

.menu-toggle {
	font-weight: 700;
}

/* ---------------------------------------- graph paper: two places only */

.gf-hero,
.single .entry-header {
	position: relative;
	isolation: isolate;
}

.gf-hero::before,
.single .entry-header::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	bottom: 0;
	left: calc(50% - 50vw);
	right: calc(50% - 50vw);
	background-color: var(--base-2);
	background-image: var(--gf-grid);
	background-size: 24px 24px;
	border-bottom: 1px solid var(--contrast-3);
}

/* A sidebar set by FoxPilot or the customizer: the band stays in the column. */
body:not(.no-sidebar) .entry-header::before {
	left: -40px;
	right: -40px;
}

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

[class*="gf-"] > .wp-block-group__inner-container {
	max-width: none;
	padding: 0;
}

.gf-home .site-content {
	padding-top: 0;
}

.gf-hero {
	margin: 0 0 32px;
	padding: 44px 0 36px;
}

.gf-hero__cols {
	gap: 32px;
	margin: 0;
}

.gf-hero__title {
	font-size: clamp(38px, 6.4vw, 74px);
	font-stretch: 66%;
	line-height: .95;
	margin: 0 0 16px;
}

.gf-lede {
	font-size: 17px;
	max-width: 46ch;
	color: var(--contrast-2);
	margin: 0 0 22px;
}

.gf-search .wp-block-search__inside-wrapper {
	max-width: 460px;
	padding: 0;
	border: 2px solid var(--contrast);
	background: var(--base-3);
}

.gf-search .wp-block-search__input {
	min-width: 0;
	padding: 12px 14px;
	border: 0;
	background: transparent;
	color: var(--contrast);
	font-size: 16px;
}

.gf-search .wp-block-search__button {
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 0 18px;
	background: var(--contrast);
	color: var(--base-3);
	font-weight: 700;
}

.gf-draw,
.entry-content .gf-fig {
	margin: 0;
	padding: 14px;
	background: var(--gf-sheet);
	border: 2px solid var(--contrast);
}

.entry-content .gf-fig {
	margin: 24px 0;
}

.gf-draw img {
	width: 100%;
	height: auto;
	aspect-ratio: 6 / 5;
}

/* Drawings linked to their file (link to media): the link is a block, else it
   shrinks to the 300 px default of an SVG with a viewBox only. */
.gf-fig a,
.gf-draw a {
	display: block;
}

.gf-fig img {
	width: 100%;
	height: auto;
}

.gf-draw figcaption,
.gf-fig figcaption {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 12px;
	margin: 10px 0 0;
	padding-top: 8px;
	border-top: 1px solid #dfe6ee;
	font-family: var(--gf-mono);
	font-size: 12px;
	letter-spacing: .04em;
	text-align: left;
	color: var(--gf-sheet-ink2);
}

.gf-section {
	margin: 0 0 44px;
}

.gf-sec-title,
.gf-home .entry-content h2 {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	font-size: 26px;
	font-stretch: 75%;
	margin: 0 0 18px;
}

.gf-note {
	font-weight: 400;
	text-transform: none;
	white-space: nowrap;
}

.gf-rub {
	border: 2px solid var(--contrast);
	background: var(--base-3);
}

.gf-rub > .wp-block-group__inner-container,
.gf-rub.is-layout-flow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.gf-rub__item {
	position: relative;
	margin: 0 !important;
	padding: 18px;
	border-right: 1px solid var(--contrast-3);
	border-bottom: 1px solid var(--contrast-3);
}

.gf-rub__item:hover,
.gf-rub__item:focus-within {
	background: var(--base);
}

.gf-rub__item p {
	margin: 0;
	font-size: 14px;
	color: var(--contrast-2);
}

.gf-rub .gf-code {
	font-size: 12px;
}

.gf-rub__title {
	margin: 6px 0 4px;
	font-size: 20px;
	font-stretch: 78%;
	text-transform: uppercase;
}

.gf-rub__title a {
	text-decoration: none;
}

.gf-rub__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Latest posts: cards with a dimension line on top. */
.gf-latest .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 30px 18px;
	margin: 0;
	padding: 12px 0 0;
	list-style: none;
}

.gf-latest .wp-block-post,
.gf-cards > article {
	position: relative;
	margin: 0;
	padding: 18px 16px 14px;
	background: var(--base-3);
	border: 1px solid var(--contrast);
}

.gf-latest .wp-block-post::before,
.gf-cards > article::before {
	content: "";
	position: absolute;
	top: -11px;
	left: 16px;
	right: 16px;
	height: 9px;
	border-left: 1px solid var(--contrast);
	border-right: 1px solid var(--contrast);
	background: linear-gradient(var(--contrast), var(--contrast)) 0 4px / 100% 1px no-repeat;
}

.gf-dim {
	position: absolute;
	z-index: 2;
	top: -14px;
	left: 50%;
	max-width: 70%;
	transform: translateX(-50%);
	padding: 0 6px;
	background: var(--base-2);
	line-height: 16px;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.gf-dim a {
	color: var(--contrast);
	text-decoration: none;
}

.gf-latest .wp-block-post-title {
	margin: 4px 0 8px;
	font-size: 18px;
	font-stretch: 92%;
	line-height: 1.25;
}

.gf-latest .wp-block-post-title a {
	text-decoration: none;
}

.gf-latest .wp-block-post-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.gf-latest .wp-block-post:hover {
	background: var(--base);
}

.gf-latest .wp-block-post-excerpt__excerpt {
	margin: 0 0 12px;
	font-size: 14px;
	color: var(--contrast-2);
}

.gf-chip {
	display: inline-block;
	padding: 2px 6px;
	border: 1px solid var(--contrast);
	color: var(--contrast);
}

/* --------------------------------------------------------------- tables */

.entry-content .wp-block-table {
	margin: 0 0 1.5em;
	background: var(--base-3);
	border: 2px solid var(--contrast);
	overflow-x: auto;
}

.entry-content .wp-block-table table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.entry-content .wp-block-table thead {
	border: 0;
}

.entry-content .wp-block-table th,
.entry-content .wp-block-table td {
	padding: 9px 12px;
	border: 0;
	border-bottom: 1px solid var(--contrast-3);
	text-align: left;
	vertical-align: top;
}

.entry-content .wp-block-table th {
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--contrast-2);
}

.gf-dims table {
	min-width: 520px;
}

.gf-dims td:nth-child(2),
.gf-dims td:nth-child(3) {
	font-family: var(--gf-mono);
	font-variant-numeric: tabular-nums;
}

.entry-content .wp-block-table figcaption {
	margin: 0;
	padding: 8px 12px;
	font-size: 13px;
	text-align: left;
	color: var(--contrast-2);
}

.gf-more {
	margin-top: 10px;
	font-size: 15px;
}

/* .gf-facts: Durée / Niveau / Outil / Fenêtres on a core Table block. */
.entry-content .gf-facts {
	width: fit-content;
	max-width: 100%;
}

.entry-content .gf-facts table {
	width: auto;
}

.entry-content .gf-facts th,
.entry-content .gf-facts td {
	padding: 8px 14px;
	border-bottom: 0;
	border-right: 1px solid var(--contrast-3);
}

.entry-content .gf-facts th:last-child,
.entry-content .gf-facts td:last-child {
	border-right: 0;
}

.entry-content .gf-facts th {
	padding-bottom: 0;
}

.entry-content .gf-facts td {
	padding-top: 2px;
	font-weight: 700;
}

.entry-content .gf-facts tbody tr:last-child td:nth-child(2) {
	background: var(--accent);
	color: var(--gf-on-tape);
}

/* --------------------------------------------------------------- article */

.single .entry-header {
	margin: -40px 0 28px;
	padding: 30px 0 26px;
}

.single .entry-title {
	max-width: 18ch;
	margin: 0 0 14px;
	font-size: clamp(34px, 5.6vw, 62px);
	font-stretch: 68%;
	line-height: .98;
}

.single .entry-header .entry-meta {
	margin: 0;
	font-size: 13px;
}

.entry-meta a {
	color: inherit;
}

.single .entry-content {
	counter-reset: gf-sec;
	font-size: 17px;
	line-height: 1.65;
}

.single .entry-content > * {
	max-width: 760px;
}

.single .entry-content > h2 {
	counter-increment: gf-sec;
	margin: 40px 0 14px;
	font-size: 28px;
	font-stretch: 74%;
	scroll-margin-top: 20px;
}

.single .entry-content > h2::before {
	content: "§" counter(gf-sec);
	margin-right: 12px;
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 400;
	font-stretch: 100%;
	letter-spacing: .06em;
	vertical-align: .3em;
	color: var(--contrast-2);
}

.single .entry-content > p:first-child,
.single .entry-content > .fxb-ahead:first-child + p {
	font-size: 19px;
	line-height: 1.5;
	color: var(--contrast-2);
}

.entry-content .gf-affiliation {
	margin-top: -8px;
	font-size: 13px;
	color: var(--contrast-2);
}

/* Table of contents (Fox Blocks article header): numbered §1, §2... */
.entry-content .fxb-ahead {
	margin: 0 0 24px;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}

.entry-content .fxb-ahead__toc {
	margin: 0;
	padding: 0;
	background: var(--base-3);
	border: 2px solid var(--contrast);
}

.fxb-ahead__toc summary {
	padding: 10px 14px;
	font-family: var(--gf-mono);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fxb-ahead__toc[open] summary {
	border-bottom: 1px solid var(--contrast-3);
}

.entry-content .fxb-ahead__toc-list {
	counter-reset: gf-toc;
	columns: 1;
	margin: 0;
	padding: 6px 0;
	list-style: none;
}

.entry-content .fxb-ahead__toc-list li {
	margin: 0;
}

.entry-content .fxb-ahead__toc-list a {
	display: grid;
	grid-template-columns: 34px 1fr;
	padding: 6px 14px;
	font-size: 14px;
	line-height: 1.35;
	text-decoration: none;
}

.fxb-ahead__toc-list a:hover {
	background: var(--base);
}

.fxb-ahead__toc-l2 {
	counter-increment: gf-toc;
}

.fxb-ahead__toc-l2 > a::before {
	content: "§" counter(gf-toc);
	font-family: var(--gf-mono);
	font-size: 12px;
	color: var(--contrast-2);
}

.fxb-ahead__toc-l3 > a::before {
	content: "";
}

@media (min-width: 1025px) {
	.no-sidebar.single .entry-content:has(> .fxb-ahead > .fxb-ahead__toc) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 280px;
		column-gap: 44px;
		align-items: start;
	}
	.no-sidebar.single .entry-content:has(> .fxb-ahead > .fxb-ahead__toc) > * {
		grid-column: 1;
	}
	.no-sidebar.single .entry-content > .fxb-ahead:has(> .fxb-ahead__toc) {
		display: contents;
	}
	.no-sidebar.single .entry-content > .fxb-ahead > .fxb-ahead__toc {
		grid-column: 2;
		grid-row: 1 / span 300;
		position: sticky;
		top: 24px;
	}
}

/* .gf-ops: operation sheet on a core ordered list (OP.10, OP.20...). */
.entry-content ol.gf-ops {
	counter-reset: gf-op;
	margin: 18px 0 1.5em 26px;
	padding: 0;
	list-style: none;
	border-left: 2px solid var(--contrast);
}

.entry-content .gf-ops > li {
	counter-increment: gf-op;
	position: relative;
	margin: 0;
	padding: 3px 0 22px 34px;
}

.entry-content .gf-ops > li:last-child {
	padding-bottom: 4px;
}

.entry-content .gf-ops > li::before {
	content: "OP." counter(gf-op) "0";
	position: absolute;
	top: 4px;
	left: -1px;
	transform: translateX(-50%);
	padding: 3px 6px;
	background: var(--contrast);
	color: var(--base-3);
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

.entry-content .gf-ops > li > strong:first-child {
	display: block;
	margin-bottom: 2px;
	font-size: 18px;
}

.gf-ops code {
	font-family: var(--gf-mono);
	font-size: 13px;
	padding: 1px 6px;
	border: 1px solid var(--contrast);
	background: var(--base-3);
}

/* ------------------------------------------------- Fox Blocks: the skin */

.entry-content .fxb-key-points-block,
.entry-content .fxb-expert-tip,
.entry-content .fxb-verdict-box,
.entry-content .fct-wrap {
	margin: 24px 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--contrast);
}

/* key-points = title block of a drawing (cartouche). */
.entry-content .fxb-key-points-block {
	padding: 0;
	background: var(--base-3);
	border: 2px solid var(--contrast);
}

.entry-content .fxb-key-points__heading {
	margin: 0;
	padding: 8px 12px;
	border-bottom: 1px solid var(--contrast);
	font-size: 18px;
	font-weight: 800;
	font-stretch: 75%;
	text-transform: uppercase;
	color: var(--contrast);
}

.fxb-key-points__heading::before {
	content: "Fiche";
	display: block;
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 400;
	font-stretch: 100%;
	letter-spacing: .08em;
	color: var(--contrast-2);
}

.entry-content .fxb-key-points {
	counter-reset: gf-kp;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	margin: 0;
	padding: 0;
	background: var(--contrast-3);
}

@media (min-width: 640px) {
	.entry-content .fxb-key-points:not(.fxb-key-points--cols-1) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.entry-content .fxb-key-points__item {
	counter-increment: gf-kp;
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 0 12px;
	margin: 0;
	padding: 9px 12px;
	background: var(--base-3);
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font-size: 15px;
	line-height: 1.5;
}

.fxb-key-points__item::before {
	content: counter(gf-kp, decimal-leading-zero);
	padding-top: 2px;
	border-right: 1px solid var(--contrast-3);
	font-family: var(--gf-mono);
	font-size: 12px;
	color: var(--contrast-2);
}

.entry-content .fxb-key-points__number,
.entry-content .fxb-key-points__icon {
	display: none;
}

.entry-content .fxb-key-points__title {
	margin: 0 0 2px;
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--contrast-2);
}

.fxb-key-points__content p:last-child {
	margin-bottom: 0;
}

/* expert-tip = site note (dashed frame, pale yellow). */
.entry-content .fxb-expert-tip {
	display: block;
	padding: 14px 16px;
	background: var(--base);
	border: 2px dashed var(--contrast);
	font-size: 16px;
}

.entry-content .fxb-expert-tip__icon {
	display: none;
}

.entry-content .fxb-expert-tip__title {
	display: inline-block;
	margin-bottom: 6px;
	font-family: var(--gf-mono);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--contrast);
}

.entry-content .fxb-expert-tip--warning .fxb-expert-tip__title,
.entry-content .fxb-expert-tip--critical .fxb-expert-tip__title {
	padding: 2px 6px;
	background: var(--accent);
	color: var(--gf-on-tape);
}

.fxb-expert-tip__content p:last-child {
	margin-bottom: 0;
}

/* verdict-box = final check (ink band, check boxes). */
.entry-content .fxb-verdict-box {
	padding: 0;
	background: var(--base-3);
	border: 2px solid var(--contrast);
}

.entry-content .fxb-verdict-box__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 9px 14px;
	background: var(--contrast);
}

.entry-content .fxb-verdict-box__header::after {
	content: "à cocher";
	flex: none;
	padding: 2px 6px;
	background: var(--accent);
	color: var(--gf-on-tape);
	font-family: var(--gf-mono);
	font-size: 12px;
}

.entry-content .fxb-verdict-box__header .fxb-badge,
.entry-content .fxb-verdict-box__logo,
.entry-content .fxb-verdict-box p:empty {
	display: none;
}

.entry-content .fxb-verdict-box__title {
	margin: 0;
	font-size: 17px;
	font-stretch: 80%;
	text-transform: uppercase;
	color: var(--base-3);
}

.entry-content .fxb-verdict-box__body {
	display: block;
	padding: 6px 14px 10px;
}

.entry-content .fxb-verdict-box ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .fxb-verdict-box li {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 8px;
	margin: 0;
	padding: 7px 0;
	border-bottom: 1px dashed var(--contrast-3);
	font-size: 16px;
}

.entry-content .fxb-verdict-box li:last-child {
	border-bottom: 0;
}

.entry-content .fxb-verdict-box li::before {
	content: "";
	width: 16px;
	height: 16px;
	margin-top: 4px;
	border: 2px solid var(--contrast);
}

/* link-cards = thin-framed cards with a mono label. */
.entry-content .fxb-link-cards__list {
	counter-reset: gf-lc;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 14px;
	margin: 16px 0;
	padding: 0;
	list-style: none;
}

.entry-content .fxb-link-cards__list > li {
	counter-increment: gf-lc;
	margin: 0;
}

.entry-content .fxb-lcard {
	position: relative;
	height: 100%;
	padding: 12px 14px;
	background: var(--base-3);
	border: 1px solid var(--contrast);
	border-radius: 0;
	box-shadow: none;
	transform: none;
}

.entry-content .fxb-lcard:hover {
	background: var(--base);
}

.fxb-lcard__media:empty {
	display: none;
}

.entry-content .fxb-lcard__body {
	padding: 0;
}

.fxb-lcard__body::before {
	content: "Voir aussi · " counter(gf-lc, decimal-leading-zero);
	display: block;
	margin-bottom: 4px;
	font-family: var(--gf-mono);
	font-size: 12px;
	letter-spacing: .04em;
	color: var(--contrast-2);
}

.entry-content .fxb-lcard__title-link {
	text-decoration: none;
}

.entry-content .fxb-lcard__title-link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.entry-content .fxb-lcard__title,
.entry-content .fxb-lcard__title-link:hover .fxb-lcard__title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--contrast);
}

.entry-content .fxb-lcard__excerpt {
	margin-top: 4px;
	font-size: 14px;
	color: var(--contrast-2);
}

.entry-content .fxb-lcard__cta {
	margin-top: 8px;
	font-family: var(--gf-mono);
	font-size: 12px;
	text-transform: uppercase;
	color: var(--contrast);
	text-decoration: none;
}

/* Fox Affiliate comparison = parts list (nomenclature): Rep. A, B, C. */
.entry-content .fct-wrap {
	--fox-btn-text: var(--base-3);
	counter-reset: gf-rep gf-rep-card;
	padding: 0;
	background: var(--base-3);
	border: 2px solid var(--contrast);
}

.entry-content .fct-table {
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 14px;
	background: none;
}

.entry-content .fct-th,
.entry-content .fct-td {
	padding: 10px 12px;
	border: 0;
	border-bottom: 1px solid var(--contrast-3);
	background: none;
	color: var(--contrast);
	text-align: left;
	vertical-align: top;
}

.entry-content .fct-row:nth-child(even) .fct-td {
	background: none;
}

.entry-content .fct-table thead .fct-th {
	background: var(--base-2);
}

.entry-content .fct-th--rank,
.entry-content .fct-td--rank,
.entry-content .fct-card__rank {
	display: none;
}

.entry-content .fct-th--product::before,
.entry-content .fct-card::before {
	counter-increment: gf-rep;
	content: "Rep. " counter(gf-rep, upper-alpha);
	display: block;
	margin-bottom: 4px;
	font-family: var(--gf-mono);
	font-size: 12px;
	font-weight: 600;
	color: var(--contrast-2);
}

.entry-content .fct-card::before {
	counter-increment: gf-rep-card;
	content: "Rep. " counter(gf-rep-card, upper-alpha);
}

.entry-content .fct-th__title,
.entry-content .fct-card__title a {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--contrast);
	text-decoration: none;
}

.entry-content .fct-td--label,
.entry-content .fct-card__spec-label {
	font-family: var(--gf-mono);
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--contrast-2);
}

.entry-content .fct-wrap .fct-btn {
	display: inline-block;
	padding: 7px 12px;
	border: 0;
	border-radius: 0;
	background: var(--contrast);
	box-shadow: none;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
}

.entry-content .fct-wrap .fct-btn:hover,
.entry-content .fct-wrap .fct-btn:focus {
	background: var(--contrast-2);
	color: var(--base-3);
}

.entry-content .fct-price,
.entry-content .fct-stars__fill {
	color: var(--contrast);
}

.entry-content .fct-avail,
.entry-content .fct-reviews {
	font-family: var(--gf-mono);
	font-size: 12px;
	color: var(--contrast);
}

.entry-content .fct-card__footer {
	background: var(--base-3);
	color: var(--contrast);
}

/* Card dots: an 8 px square drawn, a 24 px target (WCAG 2.2 target size). */
.entry-content .fct-cards-dot {
	box-sizing: content-box;
	width: 8px;
	height: 8px;
	padding: 8px;
	border-radius: 0;
	background-clip: content-box;
	background-color: var(--contrast-3);
	transform: none;
}

.entry-content .fct-cards-dot.is-active {
	background-color: var(--contrast);
	transform: none;
}

.entry-content .fct-card {
	border: 0;
	border-bottom: 1px solid var(--contrast-3);
	border-radius: 0;
	box-shadow: none;
	background: var(--base-3);
}

/* Fox Affiliate sticky bar: a white sheet and an ink-on-tape button in both
   themes (its colours are partly hard-coded by the plugin). */
.fox-sticky-bar .fox-sticky-bar__inner {
	background: var(--base-3);
	border: 2px solid var(--contrast);
	border-bottom: 0;
	border-radius: 0;
	box-shadow: none;
}

body .fox-sticky-bar .fox-sticky-bar__cta {
	border-radius: 0;
}

body .fox-sticky-bar .fox-sticky-bar__cta:hover,
body .fox-sticky-bar .fox-sticky-bar__cta:focus {
	background: var(--contrast);
	color: var(--base-3);
}

/* ------------------------------------------------- archives and search */

.archive .site-main,
.blog .site-main,
.search .site-main {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 30px 18px;
}

.archive .site-main > :not(article),
.blog .site-main > :not(article),
.search .site-main > :not(article) {
	grid-column: 1 / -1;
}

.archive .site-main > article,
.blog .site-main > article,
.search .site-main > article {
	position: relative;
	margin: 0;
	background: var(--base-3);
	border: 1px solid var(--contrast);
}

.archive .site-main > article::before,
.blog .site-main > article::before,
.search .site-main > article::before {
	content: "";
	position: absolute;
	top: -11px;
	left: 16px;
	right: 16px;
	height: 9px;
	border-left: 1px solid var(--contrast);
	border-right: 1px solid var(--contrast);
	background: linear-gradient(var(--contrast), var(--contrast)) 0 4px / 100% 1px no-repeat;
}

.archive .inside-article,
.blog .inside-article,
.search .inside-article {
	padding: 18px 16px 14px;
}

.archive .entry-title,
.blog .entry-title,
.search .entry-title {
	font-size: 19px;
	font-stretch: 90%;
	line-height: 1.25;
	text-transform: none;
}

.archive .entry-title a,
.blog .entry-title a,
.search .entry-title a {
	text-decoration: none;
}

.entry-summary {
	font-size: 15px;
	color: var(--contrast-2);
}

.page-header {
	margin-bottom: 8px;
}

.page-title {
	font-size: clamp(32px, 5vw, 52px);
	font-stretch: 68%;
}

.taxonomy-description {
	max-width: 62ch;
	color: var(--contrast-2);
}

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

footer.entry-meta,
.post-navigation,
.comment-reply-title + form {
	font-size: 13px;
}

footer.entry-meta {
	margin-top: 32px;
	padding-top: 12px;
	border-top: 1px solid var(--contrast-3);
}

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

.site-info {
	font-size: 13px;
}

.copyright-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	width: 100%;
	text-align: left;
}

.gf-foot-end,
.gf-foot-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 18px;
}

.gf-foot-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-info a {
	text-decoration: none;
}

.site-info a:hover,
.site-info a:focus {
	text-decoration: underline;
}

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

@media (max-width: 768px) {
	.single .entry-header {
		margin-top: -30px;
	}
	.gf-hero {
		padding: 30px 0 28px;
	}
	.gf-hero__cols {
		gap: 24px;
	}
	.entry-content .gf-facts th,
	.entry-content .gf-facts td {
		padding-left: 9px;
		padding-right: 9px;
		font-size: 14px;
	}
	.entry-content .gf-facts,
	.entry-content .gf-facts table {
		width: 100%;
	}
	.entry-content .fxb-verdict-box li {
		text-align: left;
	}
}

/* .gf-facts on a phone: a 2 x 2 grid, each label above its value. */
@media (max-width: 600px) {
	.entry-content .gf-facts table {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.entry-content .gf-facts thead,
	.entry-content .gf-facts tbody,
	.entry-content .gf-facts tr {
		display: contents;
	}
	.entry-content .gf-facts th:nth-child(odd),
	.entry-content .gf-facts td:nth-child(odd) {
		border-right: 1px solid var(--contrast-3);
	}
	.entry-content .gf-facts th:nth-child(even),
	.entry-content .gf-facts td:nth-child(even) {
		border-right: 0;
	}
	.entry-content .gf-facts td:nth-child(-n+2) {
		border-bottom: 1px solid var(--contrast-3);
		padding-bottom: 8px;
	}
	.gf-facts th:nth-child(1) { order: 1; }
	.gf-facts th:nth-child(2) { order: 2; }
	.gf-facts td:nth-child(1) { order: 3; }
	.gf-facts td:nth-child(2) { order: 4; }
	.gf-facts th:nth-child(3) { order: 5; }
	.gf-facts th:nth-child(4) { order: 6; }
	.gf-facts td:nth-child(3) { order: 7; }
	.gf-facts td:nth-child(4) { order: 8; }
	.single .entry-content > p:first-child,
	.single .entry-content > .fxb-ahead:first-child + p {
		font-size: 18px;
	}
}
