/* =========================================================
   Azurace — design tokens
   Basés sur les couleurs déjà en prod (#DF5630 / #0f0b08) et
   sur les polices existantes. À affiner avec la maquette Design
   pixel par pixel — ceci est la base structurelle du thème.
   ========================================================= */
:root {
	--az-primary: #DF5630;
	--az-primary-dark: #C44A23;
	--az-dark: #0F0B08;
	--az-bg: #FFFFFF;
	--az-bg-soft: #F7F6F2;
	--az-border: #DCD9D5;
	--az-text: #28251D;
	--az-text-muted: #7A7974;
	--az-radius: 10px;
	--az-radius-lg: 16px;
	--az-container: 1200px;
	--az-font-heading: "Funnel Sans", sans-serif;
	--az-font-body: "Epilogue", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: var(--az-font-body); color: var(--az-text); background: var(--az-bg); }
h1, h2, h3, h4 { font-family: var(--az-font-heading); line-height: 1.15; margin: 0 0 .5em; }
p { line-height: 1.6; }
a { color: inherit; }
img { max-width: 100%; display: block; }

.az-container { max-width: var(--az-container); margin: 0 auto; padding: 0 20px; }
.az-container--narrow { max-width: 760px; }
.az-section { padding: 64px 0; }
.az-section__title { font-size: 28px; margin-bottom: 32px; }
.az-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--az-primary); font-weight: 700; }

/* Buttons */
.az-btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 28px; border-radius: 100px; font-weight: 700; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s, background .15s; }
.az-btn--sm { padding: 8px 18px; font-size: 13px; }
.az-btn--primary { background: var(--az-primary); color: #fff; }
.az-btn--primary:hover { background: var(--az-primary-dark); }
.az-btn--outline { background: transparent; border-color: var(--az-border); color: var(--az-text); }

/* Header */
.az-header { border-bottom: 1px solid var(--az-border); }
.az-header__inner { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; gap: 24px; }
.az-header__logo img { height: 40px; }
.az-nav { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.az-header__burger { display: none; background: none; border: none; font-size: 22px; cursor: pointer; }
@media (max-width: 860px) {
	.az-header__nav { position: absolute; top: 100%; left: 0; right: 0; background: #fff; display: none; border-bottom: 1px solid var(--az-border); }
	.az-header__nav.is-open { display: block; }
	.az-nav { flex-direction: column; padding: 16px 20px; }
	.az-header__burger { display: block; }
}

/* Hero */
.az-hero { padding: 96px 0; background-size: cover; background-position: center; }
.az-hero--dark { background-color: var(--az-dark); color: #fff; }
.az-hero--light { background-color: var(--az-bg-soft); }
.az-hero__title { font-size: clamp(32px, 5vw, 56px); margin-top: .3em; }

/* Text + image */
.az-text-image__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.az-text-image--left .az-text-image__media { order: -1; }
.az-text-image__media img { border-radius: var(--az-radius-lg); }
@media (max-width: 760px) { .az-text-image__grid { grid-template-columns: 1fr; } }

/* Events grid */
.az-events-grid__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.az-event-card { border: 1px solid var(--az-border); border-radius: var(--az-radius-lg); overflow: hidden; background: #fff; }
.az-event-card__media { aspect-ratio: 4/3; background-size: cover; background-position: center; position: relative; }
.az-badge { position: absolute; top: 10px; left: 10px; color: #fff; font-size: 11px; font-weight: 800; text-transform: uppercase; padding: 3px 10px; border-radius: 4px; }
.az-event-card__body { padding: 18px 20px; }
.az-event-card__meta { color: var(--az-primary); font-size: 13px; font-weight: 600; }
@media (max-width: 900px) { .az-events-grid__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .az-events-grid__list { grid-template-columns: 1fr; } }

/* Steps */
.az-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; counter-reset: step; }
.az-steps__num { font-size: 13px; font-weight: 800; color: var(--az-primary); }
@media (max-width: 760px) { .az-steps__list { grid-template-columns: 1fr 1fr; } }

/* Partners */
.az-partners__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.az-partner-card { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--az-border); border-radius: var(--az-radius); text-decoration: none; }
@media (max-width: 760px) { .az-partners__grid { grid-template-columns: 1fr 1fr; } }

/* FAQ */
.az-faq__item { border-bottom: 1px solid var(--az-border); padding: 16px 0; }
.az-faq__item summary { cursor: pointer; font-weight: 700; }

/* CTA banner */
.az-cta { background: var(--az-dark); color: #fff; text-align: center; }

/* Shop */
.az-shop__layout { display: grid; grid-template-columns: 260px 1fr; gap: 40px; align-items: start; }
.az-shop__filters { position: sticky; top: 20px; border: 1px solid var(--az-border); border-radius: var(--az-radius); padding: 20px; }
.az-filter-group { border: none; padding: 0 0 20px; margin: 0 0 20px; border-bottom: 1px solid var(--az-border); }
.az-filter-group legend { font-weight: 700; margin-bottom: 8px; }
.az-filter-check { display: block; font-size: 14px; margin-bottom: 6px; }
.az-filter-price { display: flex; align-items: center; gap: 8px; }
.az-filter-price input { width: 100%; padding: 6px; border: 1px solid var(--az-border); border-radius: 6px; }
.az-shop__grid.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; list-style: none; padding: 0; margin: 0; }
.az-shop__load-more-wrap { text-align: center; margin-top: 32px; }
@media (max-width: 960px) { .az-shop__layout { grid-template-columns: 1fr; } .az-shop__grid.products { grid-template-columns: repeat(2, 1fr); } }

/* Footer */
.az-footer { background: var(--az-bg-soft); border-top: 1px solid var(--az-border); margin-top: 64px; padding: 48px 0 24px; }
.az-footer__grid { display: grid; gap: 24px; }
.az-footer__copyright { font-size: 12px; color: var(--az-text-muted); margin-top: 24px; }
