/*
Theme Name: Keep Moving
Theme URI: https://stephaniesimpson.ca
Author: Patricia Poirier
Description: Thème de blocs natif pour stephaniesimpson.ca. Repère topographique, ligne de parcours et estampilles de distance. Aucun constructeur de pages, aucune dépendance externe.
Version: 0.1.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: keep-moving
Tags: blog, one-column, block-patterns, full-site-editing
*/

/* ---------------------------------------------------------------
   Tout ce qui peut se régler dans theme.json est dans theme.json.
   Ce fichier ne contient que ce que theme.json ne sait pas faire :
   la ligne de parcours, les estampilles, quelques micro-détails.
   --------------------------------------------------------------- */

:root {
	--km-tick: 1px;
	--km-rule: var(--wp--preset--color--contour);
}

/* --- Réglages globaux ---------------------------------------- */

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--wp--preset--color--route);
	color: var(--wp--preset--color--paper);
}

:where(a):focus-visible,
:where(button):focus-visible,
:where(input):focus-visible {
	outline: 2px solid var(--wp--preset--color--route);
	outline-offset: 3px;
}

/* --- Titre du site ------------------------------------------- */

.km-wordmark a {
	text-decoration: none;
	letter-spacing: 0.06em;
}

.km-tagline {
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

/* --- Navigation ---------------------------------------------- */

.km-nav a {
	text-decoration: none;
	position: relative;
	padding-block-end: 0.2em;
}

.km-nav a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	height: 2px;
	background: var(--wp--preset--color--route);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 160ms ease-out;
}

.km-nav a:hover::after,
.km-nav .current-menu-item a::after {
	transform: scaleX(1);
}

/* --- LA SIGNATURE : la ligne de parcours ---------------------
   Les archives se lisent comme un tracé : une ligne continue,
   une borne par article. C'est la chronologie d'une coureuse,
   pas une grille de cartes.
   ------------------------------------------------------------- */

.km-route {
	position: relative;
	padding-inline-start: clamp(1.75rem, 5vw, 3.5rem);
}

.km-route::before {
	content: "";
	position: absolute;
	inset-block: 0.75em 0;
	inset-inline-start: 0;
	width: var(--km-tick);
	background: var(--km-rule);
}

.km-route > .wp-block-post {
	position: relative;
	padding-block: clamp(1.75rem, 4vw, 3rem);
	border-block-end: var(--km-tick) solid var(--wp--preset--color--contour);
}

.km-route > .wp-block-post:last-child {
	border-block-end: 0;
}

/* La borne kilométrique */
.km-route > .wp-block-post::before {
	content: "";
	position: absolute;
	inset-block-start: clamp(2.35rem, 4.6vw, 3.6rem);
	inset-inline-start: calc(clamp(1.75rem, 5vw, 3.5rem) * -1);
	width: clamp(0.9rem, 2.2vw, 1.4rem);
	height: var(--km-tick);
	background: var(--wp--preset--color--route);
}

/* --- Estampilles de date et de catégorie --------------------- */

.km-stamp,
.km-stamp a {
	font-family: var(--wp--preset--font-family--data);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contour);
	text-decoration: none;
}

.km-stamp a:hover {
	color: var(--wp--preset--color--route);
}

.km-stamp .wp-block-post-terms__separator {
	color: var(--wp--preset--color--contour);
}

/* --- Titres d'articles dans les listes ----------------------- */

.km-route .wp-block-post-title a {
	text-decoration: none;
	background-image: linear-gradient(var(--wp--preset--color--route), var(--wp--preset--color--route));
	background-size: 0% 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 200ms ease-out;
}

.km-route .wp-block-post-title a:hover {
	background-size: 100% 2px;
}

/* --- Article seul -------------------------------------------- */

.km-entry :where(p, ul, ol) {
	max-width: 62ch;
}

.km-entry :where(h2, h3, h4) {
	margin-block-start: 1.8em;
}

.km-entry figure {
	margin-block: 2.5em;
}

.km-entry figcaption {
	font-family: var(--wp--preset--font-family--data);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--contour);
	letter-spacing: 0.04em;
}

.km-entry blockquote {
	border-inline-start: 2px solid var(--wp--preset--color--route);
	padding-inline-start: 1.25em;
	font-style: normal;
}

/* --- Pied de page -------------------------------------------- */

.km-footer a {
	text-decoration: none;
}

.km-footer a:hover {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

/* --- Accessibilité et mouvement ------------------------------ */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

@media (max-width: 600px) {
	.km-route {
		padding-inline-start: 1.25rem;
	}
}
