/*
Theme Name: Koafer Showcase
Template: twentytwentyfive
Description: Thème enfant de Twenty Twenty-Five aux couleurs de Koafer, pour le site de démonstration du connecteur « Publiez vos événements sur Koafer » et les sites de test (The Events Calendar, Events Manager). L'orange du logo (#e86f4c) n'est utilisé que pour le logotype ; les liens et boutons utilisent #c23f19 (contraste AA).
Version: 0.2.0
Requires at least: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: koafer-showcase
*/

/* Component rules are prefixed with html:not(#kc): one ID's worth of
   specificity, so they win over the resets of The Events Calendar
   (.tribe-common a, .tribe-common button…) and Events Manager without
   !important. */

:root {
	--kc-brand: #c23f19;       /* text, buttons, accents (5.2:1 on white) */
	--kc-brand-dark: #923724;  /* hover */
	--kc-ink: #0f172a;
	--kc-text: #334155;
	--kc-muted: #475569;
	--kc-line: #e2e8f0;
	--kc-field: #64748b;       /* form borders (4.8:1 on white) */
	--kc-cream: #fef7f4;
	--kc-sand: #fdeee8;
	--kc-radius: 1rem;
	--kc-shadow: 0 1px 2px rgb(15 23 42 / 6%), 0 4px 16px rgb(15 23 42 / 6%);
	--kc-shadow-hover: 0 2px 4px rgb(15 23 42 / 8%), 0 12px 28px rgb(15 23 42 / 10%);
	--kc-gutter: var(--wp--preset--spacing--40, 1.5rem);
	--kc-header-h: 4rem;
}

