/**
 * Theme-IA — Frontend Components CSS
 *
 * Composants des 9 blocs. Utilise EXCLUSIVEMENT les tokens
 * (`var(--tia-*)`). Pas de valeur hardcodée.
 *
 * Sélecteurs : data-attributes pour rester lisibles et debugables
 * dans l'inspecteur. Préfixe `.tia-` partout.
 *
 * Ne contient PAS l'import des tokens : c'est le rôle de
 * theme-ia-runtime.css qui doit être chargé EN AMONT.
 */

/* ==========================================================================
   1. Layout racine
   ========================================================================== */

.tia-page {
	width: 100%;
	color: var(--tia-color-text);
	background: var(--tia-color-bg);
	font-family: var(--tia-font-body);
}
.tia-chrome--header,
.tia-chrome--header > .tia-page {
	background: transparent;
}

.tia-container {
	width: 100%;
	max-width: var(--tia-container-max);
	min-width: 0;
	margin: 0 auto;
	padding-inline: var(--tia-container-x, var(--tia-space-6));
	box-sizing: border-box;
}

@media (min-width: 992px) {
	.tia-container {
		padding-inline: var(--tia-container-x-desktop, var(--tia-container-x, var(--tia-space-12)));
	}
}

/* ==========================================================================
   2. Section
   ========================================================================== */

.tia-section {
	display: block;
	width: 100%;
	background: var(--tia-color-bg);
	color: var(--tia-color-text);
}

