/*
Theme Name: Cadence Sauge
Template: generatepress
Version: 1.0.0
Description: Custom theme for En roue libre avec Mathieu
Author: En roue libre avec Mathieu
Text Domain: cadence-sauge
*/

/* ---------------------------------------------------------------------------
   Palette tokens (sage-calm) + structural tokens.
   Everything that GP exposes as an option lives in generate_settings; what is
   below covers the documented GP gaps only.
   --------------------------------------------------------------------------- */
:root {
	--cs-primary: #4D7C0F;
	--cs-secondary: #65A30D;
	--cs-accent: #84CC16;
	--cs-accent-warm: #F5ECD7;
	--cs-surface: #F7FEE7;
	--cs-background: #FFFFFF;
	--cs-text: #1A2E05;
	--cs-text-soft: #4B5563;
	--cs-border: #D9F0B4;
	--cs-radius: 0px;
	--cs-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
	--cs-section-gap: 6rem;
	--cs-block-gap: 2rem;
	--cs-pad: 3rem;
}

/* Ligne de marque mobile */
@media (max-width: 767px) {
	.inside-navigation::before {
		content: "Le triathlon vu de l'intérieur, par quelqu'un qui y plonge les deux pieds.";
		font-style: italic;
		position: absolute;
		left: var(--gap-small, 8px);
		top: 50%;
		transform: translateY(-50%);
		font-size: 14px;
		color: var(--text-color);
	}
	.inside-navigation { position: relative; }
}

/* Submit-button palette rule — gated by contact-form-render.cjs */
body button.wpforms-submit,
body .wpcf7-submit,
body .ff-btn-submit {
	background-color: #4D7C0F !important;
	color: #ffffff !important;
}
body button.wpforms-submit:hover,
body .wpcf7-submit:hover,
body .ff-btn-submit:hover {
	filter: brightness(0.88) !important;
}

/* ---------------------------------------------------------------------------
   Front-page H1. Visible, never screen-reader-text. Text comes from the
   brief's §10 Homepage H1 row, which is the subject matter — not the tagline.
   --------------------------------------------------------------------------- */
.site-tagline-heading {
	display: block;
	text-align: center;
	padding: 0.5rem 1rem;
	font-size: 1.1rem;
	color: inherit;
	margin: 0;
}

/* ---------------------------------------------------------------------------
   sig-F — no sidebar, one container, nav floated right of the logo.
   Sharp corners throughout (border_radius: none).
   --------------------------------------------------------------------------- */
.cs-zero-radius,
.inside-article img,
.post-image img,
input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="tel"],
textarea,
select,
button,
.button,
.wp-block-button__link {
	border-radius: var(--cs-radius);
}

.site-header {
	border-bottom: 1px solid var(--cs-border);
}

.main-navigation .main-nav ul li a {
	letter-spacing: 0.02em;
}

/* Spacious rhythm on the long-form pages */
.entry-content > * + * {
	margin-top: var(--cs-block-gap);
}

.entry-content h2 {
	margin-top: calc(var(--cs-block-gap) * 1.6);
	padding-bottom: 0.35rem;
	border-bottom: 2px solid var(--cs-border);
}

.entry-content h3 {
	margin-top: calc(var(--cs-block-gap) * 1.1);
}

.entry-content blockquote {
	margin: var(--cs-block-gap) 0;
	padding: 1.25rem 1.5rem;
	background: var(--cs-surface);
	border-left: 4px solid var(--cs-primary);
	font-style: normal;
}

.entry-content figure img,
.entry-content img {
	box-shadow: var(--cs-shadow);
}

/* ---------------------------------------------------------------------------
   Homepage — category-grid hero, then the current-reading strip.
   --------------------------------------------------------------------------- */
.cs-home-intro {
	margin: 0 0 var(--cs-section-gap);
	font-size: 1.05rem;
	color: var(--cs-text-soft);
	max-width: 46rem;
}

.cs-cat-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--cs-block-gap);
	margin: 0 0 var(--cs-section-gap);
}

.cs-cat-tile {
	display: flex;
	flex-direction: column;
	background: var(--cs-surface);
	border: 1px solid var(--cs-border);
	border-radius: var(--cs-radius);
	overflow: hidden;
	box-shadow: var(--cs-shadow);
	text-decoration: none;
	color: var(--cs-text);
}

.cs-cat-tile img {
	width: 100%;
	height: 170px;
	object-fit: cover;
	display: block;
}

