@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Permanent+Marker&family=Space+Grotesk:wght@500;600;700&display=swap");

:root {
  color-scheme: light;
  --color-bg: #fff8e8;
  --color-surface: #fffdf7;
  --color-surface-alt: #ffe8f1;
  --color-primary: #171717;
  --color-primary-soft: #ff477e;
  --color-accent: #ffcc33;
  --color-blue: #4776ff;
  --color-lilac: #b79cff;
  --color-mint: #8fe3cf;
  --color-text: #222222;
  --color-text-muted: #66615d;
  --color-muted: #8f8983;
  --color-success: #59b58b;
  --color-info: #4776ff;
  --color-warning: #ffb733;
  --color-danger: #ff477e;
  --font-heading: "Space Grotesk", Arial, sans-serif;
  --font-body: "DM Sans", Arial, sans-serif;
  --font-hand: "Permanent Marker", cursive;
  --font-mono: monospace;
  --size-xs: clamp(.75rem,.72rem + .15vw,.82rem);
  --size-sm: clamp(.88rem,.84rem + .2vw,.98rem);
  --size-md: clamp(1rem,.97rem + .22vw,1.1rem);
  --size-lg: clamp(1.35rem,1.22rem + .55vw,1.75rem);
  --size-xl: clamp(2rem,1.65rem + 1.45vw,3.25rem);
  --size-xxl: clamp(3rem,2.2rem + 3.5vw,6rem);
  --line-height-tight: 1.02;
  --line-height-base: 1.6;
  --line-height-loose: 1.78;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --shadow-sm: 0 8px 0 rgba(23,23,23,.08);
  --shadow-md: 0 14px 0 rgba(23,23,23,.12);
  --shadow-focus: 0 0 0 4px rgba(71,118,255,.22);
  --transition-base: 180ms ease;
  --container-max: 1280px;
  --container-padding: clamp(1rem,4vw,4rem);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:
radial-gradient(circle at 10% 4%,rgba(255,204,51,.18),transparent 18rem),
radial-gradient(circle at 92% 18%,rgba(255,71,126,.10),transparent 22rem),
var(--color-bg);color:var(--color-text);font:400 var(--size-md)/var(--line-height-base) var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,picture,svg{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:rgba(255,71,126,.4);transition:.18s ease}
a:hover,a:focus-visible{color:var(--color-primary-soft);text-decoration-color:currentColor}
main{display:block;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding)}
p{margin-block:var(--space-4)}