/* ---- bg variants ---- */
.tia-section[data-bg="bg"]              { background: var(--tia-color-bg); }
.tia-section[data-bg="bg-alt"]          { background: var(--tia-color-bg-alt); }
.tia-section[data-bg="primary"]         { background: var(--tia-color-primary); color: #fff; }
.tia-section[data-bg="primary-light"]   { background: var(--tia-color-primary-light); }
.tia-section[data-bg="primary-dark"]    { background: var(--tia-color-primary-dark); color: #fff; }
.tia-section[data-bg="secondary"]       { background: var(--tia-color-secondary); color: var(--tia-color-bg); }
.tia-section[data-bg="secondary-light"] { background: var(--tia-color-secondary-light); }
.tia-section[data-bg="secondary-dark"]  { background: var(--tia-color-secondary-dark); color: var(--tia-color-bg); }
.tia-section[data-bg="text"]            { background: var(--tia-color-text); color: var(--tia-color-bg); }
.tia-section[data-bg="text-muted"]      { background: var(--tia-color-text-muted); color: var(--tia-color-bg); }
.tia-section[data-bg="transparent"]     { background: transparent; }

/* ---- theme dark ---- */
.tia-section[data-theme="dark"] {
	color: var(--tia-color-bg);
}
.tia-section[data-theme="dark"] .tia-heading,
.tia-section[data-theme="dark"] .tia-body {
	color: var(--tia-color-bg);
}
.tia-section[data-theme="dark"] .tia-body[data-color="text-muted"] {
	color: var(--tia-color-text-muted);
	opacity: 0.85;
}

/* ---- padding vertical (py) ---- */
.tia-section[data-py="0"]            { padding-block: 0; }
.tia-section[data-py="half-half"]    { padding-block: var(--tia-space-4)  var(--tia-space-4);  }
.tia-section[data-py="1-1"]          { padding-block: var(--tia-space-8)  var(--tia-space-8);  }
.tia-section[data-py="1half-1half"]  { padding-block: var(--tia-space-12) var(--tia-space-12); }
.tia-section[data-py="2-2"]          { padding-block: var(--tia-space-16) var(--tia-space-16); }
.tia-section[data-py="3-3"]          { padding-block: var(--tia-space-24) var(--tia-space-24); }
.tia-section[data-py="1-1half"]      { padding-block: var(--tia-space-8)  var(--tia-space-12); }
.tia-section[data-py="1half-1"]      { padding-block: var(--tia-space-12) var(--tia-space-8);  }
.tia-section[data-py="0-1half"]      { padding-block: 0                   var(--tia-space-12); }
.tia-section[data-py="1half-0"]      { padding-block: var(--tia-space-12) 0;                   }
.tia-section[data-py="1-2"]          { padding-block: var(--tia-space-8)  var(--tia-space-16); }
.tia-section[data-py="2-1half"]      { padding-block: var(--tia-space-16) var(--tia-space-12); }
.tia-section[data-py="1half-2"]      { padding-block: var(--tia-space-12) var(--tia-space-16); }
.tia-section[data-py="2-3"]          { padding-block: var(--tia-space-16) var(--tia-space-24); }

/* ==========================================================================
   3. Row (grille)
   ========================================================================== */

.tia-row {
	display: grid;
	grid-template-columns: repeat(var(--tia-grid-cols, 12), minmax(0, 1fr));
	gap: var(--tia-grid-gap);
	width: 100%;
	min-width: 0;
	align-items: start;
}

.tia-row[data-gap="none"]    { gap: 0; }
.tia-row[data-gap="tight"]   { gap: var(--tia-space-2); }
.tia-row[data-gap="default"] { gap: var(--tia-grid-gap); }
.tia-row[data-gap="loose"]   { gap: var(--tia-space-10); }
.tia-row[data-gap="xl"]      { gap: var(--tia-space-16); }
.tia-row[data-gap="custom"]  { gap: var(--tia-row-gap-custom, var(--tia-grid-gap)); }

.tia-row[data-align="start"]   { align-items: start; }
.tia-row[data-align="center"]  { align-items: center; }
.tia-row[data-align="end"]     { align-items: end; }
.tia-row[data-align="stretch"] { align-items: stretch; }

.tia-row[data-justify="start"]   { justify-content: start; }
.tia-row[data-justify="center"]  { justify-content: center; }
.tia-row[data-justify="end"]     { justify-content: end; }
.tia-row[data-justify="between"] { justify-content: space-between; }

@media (max-width: 768px) {
	.tia-row {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--tia-space-6);
	}
	.tia-row[data-reverse-mobile="1"] { direction: rtl; }
	.tia-row[data-reverse-mobile="1"] > * { direction: ltr; }
}

/* ==========================================================================
   4. Column
   ========================================================================== */

.tia-col {
	min-width: 0;
	grid-column: span var(--tia-col-span, 12);
}

/* Génération static des spans (1..24) via @container-like approach inline */
.tia-col[data-span="1"]  { grid-column: span 1; }
.tia-col[data-span="2"]  { grid-column: span 2; }
.tia-col[data-span="3"]  { grid-column: span 3; }
.tia-col[data-span="4"]  { grid-column: span 4; }
.tia-col[data-span="5"]  { grid-column: span 5; }
.tia-col[data-span="6"]  { grid-column: span 6; }
.tia-col[data-span="7"]  { grid-column: span 7; }
.tia-col[data-span="8"]  { grid-column: span 8; }
.tia-col[data-span="9"]  { grid-column: span 9; }
.tia-col[data-span="10"] { grid-column: span 10; }
.tia-col[data-span="11"] { grid-column: span 11; }
.tia-col[data-span="12"] { grid-column: span 12; }
.tia-col[data-span="13"] { grid-column: span 13; }
.tia-col[data-span="14"] { grid-column: span 14; }
.tia-col[data-span="15"] { grid-column: span 15; }
.tia-col[data-span="16"] { grid-column: span 16; }
.tia-col[data-span="17"] { grid-column: span 17; }
.tia-col[data-span="18"] { grid-column: span 18; }
.tia-col[data-span="19"] { grid-column: span 19; }
.tia-col[data-span="20"] { grid-column: span 20; }
.tia-col[data-span="21"] { grid-column: span 21; }
.tia-col[data-span="22"] { grid-column: span 22; }
.tia-col[data-span="23"] { grid-column: span 23; }
.tia-col[data-span="24"] { grid-column: span 24; }

.tia-col[data-align="start"]  { align-self: start; }
.tia-col[data-align="center"] { align-self: center; }
.tia-col[data-align="end"]    { align-self: end; }

.tia-col[data-text-align="left"]   { text-align: left; }
.tia-col[data-text-align="center"] { text-align: center; }
.tia-col[data-text-align="right"]  { text-align: right; }

.tia-col[data-padding="sm"] { padding: var(--tia-space-2); }
.tia-col[data-padding="md"] { padding: var(--tia-space-6); }
.tia-col[data-padding="lg"] { padding: var(--tia-space-12); }

/* ---- fond de colonne (bloc coloré occupant N colonnes de large) ---- */
.tia-col[data-bg="bg"]        { background: var(--tia-color-bg); }
.tia-col[data-bg="bg-alt"]    { background: var(--tia-color-bg-alt); }
.tia-col[data-bg="primary"]   { background: var(--tia-color-primary); color: #fff; }
.tia-col[data-bg="secondary"] { background: var(--tia-color-secondary); color: var(--tia-color-bg); }
.tia-col[data-bg="text"]      { background: var(--tia-color-text); color: var(--tia-color-bg); }

.tia-col[data-radius="sm"]   { border-radius: var(--tia-radius-sm); }
.tia-col[data-radius="md"]   { border-radius: var(--tia-radius-md); }
.tia-col[data-radius="lg"]   { border-radius: var(--tia-radius-lg); }
.tia-col[data-radius="xl"]   { border-radius: var(--tia-radius-xl); }
.tia-col[data-radius="full"] { border-radius: var(--tia-radius-full); }

@media (max-width: 768px) {
	.tia-col { grid-column: span 1; }
}

/* ==========================================================================
   4bis. Style commun (props.style) — applicable à TOUS les blocs
   data-tia-bg / data-tia-color / data-tia-radius / data-tia-shadow / data-tia-margin
   ========================================================================== */

[data-tia-bg="transparent"]     { background: transparent; }
[data-tia-bg="bg"]              { background: var(--tia-color-bg); }
[data-tia-bg="bg-alt"]          { background: var(--tia-color-bg-alt); }
[data-tia-bg="primary"]         { background: var(--tia-color-primary); color: #fff; }
[data-tia-bg="primary-light"]   { background: var(--tia-color-primary-light); }
[data-tia-bg="primary-dark"]    { background: var(--tia-color-primary-dark); color: #fff; }
[data-tia-bg="secondary"]       { background: var(--tia-color-secondary); }
[data-tia-bg="secondary-light"] { background: var(--tia-color-secondary-light); }
[data-tia-bg="secondary-dark"]  { background: var(--tia-color-secondary-dark); }
[data-tia-bg="text"]            { background: var(--tia-color-text); color: var(--tia-color-bg); }
[data-tia-bg="text-muted"]      { background: var(--tia-color-text-muted); color: var(--tia-color-bg); }

/* Un fond non transparent mérite un padding interne par défaut (sauf blocs
   structurels qui gèrent leur propre espacement). */
:where(.tia-heading, .tia-body, .tia-btn, .tia-icon, .tia-code, .tia-embed, .tia-video, .tia-image, .tia-menu, .tia-accordion, .tia-testimonials, .tia-form, .tia-slider, .tia-pricing, .tia-cmp, .tia-booking)[data-tia-bg]:not([data-tia-bg="transparent"]) {
	padding: var(--tia-space-4) var(--tia-space-6);
}

[data-tia-color="text"]            { color: var(--tia-color-text); }
[data-tia-color="text-muted"]      { color: var(--tia-color-text-muted); }
[data-tia-color="bg"]              { color: var(--tia-color-bg); }
[data-tia-color="bg-alt"]          { color: var(--tia-color-bg-alt); }
[data-tia-color="primary"]         { color: var(--tia-color-primary); }
[data-tia-color="primary-light"]   { color: var(--tia-color-primary-light); }
[data-tia-color="primary-dark"]    { color: var(--tia-color-primary-dark); }
[data-tia-color="secondary"]       { color: var(--tia-color-secondary); }
[data-tia-color="secondary-light"] { color: var(--tia-color-secondary-light); }
[data-tia-color="secondary-dark"]  { color: var(--tia-color-secondary-dark); }

[data-tia-radius="none"] { border-radius: 0; }
[data-tia-radius="sm"]   { border-radius: var(--tia-radius-sm); }
[data-tia-radius="md"]   { border-radius: var(--tia-radius-md); }
[data-tia-radius="lg"]   { border-radius: var(--tia-radius-lg); }
[data-tia-radius="xl"]   { border-radius: var(--tia-radius-xl); }
[data-tia-radius="full"] { border-radius: var(--tia-radius-full); }
[data-tia-radius]:not([data-tia-radius="none"]) { overflow: hidden; }

[data-tia-shadow="sm"] { box-shadow: var(--tia-shadow-sm); }
[data-tia-shadow="md"] { box-shadow: var(--tia-shadow-md); }
[data-tia-shadow="lg"] { box-shadow: var(--tia-shadow-lg); }

[data-tia-margin="sm"] { margin-block: var(--tia-space-4); }
[data-tia-margin="md"] { margin-block: var(--tia-space-8); }
[data-tia-margin="lg"] { margin-block: var(--tia-space-12); }
[data-tia-margin="xl"] { margin-block: var(--tia-space-16); }

/* ==========================================================================
   5. Heading
   ========================================================================== */

.tia-heading {
	margin: 0 0 var(--tia-space-4);
	font-family: var(--tia-font-heading);
	letter-spacing: var(--tia-tracking-heading);
	line-height: var(--tia-leading-heading);
	font-weight: var(--tia-weight-bold);
	color: inherit;
}

.tia-heading[data-level="1"] { font-size: var(--tia-text-hero); }
.tia-heading[data-level="2"] { font-size: var(--tia-text-3xl); }
.tia-heading[data-level="3"] { font-size: var(--tia-text-xl); font-weight: var(--tia-weight-medium); }
.tia-heading[data-level="4"] { font-size: var(--tia-text-lg); font-weight: var(--tia-weight-medium); }
.tia-heading[data-level="5"] { font-size: var(--tia-text-md); font-weight: var(--tia-weight-medium); }
.tia-heading[data-level="6"] { font-size: var(--tia-text-sm); font-weight: var(--tia-weight-medium); text-transform: uppercase; letter-spacing: var(--tia-tracking-wide); }

.tia-heading[data-size="xs"]   { font-size: var(--tia-text-xs); }
.tia-heading[data-size="sm"]   { font-size: var(--tia-text-sm); }
.tia-heading[data-size="md"]   { font-size: var(--tia-text-md); }
.tia-heading[data-size="lg"]   { font-size: var(--tia-text-lg); }
.tia-heading[data-size="xl"]   { font-size: var(--tia-text-xl); }
.tia-heading[data-size="2xl"]  { font-size: var(--tia-text-2xl); }
.tia-heading[data-size="3xl"]  { font-size: var(--tia-text-3xl); }
.tia-heading[data-size="4xl"]  { font-size: var(--tia-text-4xl); }
.tia-heading[data-size="hero"] { font-size: var(--tia-text-hero); }

.tia-heading[data-weight="thin"]    { font-weight: var(--tia-weight-thin); }
.tia-heading[data-weight="regular"] { font-weight: var(--tia-weight-regular); }
.tia-heading[data-weight="medium"]  { font-weight: var(--tia-weight-medium); }
.tia-heading[data-weight="bold"]    { font-weight: var(--tia-weight-bold); }

.tia-heading[data-color="text"]            { color: var(--tia-color-text); }
.tia-heading[data-color="text-muted"]      { color: var(--tia-color-text-muted); }
.tia-heading[data-color="bg"]              { color: var(--tia-color-bg); }
.tia-heading[data-color="bg-alt"]          { color: var(--tia-color-bg-alt); }
.tia-heading[data-color="primary"]         { color: var(--tia-color-primary); }
.tia-heading[data-color="primary-light"]   { color: var(--tia-color-primary-light); }
.tia-heading[data-color="primary-dark"]    { color: var(--tia-color-primary-dark); }
.tia-heading[data-color="secondary"]       { color: var(--tia-color-secondary); }
.tia-heading[data-color="secondary-light"] { color: var(--tia-color-secondary-light); }
.tia-heading[data-color="secondary-dark"]  { color: var(--tia-color-secondary-dark); }

.tia-heading[data-align="left"]   { text-align: left; }
.tia-heading[data-align="center"] { text-align: center; }
.tia-heading[data-align="right"]  { text-align: right; }

/* ==========================================================================
   6. Body / text
   ========================================================================== */

.tia-body {
	margin: 0 0 var(--tia-space-4);
	font-family: var(--tia-font-body);
	letter-spacing: var(--tia-tracking-body);
	line-height: var(--tia-leading-body);
	font-weight: var(--tia-weight-regular);
	color: inherit;
}

.tia-body[data-size="xs"] { font-size: var(--tia-text-xs); }
.tia-body[data-size="sm"] { font-size: var(--tia-text-sm); }
.tia-body[data-size="md"] { font-size: var(--tia-text-md); }
.tia-body[data-size="lg"] { font-size: var(--tia-text-lg); }

.tia-body[data-color="text"]            { color: var(--tia-color-text); }
.tia-body[data-color="text-muted"]      { color: var(--tia-color-text-muted); }
.tia-body[data-color="bg"]              { color: var(--tia-color-bg); }
.tia-body[data-color="bg-alt"]          { color: var(--tia-color-bg-alt); }
.tia-body[data-color="primary"]         { color: var(--tia-color-primary); }
.tia-body[data-color="primary-light"]   { color: var(--tia-color-primary-light); }
.tia-body[data-color="primary-dark"]    { color: var(--tia-color-primary-dark); }
.tia-body[data-color="secondary"]       { color: var(--tia-color-secondary); }

.tia-body[data-max-lines] {
	display: -webkit-box;
	-webkit-line-clamp: var(--tia-text-max-lines, 3);
	line-clamp: var(--tia-text-max-lines, 3);
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tia-body a {
	color: var(--tia-color-primary);
	text-decoration: underline;
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
	transition: color var(--tia-duration-fast) var(--tia-ease-out);
}
.tia-body a:hover { color: var(--tia-color-primary-dark); }

.tia-body strong { font-weight: var(--tia-weight-bold); }
.tia-body em     { font-style: italic; }
.tia-body code {
	font-family: var(--tia-font-mono);
	font-size: 0.92em;
	padding: 0.1em 0.4em;
	background: var(--tia-color-bg-alt);
	border-radius: var(--tia-radius-sm);
}

/* ==========================================================================
   7. Image
   ========================================================================== */

.tia-image {
	display: block;
	position: relative;
	margin: 0 0 var(--tia-space-6);
	overflow: hidden;
	border-radius: var(--tia-radius-none);
	background: var(--tia-color-bg-alt);
}

.tia-image img {
	display: block;
	width: 100%;
	height: 100%;
	transition: transform var(--tia-duration-base) var(--tia-ease-out);
}

.tia-image[data-aspect="auto"]  { aspect-ratio: auto; }
.tia-image[data-aspect="1-1"]   { aspect-ratio: 1 / 1; }
.tia-image[data-aspect="4-3"]   { aspect-ratio: 4 / 3; }
.tia-image[data-aspect="3-4"]   { aspect-ratio: 3 / 4; }
.tia-image[data-aspect="16-9"]  { aspect-ratio: 16 / 9; }
.tia-image[data-aspect="9-16"]  { aspect-ratio: 9 / 16; }
.tia-image[data-aspect="21-9"]  { aspect-ratio: 21 / 9; }

.tia-image[data-fit="cover"] img   { object-fit: cover; }
.tia-image[data-fit="contain"] img { object-fit: contain; }

.tia-image[data-radius="sm"]   { border-radius: var(--tia-radius-sm); }
.tia-image[data-radius="md"]   { border-radius: var(--tia-radius-md); }
.tia-image[data-radius="lg"]   { border-radius: var(--tia-radius-lg); }
.tia-image[data-radius="full"] { border-radius: var(--tia-radius-full); }

/* ==========================================================================
   8. Button
   ========================================================================== */

.tia-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--tia-space-2);
	padding: 0.75em 1.5em;
	border: 1px solid transparent;
	border-radius: var(--tia-radius-md);
	font-family: var(--tia-font-body);
	font-weight: var(--tia-weight-medium);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--tia-duration-fast) var(--tia-ease-out),
	            color var(--tia-duration-fast) var(--tia-ease-out),
	            border-color var(--tia-duration-fast) var(--tia-ease-out),
	            transform var(--tia-duration-fast) var(--tia-ease-out);
	white-space: nowrap;
	user-select: none;
	will-change: transform;
}

.tia-btn[data-size="sm"] { font-size: var(--tia-text-sm); padding: 0.5em 1.1em; }
.tia-btn[data-size="md"] { font-size: var(--tia-text-md); padding: 0.75em 1.5em; }
.tia-btn[data-size="lg"] { font-size: var(--tia-text-lg); padding: 0.9em 1.85em; }

.tia-btn[data-variant="primary"] {
	background: var(--tia-color-primary);
	color: #fff;
	border-color: var(--tia-color-primary);
}
.tia-btn[data-variant="primary"]:hover {
	background: var(--tia-color-primary-dark);
	border-color: var(--tia-color-primary-dark);
}

.tia-btn[data-variant="secondary"] {
	background: var(--tia-color-secondary);
	color: var(--tia-color-bg);
	border-color: var(--tia-color-secondary);
}
.tia-btn[data-variant="secondary"]:hover {
	background: var(--tia-color-secondary-dark);
	border-color: var(--tia-color-secondary-dark);
}

.tia-btn[data-variant="ghost"] {
	background: transparent;
	color: var(--tia-color-text);
	border-color: var(--tia-color-border);
}
.tia-btn[data-variant="ghost"]:hover {
	border-color: var(--tia-color-text);
	background: var(--tia-color-bg-alt);
}

.tia-btn[data-variant="link"] {
	padding: 0;
	background: transparent;
	color: var(--tia-color-primary);
	border-color: transparent;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.tia-btn[data-variant="link"]:hover { color: var(--tia-color-primary-dark); }

.tia-btn__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	transition: transform var(--tia-duration-fast) var(--tia-ease-out);
}
.tia-btn__icon svg { width: 100%; height: 100%; }

.tia-btn[data-hover="directional"]:hover .tia-btn__icon,
.tia-btn[data-hover="both"]:hover .tia-btn__icon[data-icon="arrow"] {
	transform: translateX(4px);
}

/* ==========================================================================
   10. Accordion
   ========================================================================== */

.tia-accordion {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.tia-accordion__item {
	border: 0;
	background: transparent;
	overflow: hidden;
}

.tia-accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tia-space-4);
	padding: var(--tia-space-4) 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--tia-font-heading);
	letter-spacing: var(--tia-tracking-heading);
	font-weight: var(--tia-weight-medium);
	color: var(--tia-color-text);
	transition: color var(--tia-duration-fast) var(--tia-ease-out);
}