/* ── Base ─────────────────────────────────────────────────────────────── */
html { scroll-padding-top: calc(var(--kc-header-h) + 1rem); }
img { max-width: 100%; height: auto; }
html:not(#kc) .screen-reader-text{
	border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
	padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
html:not(#kc) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--kc-brand) !important;
	outline-offset: 2px !important;
	border-radius: 4px;
}
html:not(#kc) .kc-footer :where(a):focus-visible { outline-color: #f7b8a1 !important; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Logotype: the brand orange, never altered (WCAG 1.4.3 logotype exception). */
html:not(#kc) .koafer-logo{ display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
html:not(#kc) .koafer-logo svg{ display: block; height: 32px; width: auto; }
html:not(#kc) .koafer-logo text{ fill: #e86f4c; font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-weight: 800; }

/* Draft notice on every page text (removed once Olivier has reviewed it). */
html:not(#kc) .koafer-draft{ border-left: 4px solid var(--kc-brand); background: var(--kc-sand); padding: .5rem .75rem; font-size: var(--wp--preset--font-size--small); color: var(--kc-text); }

/* ── Header: sticky, logo + short navigation ─────────────────────────── */
html:not(#kc) .wp-site-blocks > header.wp-block-template-part,
html:not(#kc) .wp-site-blocks > .wp-block-template-part:first-child{
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	background: rgb(255 255 255 / 96%);
	border-bottom: 1px solid var(--kc-line);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
	backdrop-filter: saturate(1.4) blur(8px);
}
html:not(#kc) .kc-header__inner{ gap: 1rem; min-height: 3rem; }
html:not(#kc) .kc-nav{ font-size: .9375rem; }
html:not(#kc) .kc-nav .wp-block-navigation-item__content{
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 .75rem;
	color: var(--kc-ink); font-weight: 700; text-decoration: none; border-radius: 999px;
}
html:not(#kc) .kc-nav .wp-block-navigation-item__content:hover{ color: var(--kc-brand); background: var(--kc-cream); }
html:not(#kc) .kc-nav .current-menu-item > .wp-block-navigation-item__content,
html:not(#kc) .kc-nav [aria-current="page"]{ color: var(--kc-brand); }
@media (max-width: 420px) {
	html:not(#kc) .kc-nav{ font-size: .875rem; }
	html:not(#kc) .kc-nav .wp-block-navigation-item__content{ padding: 0 .5rem; }
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
html:not(#kc) .kc-button,
html:not(#kc) .wp-block-button__link{
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem; box-sizing: border-box;
	min-height: 48px; padding: .6rem 1.4rem; border-radius: 999px;
	background: var(--kc-brand); color: #fff; border: 2px solid var(--kc-brand);
	font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}
html:not(#kc) .kc-button:hover, html:not(#kc) .wp-block-button__link:hover{ background: var(--kc-brand-dark); border-color: var(--kc-brand-dark); color: #fff; }
html:not(#kc) .kc-button--secondary,
html:not(#kc) .wp-block-button.is-style-outline > .wp-block-button__link{
	background: #fff; color: var(--kc-brand); border-color: var(--kc-brand);
}
html:not(#kc) .kc-button--secondary:hover,
html:not(#kc) .wp-block-button.is-style-outline > .wp-block-button__link:hover{ background: var(--kc-cream); color: var(--kc-brand-dark); border-color: var(--kc-brand-dark); }
html:not(#kc) .kc-button--block{ width: 100%; }

html:not(#kc) .kc-eyebrow{
	margin: 0 0 .5rem; color: var(--kc-brand); font-size: .8125rem; font-weight: 800;
	letter-spacing: .06em; text-transform: uppercase;
}
html:not(#kc) .kc-back{ margin: 0 0 1rem; }
html:not(#kc) .kc-back a{ display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; font-weight: 700; text-decoration: none; }
html:not(#kc) .kc-back a:hover{ text-decoration: underline; }

/* ── Sections of the home page ───────────────────────────────────────── */
html:not(#kc) .kc-hero{ border-bottom: 1px solid var(--kc-line); }
html:not(#kc) .kc-hero__inner{ display: grid; gap: 2rem; max-width: 1200px; margin-inline: auto; }
html:not(#kc) .kc-hero__intro > * + *{ margin-top: 1rem; }
html:not(#kc) .kc-hero__intro h1{ margin: 0; }
@media (min-width: 960px) {
	html:not(#kc) .kc-hero__inner{ grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 3rem; }
}
html:not(#kc) .kc-section{ padding-block: var(--wp--preset--spacing--50); }
html:not(#kc) .kc-section__head{ gap: .5rem 1.5rem; margin-bottom: 1.25rem; }
html:not(#kc) .kc-section__head h2{ margin: 0; }
html:not(#kc) .kc-section__head p{ margin: 0; }
html:not(#kc) .kc-section__head a{ display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
html:not(#kc) .kc-connector{ border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: var(--kc-cream); padding: 1.5rem; }
html:not(#kc) .kc-connector h2{ margin-top: 0; }

/* ── Event cards ─────────────────────────────────────────────────────── */
html:not(#kc) .kc-grid{
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
}
html:not(#kc) .kc-grid > li{ margin: 0; padding: 0; min-width: 0; }
html:not(#kc) .kc-card{
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: #fff; border: 1px solid var(--kc-line); border-radius: var(--kc-radius);
	overflow: hidden; box-shadow: var(--kc-shadow);
	transition: box-shadow .2s ease, transform .2s ease;
}
html:not(#kc) .kc-card:hover{ box-shadow: var(--kc-shadow-hover); transform: translateY(-2px); }
html:not(#kc) .kc-card:focus-within{ outline: 3px solid var(--kc-brand); outline-offset: 3px; }
html:not(#kc) .kc-card__link:focus-visible { outline: none !important; }
html:not(#kc) .kc-card__media{ position: relative; aspect-ratio: 16 / 10; background: var(--kc-sand); }
html:not(#kc) .kc-card__image{ display: block; width: 100%; height: 100%; object-fit: cover; }
html:not(#kc) .kc-card__placeholder{
	width: 100%; height: 100%;
	background: linear-gradient(135deg, var(--kc-cream), var(--kc-sand));
	display: flex; align-items: center; justify-content: center;
}
html:not(#kc) .kc-card__placeholder::before {
	content: ""; width: 3rem; height: 3rem; background: #d9b7aa;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
}
html:not(#kc) .kc-card__badge{
	position: absolute; top: .75rem; left: .75rem; margin: 0;
	display: flex; flex-direction: column; align-items: center; min-width: 3.25rem;
	padding: .4rem .55rem .45rem; border-radius: .65rem; background: #fff;
	box-shadow: 0 2px 8px rgb(15 23 42 / 18%); line-height: 1;
}
html:not(#kc) .kc-card__day{ font-size: 1.375rem; font-weight: 800; color: var(--kc-ink); }
html:not(#kc) .kc-card__month{ margin-top: .2rem; font-size: .75rem; font-weight: 800; text-transform: uppercase; color: var(--kc-brand); }
html:not(#kc) .kc-card__status{
	position: absolute; top: .75rem; right: .75rem; margin: 0; padding: .3rem .7rem;
	border-radius: 999px; background: var(--kc-ink); color: #fff; font-size: .8125rem; font-weight: 700;
}
html:not(#kc) .kc-card--canceled .kc-card__image{ filter: grayscale(1); opacity: .75; }
html:not(#kc) .kc-card__body{ display: flex; flex-direction: column; gap: .35rem; flex: 1; padding: 1rem 1.125rem 1.25rem; }
html:not(#kc) .kc-card__category{ margin: 0; color: var(--kc-brand); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
html:not(#kc) .kc-card__title{ margin: 0; font-size: 1.125rem; font-weight: 800; line-height: 1.3; }
html:not(#kc) .kc-card__link{ color: var(--kc-ink); text-decoration: none; }
html:not(#kc) .kc-card__link::after{ content: ""; position: absolute; inset: 0; z-index: 1; }
html:not(#kc) .kc-card:hover .kc-card__link{ text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
html:not(#kc) .kc-card__meta{
	list-style: none; margin: .25rem 0 0; padding: 0;
	display: flex; flex-direction: column; gap: .3rem;
	color: var(--kc-muted); font-size: .9375rem; line-height: 1.4;
}
html:not(#kc) .kc-card__meta li{ display: flex; align-items: flex-start; gap: .45rem; margin: 0; }
html:not(#kc) .kc-card__meta li::before{
	content: ""; flex: 0 0 1rem; width: 1rem; height: 1rem; margin-top: .15rem;
	background: currentColor; -webkit-mask: var(--kc-icon) center / contain no-repeat; mask: var(--kc-icon) center / contain no-repeat;
}
html:not(#kc) .kc-card__when{ --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
html:not(#kc) .kc-card__where{ --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
html:not(#kc) .kc-card__price{ --kc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9V6a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v3a3 3 0 0 0 0 6v3a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3a3 3 0 0 0 0-6z'/%3E%3C/svg%3E"); color: var(--kc-ink); font-weight: 700; }

/* Highlighted event (home hero). */
html:not(#kc) .kc-hero-event{
	position: relative; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--kc-line); border-radius: 1.25rem;
	overflow: hidden; box-shadow: var(--kc-shadow);
	transition: box-shadow .2s ease;
}
html:not(#kc) .kc-hero-event:hover{ box-shadow: var(--kc-shadow-hover); }
html:not(#kc) .kc-hero-event:focus-within{ outline: 3px solid var(--kc-brand); outline-offset: 3px; }
html:not(#kc) .kc-hero-event__media{ aspect-ratio: 16 / 9; background: var(--kc-sand); }
html:not(#kc) .kc-hero-event__media img{ display: block; width: 100%; height: 100%; object-fit: cover; }
html:not(#kc) .kc-hero-event__body{ padding: 1.25rem 1.5rem 1.5rem; }
html:not(#kc) .kc-hero-event__title{ margin: 0; font-size: var(--wp--preset--font-size--x-large); line-height: 1.2; }
html:not(#kc) .kc-hero-event:hover .kc-card__link{ text-decoration: underline; text-underline-offset: 4px; }
html:not(#kc) .kc-hero-event .kc-card__meta{ margin-top: .75rem; }
html:not(#kc) .kc-hero-event__cta{ margin: 1.25rem 0 0; }

/* ── Agenda filters (showcase mu-plugin) ─────────────────────────────── */
html:not(#kc) .kc-filters{
	display: grid; gap: 1rem; margin: 0 0 2rem; padding: 1rem;
	background: #fff; border: 1px solid var(--kc-line); border-radius: var(--kc-radius);
}
html:not(#kc) .kc-filters__label{ display: block; margin: 0 0 .4rem; color: var(--kc-ink); font-size: .875rem; font-weight: 800; }
html:not(#kc) .kc-filters > *, html:not(#kc) .kc-filters__row > * { min-width: 0; }
html:not(#kc) .kc-filters__row{ display: grid; gap: 1rem; }
@media (min-width: 900px) { html:not(#kc) .kc-filters__row{ grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); align-items: end; } }
html:not(#kc) .kc-chips{ list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
html:not(#kc) .kc-chips > li{ margin: 0; }
html:not(#kc) .kc-chips--scroll{ flex-wrap: nowrap; overflow-x: auto; padding: 3px 3px .5rem; margin: -3px; scrollbar-width: thin; }
@media (min-width: 1024px) { html:not(#kc) .kc-chips--scroll{ flex-wrap: wrap; overflow: visible; padding-bottom: 3px; } }
html:not(#kc) .kc-chip{
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 1rem;
	border: 1px solid #cbd5e1; border-radius: 999px; background: #fff;
	color: var(--kc-ink); font-size: .9375rem; font-weight: 600; white-space: nowrap; text-decoration: none;
}
html:not(#kc) .kc-chip:hover{ border-color: var(--kc-brand); color: var(--kc-brand); }
html:not(#kc) .kc-chip.is-active{ background: var(--kc-ink); border-color: var(--kc-ink); color: #fff; }
html:not(#kc) .kc-filters__form{ margin: 0; }
html:not(#kc) .kc-filters__controls{ display: flex; gap: .5rem; }
html:not(#kc) .kc-filters select{
	flex: 1; min-width: 0; min-height: 48px; padding: 0 .75rem;
	border: 1px solid var(--kc-field); border-radius: .75rem; background: #fff;
	color: var(--kc-ink); font: inherit;
}
html:not(#kc) .kc-filters__reset{ margin: 0; }
html:not(#kc) .kc-filters__reset a{ display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }

/* ── The Events Calendar views ───────────────────────────────────────── */
body {
	--tec-color-accent-primary: #c23f19;
	--tec-color-accent-primary-hover: #923724;
	--tec-color-accent-primary-active: #923724;
	--tec-color-accent-primary-background: #fdeee8;
	--tec-color-accent-primary-week-event: #fdeee8;
	--tec-color-accent-primary-week-event-hover: #fbd9cc;
	--tec-color-accent-primary-week-event-featured: #fbd9cc;
	--tec-color-accent-primary-week-event-featured-hover: #f7b8a1;
	--tec-color-background-primary-multiday: #fbd9cc;
	--tec-color-background-primary-multiday-hover: #f7b8a1;
	--tec-color-button-primary: #c23f19;
	--tec-color-button-primary-hover: #923724;
	--tec-color-button-primary-active: #923724;
	--tec-color-link-accent: #c23f19;
	--tec-color-link-accent-hover: #923724;
	--tec-color-event-icon-hover: #c23f19;
	--tec-color-icon-focus: #c23f19;
	--tec-color-text-primary: #0f172a;
	--tec-color-text-secondary: #475569;
	--tec-color-accent-secondary: #0f172a;
	--tec-font-family-sans-serif: "Plus Jakarta Sans", system-ui, sans-serif;
	--tec-font-family-base: "Plus Jakarta Sans", system-ui, sans-serif;
	--tec-color-background-events-bar-submit-button: #c23f19;
	--tec-color-background-events-bar-submit-button-hover: #923724;
	--tec-color-background-events-bar-submit-button-active: #923724;
	--tec-color-text-events-bar-submit-button: #ffffff;
	--tec-color-text-events-bar-submit-button-hover: #ffffff;
	--tec-color-text-events-bar-submit-button-active: #ffffff;
}
html:not(#kc) .tribe-events .tribe-events-calendar-list{
	display: grid; gap: 1.5rem; margin: 0; padding: 0;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
}
html:not(#kc) .tribe-events .kc-list-item{ list-style: none; margin: 0; padding: 0; min-width: 0; }
html:not(#kc) .tribe-events .tribe-events-calendar-list__month-separator{ grid-column: 1 / -1; margin: .5rem 0 0; }
html:not(#kc) .tribe-events .tribe-events-calendar-list__month-separator-text{ color: var(--kc-ink); font-weight: 800; }
/* TEC's own tap targets: at least 44 px. */
html:not(#kc) .tribe-events .tribe-events-c-events-bar__search-button,
html:not(#kc) .tribe-events .tribe-events-c-view-selector__button,
html:not(#kc) .tribe-events .tribe-events-c-top-bar__nav-link,
html:not(#kc) .tribe-events .tribe-events-c-top-bar__today-button,
html:not(#kc) .tribe-events .tribe-events-c-top-bar__datepicker-button,
html:not(#kc) .tribe-events .tribe-events-c-nav__prev,
html:not(#kc) .tribe-events .tribe-events-c-nav__next,
html:not(#kc) .tribe-events .tribe-events-c-nav__today,
html:not(#kc) .tribe-events .tribe-events-c-view-selector__list-item-link,
html:not(#kc) .tribe-events .tribe-events-c-subscribe-dropdown__button,
html:not(#kc) .tribe-events .tribe-events-c-subscribe-dropdown__list-item-link{ min-height: 44px; min-width: 44px; }
html:not(#kc) .tribe-events .tribe-events-c-top-bar__nav-link,
html:not(#kc) .tribe-events .tribe-events-c-top-bar__datepicker-button,
html:not(#kc) .tribe-events .tribe-events-c-view-selector__list-item-link{ display: inline-flex; align-items: center; }
html:not(#kc) .tribe-events .tribe-events-c-nav__prev, html:not(#kc) .tribe-events .tribe-events-c-nav__next{ display: inline-flex; align-items: center; }
html:not(#kc) .tribe-events .tribe-events-c-events-bar__search-input{ min-height: 44px; }
/* The subscribe (iCal) block is not needed on a demo agenda. */
html:not(#kc) .tribe-events .tribe-events-c-subscribe-dropdown__container{ display: none; }

/* ── Event page (TEC and Events Manager overrides) ──────────────────── */
html:not(#kc) .kc-event{ max-width: 1200px; margin-inline: auto; }
html:not(#kc) .tribe-events-pg-template > .kc-event,
html:not(#kc) #tribe-events-pg-template .kc-event{ padding-inline: 0; }
html:not(#kc) .kc-event__header{ margin-bottom: 1.5rem; }
html:not(#kc) .kc-event__title{ margin: 0; font-size: var(--wp--preset--font-size--xx-large); line-height: 1.15; }
html:not(#kc) .kc-notice{ margin: 1rem 0 0; padding: .75rem 1rem; border-left: 4px solid; border-radius: .5rem; }
html:not(#kc) .kc-notice--canceled{ background: #fef2f2; border-color: #b91c1c; color: #7f1d1d; }
html:not(#kc) .kc-notice--postponed{ background: #fffbeb; border-color: #b45309; color: #78350f; }
html:not(#kc) .kc-event__top{ display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
	html:not(#kc) .kc-event__top{ grid-template-columns: minmax(0, 1.75fr) minmax(18rem, 1fr); align-items: start; }
	html:not(#kc) .kc-event__top--no-image{ grid-template-columns: minmax(0, 28rem); }
	html:not(#kc) .kc-event__info{ position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--kc-header-h) + 1rem); }
}
html:not(#kc) .kc-event__media{ margin: 0; }
html:not(#kc) .kc-event__media img{ display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--kc-radius); }
html:not(#kc) .kc-event__media figcaption{ margin-top: .5rem; color: var(--kc-muted); font-size: .8125rem; }
html:not(#kc) .kc-event__info{ padding: 1.25rem; background: #fff; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); box-shadow: var(--kc-shadow); }
html:not(#kc) .kc-facts{ margin: 0; }
html:not(#kc) .kc-facts__row + .kc-facts__row{ margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--kc-line); }
html:not(#kc) .kc-facts dt{ color: var(--kc-muted); font-size: .8125rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
html:not(#kc) .kc-facts dd{ margin: .25rem 0 0; color: var(--kc-ink); font-weight: 600; line-height: 1.5; }
html:not(#kc) .kc-facts dd a{ display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
html:not(#kc) .kc-link-external::after{ content: " ↗"; }
html:not(#kc) .kc-event__cta{ margin: 1.25rem 0 0; }
html:not(#kc) .kc-event__body{ display: grid; gap: 2rem; margin-top: 2.5rem; }
@media (min-width: 900px) { html:not(#kc) .kc-event__body{ grid-template-columns: minmax(0, 1.75fr) minmax(18rem, 1fr); align-items: start; } }
html:not(#kc) .kc-event__description{ max-width: 70ch; }
html:not(#kc) .kc-event__description h2, html:not(#kc) .kc-event__organizer h2, html:not(#kc) .kc-event__booking h2{ margin-top: 0; font-size: var(--wp--preset--font-size--large); }
html:not(#kc) .kc-event__organizer{ padding: 1.25rem; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); background: var(--kc-cream); }
html:not(#kc) .kc-organizer + .kc-organizer{ margin-top: 1rem; }
html:not(#kc) .kc-organizer__name{ margin: 0; color: var(--kc-ink); font-weight: 800; }
html:not(#kc) .kc-organizer__contact{ list-style: none; margin: .25rem 0 0; padding: 0; }
html:not(#kc) .kc-organizer__contact a{ display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
html:not(#kc) .kc-related{ margin-top: 3rem; }
html:not(#kc) .kc-related h2{ margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--x-large); }
html:not(#kc) .kc-empty{ color: var(--kc-muted); }

/* TEC single page wrapper in a block theme. */
#tribe-events-pg-template { max-width: 1200px; padding-inline: var(--kc-gutter); }
html:not(#kc) .single-tribe_events .tribe-events-before-html:empty,
html:not(#kc) .single-tribe_events .tribe-events-after-html:empty{ display: none; }

/* ── Events Manager ──────────────────────────────────────────────────── */
html:not(#kc) .is-layout-constrained > .em.kc-em-list,
html:not(#kc) .is-layout-constrained > .em.kc-event--em,
html:not(#kc) .is-layout-constrained > .em.kc-location,
html:not(#kc) .is-layout-constrained > .kc-em-list,
html:not(#kc) .is-layout-constrained > .kc-event--em,
html:not(#kc) .is-layout-constrained > .kc-location{ max-width: 1200px; }
html:not(#kc) .kc-em-list .em-pagination{ margin-top: 2rem; }
html:not(#kc) .kc-em-list .em-pagination a, html:not(#kc) .kc-em-list .em-pagination strong{ display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
html:not(#kc) .kc-location .kc-facts{ max-width: 40rem; padding: 1.25rem; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); }

/* ── Footer ───────────────────────────────────────────────────────────── */
html:not(#kc) .kc-footer-links{ list-style: none; margin: 0; padding: 0; }
html:not(#kc) .kc-footer-links li{ margin: 0; }
html:not(#kc) .kc-footer-links a{ display: inline-flex; align-items: center; min-height: 44px; }

/* Events Manager search form: 44 px controls. */
html:not(#kc) .em.em-search :is(input[type="text"], input[type="search"], .em-search-text input, .em-search-geo input, .em-date-input, button, .button) { min-height: 44px; }
html:not(#kc) .em.em-search :is(.em-search-advanced-trigger, .em-search-sort-option, .em-search-view-option) { min-width: 44px; min-height: 44px; background-position: center; }
html:not(#kc) .kc-event--em .kc-event__description,
html:not(#kc) .kc-event--em .kc-event__booking { margin-top: 2.5rem; }
html:not(#kc) .em.em-search .em-search-submit { background: var(--kc-brand); border-color: var(--kc-brand); color: #fff; border-radius: 999px; font-weight: 700; text-transform: none; letter-spacing: 0; }
html:not(#kc) .em.em-search .em-search-submit:hover { background: var(--kc-brand-dark); border-color: var(--kc-brand-dark); }

/* ── "Comment ça marche" ─────────────────────────────────────────────── */
html:not(#kc) .kc-howto-hero .kc-hero__intro h1 { font-size: clamp(1.875rem, 1.2rem + 2.6vw, 2.75rem); }
html:not(#kc) .kc-howto-illustration { margin: 0; }
html:not(#kc) .kc-howto-illustration img { display: block; width: 100%; max-width: 560px; height: auto; margin-inline: auto; }
@media (min-width: 960px) { html:not(#kc) .kc-howto-hero .kc-hero__inner { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); } }
html:not(#kc) .kc-section > h2 { margin: 0 0 1.5rem; }
html:not(#kc) .kc-steps {
	list-style: none; margin: 0; padding: 0; counter-reset: none;
	display: grid; gap: 1rem; grid-template-columns: 1fr;
}
@media (min-width: 900px) { html:not(#kc) .kc-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
html:not(#kc) .kc-step {
	position: relative; margin: 0; padding: 1.5rem 1.25rem 1.25rem;
	background: #fff; border: 1px solid var(--kc-line); border-radius: var(--kc-radius); box-shadow: var(--kc-shadow);
}
/* Connector between steps: down arrow on phones, right arrow on desktop. */
html:not(#kc) .kc-step:not(:last-child)::after {
	content: ""; position: absolute; left: 2.25rem; bottom: -1rem; width: 2px; height: 1rem; background: #f7b8a1;
}
@media (min-width: 900px) {
	html:not(#kc) .kc-step:not(:last-child)::after { left: auto; right: -1.25rem; top: 3.25rem; bottom: auto; width: 1.25rem; height: 2px; }
}
html:not(#kc) .kc-step__number {
	position: absolute; top: 1.25rem; right: 1.25rem;
	display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem;
	border-radius: 999px; background: var(--kc-ink); color: #fff; font-weight: 800; font-size: .9375rem;
}
html:not(#kc) .kc-step__icon { display: block; width: 48px; height: 48px; }
html:not(#kc) .kc-step__title { margin: .75rem 0 .5rem; font-size: 1.125rem; }
html:not(#kc) .kc-step p { margin: 0; color: var(--kc-text); font-size: .9375rem; line-height: 1.5; }
html:not(#kc) .kc-step p + p { margin-top: .35rem; color: var(--kc-muted); }
html:not(#kc) .kc-screens-section { padding-block: var(--wp--preset--spacing--50); }
html:not(#kc) .kc-screens { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { html:not(#kc) .kc-screens { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
html:not(#kc) .kc-screen { margin: 0; }
html:not(#kc) .kc-device {
	overflow: hidden; border: 1px solid #cbd5e1; border-radius: .75rem; background: #fff; box-shadow: var(--kc-shadow-hover);
}
/* Browser frame: a bar with three dots. */
html:not(#kc) .kc-device::before {
	content: ""; display: block; height: 1.5rem; border-bottom: 1px solid var(--kc-line);
	background: radial-gradient(circle at .9rem 50%, #cbd5e1 .22rem, transparent .24rem), radial-gradient(circle at 1.6rem 50%, #cbd5e1 .22rem, transparent .24rem), radial-gradient(circle at 2.3rem 50%, #cbd5e1 .22rem, transparent .24rem), #f1f5f9;
}
html:not(#kc) .kc-device img { display: block; width: 100%; height: auto; }
html:not(#kc) .kc-screen figcaption { margin-top: .75rem; color: var(--kc-text); font-size: .9375rem; line-height: 1.5; }
html:not(#kc) .kc-screen figcaption strong { color: var(--kc-ink); }
html:not(#kc) .kc-faq { margin: 0; border-bottom: 1px solid var(--kc-line); }
html:not(#kc) .kc-faq:first-of-type { border-top: 1px solid var(--kc-line); }
html:not(#kc) .kc-faq summary {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	min-height: 44px; padding: 1rem 0; cursor: pointer; list-style: none;
	color: var(--kc-ink); font-weight: 800; font-size: 1.0625rem;
}
html:not(#kc) .kc-faq summary::-webkit-details-marker { display: none; }
html:not(#kc) .kc-faq summary::after {
	content: ""; flex: 0 0 .7rem; width: .7rem; height: .7rem; margin-right: .3rem;
	border-right: 2.5px solid var(--kc-brand); border-bottom: 2.5px solid var(--kc-brand); transform: rotate(45deg) translateY(-25%);
	transition: transform .15s ease;
}
html:not(#kc) .kc-faq[open] summary::after { transform: rotate(-135deg); }
html:not(#kc) .kc-faq > p { margin: 0 0 1.25rem; max-width: 68ch; }