h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-primary);letter-spacing:-.035em;margin-block:var(--space-5) var(--space-3)}
h1{font-size:var(--size-xxl);line-height:.95;font-weight:800}
h2{font-size:var(--size-xl);line-height:1.04;font-weight:800;position:relative;width:fit-content}
h2::after{content:"";position:absolute;left:-.08em;right:-.08em;bottom:.04em;height:.26em;background:var(--color-accent);z-index:-1;transform:rotate(-1.5deg);border-radius:4px;opacity:.75}
h3{font-size:var(--size-lg);line-height:1.18;font-weight:800}
.prose{max-width:100%;line-height:var(--line-height-loose);color:var(--color-text)}
.prose a{color:var(--color-blue);font-weight:700}
.prose blockquote,blockquote{margin:2rem 0;padding:1.1rem 1.4rem;border-left:5px solid var(--color-primary-soft);background:#fff;border-radius:0 18px 18px 0;box-shadow:var(--shadow-sm)}
.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:#fff}
.prose th,.prose td{border:2px solid #171717;padding:.8rem;text-align:left;vertical-align:top}

.page{display:flex;min-height:100vh;flex-direction:column}.page__content{flex:1;padding-block:var(--space-7)}.page__content--flush{padding-top:0}.landing,.category,.article{display:grid;gap:var(--space-6)}
.surface{background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md)}
.page-intro,.landing__lead,.category__lead,.article__lead{max-width:64ch;color:var(--color-text-muted);font-size:var(--size-lg)}

.site-header,.site-footer{padding:1rem var(--container-padding);background:rgba(255,253,247,.92);backdrop-filter:blur(16px)}
.site-header{position:sticky;top:0;z-index:1000;border-bottom:2px solid #171717}
.site-footer{border-top:2px solid #171717;margin-top:4rem}
.site-header__inner,.site-footer__inner{max-width:var(--container-max);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.site-logo{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font:800 var(--size-md)/1 var(--font-heading);letter-spacing:-.02em}
.site-logo__mark{width:40px;height:40px;display:grid;place-items:center;background:var(--color-accent);border:2px solid #171717;border-radius:50%;box-shadow:3px 3px 0 #171717;transform:rotate(-5deg);position:relative;color:#171717;font-weight:800}
.site-logo__mark::before{content:attr(data-logo)}
.site-logo__mark::after{content:"";position:absolute;inset:7px;border:2px dashed #171717;border-radius:50%;opacity:.28}
.site-logo__text{text-transform:uppercase;letter-spacing:.07em}
.nav__list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}.nav__link{display:inline-flex;padding:.55rem .8rem;border-radius:999px;text-decoration:none;font-weight:800}.nav__link:hover,.nav__link:focus-visible{background:var(--color-accent);color:#171717;transform:rotate(-1deg)}
.burger{width:44px;height:44px;display:inline-grid;place-items:center;border:2px solid #171717;border-radius:50%;background:#fff;box-shadow:3px 3px 0 #171717;cursor:pointer}.burger:hover{background:var(--color-accent)}
.skip-link{position:absolute;left:.5rem;top:.5rem;transform:translateY(-200%);background:#171717;color:#fff;padding:.6rem 1rem;border-radius:999px;z-index:1001}.skip-link:focus{transform:none}
.site-footer__brand{display:flex;flex-direction:column;gap:.4rem}.site-footer__legal{text-align:center;color:var(--color-muted);font-size:var(--size-xs);margin-top:1rem}.site-footer__contact a{font-weight:700}

.block{margin-block:var(--space-7)}.block--tight{margin-block:var(--space-4)}
.block-hero,.block-hero-cta{position:relative;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow:hidden}
.block-hero .hero,.block-hero-cta .hero{border-radius:0;border-inline:0;box-shadow:none}
.block-columns{display:grid;gap:1.25rem}.block-columns.cols-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.block-columns.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.block-columns__item{position:relative;background:#fff;border:2px solid #171717;padding:1.5rem;border-radius:24px;box-shadow:6px 6px 0 rgba(23,23,23,.12);transition:.18s ease}
.block-columns__item:nth-child(3n+1){transform:rotate(-1deg)}.block-columns__item:nth-child(3n+2){transform:rotate(1deg)}.block-columns__item:nth-child(3n){transform:rotate(-.5deg)}
.block-columns__item:hover,.block-columns__item:focus-within{transform:translateY(-7px) rotate(0);box-shadow:8px 10px 0 rgba(23,23,23,.16)}
.block-columns__item h2,.block-columns__item h3{font-size:clamp(1.15rem,1rem + .45vw,1.55rem);margin-top:0}
.block-columns__item::before{content:"✦";position:absolute;right:1rem;top:.65rem;font-family:var(--font-hand);color:var(--color-primary-soft);font-size:1.2rem;transform:rotate(10deg)}
.block-columns__item:nth-child(2)::before{content:"★";color:var(--color-blue)}.block-columns__item:nth-child(3)::before{content:"☺";color:#9a6cff}
.block-link .link,.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:2px solid #171717;border-radius:999px;padding:.75rem 1.2rem;text-decoration:none;font:800 var(--size-sm)/1 var(--font-heading);box-shadow:4px 4px 0 #171717;transition:.18s ease}
.block-link .link{background:var(--color-accent)}.block-link .link::after{content:"→"}.block-link .link:hover,.button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #171717;color:#171717}
.button--primary{background:var(--color-primary-soft);color:#fff}.button--ghost{background:#fff;color:#171717}.button:focus-visible{outline:none;box-shadow:var(--shadow-focus),4px 4px 0 #171717}

.hero{display:grid;grid-template-columns:1fr;overflow:hidden;background:#171717;border-bottom:2px solid #171717}
.hero--background{position:relative;min-height:clamp(520px,68vw,760px);display:flex;align-items:flex-end;justify-content:flex-start;color:#fff;background:#171717;overflow:hidden}
.hero--background::before{content:"";position:absolute;inset:0;background-image:var(--hero-image);background-size:cover;background-position:center 42%;filter:saturate(1.1) contrast(1.04);transform:scale(1.01)}
.hero--background::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 25%,rgba(0,0,0,.28) 60%,rgba(0,0,0,.58) 100%)}
.hero__content--overlay{position:relative;z-index:2;width:100%;padding:clamp(2rem,6vw,5rem) var(--container-padding)}
.hero__overlay{position:relative;max-width:min(760px,92vw);padding:clamp(1.5rem,4vw,3rem);background:#fff7dc;color:#171717;border:3px solid #171717;border-radius:32px;box-shadow:10px 10px 0 rgba(23,23,23,.9);transform:rotate(-1.2deg);backdrop-filter:none}
.hero__overlay::before{content:"AIX, C’EST NOUS ✦";position:absolute;top:-1.15rem;left:1.8rem;background:var(--color-primary-soft);color:#fff;border:2px solid #171717;border-radius:999px;padding:.4rem .75rem;font:700 .78rem/1 var(--font-heading);letter-spacing:.08em;transform:rotate(2deg)}
.hero__overlay::after{content:"☀";position:absolute;right:-1.2rem;bottom:-1.4rem;width:74px;height:74px;display:grid;place-items:center;background:var(--color-accent);border:3px solid #171717;border-radius:50%;font-size:2rem;box-shadow:5px 5px 0 #171717;transform:rotate(8deg)}
.hero__overlay h1,.hero__title{margin:0;color:#171717;font-size:clamp(3rem,7vw,7rem);line-height:.86;letter-spacing:-.06em;text-transform:uppercase}
.hero__overlay h1::first-line{color:var(--color-primary-soft)}
.hero__copy{font-size:clamp(1rem,1rem + .4vw,1.25rem);max-width:46ch}
.hero__overlay--simple{text-align:left;justify-items:start;align-items:start;background:#fff7dc}
.hero__media{min-height:260px;overflow:hidden}.hero__media img{width:100%;height:100%;object-fit:cover}

.card{height:100%;background:#fff;border:2px solid #171717;border-radius:26px;overflow:hidden;box-shadow:6px 6px 0 rgba(23,23,23,.12);transition:.18s ease}.card:hover,.card:focus-within{transform:translateY(-6px) rotate(-.5deg);box-shadow:9px 10px 0 rgba(23,23,23,.16)}
.card__link{height:100%;display:grid;grid-template-rows:minmax(170px,auto) 1fr;text-decoration:none;color:inherit}.card__media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.08)}.card__body{display:flex;flex-direction:column;gap:.75rem;padding:1.35rem}.card__tag{align-self:flex-start;background:var(--color-accent);border:2px solid #171717;border-radius:999px;padding:.3rem .6rem;font-weight:800;font-size:var(--size-xs);text-transform:uppercase;letter-spacing:.06em}.card__title{margin:0;font-size:var(--size-lg)}.card__excerpt{margin:0;color:var(--color-text-muted);font-size:var(--size-sm)}.card__footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;font-size:var(--size-xs);color:var(--color-muted)}.card__cta{font-weight:800;color:var(--color-primary-soft)}

.home-latest__header,.article-related__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.home-latest__grid,.article-related__grid,.category__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.article-related{margin-block:4rem}
.article__header,.landing__header,.category__header{display:grid;gap:.75rem}.article__cover img{width:100%;border:3px solid #171717;border-radius:30px;box-shadow:10px 10px 0 rgba(23,23,23,.14)}
.article-meta{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.article-meta__item{display:flex;gap:.4rem;align-items:baseline}.article-meta dt{font-size:var(--size-xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.article-meta dd{margin:0;color:var(--color-text-muted)}
.article-author{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;background:#fff;border:2px solid #171717;border-radius:24px;padding:1.25rem;box-shadow:6px 6px 0 rgba(23,23,23,.12)}.article-author__photo{width:92px;height:92px;object-fit:cover;border-radius:50%;border:2px solid #171717}.article-author__eyebrow{margin:0;font-size:var(--size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary-soft);font-weight:800}.article-author__name{margin:.2rem 0;font-size:var(--size-lg)}.article-author__job,.article-author__intro{margin:.2rem 0;color:var(--color-text-muted);font-size:var(--size-sm)}
.breadcrumbs{font-size:var(--size-xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.breadcrumbs__list{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0}.breadcrumbs__item::after{content:"/";margin-left:.45rem;color:var(--color-primary-soft)}.breadcrumbs__item:last-child::after{content:none}

.contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contact-form__field{display:grid;gap:.45rem;margin-bottom:1rem}.contact-form__field label{font-weight:800}.contact-form__field input,.contact-form__field textarea{width:100%;background:#fff;border:2px solid #171717;border-radius:18px;padding:.9rem 1rem;font:inherit}.contact-form__field input:focus,.contact-form__field textarea:focus{outline:none;box-shadow:var(--shadow-focus)}.contact-form__field textarea{min-height:12rem;resize:vertical}.contact-form__field--hidden{position:absolute;left:-9999px;opacity:0;pointer-events:none}.contact-form__error{color:var(--color-danger);font-size:var(--size-xs);font-weight:700}.contact-form__alert{padding:1rem;border:2px solid #171717;border-radius:18px;margin-bottom:1rem;background:#fff}.contact-form__alert--success{background:#e8fff3}.contact-form__alert--error{background:#ffe8ef}

.pagination__list{display:flex;flex-wrap:wrap;gap:.5rem}.pagination__link{display:grid;place-items:center;min-width:2.6rem;padding:.65rem .8rem;background:#fff;border:2px solid #171717;border-radius:999px;text-decoration:none;font-weight:800}.pagination__link--current{background:var(--color-accent)}
.error-page{text-align:center;padding:4rem 1rem}.error-page__actions{display:flex;justify-content:center;gap:.75rem}.mirror{background:#171717;color:#fff;padding:2rem}.mirror *{color:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.custom-center{justify-content:center!important}

/* Homepage editorial styling */
.site-aixtra-intro{position:relative;max-width:900px;margin:clamp(2rem,6vw,5rem) auto!important;background:#fff;border:2px solid #171717;border-radius:28px;padding:clamp(1.4rem,3vw,2.4rem);box-shadow:8px 8px 0 var(--color-accent);transform:rotate(-.5deg)}
.site-aixtra-intro::before{content:"salut 👋";position:absolute;left:-1rem;top:-1.2rem;background:var(--color-primary-soft);color:#fff;border:2px solid #171717;border-radius:999px;padding:.35rem .7rem;font:400 1rem/1 var(--font-hand);transform:rotate(-6deg)}
.site-aixtra-highlights{position:relative;padding:clamp(1rem,2vw,2rem) 0 2rem}.site-aixtra-highlights::before{content:"NOTRE AIX À NOUS";display:inline-block;margin-bottom:1rem;background:var(--color-blue);color:#fff;border:2px solid #171717;border-radius:999px;padding:.35rem .7rem;font:700 .78rem/1 var(--font-heading);letter-spacing:.08em;transform:rotate(-2deg)}
.site-aixtra-body{position:relative;max-width:900px;margin-inline:auto!important;padding:clamp(1.25rem,3vw,2rem);background:#ffeaf2;border-left:7px solid var(--color-primary-soft);border-radius:0 28px 28px 0}.site-aixtra-body::after{content:"vraie vie > carte postale";position:absolute;right:1rem;bottom:-1.25rem;font:400 1.05rem/1 var(--font-hand);color:var(--color-blue);transform:rotate(-3deg)}
.site-aixtra-topics{padding-top:1rem}.site-aixtra-topics .block-columns__item:nth-child(1){background:#fff7cf}.site-aixtra-topics .block-columns__item:nth-child(2){background:#ffe5ef}.site-aixtra-topics .block-columns__item:nth-child(3){background:#e9e3ff}
.site-aixtra-end{max-width:900px;margin:3rem auto!important;padding:1.5rem;border:2px dashed #171717;border-radius:24px;background:#fff;text-align:center;font-weight:600}

@media(max-width:1024px){.block-columns.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.site-header__inner{align-items:flex-start}.site-header__nav{display:flex;flex-direction:column;align-items:flex-end}.nav--primary{position:absolute;top:calc(100% + .5rem);right:var(--container-padding);min-width:min(280px,85vw);padding:1rem;background:#fff;border:2px solid #171717;border-radius:22px;box-shadow:6px 6px 0 #171717}.nav--primary:not(.is-open){display:none}.nav--primary.is-open{display:block}.nav__list{flex-direction:column;align-items:flex-start}.hero--background{min-height:560px}.hero__overlay{max-width:94vw}.hero__overlay::after{right:.5rem;bottom:-2.1rem}}
@media(max-width:640px){main{padding-inline:1rem}.page__content{padding-block:2rem}.block{margin-block:2rem}.block-columns.cols-3,.block-columns.cols-2{grid-template-columns:1fr}.block-columns__item:nth-child(n){transform:none}.hero--background{min-height:520px}.hero__content--overlay{padding:2rem 1rem 3.5rem}.hero__overlay{padding:1.5rem 1.2rem;border-radius:24px;box-shadow:7px 7px 0 #171717;transform:none}.hero__overlay h1,.hero__title{font-size:clamp(2.7rem,16vw,4.8rem)}.hero__overlay::before{left:1rem}.hero__overlay::after{width:62px;height:62px;font-size:1.6rem}.contact-form__grid{grid-template-columns:1fr}.article-author{grid-template-columns:1fr}.article-author__photo{width:78px;height:78px}.error-page__actions{flex-direction:column}.site-aixtra-intro::before{left:.7rem}}
@media print{body{background:#fff;color:#000}.site-header,.site-footer,.burger{display:none!important}}