.tia-accordion__summary::-webkit-details-marker { display: none; }
.tia-accordion__summary:hover { color: var(--tia-color-primary); }

.tia-accordion__title { flex: 1; font-size: var(--tia-text-lg); }

.tia-accordion__icon {
	position: relative;
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}
.tia-accordion__icon::before,
.tia-accordion__icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: currentColor;
	transition: transform var(--tia-duration-base) var(--tia-ease-out);
	transform-origin: center;
}
.tia-accordion__icon::after {
	transform: translateY(-50%) rotate(90deg);
}
.tia-accordion__item[open] .tia-accordion__icon::after {
	transform: translateY(-50%) rotate(0deg);
}

.tia-accordion__panel {
	padding: 0 0 var(--tia-space-6);
	font-family: var(--tia-font-body);
	font-size: var(--tia-text-md);
	line-height: var(--tia-leading-body);
	color: var(--tia-color-text-muted);
}

.tia-accordion__panel a { color: var(--tia-color-primary); }

/* ---- variants ---- */
.tia-accordion[data-variant="plain"] .tia-accordion__item + .tia-accordion__item {
	border-top: 0;
}

.tia-accordion[data-variant="bordered"] .tia-accordion__item {
	border-top: 1px solid var(--tia-color-border);
}
.tia-accordion[data-variant="bordered"] .tia-accordion__item:last-child {
	border-bottom: 1px solid var(--tia-color-border);
}

.tia-accordion[data-variant="separated"] .tia-accordion__item + .tia-accordion__item {
	border-top: 1px solid var(--tia-color-border);
}

/* ==========================================================================
   11. Reveal animations (utilisées via JS IntersectionObserver)
   ========================================================================== */

[data-reveal] {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity var(--tia-duration-base) var(--tia-ease-out),
	            transform var(--tia-duration-base) var(--tia-ease-out);
}
[data-reveal].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

[data-reveal="clip"] {
	clip-path: inset(0 0 100% 0);
	transform: none;
	opacity: 1;
	transition: clip-path var(--tia-duration-slow) var(--tia-ease-out);
}
[data-reveal="clip"].is-revealed {
	clip-path: inset(0 0 0 0);
}

[data-reveal="fade"] { transform: none; }
[data-reveal="scale"] { transform: scale(0.96); }
[data-reveal="scale"].is-revealed { transform: scale(1); }

@media (prefers-reduced-motion: reduce) {
	[data-reveal] { opacity: 1; transform: none; transition: none; clip-path: none; }
}

/* ==========================================================================
   12. Erreur de rendu
   ========================================================================== */

.tia-page-error {
	padding: var(--tia-space-8);
	margin: var(--tia-space-8) auto;
	max-width: 800px;
	background: #fef2f2;
	border: 1px solid #fca5a5;
	border-radius: var(--tia-radius-md);
	color: #991b1b;
	font-family: var(--tia-font-body);
}

.tia-page-error code {
	display: block;
	font-family: var(--tia-font-mono);
	font-size: var(--tia-text-sm);
	padding: var(--tia-space-2) var(--tia-space-4);
	background: rgba(0, 0, 0, 0.05);
	border-radius: var(--tia-radius-sm);
	margin: var(--tia-space-1) 0;
}

/* ==========================================================================
   13. Bloc code / embed
   ========================================================================== */

.tia-embed { width: 100%; }
.tia-embed iframe { max-width: 100%; }

.tia-code {
	position: relative;
	background: #0e0f12;
	color: #e8eaee;
	border-radius: var(--tia-radius-md);
	overflow: auto;
	font-family: var(--tia-font-mono);
	font-size: var(--tia-text-sm);
}
.tia-code pre { margin: 0; padding: var(--tia-space-4) var(--tia-space-6); }
.tia-code code { font-family: inherit; white-space: pre; }
.tia-code[data-lang]::before {
	content: attr(data-lang);
	position: absolute; top: 0; right: 0;
	font-size: 0.7rem; text-transform: uppercase; letter-spacing: .08em;
	padding: 2px 8px; background: rgba(255,255,255,.08); border-bottom-left-radius: var(--tia-radius-sm);
	color: #9aa1ad;
}

/* ==========================================================================
   14. Bloc vidéo
   ========================================================================== */

.tia-video {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #000;
	border-radius: var(--tia-radius-md);
}
.tia-video[data-aspect="16-9"] { aspect-ratio: 16 / 9; }
.tia-video[data-aspect="4-3"]  { aspect-ratio: 4 / 3; }
.tia-video[data-aspect="1-1"]  { aspect-ratio: 1 / 1; }
.tia-video[data-aspect="21-9"] { aspect-ratio: 21 / 9; }
.tia-video[data-radius="none"] { border-radius: 0; }
.tia-video[data-radius="sm"]   { border-radius: var(--tia-radius-sm); }
.tia-video[data-radius="md"]   { border-radius: var(--tia-radius-md); }
.tia-video[data-radius="lg"]   { border-radius: var(--tia-radius-lg); }
.tia-video[data-radius="xl"]   { border-radius: var(--tia-radius-xl); }
.tia-video[data-radius="full"] { border-radius: var(--tia-radius-xl); }
.tia-video__iframe,
.tia-video__el {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	border: 0; object-fit: cover; display: block;
}

