:root{--paper:#f1eee7;--paper-2:#e4dfd4;--ink:#111817;--muted:#676d69;--blue:#173f4a;--blue-2:#0f2f37;--sage:#6f7e69;--sand:#d6c9b7;--accent:#c8643f;--line:rgba(17,24,23,0.18);--white:#fff;--page-pad:clamp(24px,5vw,84px);--header-h:96px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Inter",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-progress{position:fixed;z-index:100;inset:0 0 auto 0;height:3px;pointer-events:none}.page-progress span{display:block;width:0;height:100%;background:var(--accent)}.site-header{position:absolute;z-index:40;inset:0 0 auto 0;height:var(--header-h);padding:26px var(--page-pad) 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;color:var(--white)}.brand{display:inline-flex;width:max-content;flex-direction:column;font-family:"Barlow Condensed",Arial,sans-serif;line-height:0.84;letter-spacing:0.02em}.brand span{font-size:1.05rem;font-weight:500}.brand strong{font-size:1.45rem;font-weight:700}.site-nav{display:flex;gap:clamp(22px,2.8vw,46px);padding-top:7px;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em}.site-nav a,.header-search{position:relative}.site-nav a::after,.header-search::after{content:"";position:absolute;left:0;bottom:-7px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 250ms ease}.site-nav a:hover::after,.header-search:hover::after{transform:scaleX(1);transform-origin:left}.header-search{justify-self:end;display:inline-flex;align-items:center;gap:10px;padding-top:5px;font-size:0.65rem;font-weight:700;letter-spacing:0.08em}.header-search b{font-size:1.3rem;font-weight:400}.menu-toggle{display:none}.hero{position:relative;min-height:100vh;overflow:hidden;display:grid;align-items:end;background:var(--blue-2);color:var(--white)}.hero-copy{position:relative;z-index:4;width:min(760px,58vw);padding:calc(var(--header-h) + 80px) 0 86px var(--page-pad)}.eyebrow,.section-index{margin:0 0 22px;font-size:0.68rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase}.hero h1,.section h2{margin:0;font-family:"Barlow Condensed",Arial,sans-serif;font-weight:600;letter-spacing:-0.025em}.hero h1{font-size:clamp(5.4rem,10vw,10.5rem);line-height:0.78}.hero-subtitle{margin:34px 0 0;color:#d8ded9;font-family:"Barlow Condensed",Arial,sans-serif;font-size:clamp(2rem,4vw,4.3rem);line-height:0.9}.text-link{display:inline-flex;align-items:center;gap:28px;margin-top:42px;font-size:0.75rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}.text-link b{font-size:1.2rem;transition:transform 250ms ease}.text-link:hover b{transform:translate(5px,2px)}.hero-visual{position:absolute;z-index:1;inset:0 0 0 42%}.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--blue-2) 0,rgba(15,47,55,.82) 14%,rgba(15,47,55,.12) 56%,rgba(15,47,55,.28) 100%)}.photo-placeholder{position:relative;width:100%;height:100%;overflow:hidden}.photo-placeholder::before,.photo-placeholder::after{content:"";position:absolute}.photo-placeholder::before{inset:0;background:linear-gradient(145deg,rgba(255,255,255,.08),transparent 42%),radial-gradient(circle at 70% 25%,rgba(255,255,255,.12),transparent 30%),linear-gradient(135deg,#546966,#1d3538 56%,#10292f)}.photo-placeholder::after{width:44%;height:52%;right:8%;bottom:-8%;background:rgba(255,255,255,.08);clip-path:polygon(18% 0,100% 20%,88% 100%,0 80%)}.photo-placeholder span{position:absolute;z-index:3;right:28px;bottom:24px;color:rgba(255,255,255,.64);font-size:0.63rem;letter-spacing:0.12em}.hero-side{position:absolute;z-index:5;right:18px;top:50%;display:flex;align-items:center;gap:12px;writing-mode:vertical-rl;transform:translateY(-50%);font-size:0.5rem;letter-spacing:0.12em}.hero-side i{width:1px;height:74px;background:rgba(255,255,255,.55)}.scroll-hint{position:absolute;z-index:5;right:var(--page-pad);bottom:32px;display:flex;align-items:center;gap:10px;font-size:0.55rem;letter-spacing:0.12em}.scroll-hint i{width:42px;height:1px;background:rgba(255,255,255,.55)}.section{padding:110px var(--page-pad)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px}.section-heading h2,.agenda-intro h2,.discover-copy h2,.publication-copy h2,.mairie-title h2{font-size:clamp(3.8rem,6.8vw,7.2rem);line-height:0.84}.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{min-height:330px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background 280ms ease,color 280ms ease,transform 280ms ease}.service-card:hover{background:var(--blue);color:var(--white);transform:translateY(-4px)}.service-number{font-size:0.62rem;letter-spacing:0.1em}.service-card h3{margin:0;font-family:"Barlow Condensed",Arial,sans-serif;font-size:clamp(2.5rem,3vw,3.8rem);line-height:0.88;font-weight:600}.service-card p{max-width:260px;margin:18px 0 0;color:var(--muted);font-size:0.82rem;line-height:1.5}.service-card:hover p{color:rgba(255,255,255,.7)}.service-card b{align-self:flex-end;font-size:1.5rem}.section-end{display:flex;justify-content:flex-end}.section-dark{background:#171c1b;color:var(--white)}.section-dark .section-index{color:#aeb9b4}.news-grid{display:grid;grid-template-columns:1.65fr 1fr 1fr;gap:18px}.news-feature,.news-card{display:flex;min-width:0;flex-direction:column}.news-image{height:300px}.news-feature .news-image{height:480px}.photo-municipal::before{background:linear-gradient(135deg,rgba(200,100,63,.26),transparent 45%),linear-gradient(135deg,#65756f,#2d4545 58%,#1e2b2c)}.photo-event::before{background:radial-gradient(circle at 62% 35%,rgba(226,199,144,.35),transparent 25%),linear-gradient(135deg,#806a55,#3d3931 60%,#242522)}.photo-river::before{background:linear-gradient(165deg,rgba(255,255,255,.15),transparent 40%),linear-gradient(135deg,#65808c,#345861 48%,#18353c)}.news-meta{margin-top:18px;display:flex;justify-content:space-between;color:rgba(255,255,255,.55);font-size:0.62rem;letter-spacing:0.08em}.news-feature h3,.news-card h3{margin:18px 0 0;font-family:"Barlow Condensed",Arial,sans-serif;font-size:2rem;line-height:1;font-weight:500}.news-feature h3{max-width:660px;font-size:clamp(2.8rem,4vw,4.6rem)}.news-feature a,.news-card a{margin-top:auto;padding-top:24px;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em}.light{color:var(--white)}.agenda{display:grid;grid-template-columns:0.9fr 1.4fr;gap:clamp(60px,8vw,150px)}.agenda-list{border-top:1px solid var(--line)}.agenda-row{display:grid;grid-template-columns:70px 90px 1fr 80px 34px;align-items:center;min-height:118px;border-bottom:1px solid var(--line);transition:padding 250ms ease,color 250ms ease}.agenda-row:hover{padding-left:12px;color:var(--accent)}.agenda-row strong{font-family:"Barlow Condensed",Arial,sans-serif;font-size:3.2rem}.agenda-row span,.agenda-row time{font-size:0.66rem;font-weight:700;letter-spacing:0.1em}.agenda-row p{margin:0;font-size:1rem}.agenda-row b{justify-self:end;font-size:1.2rem}.section-sand{background:var(--sand)}.discover{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(50px,8vw,140px);align-items:center}.discover-copy>p:not(.section-index){max-width:520px;margin:34px 0 0;color:#4e504b;font-size:1rem;line-height:1.7}.discover-links{margin-top:42px;display:flex;flex-wrap:wrap;gap:12px}.discover-links a{padding:13px 16px;border:1px solid rgba(17,24,23,.28);font-size:0.7rem;font-weight:700;text-transform:uppercase;transition:background 220ms ease,color 220ms ease}.discover-links a:hover{background:var(--ink);color:var(--white)}.discover-visual{height:620px}.photo-bike::before{background:linear-gradient(145deg,rgba(255,255,255,.18),transparent 40%),linear-gradient(135deg,#88927d,#596d62 45%,#354b47)}.publication{display:grid;grid-template-columns:.75fr 1.25fr;align-items:center;gap:clamp(50px,10vw,180px)}.publication-cover{display:flex;justify-content:center}.fake-magazine{width:min(340px,75vw);aspect-ratio:.72;padding:28px;display:flex;flex-direction:column;background:linear-gradient(155deg,rgba(255,255,255,.08),transparent 35%),var(--blue);box-shadow:0 25px 70px rgba(17,24,23,.18);color:var(--white)}.fake-magazine span{font-size:0.72rem;letter-spacing:0.18em}.fake-magazine strong{margin-top:auto;font-family:"Barlow Condensed",Arial,sans-serif;font-size:4.2rem;line-height:0.8}.fake-magazine small{margin-top:18px;color:#d8ded9}.publication-copy>p:not(.section-index){max-width:540px;margin:30px 0 0;color:var(--muted);line-height:1.7}.section-blue{background:var(--blue);color:var(--white)}.mairie-title{margin-bottom:58px}.mairie-title .section-index{color:#b6c6c7}.mairie-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.22);border-left:1px solid rgba(255,255,255,.22)}.mairie-block{min-height:190px;padding:28px;border-right:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22)}.mairie-block span{color:#b9c7c7;font-size:0.62rem;font-weight:700;letter-spacing:0.12em}.mairie-block p{margin:50px 0 0;font-family:"Barlow Condensed",Arial,sans-serif;font-size:1.7rem;line-height:1}.mairie-cta{margin-top:26px;padding:26px 0;display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.42);font-size:0.78rem;font-weight:700;letter-spacing:0.12em}.site-footer{min-height:190px;padding:42px var(--page-pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:40px;background:#111817;color:rgba(255,255,255,.65)}.footer-brand{display:flex;flex-direction:column;font-family:"Barlow Condensed",Arial,sans-serif;line-height:.86}.footer-brand span{font-size:1.1rem}.footer-brand strong{font-size:1.8rem;color:var(--white)}.footer-links{display:flex;gap:26px;font-size:.6rem}.footer-credit{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;font-size:.6rem}.footer-credit strong{margin-top:6px;color:var(--white);letter-spacing:.08em}.reveal{opacity:0;transform:translateY(28px);transition:opacity 800ms cubic-bezier(.2,.6,.2,1),transform 800ms cubic-bezier(.2,.6,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}

@media (max-width: 1050px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .site-nav,
  .header-search {
    display: none;
  }

  .menu-toggle {
    position: relative;
    z-index: 70;
    justify-self: end;
    width: 34px;
    height: 28px;
    padding: 3px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .menu-toggle span {
    width: 100%;
    height: 2px;
    background: currentColor;
    transition: transform 250ms ease, opacity 250ms ease;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }

  .site-nav.is-open {
    position: fixed;
    inset: 0;
    z-index: 60;
    padding: 130px var(--page-pad) 50px;
    display: flex;
    flex-direction: column;
    gap: 22px;
    background: var(--blue-2);
    font-family: "Barlow Condensed", Arial, sans-serif;
    font-size: clamp(2.8rem, 9vw, 5rem);
  }

  .hero-copy {
    width: min(820px, 82vw);
  }

  .hero-visual {
    inset-left: 30%;
  }

  .services-grid,
  .mairie-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .news-grid {
    grid-template-columns: 1fr 1fr;
  }

  .news-feature {
    grid-column: 1 / -1;
  }

  .agenda,
  .discover,
  .publication {
    grid-template-columns: 1fr;
  }

  .discover-visual {
    height: 520px;
  }

  .publication-cover {
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  :root {
    --page-pad: 20px;
    --header-h: 78px;
  }

  .site-header {
    padding-top: 18px;
  }

  .hero {
    min-height: 780px;
  }

  .hero-copy {
    width: 100%;
    padding-top: 150px;
    padding-bottom: 56px;
  }

  .hero h1 {
    font-size: clamp(4.1rem, 20vw, 6.2rem);
  }

  .hero-subtitle {
    font-size: 2.2rem;
  }

  .hero-visual {
    inset: 0;
    opacity: .55;
  }

  .hero-visual::after {
    background: linear-gradient(180deg, rgba(15,47,55,.58), rgba(15,47,55,.9));
  }

  .hero-side {
    display: none;
  }

  .scroll-hint {
    left: var(--page-pad);
    right: auto;
  }

  .section {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  .section-heading {
    display: block;
  }

  .section h2,
  .agenda-intro h2,
  .discover-copy h2,
  .publication-copy h2,
  .mairie-title h2 {
    font-size: clamp(3.3rem, 17vw, 5.2rem);
  }

  .services-grid,
  .news-grid,
  .mairie-grid {
    grid-template-columns: 1fr;
  }

  .service-card {
    min-height: 260px;
  }

  .news-feature {
    grid-column: auto;
  }

  .news-feature .news-image,
  .news-image {
    height: 300px;
  }

  .agenda-row {
    grid-template-columns: 48px 64px 1fr 28px;
    min-height: 100px;
  }

  .agenda-row time {
    display: none;
  }

  .agenda-row p {
    font-size: .86rem;
  }

  .discover-visual {
    height: 420px;
  }

  .publication {
    gap: 56px;
  }

  .mairie-block p {
    margin-top: 28px;
  }

  .site-footer {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-links {
    flex-direction: column;
    gap: 10px;
  }

  .footer-credit {
    justify-self: start;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