.cs-cat-tile-body {
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.cs-cat-tile h2 {
	font-size: 1.25rem;
	margin: 0;
	line-height: 1.25;
	color: var(--cs-primary);
}

.cs-cat-tile p {
	margin: 0;
	font-size: 0.95rem;
	color: var(--cs-text-soft);
}

.cs-cat-tile-count {
	margin-top: auto;
	font-family: "PT Sans", "Trebuchet MS", "DejaVu Sans", sans-serif;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cs-secondary);
}

.cs-cat-tile:hover {
	border-color: var(--cs-primary);
}

.cs-section-heading {
	font-size: 1.6rem;
	margin: 0 0 var(--cs-block-gap);
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--cs-primary);
}

.cs-recent {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cs-block-gap);
	margin-bottom: var(--cs-section-gap);
}

.cs-recent article {
	border: 1px solid var(--cs-border);
	border-radius: var(--cs-radius);
	background: var(--cs-background);
	box-shadow: var(--cs-shadow);
	display: flex;
	flex-direction: column;
}

.cs-recent article img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
	box-shadow: none;
}

.cs-recent-body {
	padding: 1.4rem 1.5rem 1.6rem;
}

.cs-recent-body h3 {
	font-size: 1.15rem;
	line-height: 1.3;
	margin: 0 0 0.5rem;
}

.cs-recent-body h3 a {
	text-decoration: none;
}

.cs-kicker {
	display: inline-block;
	font-family: "PT Sans", "Trebuchet MS", "DejaVu Sans", sans-serif;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--cs-secondary);
	margin-bottom: 0.45rem;
}

.cs-recent-body p {
	margin: 0 0 0.9rem;
	font-size: 0.95rem;
	color: var(--cs-text-soft);
}

.cs-more {
	font-family: "PT Sans", "Trebuchet MS", "DejaVu Sans", sans-serif;
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
}

/* ---------------------------------------------------------------------------
   Byline + author card — the Person entity lives on /qui-ecrit-ici/.
   --------------------------------------------------------------------------- */
.cs-byline {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0.4rem 0 1.4rem;
	font-size: 0.92rem;
	color: var(--cs-text-soft);
}

.cs-byline img {
	border-radius: 50%;
	box-shadow: none;
	flex: 0 0 auto;
}

.cs-author-card {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
	margin: var(--cs-section-gap) 0 0;
	padding: 1.75rem;
	background: var(--cs-surface);
	border: 1px solid var(--cs-border);
	border-radius: var(--cs-radius);
}

.cs-author-card img {
	border-radius: 50%;
	box-shadow: none;
	flex: 0 0 auto;
}

.cs-author-card p {
	margin: 0.4rem 0 0;
	font-size: 0.95rem;
	color: var(--cs-text-soft);
}

.cs-author-name {
	font-family: "PT Sans", "Trebuchet MS", "DejaVu Sans", sans-serif;
	font-weight: 700;
	font-size: 1.05rem;
}

.cs-author-role {
	font-size: 0.85rem;
	color: var(--cs-text-soft);
}

/* About page — about-inline-circle */
.cs-about-inline {
	display: flex;
	gap: 1.75rem;
	align-items: flex-start;
	margin: 0 0 var(--cs-block-gap);
}

.cs-about-inline img {
	border-radius: 50%;
	flex: 0 0 auto;
	box-shadow: var(--cs-shadow);
}

.cs-about-inline > div > :first-child {
	margin-top: 0;
}

/* 404 */
.cs-404 .entry-content p {
	max-width: 44rem;
}

/* Footer — 2-col-dark */
.site-footer .footer-widgets .inside-footer-widgets {
	gap: var(--cs-block-gap);
}

.site-footer .widget-title {
	font-family: "PT Sans", "Trebuchet MS", "DejaVu Sans", sans-serif;
	font-size: 1rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: 0.9rem;
}

.site-footer .footer-widgets ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .footer-widgets ul li {
	margin-bottom: 0.45rem;
}

.site-info {
	font-size: 0.88rem;
}

/* Archive descriptions read as prose, not as a boxed notice */
.page-header .taxonomy-description {
	color: var(--cs-text-soft);
	max-width: 46rem;
}

/* ---------------------------------------------------------------------------
   Responsive
   --------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.cs-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	:root {
		--cs-section-gap: 3rem;
		--cs-block-gap: 1.5rem;
		--cs-pad: 1.25rem;
	}
	.cs-cat-grid,
	.cs-recent { grid-template-columns: 1fr; }
	.cs-author-card,
	.cs-about-inline { flex-direction: column; }
}