/* ==========================================================================
   15. Bloc icône
   ========================================================================== */

.tia-icon { line-height: 1; }
.tia-icon[data-align="left"]   { text-align: left; }
.tia-icon[data-align="center"] { text-align: center; }
.tia-icon[data-align="right"]  { text-align: right; }
.tia-icon i { display: inline-block; }
.tia-icon[data-size="sm"]  i { font-size: 1rem; }
.tia-icon[data-size="md"]  i { font-size: 1.5rem; }
.tia-icon[data-size="lg"]  i { font-size: 2rem; }
.tia-icon[data-size="xl"]  i { font-size: 3rem; }
.tia-icon[data-size="2xl"] i { font-size: 4rem; }
.tia-icon[data-size="3xl"] i { font-size: 5rem; }
.tia-icon[data-color="text"]            i { color: var(--tia-color-text); }
.tia-icon[data-color="text-muted"]      i { color: var(--tia-color-text-muted); }
.tia-icon[data-color="primary"]         i { color: var(--tia-color-primary); }
.tia-icon[data-color="primary-light"]   i { color: var(--tia-color-primary-light); }
.tia-icon[data-color="primary-dark"]    i { color: var(--tia-color-primary-dark); }
.tia-icon[data-color="secondary"]       i { color: var(--tia-color-secondary); }
.tia-icon[data-color="secondary-light"] i { color: var(--tia-color-secondary-light); }
.tia-icon[data-color="secondary-dark"]  i { color: var(--tia-color-secondary-dark); }
.tia-icon[data-color="bg"]              i { color: var(--tia-color-bg); }
.tia-icon[data-color="bg-alt"]          i { color: var(--tia-color-bg-alt); }
.tia-icon__link { color: inherit; text-decoration: none; }

/* ==========================================================================
   16. Bloc menu WordPress
   ========================================================================== */

.tia-menu { display: flex; align-items: center; gap: var(--tia-space-6); flex-wrap: wrap; }
.tia-menu[data-logo] .tia-menu__items { flex: 1; }
.tia-menu[data-logo="right"] { justify-content: space-between; }
.tia-menu__logo { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.tia-menu__logo img { display: block; }
.tia-menu__logo-text {
	font-family: var(--tia-font-heading); font-weight: var(--tia-weight-bold);
	font-size: var(--tia-text-lg); color: var(--tia-color-text);
}
.tia-menu .tia-menu__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: var(--tia-space-6); flex-wrap: wrap;
}
.tia-menu[data-layout="vertical"] .tia-menu__list { flex-direction: column; gap: var(--tia-space-2); }
.tia-menu[data-align="center"] .tia-menu__list { justify-content: center; }
.tia-menu[data-align="right"]  .tia-menu__list { justify-content: flex-end; }
.tia-menu .tia-menu__list a {
	color: var(--tia-color-text); text-decoration: none;
	font-family: var(--tia-font-body); font-weight: var(--tia-weight-medium);
	transition: color var(--tia-duration-fast) var(--tia-ease-out);
}
.tia-menu .tia-menu__list a:hover { color: var(--tia-color-primary); }
.tia-menu .sub-menu { list-style: none; margin: var(--tia-space-2) 0 0; padding: 0 0 0 var(--tia-space-4); }
.tia-menu__empty { color: var(--tia-color-text-muted); font-style: italic; }
.tia-cursor-coordinates {
	display: inline-flex;
	align-items: center;
	gap: .7em;
	white-space: nowrap;
	font-family: var(--tia-font-body);
	font-size: .75rem;
	line-height: 1;
	color: inherit;
}
.tia-cursor-coordinates[data-size="xs"] { font-size: .6875rem; }
.tia-cursor-coordinates[data-size="sm"] { font-size: .75rem; }
.tia-cursor-coordinates[data-size="md"] { font-size: .875rem; }
.tia-cursor-coordinates[data-align="center"] { justify-content: center; }
.tia-cursor-coordinates[data-align="right"] { justify-content: flex-end; }
.tia-cursor-coordinates b {
	font: inherit;
	font-weight: inherit;
	min-width: 4.4ch;
	display: inline-block;
	text-align: right;
}
.fw-menu-cursor-coords {
	display: inline-flex;
	align-items: center;
	margin-inline: -.15em .15em;
}

/* ==========================================================================
   17. Bloc témoignages
   ========================================================================== */

.tia-testimonials {
	display: grid;
	gap: var(--tia-space-6);
	grid-template-columns: repeat(var(--tia-testi-cols, 3), 1fr);
}
.tia-testimonials[data-cols="1"] { --tia-testi-cols: 1; }
.tia-testimonials[data-cols="2"] { --tia-testi-cols: 2; }
.tia-testimonials[data-cols="3"] { --tia-testi-cols: 3; }
.tia-testimonials[data-cols="4"] { --tia-testi-cols: 4; }
.tia-testimonials[data-layout="list"] { grid-template-columns: 1fr; }
.tia-testimonials[data-layout="carousel"] {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
	gap: var(--tia-space-6); padding-bottom: var(--tia-space-4);
}
.tia-testimonials[data-layout="carousel"] .tia-testimonial {
	flex: 0 0 min(360px, 80%); scroll-snap-align: start;
}
@media (max-width: 860px) {
	.tia-testimonials { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.tia-testimonials { grid-template-columns: 1fr; }
}

.tia-testimonial {
	margin: 0;
	background: var(--tia-color-bg-alt);
	border: 1px solid var(--tia-color-border);
	border-radius: var(--tia-radius-lg);
	padding: var(--tia-space-6);
	display: flex; flex-direction: column; gap: var(--tia-space-4);
}
.tia-testimonial__rating { color: #f5a623; display: flex; gap: 2px; font-size: 0.95rem; }
.tia-testimonial__rating .fa-regular { color: var(--tia-color-border); }
.tia-testimonial__quote {
	margin: 0; font-family: var(--tia-font-body); color: var(--tia-color-text);
	line-height: var(--tia-leading-body); font-size: var(--tia-text-md);
}
.tia-testimonial__quote::before { content: "“"; }
.tia-testimonial__quote::after  { content: "”"; }
.tia-testimonial__cite {
	display: flex; align-items: center; gap: var(--tia-space-3);
	margin-top: auto; font-style: normal;
}
.tia-testimonial__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.tia-testimonial__author { display: block; font-weight: var(--tia-weight-bold); color: var(--tia-color-text); }
.tia-testimonial__role   { display: block; font-size: var(--tia-text-sm); color: var(--tia-color-text-muted); }
.tia-testimonials__empty { color: var(--tia-color-text-muted); font-style: italic; }

/* ==========================================================================
   18. Bloc formulaire de contact
   ========================================================================== */

.tia-form { width: 100%; position: relative; }
.tia-form__fields { display: grid; gap: var(--tia-space-4); }
.tia-form__field { display: flex; flex-direction: column; gap: var(--tia-space-2); }
.tia-form__field label {
	font-family: var(--tia-font-body); font-weight: var(--tia-weight-medium);
	font-size: var(--tia-text-sm); color: var(--tia-color-text);
}
.tia-form__req { color: var(--tia-color-primary); }
.tia-form input,
.tia-form textarea,
.tia-form select {
	width: 100%; box-sizing: border-box;
	font: inherit; font-family: var(--tia-font-body);
	padding: var(--tia-space-3) var(--tia-space-4);
	border: 1px solid var(--tia-color-border);
	border-radius: var(--tia-radius-md);
	background: #fff; color: var(--tia-color-text);
	transition: border-color var(--tia-duration-fast) var(--tia-ease-out);
}
.tia-form input:focus,
.tia-form textarea:focus,
.tia-form select:focus { outline: 0; border-color: var(--tia-color-primary); }
.tia-form textarea { resize: vertical; min-height: 120px; }
.tia-form__consent { margin-top: var(--tia-space-4); font-size: var(--tia-text-sm); color: var(--tia-color-text-muted); }
.tia-form__consent label { display: flex; gap: var(--tia-space-2); align-items: flex-start; }
.tia-form__actions { margin-top: var(--tia-space-6); }
.tia-form__actions .tia-btn { cursor: pointer; border: 0; }
.tia-form button.is-loading { opacity: .6; pointer-events: none; }
.tia-form__msg {
	margin-top: var(--tia-space-4); padding: var(--tia-space-3) var(--tia-space-4);
	border-radius: var(--tia-radius-md); font-size: var(--tia-text-sm);
}
.tia-form__msg.is-success { background: #ecfdf3; color: #1a7f37; border: 1px solid #abefc6; }
.tia-form__msg.is-error   { background: #fef2f2; color: #b32d2e; border: 1px solid #fca5a5; }

/* Fond vidéo (style.bgType = "video") : <video> injecté par le runtime,
   placé derrière le contenu de l'élément hôte (qui passe en position:relative). */
.tia-bgvideo {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; z-index: 0; pointer-events: none;
}
[data-tia-bgvideo] > *:not(.tia-bgvideo) { position: relative; z-index: 1; }

/* ==========================================================================
   Formulaire enrichi : grille de largeurs, états de validation, groupes
   ========================================================================== */
.tia-form__fields { grid-template-columns: repeat(2, 1fr); }
.tia-form__field { gap: var(--tia-space-2); position: relative; }
.tia-form__field[data-width="full"] { grid-column: 1 / -1; }
.tia-form__field[data-width="half"] { grid-column: span 1; }
@media (max-width: 640px) { .tia-form__field[data-width="half"] { grid-column: 1 / -1; } }
.tia-form__control { position: relative; }
.tia-form__help { color: var(--tia-color-text-muted); font-size: var(--tia-text-sm); }
.tia-form__check, .tia-form__choice { display: flex; gap: var(--tia-space-2); align-items: flex-start; cursor: pointer; font-size: var(--tia-text-sm); }
.tia-form__group { display: flex; flex-direction: column; gap: var(--tia-space-2); }
.tia-form__check input, .tia-form__choice input { width: auto; margin-top: 3px; flex: none; }
/* États de validation (posés par le runtime sur [data-validate]) */
.tia-form__field.is--error input,
.tia-form__field.is--error textarea,
.tia-form__field.is--error select { border-color: #ef4444; }
.tia-form__field.is--success input:not([type="checkbox"]):not([type="radio"]),
.tia-form__field.is--success textarea,
.tia-form__field.is--success select { border-color: #22c55e; }
.tia-form__field.is--error::after,
.tia-form__field.is--success::after {
	content: ""; position: absolute; right: 12px; top: 32px; width: 16px; height: 16px;
	background-repeat: no-repeat; background-position: center; background-size: contain; pointer-events: none;
}
.tia-form__field[data-type="textarea"].is--error::after,
.tia-form__field[data-type="textarea"].is--success::after { top: 14px; }
.tia-form__field.is--success::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); }
.tia-form__field.is--error::after   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E"); }

/* ==========================================================================
   Lightbox (image data-tia-zoom)
   ========================================================================== */
.tia-image[data-tia-zoom] { cursor: zoom-in; }
.tia-lightbox {
	position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
	padding: clamp(16px, 5vw, 64px); background: rgba(0,0,0,.88);
	opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease; cursor: zoom-out;
}
.tia-lightbox.is-open { opacity: 1; visibility: visible; }
.tia-lightbox__img {
	max-width: 100%; max-height: 100%; border-radius: var(--tia-radius-md, 8px);
	transform: scale(.94); transition: transform .3s cubic-bezier(.16,1,.3,1); user-select: none;
}
.tia-lightbox.is-open .tia-lightbox__img { transform: scale(1); }
.tia-lightbox__close {
	position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.12); color: #fff; font-size: 26px; line-height: 1; cursor: pointer;
}
.tia-lightbox__close:hover { background: rgba(255,255,255,.24); }

/* ==========================================================================
   Modale (bouton action="modal")
   ========================================================================== */
.tia-modal {
	position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center;
	padding: clamp(16px, 4vw, 48px); opacity: 0; transition: opacity .22s ease;
}
.tia-modal.is-open { opacity: 1; }
.tia-modal[hidden] { display: none; }
.tia-modal__backdrop { position: absolute; inset: 0; background: rgba(10,12,16,.6); cursor: pointer; }
.tia-modal__card {
	position: relative; z-index: 1; width: 100%; max-height: 90vh; overflow: auto;
	background: var(--tia-color-bg, #fff); color: var(--tia-color-text, #14161b);
	border-radius: var(--tia-radius-lg, 16px); padding: clamp(24px, 4vw, 48px);
	box-shadow: 0 24px 60px rgba(0,0,0,.28); transform: translateY(12px); transition: transform .25s cubic-bezier(.16,1,.3,1);
}
.tia-modal.is-open .tia-modal__card { transform: translateY(0); }
.tia-modal[data-width="sm"] .tia-modal__card { max-width: 28rem; }
.tia-modal[data-width="md"] .tia-modal__card { max-width: 40rem; }
.tia-modal[data-width="lg"] .tia-modal__card { max-width: 56rem; }
.tia-modal__title { margin: 0 0 var(--tia-space-4); font-family: var(--tia-font-heading); }
.tia-modal__body > *:first-child { margin-top: 0; }
.tia-modal__body img { max-width: 100%; height: auto; border-radius: var(--tia-radius-md, 8px); }
.tia-modal__close {
	position: absolute; top: 14px; right: 16px; width: 38px; height: 38px; border: 0; border-radius: 50%;
	background: transparent; color: var(--tia-color-text-muted, #6b7280); font-size: 26px; line-height: 1; cursor: pointer;
}
.tia-modal__close:hover { background: rgba(0,0,0,.06); color: var(--tia-color-text, #14161b); }
@media (prefers-reduced-motion: reduce) {
	.tia-lightbox, .tia-lightbox__img, .tia-modal, .tia-modal__card { transition: none; }
}

/* ==========================================================================
   Slider (carrousel)
   ========================================================================== */
.tia-slider { position: relative; }
.tia-slider__viewport { overflow: hidden; width: 100%; }
.tia-slider__track { display: flex; gap: 0; transition: transform .5s cubic-bezier(.16,1,.3,1); will-change: transform; }
.tia-slider__slide { flex: 0 0 100%; min-width: 0; margin: 0; position: relative; }
.tia-slider[data-per-view="2"] .tia-slider__slide { flex-basis: 50%; }
.tia-slider[data-per-view="3"] .tia-slider__slide { flex-basis: 33.3333%; }
.tia-slider[data-per-view="4"] .tia-slider__slide { flex-basis: 25%; }
.tia-slider[data-aspect="16-9"] .tia-slider__slide { aspect-ratio: 16/9; }
.tia-slider[data-aspect="4-3"]  .tia-slider__slide { aspect-ratio: 4/3; }
.tia-slider[data-aspect="1-1"]  .tia-slider__slide { aspect-ratio: 1/1; }
.tia-slider[data-aspect="3-4"]  .tia-slider__slide { aspect-ratio: 3/4; }
.tia-slider[data-aspect="9-16"] .tia-slider__slide { aspect-ratio: 9/16; }
.tia-slider[data-aspect="21-9"] .tia-slider__slide { aspect-ratio: 21/9; }
.tia-slider__slide[data-kind="image"] > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tia-slider__slide[data-fit="contain"] > img { object-fit: contain; }
.tia-slider__caption {
	position: absolute; left: 0; right: 0; bottom: 0; padding: var(--tia-space-4);
	background: linear-gradient(transparent, rgba(0,0,0,.6)); color: #fff; font-size: var(--tia-text-sm);
}
.tia-slider__slide[data-kind="text"] { display: flex; align-items: center; }
.tia-slider__textwrap { width: 100%; padding: var(--tia-space-8) var(--tia-space-6); }
.tia-slider__slide[data-align="center"] .tia-slider__textwrap { text-align: center; }
.tia-slider__slide[data-align="right"]  .tia-slider__textwrap { text-align: right; }
.tia-slider__h { font-family: var(--tia-font-heading); font-size: var(--tia-text-2xl); margin: 0 0 var(--tia-space-3); }
.tia-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px;
	border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: #14161b; cursor: pointer;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.tia-slider__arrow[data-dir="prev"] { left: 12px; }
.tia-slider__arrow[data-dir="next"] { right: 12px; }
.tia-slider__arrow:hover { background: #fff; }
.tia-slider__dots { display: flex; gap: 8px; justify-content: center; margin-top: var(--tia-space-4); }
.tia-slider__dot { width: 9px; height: 9px; border-radius: 50%; border: 0; background: var(--tia-color-text-muted); opacity: .4; cursor: pointer; padding: 0; }
.tia-slider__dot.is-active { opacity: 1; background: var(--tia-color-primary); }

/* ==========================================================================
   Pricing
   ========================================================================== */
.tia-pricing { display: grid; gap: var(--tia-space-6); grid-template-columns: repeat(var(--tia-grid, 3), 1fr); }
.tia-pricing[data-cols="1"] { grid-template-columns: 1fr; }
.tia-pricing[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
.tia-pricing[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
.tia-pricing[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .tia-pricing[data-cols] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .tia-pricing[data-cols] { grid-template-columns: 1fr; } }
.tia-price__card {
	position: relative; display: flex; flex-direction: column; gap: var(--tia-space-3);
	padding: var(--tia-space-6); border: 1px solid var(--tia-color-border, #e3e8ee);
	border-radius: var(--tia-radius-lg, 16px); background: var(--tia-color-bg, #fff);
}
.tia-price__card.is-featured { border-color: var(--tia-color-primary); box-shadow: 0 12px 36px rgba(0,0,0,.1); transform: translateY(-4px); }
.tia-price__badge {
	position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
	background: var(--tia-color-primary); color: #fff; font-size: var(--tia-text-xs, .75rem);
	padding: 4px 12px; border-radius: 100px; font-weight: var(--tia-weight-semibold, 600);
}
.tia-price__name { font-family: var(--tia-font-heading); font-size: var(--tia-text-lg); margin: 0; }
.tia-price__amount { display: flex; align-items: baseline; gap: 6px; }
.tia-price__num { font-size: var(--tia-text-3xl, 2.25rem); font-weight: var(--tia-weight-bold, 700); font-family: var(--tia-font-heading); }
.tia-price__period { color: var(--tia-color-text-muted); font-size: var(--tia-text-sm); }
.tia-price__desc { color: var(--tia-color-text-muted); margin: 0; font-size: var(--tia-text-sm); }
.tia-price__feats { list-style: none; margin: var(--tia-space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--tia-space-2); }
.tia-price__feats li { display: flex; gap: 8px; align-items: flex-start; font-size: var(--tia-text-sm); }
.tia-price__ic { color: var(--tia-color-primary); flex: none; margin-top: 2px; }
.tia-price__cta { margin-top: auto; align-self: flex-start; cursor: pointer; }
.tia-price__card.is-featured .tia-price__cta { align-self: stretch; text-align: center; justify-content: center; }

/* ==========================================================================
   Comparison (tableau comparatif) — reconstruit, tokens, var(--tia-cmp-cols)
   ========================================================================== */
.tia-cmp { width: 100%; position: relative; --tia-cmp-cols: 4; }
.tia-cmp__head { display: flex; background: var(--tia-color-bg, #fff); border-bottom: 1px solid var(--tia-color-border, #e3e8ee); }
.tia-cmp[data-sticky="1"] .tia-cmp__head { position: sticky; top: 0; z-index: 5; }
.tia-cmp__corner { flex: 1; min-width: 0; max-width: calc(100% / (var(--tia-cmp-cols) + 1)); }
.tia-cmp__cols { flex: var(--tia-cmp-cols); display: flex; max-width: calc(var(--tia-cmp-cols) * 100% / (var(--tia-cmp-cols) + 1)); }
.tia-cmp__col {
	flex: 1; min-width: 0; max-width: calc(100% / var(--tia-cmp-cols)); display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 4px; text-align: center; padding: var(--tia-space-4) var(--tia-space-2);
}
.tia-cmp__name { font-family: var(--tia-font-heading); font-weight: var(--tia-weight-semibold, 600); font-size: var(--tia-text-lg); }
.tia-cmp__meta { color: var(--tia-color-text-muted); font-size: var(--tia-text-sm); }
.tia-cmp__row { display: flex; border-bottom: 1px solid var(--tia-color-border, #e3e8ee); }
.tia-cmp[data-stripe="1"] .tia-cmp__row:nth-of-type(even) { background: var(--tia-color-bg-alt, #f6f9fc); }
.tia-cmp__rowname {
	flex: 1; max-width: calc(100% / (var(--tia-cmp-cols) + 1)); display: flex; align-items: center;
	padding: var(--tia-space-3) var(--tia-space-4); font-weight: var(--tia-weight-medium, 500);
}
.tia-cmp__cells { flex: var(--tia-cmp-cols); display: flex; max-width: calc(var(--tia-cmp-cols) * 100% / (var(--tia-cmp-cols) + 1)); }
.tia-cmp__cell {
	flex: 1; min-width: 0; max-width: calc(100% / var(--tia-cmp-cols)); display: flex; align-items: center;
	justify-content: center; text-align: center; padding: var(--tia-space-4) var(--tia-space-2);
}
.tia-cmp__val { color: var(--tia-color-text-muted); font-size: var(--tia-text-sm); }
.tia-cmp__ic.is-yes { color: var(--tia-color-primary); }
.tia-cmp__ic.is-no  { color: var(--tia-color-text-muted); opacity: .5; }
.tia-cmp__pill {
	background: var(--tia-color-bg-alt, #eef2ff); color: var(--tia-color-primary); border-radius: 100px;
	padding: 4px 10px; font-size: var(--tia-text-xs, .75rem); font-weight: var(--tia-weight-medium, 500);
}
@media (max-width: 767px) {
	.tia-cmp__corner { display: none; }
	.tia-cmp__cols, .tia-cmp__cells, .tia-cmp__rowname { max-width: none; }
	.tia-cmp__row { flex-direction: column; }
	.tia-cmp__rowname { padding-bottom: var(--tia-space-2); }
}

/* ==========================================================================
   Booking (prise de rendez-vous)
   ========================================================================== */
.tia-booking { width: 100%; }
.tia-booking__frame { width: 100%; border: 0; border-radius: var(--tia-radius-md, 8px); }
.tia-booking__empty { color: var(--tia-color-text-muted); font-style: italic; }
.tia-booking-overlay {
	position: fixed; inset: 0; z-index: 9999; background: rgba(10,12,16,.7);
	display: flex; align-items: center; justify-content: center; padding: clamp(12px, 4vw, 48px);
}
.tia-booking-overlay iframe {
	width: min(900px, 100%); height: min(80vh, 800px); border: 0; border-radius: var(--tia-radius-lg, 16px); background: #fff;
}
.tia-booking-overlay__close {
	position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.15); color: #fff; font-size: 26px; cursor: pointer;
}

/* ==========================================================================
   Blocs DYNAMIQUES (template d'article) + utilitaires lecture
   ========================================================================== */

/* — Titre d'article — (hérite de .tia-heading) */
.tia-post-title { margin: 0 0 var(--tia-space-4, 1rem); }
.tia-post-title a { color: inherit; text-decoration: none; }
.tia-post-title a:hover { text-decoration: underline; }

/* — Image à la une — (hérite de .tia-image) */
.tia-post-image { margin: 0 0 var(--tia-space-5, 1.5rem); }
.tia-post-image__ph {
	display: flex; align-items: center; justify-content: center;
	width: 100%; min-height: 220px; aspect-ratio: 16/9;
	background: repeating-linear-gradient(135deg, var(--tia-color-bg-alt, #f2f3f5), var(--tia-color-bg-alt, #f2f3f5) 12px, var(--tia-color-bg, #fff) 12px, var(--tia-color-bg, #fff) 24px);
	color: var(--tia-color-text-muted, #888); font-size: .9rem; font-weight: 600;
	border: 1px dashed var(--tia-color-border, #d8dce2); border-radius: inherit;
}

/* — Contenu d'article (rich text) — */
.tia-post-content { color: var(--tia-color-text, #1b1d22); line-height: 1.65; }
.tia-post-content[data-size="sm"] { font-size: .9375rem; }
.tia-post-content[data-size="md"] { font-size: 1.0625rem; }
.tia-post-content[data-size="lg"] { font-size: 1.1875rem; }
.tia-post-content > * { margin-top: 0; }
.tia-post-content > * + * { margin-top: var(--tia-space-4, 1rem); }
.tia-post-content h2 { font-size: 1.9em; font-weight: 600; line-height: 1.2; margin-top: 1.8em; letter-spacing: -.01em; scroll-margin-top: 90px; }
.tia-post-content h3 { font-size: 1.35em; font-weight: 600; line-height: 1.3; margin-top: 1.6em; scroll-margin-top: 90px; }
.tia-post-content h4 { font-size: 1.1em; font-weight: 600; margin-top: 1.4em; scroll-margin-top: 90px; }
.tia-post-content p { margin-bottom: 0; }
.tia-post-content img { max-width: 100%; height: auto; border-radius: var(--tia-radius-md, 8px); }
.tia-post-content blockquote {
	margin: var(--tia-space-5, 1.5rem) 0; padding-left: 1em;
	border-left: 3px solid var(--tia-color-primary, #6961fe);
	color: var(--tia-color-text-muted, #555); font-size: 1.1em; font-style: italic;
}
.tia-post-content ul, .tia-post-content ol { padding-left: 1.4em; }
.tia-post-content li + li { margin-top: .4em; }
.tia-post-content code {
	background: var(--tia-color-bg-alt, #eef0f3); border-radius: 4px; padding: .12em .42em; font-size: .9em;
}
.tia-post-content a { color: var(--tia-color-primary, #6961fe); }
.tia-post-content[data-dropcap="1"] > p:first-of-type::first-letter {
	float: left; font-size: 3.2em; line-height: .8; font-weight: 700;
	padding: .05em .12em 0 0; color: var(--tia-color-primary, #6961fe);
}

/* — Méta d'article — */
.tia-post-meta {
	display: flex; align-items: center; gap: .6em; flex-wrap: wrap;
	color: var(--tia-color-text-muted, #6b7280); font-size: .9rem; margin: 0 0 var(--tia-space-4, 1rem);
}
.tia-post-meta[data-align="center"] { justify-content: center; text-align: center; }
.tia-post-meta[data-align="right"] { justify-content: flex-end; }
.tia-post-meta__avatar { border-radius: 50%; width: 32px; height: 32px; object-fit: cover; }
.tia-post-meta__avatar--ph { background: var(--tia-color-bg-alt, #e7e9ee); display: inline-block; }
.tia-post-meta__items { display: inline-flex; align-items: center; gap: .5em; flex-wrap: wrap; }
.tia-post-meta__sep { opacity: .5; }
.tia-post-meta__author { font-weight: 600; color: var(--tia-color-text, #1b1d22); }

/* — Table des matières — */
.tia-toc { font-size: .9rem; }
.tia-toc[data-sticky="1"] { position: sticky; top: var(--tia-space-6, 2rem); align-self: flex-start; }
.tia-toc__label {
	margin: 0 0 .6em; font-size: .72rem; text-transform: uppercase; letter-spacing: .09em;
	font-weight: 700; color: var(--tia-color-text-muted, #8a909a);
}
.tia-toc__list { display: flex; flex-direction: column; counter-reset: tia-toc; }
.tia-toc__link {
	display: block; padding: .4em .2em .4em 1em;
	border-left: 2px solid var(--tia-color-border, #e3e8ee);
	color: var(--tia-color-text-muted, #8a909a); text-decoration: none;
	line-height: 1.35; transition: color .2s, border-color .2s;
}
.tia-toc__link:hover { color: var(--tia-color-text, #1b1d22); }
.tia-toc__link[data-tia-toc-status="active"] {
	color: var(--tia-color-primary, #6961fe); border-left-color: var(--tia-color-primary, #6961fe); font-weight: 600;
}
.tia-toc__link[data-toc-depth="3"] { padding-left: 1.9em; font-size: .95em; }
.tia-toc__link[data-toc-depth="4"] { padding-left: 2.7em; font-size: .9em; }
.tia-toc[data-numbered="1"] .tia-toc__link[data-toc-depth="2"]::before {
	counter-increment: tia-toc; content: counter(tia-toc) ". "; opacity: .6;
}

/* — Temps de lecture — */
.tia-readtime {
	display: flex; align-items: center; gap: .4em; flex-wrap: wrap;
	color: var(--tia-color-text-muted, #6b7280); font-size: .9rem; margin: 0 0 var(--tia-space-3, .75rem);
}
.tia-readtime[data-align="center"] { justify-content: center; }
.tia-readtime[data-align="right"] { justify-content: flex-end; }
.tia-readtime__value { font-weight: 700; color: var(--tia-color-text, #1b1d22); }
.tia-readtime__icon { opacity: .7; }

/* — Barre de progression de lecture — */
.tia-progress {
	position: fixed; left: 0; width: 100%;
	height: var(--tia-progress-h, 4px); z-index: 9998; pointer-events: none;
	background: color-mix(in srgb, var(--tia-progress-color, var(--tia-color-primary)) 18%, transparent);
}
.tia-progress[data-position="top"] { top: 0; }
.tia-progress[data-position="bottom"] { bottom: 0; }
.tia-progress[data-click-scroll="1"] { pointer-events: auto; cursor: pointer; }
.tia-progress__bar {
	display: block; width: 100%; height: 100%;
	background: var(--tia-progress-color, var(--tia-color-primary, #6961fe));
	transform: scaleX(0); transform-origin: 0 50%; will-change: transform;
}

/* Page loading: Crisp loading, Theme IA namespaced */
html.tia-has-plf body {
	position: relative;
	min-height: 100%;
	background: transparent;
}
html.tia-has-plf {
	background: #000;
}
html.tia-has-plf main.tia-page,
html.tia-has-plf .tia-chrome {
	position: relative;
	z-index: auto;
	isolation: auto !important;
}
html.tia-has-plf main.tia-page {
	background: transparent;
}
html.tia-has-plf main.tia-page > .tia-section:first-child,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container > .tia-row:first-child,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container > .tia-row:first-child > .tia-col:first-child {
	background: transparent !important;
	background-image: none !important;
	isolation: auto !important;
}
html.tia-has-plf main.tia-page > .tia-section:first-child,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container > .tia-row:first-child,
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container > .tia-row:first-child > .tia-col:first-child {
	height: 100dvh !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;
	max-height: 100dvh;
	overflow: visible;
}
html.tia-has-plf main.tia-page > .tia-section:first-child {
	position: relative;
	top: auto;
	z-index: 1;
	overflow: hidden !important;
	isolation: auto !important;
}
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-container {
	position: relative;
	z-index: 2;
}
.tia-hero-blend-backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: hidden;
	background: #000;
}
.tia-hero-blend-backdrop > * {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: var(--tia-plc-filter, grayscale(1));
}
.tia-plf {
	position: fixed; inset: 0 auto auto 0; z-index: 0;
	width: 100%; height: 100vh; overflow: hidden;
	pointer-events: none; background: #000;
}
html.tia-has-plf main.tia-page > .tia-section:first-child > .tia-plf,
.tia-plf.tia-plf--hero {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
	overflow: hidden !important;
	pointer-events: none !important;
	background: #000 !important;
}
.tia-plf__media {
	display: block; width: 100%; height: 100%;
	object-fit: cover;
	filter: var(--tia-plc-filter, grayscale(1));
}
[data-tia-id="fw_hero_title"],
[data-tia-id="fw_header_menu"],
html.tia-has-plf [data-tia-id="fw_hero_title"],
html.tia-has-plf [data-tia-id="fw_header_menu"] {
	position: relative;
	z-index: 4;
	mix-blend-mode: difference !important;
	isolation: auto !important;
}
[data-tia-id="fw_hero_title"],
html.tia-has-plf [data-tia-id="fw_hero_title"] {
	z-index: 100006;
	pointer-events: none !important;
}
[data-tia-id="fw_header_menu"],
html.tia-has-plf [data-tia-id="fw_header_menu"] {
	position: relative;
	z-index: 100010;
	pointer-events: auto !important;
}
[data-tia-id="fw_header_menu"] *,
html.tia-has-plf [data-tia-id="fw_header_menu"] * {
	pointer-events: auto !important;
}
[data-tia-id="fw_hero_title"] .tia-anim-text-part,
[data-tia-id="fw_hero_title"] .fw-title-line,
[data-tia-id="fw_hero_title"] .fw-title-cross,
[data-tia-id="fw_header_menu"] .tia-anim-text-part,
[data-tia-id="fw_header_menu"] .tia-menu__items,
[data-tia-id="fw_header_menu"] .tia-menu__logo,
[data-tia-id="fw_header_menu"] .tia-menu__list,
[data-tia-id="fw_header_menu"] .fw-menu-cursor-coords,
[data-tia-id="fw_header_menu"] .tia-cursor-coordinates,
[data-tia-id="fw_header_menu"] .tia-menu__list a,
[data-tia-id="fw_header_menu"] .tia-menu__logo img,
html.tia-has-plf [data-tia-id="fw_hero_title"] .tia-anim-text-part,
html.tia-has-plf [data-tia-id="fw_hero_title"] .fw-title-line,
html.tia-has-plf [data-tia-id="fw_hero_title"] .fw-title-cross,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-anim-text-part,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__items,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__logo,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__list,
html.tia-has-plf [data-tia-id="fw_header_menu"] .fw-menu-cursor-coords,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-cursor-coordinates,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__list a,
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__logo img {
	mix-blend-mode: difference !important;
	isolation: auto !important;
}
[data-tia-id="fw_hero_title"],
[data-tia-id="fw_hero_title"] .tia-anim-text-part,
[data-tia-id="fw_header_menu"],
[data-tia-id="fw_header_menu"] .tia-menu__list a,
html.tia-has-plf [data-tia-id="fw_hero_title"],
html.tia-has-plf [data-tia-id="fw_hero_title"] .tia-anim-text-part,
html.tia-has-plf [data-tia-id="fw_header_menu"],
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__list a {
	color: #fff !important;
}
html.tia-has-plf [data-tia-id="fw_hero_title"] .tia-anim-text-part:first-child {
	display: flex !important;
	align-items: center;
	gap: .12em;
	width: 100%;
}
[data-tia-id="fw_hero_title"] .fw-title-line {
	width: 100%;
}
[data-tia-id="fw_hero_title"] .fw-title-line--first {
	display: flex;
	align-items: center;
	gap: .12em;
}
[data-tia-id="fw_hero_title"] .fw-title-line--second {
	display: block;
}
[data-tia-id="fw_hero_title"] br {
	display: block;
}
[data-fit-width] {
	display: inline-block !important;
	white-space: nowrap;
	width: auto !important;
	margin: 0;
}
[data-tia-id="fw_hero_title"] .fw-title-cross {
	display: block;
	flex: 0 0 auto;
	width: clamp(64px, 10vw, 190px);
	height: auto;
	margin-left: auto;
	color: currentColor;
	fill: currentColor;
	transform: translateY(.07em);
}
[data-tia-id="fw_hero_title"] .fw-title-cross path {
	fill: currentColor;
}
html.tia-has-plf [data-tia-id="fw_header_menu"] .tia-menu__logo img {
	filter: invert(1);
}
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"],
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"] *,
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"] .fw-title-cross,
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"] .fw-title-cross *,
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_header_menu"],
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_header_menu"] * {
	color: #fff !important;
	mix-blend-mode: difference !important;
	isolation: auto !important;
}
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"] .fw-title-cross,
html.tia-has-plf main.tia-page > .tia-section:first-child [data-tia-id="fw_hero_title"] .fw-title-cross path {
	fill: #fff !important;
	stroke: #fff !important;
}
html.tia-plc-lock,
html.tia-plc-lock body {
	height: 100%;
	overflow: hidden;
}
.tia-plc {
	position: fixed; inset: 0; z-index: 100000;
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100dvh; overflow: hidden;
	background: var(--tia-plc-bg, #000); color: #fff;
	font-size: clamp(8px, 1vw, 14px);
	opacity: 1; visibility: visible;
	transition: opacity var(--tia-plc-fade-out, .24s) ease, visibility var(--tia-plc-fade-out, .24s) ease;
}
.tia-plc--done,
.tia-plc--complete {
	opacity: 0;
	pointer-events: none;
}
.tia-plc__wrap {
	position: relative; display: flex; align-items: center; justify-content: center;
	font-size: inherit;
}
.tia-plc__groups {
	position: relative; overflow: hidden;
}
.tia-plc__group {
	position: relative; display: flex; align-items: center; justify-content: center;
	border-radius: .5em;
}
.tia-plc__group--duplicate {
	position: absolute; inset: 0 auto auto 0;
}
.tia-plc__group--relative {
	position: relative; left: 100%;
}
.tia-plc__item {
	position: relative; padding-left: 1em; padding-right: 1em;
	will-change: transform;
}
.tia-plc:not(.tia-plc--started) .tia-plc__item {
	transform: translateX(500%);
}
.tia-plc__media {
	position: relative; display: flex; align-items: center; justify-content: center;
	width: var(--tia-plc-tile, 12em); height: var(--tia-plc-tile, 12em); overflow: hidden;
	border-radius: .5em; background: var(--tia-plc-card-bg, #000);
	will-change: width, height, border-radius, transform;
}
.tia-plc__media--scaling {
	z-index: 2;
	border-radius: 0;
	transition: border-radius .5s cubic-bezier(1, 0, 0, 1);
}
.tia-plc__media--radius {
	border-radius: .5em;
}
.tia-plc__img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; border-radius: inherit;
	transform: scale(var(--tia-plc-media-scale, 1.08));
	filter: var(--tia-plc-filter, grayscale(1));
	will-change: transform;
}
.tia-plc__fade {
	position: absolute; top: -1px; left: -1px;
	width: 5em; height: calc(100% + 2px);
	pointer-events: none;
	background-image: linear-gradient(90deg, var(--tia-plc-bg, #000) 20%, transparent);
}
.tia-plc__fade--right {
	left: auto; right: -1px; transform: scaleX(-1);
}
@media (max-width: 700px) {
	.tia-plc { font-size: 2.4vw; }
	.tia-plc__item { padding-left: .7em; padding-right: .7em; }
	.tia-plc__media { width: calc(var(--tia-plc-tile, 12em) * .85); height: calc(var(--tia-plc-tile, 12em) * .85); }
}

/* Custom cursor: Codrops crosshair */
@media (any-pointer: fine) {
	.tia-custom-cursor {
		position: fixed; inset: 0 auto auto 0; z-index: 100005;
		display: block; pointer-events: none; opacity: 0;
		transition: none;
		color: #fff;
		mix-blend-mode: difference !important;
		isolation: auto !important;
		--tia-cursor-stroke: #fff;
		--tia-cursor-stroke-width: 1.5px;
	}
	.tia-custom-cursor.is-visible { opacity: 1; }
	.tia-custom-cursor__line {
		position: fixed; display: block; will-change: transform;
		mix-blend-mode: difference !important;
		isolation: auto !important;
	}
	.tia-custom-cursor__line--horizontal {
		top: -10px; left: 0; width: 100vw; height: 20px;
	}
	.tia-custom-cursor__line--vertical {
		top: 0; left: -10px; width: 20px; height: 100vh;
	}
	.tia-custom-cursor__line-element {
		fill: none;
		stroke: var(--tia-cursor-stroke);
		stroke-width: var(--tia-cursor-stroke-width);
		mix-blend-mode: difference !important;
		isolation: auto !important;
	}
	.tia-custom-cursor__core {
		position: fixed; top: 0; left: 0;
		width: 12px; height: 12px; background: #fff;
		box-shadow: none;
		transform: translate3d(-999px, -999px, 0) translate(-50%, -50%);
		will-change: transform;
		mix-blend-mode: difference !important;
		isolation: auto !important;
	}
	.tia-custom-cursor.is-noisy .tia-custom-cursor__line--horizontal {
		filter: url(#tia-cursor-noise-x);
	}
	.tia-custom-cursor.is-noisy .tia-custom-cursor__line--vertical {
		filter: url(#tia-cursor-noise-y);
	}
	[data-tia-id="fw_header_menu"] .tia-menu-char {
		display: inline-block;
		will-change: transform, color;
	}
	.tia-cursor-zone-active,
	.tia-cursor-zone-active * {
		cursor: none !important;
	}
}

@media (any-pointer: coarse) {
	.tia-custom-cursor { display: none !important; }
}

/* Smoke / fluid cursor */
.tia-fluid-cursor,
.tia-smoke-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0;
}
.tia-fluid-cursor {
	opacity: var(--tia-fluid-opacity, .16);
	mix-blend-mode: screen;
}
#fluid.tia-fluid-cursor {
	top: 0;
	left: 0;
	opacity: 0;
	transition: opacity .18s ease;
}
body.tia-fluid-cursor-active #fluid.tia-fluid-cursor {
	opacity: var(--tia-fluid-opacity, .14);
}
.tia-smoke-canvas {
	opacity: var(--tia-smoke-opacity, .62);
	filter: blur(var(--tia-smoke-blur, 0));
}
.tia-fluid-cursor--global {
	position: fixed;
	width: 100dvw;
	height: 100dvh;
	z-index: 0;
}
.tia-fluid-cursor--local {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
}
[data-tia-cursor="fluid-smoke"],
.fw-story-section {
	position: relative;
	overflow: hidden;
}
.tia-parallax-under,
.tia-stack-under {
	position: relative;
	top: auto;
	height: 100dvh !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;
	z-index: 1;
	transform: none !important;
	will-change: auto;
	overflow: hidden;
	isolation: auto !important;
}
.tia-parallax-over,
.tia-stack-over {
	position: relative;
	z-index: 100020;
	margin-top: -1px;
	padding-top: 0;
	box-shadow: none;
	transform: translate3d(0,0,0);
	will-change: transform;
}
.fw-story-section {
	background: #000 !important;
	color: #fff;
	--tia-fluid-color: #202020;
	--tia-fluid-opacity: .14;
	--tia-fluid-radius: .18;
	--tia-fluid-force: 3000;
	--tia-smoke-color: 210,210,210;
	--tia-smoke-opacity: .78;
	--tia-smoke-particle-opacity: .28;
	--tia-smoke-density: 150;
	--tia-smoke-volume: 1.12;
	--tia-smoke-depth: 1000;
	--tia-smoke-rotation: .2;
	--tia-smoke-blur: 0;
	isolation: isolate;
	padding-top: 0 !important;
}
.fw-story-section::before {
	content: none !important;
	position: absolute;
	inset: -22% -12%;
	z-index: 0;
	pointer-events: none;
	opacity: .82;
	background:
		radial-gradient(ellipse at 16% 18%, rgba(255,255,255,.32), rgba(255,255,255,.08) 24%, transparent 52%),
		radial-gradient(ellipse at 84% 28%, rgba(255,255,255,.24), rgba(255,255,255,.06) 27%, transparent 54%),
		radial-gradient(ellipse at 42% 76%, rgba(255,255,255,.2), rgba(255,255,255,.055) 31%, transparent 62%),
		radial-gradient(ellipse at 62% 52%, rgba(255,255,255,.13), transparent 48%);
	filter: blur(52px);
	mix-blend-mode: screen;
	transform: translate3d(0,0,0);
}
.fw-story-section::after {
	content: none !important;
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: .34;
	background:
		linear-gradient(115deg, transparent 0 20%, rgba(255,255,255,.06) 32%, transparent 45% 100%),
		linear-gradient(28deg, transparent 0 38%, rgba(255,255,255,.045) 52%, transparent 66% 100%),
		radial-gradient(circle at 50% 42%, rgba(255,255,255,.09), transparent 38%);
	filter: blur(24px);
	mix-blend-mode: screen;
	transform: translate3d(0,0,0);
}
.fw-story-section > .tia-container {
	position: relative;
	z-index: auto;
}
.fw-story-section > .tia-smoke-canvas {
	inset: auto !important;
	top: var(--tia-smoke-top, 50%) !important;
	left: 50% !important;
	width: var(--tia-smoke-width, min(120vw, 1600px)) !important;
	height: var(--tia-smoke-height, min(98vh, 980px)) !important;
	transform: translate3d(-50%, -50%, 0);
	z-index: 1;
	opacity: var(--tia-smoke-opacity, .62);
	mix-blend-mode: screen;
}
.fw-story-section > #fluid.tia-fluid-cursor {
	z-index: 3;
	mix-blend-mode: screen;
}
.fw-story-section .tia-heading,
.fw-story-section .tia-body {
	color: #fff;
}
.fw-story-intro-row {
	margin-bottom: clamp(76px, 9vw, 148px);
}
.fw-story-content-row {
	position: relative;
	margin-top: clamp(18px, 3vw, 46px);
}
.fw-story-title,
.fw-story-intro,
.fw-story-copy,
.fw-story-media .tia-image {
	position: relative;
	z-index: 4;
}
.fw-story-title {
	width: 100%;
	max-width: none;
	margin-inline: auto;
	font-size: clamp(68px, 9vw, 164px);
	font-weight: 400;
	text-align: center;
	line-height: .94;
	letter-spacing: 0;
}
.fw-story-title .tia-anim-text-part {
	white-space: nowrap;
}
.fw-story-intro {
	max-width: min(100%, 820px);
	margin-inline: auto;
	text-align: center;
	font-size: clamp(17px, 1.15vw, 21px);
	line-height: 1.55;
	opacity: .76;
}
.fw-story-copy {
	max-width: 46rem;
	font-size: clamp(16px, 1.05vw, 19px);
	line-height: 1.58;
	opacity: .82;
}
.fw-story-copy .tia-anim-text-break,
.tia-body .tia-anim-text-break {
	display: block;
	height: .95em;
}
.fw-story-media {
	display: grid;
	gap: clamp(18px, 2vw, 32px);
}
.fw-story-media .tia-image {
	margin: 0;
}
.fw-story-media .tia-image img {
	display: block;
	width: 100%;
	height: auto;
	filter: grayscale(1);
}
@media (max-width: 900px) {
	.fw-story-title {
		font-size: clamp(42px, 12vw, 96px) !important;
	}
	.fw-story-copy,
	.fw-story-intro {
		max-width: none;
	}
}
