
@font-face{font-family:'Archivo';src:url('/assets/fonts/archivo-latin-normal.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url('/assets/fonts/archivo-latin-italic.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('/assets/fonts/playfair-display-latin-italic.woff2') format('woff2');font-weight:400 800;font-style:italic;font-display:swap}
:root{
  --blanc:#ffffff;--papier:#fafaf8;--noir:#141210;--gris:#5f5c58;
  --rouge:#e01e26;--vert:#0ea74e;--vert-fonce:#0b6e37;
  --display:'Archivo',system-ui,sans-serif;
  --sans:system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif-it:'Playfair Display',Georgia,serif;
  --w:1240px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--blanc);color:var(--noir);font-family:var(--sans);line-height:1.65;font-size:17px}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--vert);color:#fff}

/* Barre tricolore signature */
.tricolore{height:5px;background:linear-gradient(90deg,var(--rouge) 0 33.4%,var(--vert) 33.4% 66.7%,var(--noir) 66.7% 100%)}

/* Masthead deux etages */
.masthead{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:var(--w);margin:0 auto;padding:18px 24px}
.logo{display:inline-flex;align-items:center;gap:14px;text-decoration:none}
.mark{width:54px;height:54px;flex-shrink:0}
.logo-txt{display:grid;gap:2px}
.wordmark{font-family:var(--display);font-weight:900;font-stretch:110%;font-size:30px;letter-spacing:-.03em;text-transform:uppercase;line-height:1}
.baseline{font-size:12.5px;color:var(--gris);letter-spacing:.02em}
.rubriques-bar{background:var(--noir);position:sticky;top:0;z-index:60;box-shadow:0 2px 0 rgba(0,0,0,.15)}
@media(max-width:760px){
  .masthead{position:sticky;top:0;z-index:71;background:var(--blanc);border-bottom:1px solid rgba(20,18,16,.16);transition:transform .25s ease}
  .rubriques-bar{top:74px;transition:transform .25s ease}
  body.navhide:not(:has(.rubriques-bar.open)) .masthead{transform:translateY(-110%)}
  body.navhide:not(:has(.rubriques-bar.open)) .rubriques-bar{transform:translateY(calc(-100% - 84px))}
}
@media(max-width:420px){.rubriques-bar{top:64px}}
@media(max-width:760px){body:has(.rubriques-bar.open){overflow:hidden}}
.rubriques-bar:before{content:"";display:block;height:4px;margin-bottom:-4px;background:linear-gradient(90deg,var(--rouge) 0 33.4%,var(--vert) 33.4% 66.7%,#3a352f 66.7% 100%);transform:scaleY(0);transform-origin:top;transition:transform .2s ease}
body.scrolled .rubriques-bar:before{transform:scaleY(1)}
.rubriques-bar .in{max-width:var(--w);margin:0 auto;padding:0 24px;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.rubriques-bar .in::-webkit-scrollbar{display:none}
.rubriques-bar a{color:#fff;text-decoration:none;font-family:var(--display);font-size:13.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:13px 15px;white-space:nowrap;transition:background .15s ease;-webkit-tap-highlight-color:transparent}
.rubriques-bar a:hover,.rubriques-bar a:active{background:var(--rouge);color:#fff}
.rubriques-bar a.on{background:var(--vert);color:#fff;box-shadow:inset 0 -4px 0 rgba(0,0,0,.25)}
.rubriques-bar a.nav-mm{display:none}
.rubriques-bar a.nav-live:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--vert);margin-right:8px;vertical-align:1px;animation:navpulse 2.2s ease-in-out infinite}
.rubriques-bar a.nav-live.on:before,.rubriques-bar a.nav-live:hover:before{background:#fff}
@keyframes navpulse{0%,100%{opacity:1}50%{opacity:.35}}
.rubriques-bar a.nav-tdy{background:var(--vert)}
.rubriques-bar a.nav-tdy:hover{background:var(--rouge)}
.mast-live{display:flex;gap:9px;margin-left:auto}
.ml-item{display:flex;align-items:center;gap:8px;text-decoration:none;border:2px solid var(--noir);background:var(--blanc);padding:6px 9px 6px 11px;box-shadow:2px 2px 0 rgba(20,18,16,.12);transition:transform .15s ease,box-shadow .15s ease}
.ml-item:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--vert)}
.ml-item:first-child:hover{box-shadow:3px 3px 0 var(--rouge)}
.ml-item b{display:flex;align-items:center;gap:6px;font-family:var(--display);font-weight:900;font-size:13.5px;line-height:1;color:var(--noir)}
.ml-item small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--gris);margin-top:2px}
.ml-dot{width:6px;height:6px;border-radius:50%;background:var(--vert);animation:navpulse 2s ease-in-out infinite}
.ml-go{color:#c9c9c4;transition:color .15s ease,transform .15s ease}
.ml-item:hover .ml-go{color:var(--rouge);transform:translateX(3px)}
@media(max-width:760px){.masthead .mast-live{display:none}}.mast-live-menu{display:none}@media(max-width:760px){.rubriques-bar .mast-live-menu{display:flex;flex-direction:column;gap:8px;margin:0;padding:12px 20px 6px}.rubriques-bar .mast-live-menu .ml-item{width:100%;min-width:0;box-shadow:none}}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:3px solid var(--noir);padding:10px;cursor:pointer}
.burger span{display:block;width:22px;height:3px;background:var(--noir);transition:transform .25s ease,opacity .18s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(max-width:760px){
  .masthead{padding:14px 20px}
  .baseline{display:none}
  .wordmark{font-size:24px}
  .mark{width:46px;height:46px}
  .burger{display:flex}
  .rubriques-bar .in{display:none;flex-direction:column;padding:0;overflow:visible}
  .rubriques-bar.open .in{display:flex}
  .rubriques-bar a{padding:15px 20px;border-bottom:1px solid rgba(255,255,255,.12);font-size:15px}
  .rubriques-bar a:last-child{margin-left:0}
}
@media(max-width:420px){
  .masthead{padding:12px 14px;gap:10px}
  .logo{gap:10px}
  .wordmark{font-size:21px}
  .mark{width:40px;height:40px}
  .burger{padding:8px}
  .burger span{width:20px}
}

/* Liseré madras */
.madras{height:12px;background:
 repeating-linear-gradient(90deg,rgba(20,18,16,.55) 0 2px,transparent 2px 14px),
 repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0 1px,transparent 1px 4px),
 repeating-linear-gradient(90deg,#e01e26 0 34px,#e8b004 34px 46px,#0ea74e 46px 88px,#141210 88px 100px);
 background-size:auto,auto,700px 100%;animation:madrasFlow 48s linear infinite}
@keyframes madrasFlow{from{background-position:0 0,0 0,0 0}to{background-position:0 0,0 0,-700px 0}}
@media (prefers-reduced-motion:reduce){.madras{animation:none}}

/* Hero une full-bleed */
.une{position:relative;min-height:74vh;display:flex;align-items:flex-end;background-size:cover;background-position:center;color:#fff}
.une:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,.25),rgba(10,9,8,.05) 35%,rgba(10,9,8,.78) 82%)}
.une-in{position:relative;z-index:1;max-width:var(--w);margin:0 auto;width:100%;padding:60px 24px 46px}
.rubrique{display:inline-block;font-family:var(--display);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--rouge);padding:6px 10px}
.une h1{font-family:var(--display);font-weight:900;font-stretch:105%;text-transform:uppercase;font-size:clamp(32px,4.6vw,64px);line-height:.96;letter-spacing:-.025em;margin:16px 0 14px;max-width:20ch;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.une .dek{font-size:clamp(17px,1.6vw,20px);color:rgba(255,255,255,.92);margin:0 0 24px;max-width:52ch}
.une .credit{position:absolute;right:18px;bottom:12px;z-index:1;font-size:11px;color:rgba(255,255,255,.6)}
.lire{display:inline-block;text-decoration:none;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:14px;color:#fff;background:var(--rouge);padding:14px 24px;border:3px solid #fff;box-shadow:5px 5px 0 rgba(0,0,0,.55);transition:transform .15s ease,box-shadow .15s ease}
.lire:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 rgba(0,0,0,.55)}
.lire:active{transform:translate(5px,5px);box-shadow:none}

/* Marquee événement */
.marquee{border-top:3px solid var(--noir);border-bottom:3px solid var(--noir);background:var(--blanc);overflow:hidden;white-space:nowrap;padding:12px 0}
.marquee .track{display:inline-block;animation:defile 28s linear infinite;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:15px;letter-spacing:.05em}
.marquee .track a{text-decoration:none}
.marquee .track a:hover{color:var(--rouge)}
.marquee .sep-r{color:var(--rouge)} .marquee .sep-v{color:var(--vert)}
@keyframes defile{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Explorer */
.explorer{max-width:var(--w);margin:0 auto;padding:56px 24px 72px}
.explorer h2,.section-titre{font-family:var(--display);font-weight:900;font-stretch:105%;text-transform:uppercase;font-size:clamp(24px,2.8vw,36px);letter-spacing:-.02em;margin:0 0 6px}
.section-barre{width:64px;height:5px;background:linear-gradient(90deg,var(--rouge) 0 33.4%,var(--vert) 33.4% 66.7%,var(--noir) 66.7% 100%);margin-bottom:26px}
.tiles{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:225px;gap:18px}
.tile{position:relative;overflow:hidden;text-decoration:none;border:3px solid var(--noir);background:var(--noir);transition:transform .18s ease,box-shadow .18s ease}
.tile:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.tile:nth-child(3n+1):hover{box-shadow:6px 6px 0 var(--rouge)}
.tile:nth-child(3n):hover{box-shadow:6px 6px 0 var(--noir)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tile:hover img{transform:scale(1.045)}
.tile:after{content:"";position:absolute;inset:52% 0 0;background:linear-gradient(transparent,rgba(10,9,8,.68))}
.tile figcaption{position:absolute;z-index:1;left:16px;right:16px;bottom:13px;color:#fff}
.tile b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:20px;letter-spacing:-.01em;line-height:1.08}
.tile span{font-size:13px;color:rgba(255,255,255,.78)}
.t-1{grid-column:span 7;grid-row:span 2}.t-2{grid-column:span 5}.t-3{grid-column:span 5}
.t-4{grid-column:span 4}.t-5{grid-column:span 8}

/* Événement */
.evenement{background:var(--noir);color:#fff}
.evenement .in{max-width:var(--w);margin:0 auto;padding:60px 24px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center}
.evenement .rubrique{background:var(--vert)}
.evenement h2{font-family:var(--display);font-weight:900;font-stretch:105%;text-transform:uppercase;font-size:clamp(26px,3.2vw,42px);line-height:1;letter-spacing:-.02em;margin:16px 0 12px;max-width:24ch}
.evenement p{margin:0;color:rgba(255,255,255,.72);max-width:52ch}
.evenement .lire{border-color:#fff;box-shadow:5px 5px 0 var(--vert)}
.evenement .lire:hover{box-shadow:2px 2px 0 var(--vert)}

/* Repères */
.reperes{max-width:var(--w);margin:0 auto;padding:0 24px 72px;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.reperes div{border-top:5px solid var(--noir);padding-top:16px;position:relative}
.reperes div:nth-child(1){border-color:var(--rouge)}
.reperes div:nth-child(2){border-color:var(--vert-fonce)}
.reperes b{font-family:var(--display);font-weight:900;font-stretch:110%;font-size:52px;display:block;line-height:1;letter-spacing:-.02em}
.reperes span{color:var(--gris);font-size:15px}

/* Newsletter */
.lettre{max-width:var(--w);margin:0 auto 88px;padding:0 24px}
.lettre .in{position:relative;overflow:hidden;background:#0e0d0b;color:#fff;padding:46px 52px 46px 190px;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.lettre .in:after{content:"";position:absolute;top:0;bottom:0;right:-40px;width:16%;background:var(--vert);transform:skewX(12deg)}
.lettre-palm{position:absolute;top:0;height:100%;width:auto;pointer-events:none;left:-8px}
.lettre-avion{position:absolute;left:176px;top:0;width:102px;height:auto;pointer-events:none}
.lettre-hib{position:absolute;right:178px;top:-14px;width:98px;height:auto;z-index:1;pointer-events:none}
.lettre-dots{position:absolute;right:24px;top:20px;width:64px;z-index:1;pointer-events:none}
.lettre-txt{position:relative;z-index:1}
.lettre form{position:relative;z-index:1}
.nl-msg{font-size:12.5px;margin:9px 0 0;min-height:1em;color:rgba(255,255,255,.85)}
.nl-msg.ok{color:#7ee2a8;font-weight:600}
.nl-msg.err{color:#ff9a9a}
.lettre h2{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(21px,2.2vw,28px);letter-spacing:-.015em;line-height:1.14;margin:0 0 10px}
.nl-vert{color:var(--vert-fonce)}
.lettre p{margin:0;color:rgba(255,255,255,.72);font-size:14.5px;max-width:48ch}
.lettre form{display:grid;gap:10px}
.lettre label{font-family:var(--display);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.lettre .row{display:flex;gap:10px}
.lettre form{position:relative;z-index:2}
.nl-field{flex:1;display:flex;align-items:center;gap:10px;background:#fff;padding:0 14px}
.lettre input{flex:1;border:0;background:none;color:var(--noir);padding:15px 0;font:inherit;font-size:15px;min-width:0;outline:none}
.lettre input::placeholder{color:#8a8a84}
.lettre .row{display:flex;gap:0}
.lettre button{display:inline-flex;align-items:center;gap:9px;border:0;background:var(--rouge);color:#fff;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.04em;padding:15px 22px;cursor:pointer;transition:background .15s ease}
.lettre button:hover{background:#c01118}
.lettre button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--noir)}
.lettre button:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--noir)}

/* Page categorie */
.cat-hero{position:relative;background:var(--noir);color:#fff;overflow:hidden}
.cat-hero:before{content:"";position:absolute;inset:0;background-image:var(--cover);background-size:cover;background-position:center 40%}
.cat-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,13,11,.55) 0,rgba(15,13,11,.28) 34%,rgba(15,13,11,.04) 62%,rgba(15,13,11,0) 100%)}
.cat-hero h1,.cat-hero p{text-shadow:0 2px 16px rgba(0,0,0,.5)}
.cat-hero-in{position:relative;z-index:1}
.cat-hero-in{max-width:1140px;margin:0 auto;padding:44px 24px 40px}
.cat-hero .ariane{color:rgba(255,255,255,.7);margin-bottom:16px}
.cat-hero .ariane a{color:rgba(255,255,255,.7)}
.cat-hero .ariane a:hover{color:#fff}
.cat-hero h1{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(34px,5vw,60px);line-height:1;letter-spacing:-.025em;margin:0 0 14px;display:flex;align-items:center;gap:16px}
.cat-hero h1 .rub-dot{width:26px;height:26px}
.cat-hero p{font-size:19px;color:rgba(255,255,255,.82);max-width:60ch;margin:0 0 16px}
.cat-count{display:inline-block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12.5px;letter-spacing:.05em;background:var(--vert);color:#fff;padding:8px 14px}
.cat-main{padding:36px 0 64px}
.cat-lead{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:390px;border:3px solid var(--noir);background:var(--noir);text-decoration:none;overflow:hidden;margin-bottom:22px;transition:transform .15s ease,box-shadow .15s ease}
.cat-lead:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--rouge)}
.cat-lead-img{position:absolute;inset:0}
.cat-lead-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 36%,rgba(10,9,8,.42) 64%,rgba(10,9,8,.92) 100%)}
.cat-lead-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.cat-lead:hover .cat-lead-img img{transform:scale(1.04)}
.cat-lead-txt{position:relative;z-index:1;padding:24px;color:#fff}
.cat-lead-txt b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(22px,2.4vw,32px);line-height:1.08;letter-spacing:-.015em;margin-bottom:8px;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.cat-lead-txt small{display:block;font-size:14.5px;color:rgba(255,255,255,.88);max-width:60ch}
.cat-lead .cat-more{display:inline-block;margin-top:12px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12.5px;color:#fff}
.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cat-card{position:relative;min-height:295px;text-decoration:none;border:3px solid var(--noir);background:var(--noir);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.cat-card:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.cat-card:nth-child(3n):hover{box-shadow:6px 6px 0 var(--rouge)}
.cat-card:nth-child(3n+2):hover{box-shadow:6px 6px 0 var(--noir)}
.cat-card-img{position:absolute;inset:0;overflow:hidden}
.cat-card-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 42%,rgba(10,9,8,.4) 66%,rgba(10,9,8,.9) 100%)}
.cat-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.cat-card:hover .cat-card-img img{transform:scale(1.05)}
.cat-card b{position:relative;z-index:1;font-family:var(--display);font-weight:900;font-size:18px;line-height:1.15;letter-spacing:-.01em;padding:0 16px;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.cat-card small{position:relative;z-index:1;color:rgba(255,255,255,.85);font-size:13px;padding:6px 16px 0}
.cat-card .card-date{position:relative;z-index:1;margin:0;padding:8px 16px 15px;color:rgba(255,255,255,.62)}
nav.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:36px;flex-wrap:wrap}
.pagination a{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14px;text-decoration:none;color:var(--noir);border:3px solid var(--noir);padding:10px 14px;transition:background .15s ease,color .15s ease}
.pagination a:hover{background:var(--noir);color:#fff}
.pg-nums{display:flex;gap:6px}
.pg-nums a{padding:10px 15px}
.pg-nums a.on{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.cat-tools{display:flex;align-items:center;gap:8px;margin:0 0 18px;flex-wrap:wrap}
@media(max-width:480px){.cat-tools{flex-wrap:nowrap;gap:5px;min-width:0;overflow-x:auto}.cat-tools>span{display:none}.tri-btn{font-size:10.5px;letter-spacing:.02em;padding:6px 5px;white-space:nowrap;flex:1;border-width:2px}}
.cat-tools>span{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:var(--gris);margin-right:2px}
.tri-btn{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.04em;color:var(--noir);background:none;border:2px solid var(--noir);padding:7px 12px;cursor:pointer;transition:background .15s ease,color .15s ease}
.tri-btn:hover,.tri-btn.on{background:var(--noir);color:#fff}
.side-rubs{display:grid;gap:2px}
.side-box nav.side-rubs a{display:flex;align-items:center;grid-template-columns:none;gap:9px;text-decoration:none;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.03em;color:var(--noir);padding:9px 10px;border-bottom:0;transition:background .15s ease}
.side-box nav.side-rubs a:hover,.side-box nav.side-rubs a.on{background:var(--papier)}
.side-box nav.side-rubs a.on{color:var(--rouge)}
.side-box nav.side-rubs em{margin-left:auto;font-style:normal;color:var(--gris);font-weight:900}
.side-box nav.side-rubs .rub-dot{width:12px;height:12px}
@media(max-width:860px){
  .cat-lead{min-height:300px}
  .cat-lead-txt b{font-size:21px}
  .cat-hero:after{background:linear-gradient(180deg,rgba(15,13,11,.38) 0,rgba(15,13,11,.62) 100%)}
  .cat-hero p{font-size:16px}
  .cat-grid{grid-template-columns:1fr}
}

/* Article: layout 2 colonnes */
.article-wrap{max-width:1140px;margin:0 auto;padding:0 24px 64px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:52px;align-items:start}
.article-wrap .corps{max-width:none;margin:0;padding:36px 0 20px}
.art-side{padding-top:36px;display:grid;gap:22px;position:sticky;top:76px}
.side-box{border:1px solid var(--noir);background:var(--blanc);padding:18px}
.article-wrap:has(.meteo-main) .side-box,.article-wrap:has(.mer-main) .side-box{border:1px solid rgba(20,18,16,.22);padding:20px 18px}
.article-wrap:has(.meteo-main) .side-box>b,.article-wrap:has(.mer-main) .side-box>b{border-bottom-width:2px}
.art-side .sommaire{margin:0}
.side-box>b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.02em;margin-bottom:12px;padding-bottom:10px;border-bottom:3px solid var(--rouge)}
.side-box a{display:grid;grid-template-columns:72px 1fr;gap:11px;align-items:center;text-decoration:none;padding:9px 0;border-bottom:1px solid #e8e8e4}
.side-box a:last-child{border-bottom:0;padding-bottom:0}
.side-box img{width:72px;height:52px;object-fit:cover;border:2px solid var(--noir)}
.side-box span{font-family:var(--display);font-weight:700;font-size:14px;line-height:1.2;color:var(--noir);transition:color .15s ease}
.side-box a:hover span{color:var(--rouge)}
.side-nl{position:relative;overflow:hidden;border-radius:14px;background:#0e0d0b;color:#fff;padding:24px 22px 22px}
.side-nl:after{content:"";position:absolute;top:-16px;right:-34px;width:48px;height:130%;background:var(--vert);transform:skewX(12deg)}
.side-nl>b{display:block;position:relative;z-index:2;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:19px;line-height:1.08;letter-spacing:-.01em;margin:0 0 10px;max-width:86%}
.side-nl .nl-vert{color:var(--vert-fonce)}
.side-nl p{position:relative;z-index:2;margin:0 0 14px;font-size:13.5px;color:rgba(255,255,255,.72);line-height:1.5}
.side-nl form{position:relative;z-index:2}
.snl-field{display:flex;align-items:center;gap:8px;background:#fff;border-radius:10px;padding:11px 12px}
.snl-field input{border:0;outline:0;background:none;font:inherit;font-size:14px;width:100%;min-width:0;color:var(--noir)}
.side-nl button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;border:0;border-radius:10px;background:var(--rouge);color:#fff;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.04em;padding:12px;cursor:pointer;transition:background .15s ease}
.side-nl button:hover{background:var(--vert)}
.snl-hib{position:absolute;right:6px;top:-6px;width:58px;z-index:1}
.side-nl-btn,.side-box a.side-nl-btn{display:block;grid-template-columns:none;padding:12px;border-bottom:0;text-align:center;min-width:0;text-decoration:none;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.04em;background:var(--rouge);color:#fff;padding:12px;transition:background .15s ease}
.side-nl-btn:hover{background:var(--vert)}
.side-pub{margin:0;padding:0}
.side-pub .pub-vide{min-height:200px}
@media(max-width:960px){
  .article-wrap{grid-template-columns:minmax(0,1fr);gap:0}
  .art-side{position:static;padding-top:0;margin-bottom:20px}
  .article-wrap:has(.meteo-main),.article-wrap:has(.mer-main){display:flex;flex-direction:column}
  .article-wrap:has(.meteo-main) .art-side,.article-wrap:has(.mer-main) .art-side,
  .article-wrap:has(.meteo-main) .meteo-main,.article-wrap:has(.mer-main) .mer-main{display:contents}
  .article-wrap:has(.meteo-main) .meteo-main>*,.article-wrap:has(.mer-main) .mer-main>*{order:2;min-width:0;width:100%}
  .article-wrap:has(.meteo-main) .meteo-main>.back-btn,.article-wrap:has(.mer-main) .mer-main>.back-btn{order:0;width:auto;align-self:flex-start;margin:20px 0 0}
  .article-wrap:has(.meteo-main) .art-side>*,.article-wrap:has(.mer-main) .art-side>*{order:3;margin:0 0 18px;width:100%}
  .article-wrap:has(.meteo-main) .art-side .side-date,.article-wrap:has(.mer-main) .art-side .side-date{order:1;margin:16px 0 18px}
}

/* Corps article: typographie editoriale */
.corps{max-width:720px;margin:0 auto;padding:36px 24px 20px;font-size:18.5px;line-height:1.75}
.corps p{margin:0 0 24px;color:#26221f}
.corps > p:first-of-type{font-size:21px;line-height:1.6;color:var(--noir)}
.corps > p:first-of-type::first-letter{font-family:var(--display);font-weight:900;font-size:76px;line-height:.72;float:left;padding:8px 14px 0 0;color:var(--rouge)}
.corps h2{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(23px,2.5vw,30px);letter-spacing:-.015em;line-height:1.05;margin:48px 0 16px;padding-top:20px;border-top:3px solid var(--noir);scroll-margin-top:80px}
.corps h2:nth-of-type(3n+1){border-top-color:var(--rouge)}
.corps h2:nth-of-type(3n+2){border-top-color:var(--vert)}
.corps ul{list-style:none;padding:0;margin:0 0 24px}
.corps ul li{position:relative;padding-left:26px;margin:0 0 11px}
.corps ul li:before{content:"";position:absolute;left:0;top:11px;width:11px;height:11px;background:var(--rouge)}
.corps ul li:nth-child(even):before{background:var(--vert)}
.corps strong{font-weight:800}
.corps em{font-style:italic}
.corps a{color:var(--noir);text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:2px;text-underline-offset:3px;font-weight:600}
.corps a:hover{color:var(--rouge)}
.note{border-left:5px solid var(--vert);background:var(--papier);padding:16px 22px;margin:30px 0;font-size:17px;line-height:1.6}
.note p{margin:0;color:var(--noir)}
.note strong{font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.04em;color:var(--vert-fonce)}

/* Publicité */
.pub-slot{max-width:var(--w);margin:8px auto 40px;padding:0 24px}.pub-slot.pub-large{margin:56px auto 0}
.pub-inline{margin:34px 0;padding:0}
.pub-label{display:block;font-family:var(--display);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-bottom:6px}
.pub-slot img{width:100%;display:block;border:2px solid var(--noir)}
.pub-vide{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;min-height:110px;text-decoration:none;border:2px dashed var(--gris);background:var(--papier);padding:18px;transition:border-color .15s ease}
.pub-vide:hover{border-color:var(--rouge)}
.pub-vide b{font-family:var(--display);text-transform:uppercase;font-size:16px;letter-spacing:.02em}
.pub-vide span{font-size:13px;color:var(--gris);max-width:44ch}
@media (max-width:900px){.pub-inline{margin:28px 0}}

/* Actus */
.actus{max-width:var(--w);margin:0 auto;padding:48px 24px 8px}
.actus-list{display:grid;gap:0;border-top:3px solid var(--noir)}
.actu{display:grid;grid-template-columns:130px 1fr auto;gap:20px;align-items:baseline;padding:15px 4px;border-bottom:2px solid var(--noir);text-decoration:none}
.actu time{font-family:var(--display);font-weight:800;font-size:13px;text-transform:uppercase;color:var(--rouge)}
.actu b{font-size:17px;transition:color .15s ease}
.actu:hover b{color:var(--rouge)}
.actu small{color:var(--gris);font-size:13px}
.actu .a-tag{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.05em;color:var(--vert-fonce);white-space:nowrap}
@media (max-width:700px){.actu{grid-template-columns:1fr;gap:4px}.actu .a-tag{justify-self:start}}

/* Corps photo */
.corps-photo{position:relative;margin:32px 0;border:1px solid var(--noir);overflow:hidden}
.corps-photo img{width:100%;max-height:440px;object-fit:cover;display:block}
.corps-photo figcaption{position:absolute;left:0;right:0;bottom:0;font-size:11.5px;color:rgba(255,255,255,.92);padding:26px 12px 9px;background:linear-gradient(180deg,rgba(10,9,8,0),rgba(10,9,8,.62))}

/* Article: barre progression */



/* Article: header aligne (modele Prismic) */
.art-head{max-width:1140px;margin:0 auto;padding:36px 24px 22px}
.art-head .ariane{margin-bottom:16px}
.art-head .rubrique{display:inline-block}
.art-head h1{font-family:var(--display);font-weight:900;font-stretch:105%;text-transform:uppercase;font-size:clamp(32px,4.6vw,60px);line-height:.99;letter-spacing:-.025em;margin:14px 0 16px;text-wrap:balance}
.art-head .dek{font-size:clamp(18px,1.7vw,22px);color:var(--gris);margin:0 0 18px;line-height:1.5}
.art-meta{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--gris)}.art-meta{flex-wrap:wrap}.art-by a{color:inherit;text-decoration:underline;text-underline-offset:2px}.art-by a:hover{color:var(--rouge)}
.art-meta .rub-dot{width:14px;height:14px}
.art-meta i{width:4px;height:4px;background:var(--gris);border-radius:50%}
.art-cover{max-width:1140px;margin:0 auto 8px;padding:0 24px}
.art-cover{position:relative}
.art-cover img{width:100%;height:clamp(280px,42vw,480px);object-fit:cover;border:1px solid var(--noir);display:block}
.art-cover figcaption{position:absolute;left:25px;right:25px;bottom:1px;font-size:11.5px;color:rgba(255,255,255,.92);padding:26px 12px 9px;background:linear-gradient(180deg,rgba(10,9,8,0),rgba(10,9,8,.62))}

/* Article: ariane, sommaire, pratique, faq */
.ariane{font-size:13px;color:var(--gris);margin-bottom:14px}
.ariane a{color:var(--gris);text-decoration:none;font-weight:600}
.ariane a:hover{color:var(--rouge)}
.sommaire{background:var(--papier);padding:20px 22px;margin:6px 0 30px}.sommaire-mobile{display:none}@media(max-width:960px){.sommaire-mobile{display:block}.art-side .sommaire{display:none}}
.sommaire b{font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.05em;color:var(--noir);display:block;margin-bottom:12px}
.sommaire ol{margin:0;padding:0;list-style:none;counter-reset:som;display:grid;gap:9px}
.sommaire li{counter-increment:som;display:flex;align-items:center;gap:11px}
.sommaire li:before{content:counter(som);flex:none;width:21px;height:21px;background:var(--vert);color:#fff;font-family:var(--display);font-weight:800;font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.sommaire a{color:var(--noir);text-decoration:none;font-weight:600;font-size:15px;line-height:1.35}
.sommaire a:hover{color:var(--rouge);text-decoration:underline;text-underline-offset:3px}
.h2n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;background:var(--vert);color:#fff;font-size:17px;margin-right:12px;vertical-align:2px}
.corps h2{scroll-margin-top:86px}
.corps h2{scroll-margin-top:70px}
.pratique{border:2px solid var(--noir);box-shadow:5px 5px 0 var(--rouge);background:var(--blanc);padding:22px 26px;margin:32px 0}
.pratique li{display:flex;align-items:baseline;gap:10px}
.pratique li:before{content:"";flex:none;width:9px;height:9px;background:var(--rouge);transform:translateY(-1px)}
.pratique li strong{font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.03em;color:var(--rouge)}
.lieu-card{display:grid;grid-template-columns:1.1fr 1fr;margin:30px 0;border:1px solid var(--noir);background:var(--papier)}
.lieu-img{display:block;min-height:250px}
.lieu-img img{width:100%;height:100%;object-fit:cover;display:block}
.lieu-card figcaption{padding:22px 24px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.lieu-card figcaption>b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:19px;line-height:1.1;letter-spacing:-.01em}
.lieu-checks{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.lieu-checks li{display:flex;align-items:baseline;gap:9px;font-size:14.5px}
.corps .lieu-checks li:nth-child(n){padding:0;border:0;margin:0 0 0 0;display:flex}
.corps .lieu-checks li:nth-child(n):before{content:"✓";position:static;flex:none;width:auto;height:auto;background:none;font-weight:900;color:var(--vert);transform:none}
.lieu-ou{margin:0;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--gris)}
.corps .lieu-btn{text-decoration:none;color:#fff}
.lieu-btn{margin-top:auto;display:inline-block;background:var(--vert);color:#fff;text-decoration:none;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12.5px;letter-spacing:.05em;padding:11px 18px;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.lieu-btn:hover{background:var(--noir);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--vert)}
.side-envies .envie{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-bottom:1px solid #e8e8e4;text-decoration:none;color:var(--noir)}
a.envie{transition:background .15s ease}
a.envie:hover{background:var(--papier)}
a.envie:hover b{color:var(--rouge)}
.side-envies .envie .ml-go{margin-left:auto;align-self:center;flex:none;color:var(--gris)}
.side-envies .envie:last-child{border-bottom:0;padding-bottom:0}
.envie-ic{flex:none;width:30px;height:30px;background:var(--vert);display:inline-flex;align-items:center;justify-content:center}
.side-envies b{display:block;font-family:var(--display);font-weight:800;font-size:13.5px;line-height:1.2}
.side-envies small{display:block;font-size:12.5px;color:var(--gris);margin-top:2px}
@media(max-width:640px){.lieu-card{grid-template-columns:1fr}.lieu-img{min-height:190px;max-height:230px}}
.pratique h2{border:0!important;padding-top:0!important;margin:0 0 10px!important;font-size:19px!important;scroll-margin-top:0}
.pratique ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.pratique li{font-size:16px;border-bottom:1px solid #e8e8e4;padding-bottom:8px}
.pratique li:last-child{border-bottom:0;padding-bottom:0}
.pratique strong{font-family:var(--display);text-transform:uppercase;font-size:13px;letter-spacing:.04em;color:var(--rouge);margin-right:6px}
.cmp-wrap{overflow-x:auto;margin:34px 0;border:2px solid var(--noir);border-radius:14px;box-shadow:6px 6px 0 var(--vert)}
.cmp-wrap figcaption{font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:.01em;padding:14px 18px;background:var(--noir);color:#fff;display:flex;align-items:center;gap:10px}
.cmp-wrap figcaption:before{content:"";width:10px;height:20px;background:var(--vert);border-radius:2px;flex:none}
.cmp{border-collapse:collapse;width:100%;min-width:540px;font-size:14.5px;background:var(--blanc)}
.cmp th,.cmp td{padding:13px 18px;text-align:left;border-bottom:1px solid #e7e2d8;vertical-align:top}
.cmp thead th{font-family:var(--display);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#6b6459;background:var(--papier);border-bottom:2px solid var(--noir);white-space:nowrap}
.cmp tbody tr:nth-child(even){background:color-mix(in srgb,var(--papier) 55%,transparent)}
.cmp tbody tr{transition:background .12s ease}
.cmp tbody tr:hover{background:color-mix(in srgb,var(--vert) 9%,transparent)}
.cmp tbody tr:last-child td{border-bottom:0}
.cmp td:first-child{font-weight:800;color:var(--noir);box-shadow:inset 3px 0 0 var(--vert);font-size:15px}
.video-facade{position:relative;aspect-ratio:16/9;margin:30px 0;border:2px solid var(--noir);background:#141210;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}
.video-facade .video-play{background:none;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 2px 10px rgba(0,0,0,.4));transition:transform .15s ease}
.video-facade:hover .video-play{transform:scale(1.08)}
.video-play .vp-bg{fill:var(--rouge)}
.video-title{position:absolute;left:16px;top:14px;right:16px;color:#fff;font-family:var(--display);font-weight:800;font-size:clamp(15px,2vw,20px);line-height:1.15;text-shadow:0 2px 12px rgba(0,0,0,.5);pointer-events:none}
.video-credit{position:absolute;left:16px;bottom:12px;color:rgba(255,255,255,.75);font-size:11px;pointer-events:none}
.video-facade.video-on{cursor:default;background:#000}
.video-facade iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.faq{margin:40px 0 8px}
.faq h2{border-top:5px solid var(--noir);padding-top:14px}
.faq details{border:1px solid var(--noir);margin-bottom:10px;background:var(--blanc)}
.faq summary{cursor:pointer;font-family:var(--display);font-weight:800;font-size:16px;padding:14px 18px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:22px;font-weight:900;color:var(--rouge);flex-shrink:0;transition:transform .25s ease}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details[open] summary{border-bottom:2px solid var(--noir)}
.faq details p{margin:0;padding:14px 18px;font-size:16px;background:var(--papier)}
.faq-a{overflow:hidden;transition:height .3s cubic-bezier(.16,1,.3,1)}
.nl-merci{margin:0;padding:14px 0;font-family:var(--display);font-weight:800;font-size:15px;color:var(--vert-fonce)}
.side-nl .nl-merci{color:#7de2a3}
.nl-err{margin:8px 0 0;font-size:12.5px;color:#ffb0b0}
.lettre .nl-err{color:var(--rouge)}
.to-top{position:fixed;right:20px;bottom:20px;z-index:80;width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--noir);color:#fff;border:0;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,background .15s ease}
.to-top:hover{background:var(--vert)}
body.deep .to-top{opacity:1;pointer-events:auto;transform:none}
@media(max-width:760px){.to-top{right:14px;bottom:14px;width:42px;height:42px}}

/* Article: a lire aussi */
/* Article: precedent / suivant (dans la colonne contenu) */
.prevnext{margin:44px 0 0;padding:24px 0 0;border-top:3px solid var(--noir);display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:stretch}
.prevnext a{text-decoration:none;display:flex;align-items:center;gap:14px;padding:4px 0}
.pn-img{flex:none;width:86px;height:62px;overflow:hidden;border:2px solid var(--noir)}
.pn-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.prevnext a:hover .pn-img img{transform:scale(1.06)}
.pn-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.prevnext span{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:var(--rouge)}
.prevnext b{font-family:var(--display);font-weight:800;font-size:18px;line-height:1.15;color:var(--noir);transition:color .15s ease}
.prevnext a:hover b{color:var(--vert-fonce)}
.pn-next{text-align:right;justify-content:flex-end}
.pn-next .pn-txt{align-items:flex-end}
.pn-sep{width:3px;background:var(--noir)}
@media(max-width:640px){.prevnext{grid-template-columns:1fr;gap:12px}.prevnext a{border:1.5px solid rgba(20,18,16,.2);padding:12px}.pn-sep{display:none}.pn-next{text-align:left;align-items:flex-start}.pn-next .pn-txt{align-items:flex-start}.pn-img{width:64px;height:48px}}

/* Article: a lire aussi (bandeau pleine largeur) */
.alire{background:var(--papier);margin-top:60px}
.alire:before{content:"";display:block;max-width:var(--w);margin:0 auto;border-top:2px solid var(--noir)}
.alire>h2{max-width:1140px;margin:0 auto;padding:40px 24px 0;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(24px,2.6vw,32px);letter-spacing:-.015em}
.alire-grid{max-width:1140px;margin:0 auto;padding:22px 24px 60px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.alire-grid .cat-card:nth-child(1):hover{box-shadow:6px 6px 0 var(--rouge)}
.alire-grid .cat-card:nth-child(2):hover{box-shadow:6px 6px 0 var(--vert)}
.alire-grid .cat-card:nth-child(3):hover{box-shadow:6px 6px 0 var(--noir)}
@media(max-width:860px){.alire-grid{grid-template-columns:1fr}}

/* Pages simples *//* Windy embed + Leaflet */
.windy-wrap{position:relative;border:1px solid rgba(20,18,16,.35);height:480px;overflow:hidden;background:var(--noir)}
.windy-wrap:has(.windy-load):before{content:"";position:absolute;inset:0;background:rgba(10,9,8,.55)}
.windy-load{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:none;border:0;cursor:pointer;color:#fff;padding:24px;text-align:center}
.windy-load b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:16px;letter-spacing:.04em;background:var(--vert);padding:13px 22px;transition:background .15s ease}
.windy-load:hover b{background:var(--rouge)}
.windy-load span{font-size:12.5px;color:rgba(255,255,255,.85);max-width:52ch;line-height:1.5}
.windy-wrap iframe{width:100%;height:calc(100% + 96px);margin-top:-96px;border:0;display:block}
.leaflet-map{position:relative;z-index:1;isolation:isolate;border:1px solid rgba(20,18,16,.25);height:460px;width:100%;overflow:hidden}
.leaflet-mini{height:230px;border-width:2px}
.leaflet-map a{box-shadow:none}
.side-box .leaflet-map a{display:block;grid-template-columns:none;gap:0;padding:0;border-bottom:0}
.side-box .leaflet-map img{border:0;width:auto;height:auto;max-width:none;object-fit:fill}
.leaflet-map .leaflet-control-zoom a{width:28px;height:28px;line-height:26px;text-align:center;font-size:17px;font-weight:700;color:var(--noir);border-bottom:1px solid #d8d8d4}
.leaflet-map .leaflet-control-zoom a:last-child{border-bottom:0}
.leaflet-map .leaflet-control-attribution{font-size:9px;line-height:1.3;padding:1px 5px;background:rgba(255,255,255,.78)}
.leaflet-map .leaflet-control-attribution a{display:inline;color:var(--gris);font-weight:400;padding:0}
.side-map-hint{font-size:11px;color:var(--gris);margin:8px 0 0}
.map-wrap{position:relative;z-index:1;isolation:isolate}
.map-legend{position:absolute;right:12px;top:12px;z-index:900;background:var(--blanc);border:2px solid var(--noir);box-shadow:3px 3px 0 rgba(20,18,16,.2);padding:9px 12px;display:flex;flex-direction:column;gap:6px}
.map-legend b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:10.5px;letter-spacing:.04em}
.map-legend .lg{font-size:12px}
.side-box .near-grid a{display:flex;grid-template-columns:none;gap:10px;padding:11px 2px;border:0;border-bottom:1px solid #e8e8e4}
.side-box .near-grid a:last-child{border-bottom:0}
.card-date{display:block;margin-top:8px;font-size:10.5px;color:var(--gris);text-transform:uppercase;letter-spacing:.05em;font-weight:600;line-height:1.4}
.cx-sea .sea-band{fill:rgba(10,132,196,.16);stroke:none}
.houle-legende{display:flex;gap:18px;flex-wrap:wrap;padding:10px 4px 0;font-size:12px;color:var(--gris)}
.houle-legende span{display:inline-flex;align-items:center;gap:6px}
.houle-legende i{width:10px;height:10px;display:inline-block}
.bc-vague{width:64px;height:40px;margin-bottom:6px}
.maree-flex{display:flex;gap:18px;align-items:flex-start}
.maree-ic{flex:none;width:64px;height:64px;border-radius:50%;background:#eef2f5;display:flex;align-items:center;justify-content:center}
@media(max-width:640px){.maree-flex{flex-direction:column}}
.cx-sea .sea-mean{fill:none;stroke:#0a84c4;stroke-width:2.5}
.cx-sea .sea-dots circle{fill:#0a84c4}
.mark .fcol{animation:flagW 1.05s ease-in-out 4;will-change:transform}
.logo:hover .mark .fcol{animation:flagW 1.05s ease-in-out infinite}
@keyframes flagW{0%,100%{transform:translateY(0)}25%{transform:translateY(calc(var(--a)*-1px))}75%{transform:translateY(calc(var(--a)*1px))}}
@media (prefers-reduced-motion:reduce){.mark .fcol{animation:none}}
/* V2: hero slideshow */
.hero-slider{position:relative;min-height:64vh;overflow:hidden;background:var(--noir)}
.hs-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .7s ease;display:flex;align-items:center;color:#fff;pointer-events:none}
.hs-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,9,8,.52),rgba(10,9,8,.16) 55%,rgba(10,9,8,0))}
.hs-slide.on{opacity:1;pointer-events:auto;position:relative;min-height:64vh}
.hs-in{position:relative;z-index:1;max-width:var(--w);margin:0 auto;width:100%;padding:56px 24px}
.hs-in h1,.hs-in .hs-h{font-family:var(--display);font-weight:900;font-stretch:105%;text-transform:uppercase;font-size:clamp(30px,4.4vw,58px);line-height:.97;letter-spacing:-.025em;margin:16px 0 12px;max-width:19ch;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hs-in .dek{font-size:clamp(15px,1.4vw,18px);max-width:52ch;color:rgba(255,255,255,.92);margin:0 0 22px}
.hs-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.hs-video{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.03em;color:#fff;text-decoration:none;border:2px solid rgba(255,255,255,.85);padding:12px 18px;border-radius:999px;transition:background .15s ease}
.hs-video:hover{background:rgba(255,255,255,.15)}
.hs-slide .credit{position:absolute;right:14px;bottom:10px;z-index:1;font-size:10.5px;color:rgba(255,255,255,.55)}
.hs-dots{position:absolute;left:50%;transform:translateX(-50%);bottom:18px;z-index:5;display:flex;gap:14px}
.hs-dot{width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:transparent;cursor:pointer;padding:0;transition:background .15s ease;position:relative}
.hs-dot:before{content:"";position:absolute;inset:-7px}
.hs-dot.on{background:var(--rouge);border-color:#fff}
/* V2: deux colonnes actus / a ne pas manquer */
.cond-jour{margin:24px 0;border:1.5px solid rgba(20,18,16,.22);background:#fff;padding:16px 18px}
.cj-head{display:flex;align-items:center;gap:10px;margin-bottom:13px;flex-wrap:wrap}
.cj-head b{font-family:var(--display);font-size:16px}
.cj-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#fff;background:var(--rouge);padding:3px 8px}
.cj-live:before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:cjpulse 1.6s infinite}
@keyframes cjpulse{0%,100%{opacity:1}50%{opacity:.3}}
.cj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cj-grid dt{font-size:11px;color:#6b6660;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.cj-grid dd{margin:0;font-family:var(--display);font-size:22px;font-weight:800}
.cj-verdict.cj-ok{color:var(--vert-fonce)}.cj-verdict.cj-warn{color:#c9791a}.cj-verdict.cj-bad{color:var(--rouge)}.cj-verdict.cj-na{color:#6b6660}
.cj-verdict{font-size:18px}
.cj-link{display:inline-block;margin-top:13px;font-size:13px;font-weight:700;color:var(--vert-fonce);border-bottom:2px solid var(--vert);padding-bottom:1px}
@media(max-width:480px){.cj-grid dd{font-size:19px}.cj-verdict{font-size:15px}}
.deux-cols{max-width:var(--w);margin:0 auto;padding:56px 24px 0;display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:stretch}
.deux-cols .anpm{display:flex;flex-direction:column}
.anpm .anpm-grid{flex:1;align-content:stretch}
.deux-cols .actus{padding:0}
.actus-all{margin-top:18px}
.anpm-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.anpm-pub{margin-top:16px}
.anpm-card{position:relative;display:flex;align-items:flex-end;min-height:170px;height:100%;background-size:cover;background-position:center;border:3px solid var(--noir);text-decoration:none;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.anpm-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 45%,rgba(10,9,8,.34) 70%,rgba(10,9,8,.85) 100%)}
.anpm-card:nth-child(3n+1):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.anpm-card:nth-child(3n+2):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.anpm-card:nth-child(3n):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--noir)}
.anpm-txt{position:relative;z-index:1;padding:14px;color:#fff}
.anpm-txt b{display:block;font-family:var(--display);font-weight:900;font-size:16.5px;line-height:1.18;letter-spacing:-.01em;text-shadow:0 1px 10px rgba(0,0,0,.55)}
.anpm-txt em{font-style:normal;display:inline-block;margin-top:7px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;color:#fff;background:var(--rouge);padding:4px 8px}
.guide-rub-badge{position:absolute;top:10px;left:10px;z-index:2;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:10.5px;letter-spacing:.07em;color:#fff;padding:5px 9px}
.guide-rub-badge.rub-b-communes{color:var(--noir)}
.guide-rub-badge.rub-b-pratique{color:var(--noir)}
/* V2: mosaique magazine */
.gv2{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1.25fr;grid-auto-rows:170px;gap:16px}
.gv2-lead{grid-area:1/1/3/3}
.gv2-vert{grid-area:1/5/4/6}
.gv2-lead,.gv2-vert{position:relative;display:flex;align-items:flex-end;background-size:cover;background-position:center;border:3px solid var(--noir);text-decoration:none;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.gv2-lead:before,.gv2-vert:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 42%,rgba(10,9,8,.32) 66%,rgba(10,9,8,.84) 100%)}
.gv2-vert:before{background:linear-gradient(180deg,rgba(10,9,8,.1) 0,rgba(10,9,8,.32) 55%,rgba(10,9,8,.82) 100%)}
.gv2-lead:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.gv2-vert:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.gv2-lead-txt,.gv2-vert-txt{position:relative;z-index:1;padding:20px;color:#fff}
.gv2-lead-txt b,.gv2-vert-txt b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(20px,1.9vw,27px);line-height:1.08;letter-spacing:-.015em;margin-bottom:8px;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.gv2-lead-txt small,.gv2-vert-txt small{display:block;font-size:13.5px;color:rgba(255,255,255,.85);max-width:46ch}
.gv2-lead-txt .card-date,.gv2-vert-txt .card-date{color:rgba(255,255,255,.6);padding:0;margin-top:10px}
.gv2-vert-txt .lire{display:inline-block;margin-top:14px}
.gv2-s{position:relative;display:flex;align-items:flex-end;border:3px solid var(--noir);background:var(--noir);text-decoration:none;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.gv2-s:nth-child(3n):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.gv2-s:nth-child(3n+1):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.gv2-s:nth-child(3n+2):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--noir)}
.gv2-img{position:absolute;inset:0;overflow:hidden}
.gv2-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.gv2-s:hover .gv2-img img{transform:scale(1.05)}
.gv2-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 54%,rgba(10,9,8,.26) 74%,rgba(10,9,8,.78) 100%)}
.gv2-s b{position:relative;z-index:1;font-family:var(--display);font-weight:800;font-size:14px;line-height:1.2;color:#fff;padding:12px;text-shadow:0 1px 10px rgba(0,0,0,.55)}
.gv2-cta{position:relative;grid-area:3/3/4/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:3px solid var(--noir);background:var(--noir) center/cover;color:#fff;text-align:center;padding:14px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.gv2-cta:before{content:"";position:absolute;inset:0;background:rgba(10,9,8,.62)}
.gv2-cta b,.gv2-cta span{position:relative;z-index:1}
.gv2-cta b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:19px;letter-spacing:-.01em}
.gv2-cta span{font-size:12.5px;color:rgba(255,255,255,.75)}
.gv2-cta:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
@media(max-width:1000px){.gv2-cta{grid-area:auto/span 2;min-height:110px}}
@media(max-width:560px){.gv2-cta{grid-area:auto}}
@media(max-width:760px){
  .deux-cols{padding:30px 20px 0;gap:30px}
  .pub-slot.pub-large{margin:32px auto 0}
  .mosaique{padding:22px 20px 0}
  .rubcards{margin:18px auto 0;padding:26px 20px 0}
  .carte{padding:0 20px 26px}
  .carte:before{margin:40px auto 30px}
  .tdy-wrap{margin:24px auto 36px}
  .ile-map{padding:12px 6px}
  .ile-map svg{max-height:none}
  .reperes{padding:0 20px 40px;text-align:center}
  .reperes>div{justify-items:center}
  .lettre{margin:0 auto 44px}
  .guides{padding:36px 20px 14px}
  .art-head{padding:26px 20px 14px}
}
.gv2-more{display:none}
.chip-tous{background:var(--vert);color:#fff;border-color:var(--noir)}
.chip-tous:hover{background:var(--rouge)}
@media(max-width:1000px){
  .deux-cols{grid-template-columns:1fr;gap:40px}
  .gv2{grid-template-columns:1fr 1fr;grid-auto-rows:170px}
  .gv2-lead{grid-area:auto/span 2;min-height:300px}
  .gv2-vert{grid-area:auto/span 2;min-height:340px}
}
@media(max-width:760px){.actus-list .actu:nth-child(n+4){display:none}}
@media(max-width:560px){
  .gv2{grid-template-columns:1fr;grid-auto-rows:auto}
  .gv2-s,.gv2-cta{min-height:200px}
  .gv2-lead,.gv2-vert{grid-area:auto;min-height:200px}
  .gv2-lead-txt b,.gv2-vert-txt b{font-size:18px}
  .gv2-lead-txt small,.gv2-lead-txt time,.gv2-vert-txt small,.gv2-vert-txt time,.gv2-vert .lire{display:none}
  .anpm-grid{grid-template-columns:1fr 1fr}
  .hero-slider{min-height:0}
  .hs-slide.on{min-height:56vh}
}
.lettre input{min-width:0;flex:1}
@media(max-width:900px){.lettre .in{grid-template-columns:1fr;padding:40px 28px}.lettre .in:after,.lettre-hib,.lettre-avion,.lettre-dots{display:none}.lettre-palm{opacity:.4}}
@media(max-width:480px){.lettre .row{flex-direction:column;align-items:stretch}.nl-field{padding:2px 14px}.lettre button{justify-content:center;margin-top:8px}}
.ile-bento{max-width:var(--w);margin:0 auto;display:grid;grid-template-columns:1.45fr 1fr;border:3px solid var(--noir);background:var(--blanc);box-shadow:8px 8px 0 rgba(20,18,16,.1)}
.ile-map{padding:28px;display:flex;align-items:center;justify-content:center}
.ile-map svg{width:100%;height:auto;max-height:560px}
.ile-side{border-left:3px solid var(--noir);background:var(--papier);padding:34px 30px;display:flex;flex-direction:column}
.ile-side .section-titre{font-size:clamp(21px,1.9vw,27px)}
.ile-intro{font-size:14.5px;color:var(--gris);margin:0 0 8px}
.ile-items{flex:1;display:flex;flex-direction:column;justify-content:center}
.ile-items a{display:flex;align-items:center;gap:13px;text-decoration:none;padding:15px 4px;border-bottom:1px solid rgba(20,18,16,.12);transition:background .15s ease}
.ile-items a:first-child{border-top:1px solid rgba(20,18,16,.12)}
.ile-items a:hover{background:#f1f1ec}
.ile-items b{display:block;font-family:var(--display);font-weight:900;font-size:15.5px;color:var(--noir);line-height:1.15}
.ile-items small{display:block;font-size:12.5px;color:var(--gris);margin-top:2px}
.ile-items span:nth-child(2){flex:1}
.ile-items .ml-go{flex-shrink:0}
.ile-items a:hover .ml-go{color:var(--rouge);transform:translateX(3px)}
.ile-btn{margin-top:22px;text-align:center}
.cl-ic{flex-shrink:0;width:26px;height:26px;border:2px solid var(--noir);border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.cl-ic:before{content:"";width:9px;height:9px;border-radius:50%}
.cl-r:before{background:var(--rouge)}.cl-n:before{background:var(--noir)}.cl-v:before{background:var(--vert)}
.lire-vert{background:var(--vert)}
.tdy-wrap{max-width:var(--w);margin:44px auto 56px;padding:0 24px;box-sizing:border-box}.tdy-strip{position:relative;width:100%;box-sizing:border-box;display:grid;grid-template-columns:300px 1fr auto;gap:34px;align-items:center;background:#121110;color:#fff;text-decoration:none;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.tdy-strip:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.tdy-strip-img{position:relative;align-self:stretch;clip-path:polygon(0 0,100% 0,calc(100% - 44px) 100%,0 100%)}
.tdy-strip-img:after{content:"";position:absolute;top:-5%;bottom:-5%;right:24px;width:20px;background:var(--rouge);transform:skewX(-9deg)}
.tdy-strip-img img{width:100%;height:100%;min-height:180px;object-fit:cover;display:block}
.tdy-strip-txt{position:relative;z-index:1;padding:26px 0}
.tdy-badge{display:inline-block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.07em;background:var(--rouge);padding:6px 12px;border-radius:7px;margin-bottom:12px}
.tdy-strip b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(19px,2vw,27px);line-height:1.14;letter-spacing:-.01em;margin-bottom:9px}
.tdy-strip p{margin:0;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.8)}
.tdy-dots{display:flex;gap:7px;margin-top:16px}
.tdy-dots i{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.9}
.tdy-dots i.on{background:var(--rouge)}
.tdy-palm{position:absolute;right:96px;top:-8%;height:118%;width:auto;pointer-events:none;opacity:.9}
.lire-rond{display:inline-flex;align-items:center;gap:10px;margin-right:34px;position:relative;z-index:1;white-space:nowrap}
@media(max-width:1000px){
  .ile-bento{grid-template-columns:1fr}
  .ile-side{border-left:0;border-top:3px solid var(--noir)}
  .tdy-strip{grid-template-columns:1fr;gap:0}
  .tdy-strip-img{clip-path:none}
  .tdy-strip-img:after{display:none}
  .tdy-strip-img img{min-height:170px}
  .tdy-strip-txt{padding:16px 20px}
  .tdy-palm{display:none}
  .tdy-strip .lire-rond{margin:0 20px 20px}
}
.rvl{opacity:0;transform:translateY(16px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}
.rvl.rvl-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rvl{opacity:1;transform:none;transition:none}}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Accessibilite: lien d'evitement + focus clavier dessine dans l'idiome encre du site.
   currentColor: noir sur papier, blanc sur la nav et le pied de page sombres. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--noir);color:#fff;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.04em;padding:14px 22px;text-decoration:none}
.skip-link:focus-visible{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.nav-loupe{display:flex;align-items:center;margin-left:auto}
.rubriques-bar a.nav-loupe{padding:13px 14px}
.search-wrap{max-width:820px;margin:0 auto;padding:36px 24px 72px}
.search-form{display:flex;align-items:center;gap:14px;margin-bottom:26px}
#q{flex:1;border:3px solid var(--noir);background:var(--blanc);padding:15px 18px;font-size:17px;font-family:var(--sans);outline:none}
#q:focus{box-shadow:4px 4px 0 var(--vert)}
.search-count{font-family:var(--display);font-weight:800;font-size:13px;color:var(--gris);white-space:nowrap}
.search-res{display:grid;gap:12px}
.search-hit{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center;text-decoration:none;border:3px solid var(--noir);background:var(--blanc);padding:10px;transition:transform .15s ease,box-shadow .15s ease}
.search-hit:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--vert)}
.search-hit img{width:120px;height:84px;object-fit:cover;border:2px solid var(--noir)}
.search-hit:not(:has(img)){grid-template-columns:1fr}
.search-txt{display:grid;gap:3px}
.search-rub{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;color:var(--rouge)}
.search-hit b{font-family:var(--display);font-weight:800;font-size:17px;line-height:1.15;color:var(--noir)}
.search-hit small{font-size:13px;color:var(--gris)}
.search-vide{color:var(--gris);border:2px dashed var(--noir);padding:22px;text-align:center}
.so{position:fixed;inset:0;z-index:1200;background:#fafaf7;overflow-y:auto;animation:soIn .16s ease}
.so:before{content:"";position:sticky;top:0;display:block;height:5px;background:linear-gradient(90deg,var(--rouge) 0 33.4%,var(--vert) 33.4% 66.7%,var(--noir) 66.7% 100%)}
@keyframes soIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.so-in{max-width:780px;margin:0 auto;padding:9vh 24px 60px}
.so-bar{display:flex;align-items:center;gap:14px;border:3px solid var(--noir);background:#fff;padding:0 0 0 20px;box-shadow:6px 6px 0 var(--vert)}
.so-ic{flex-shrink:0;color:var(--noir)}
#so-q{flex:1;min-width:0;border:0;outline:none;background:none;font-family:var(--display);font-weight:800;font-size:clamp(19px,3.4vw,28px);letter-spacing:-.01em;padding:19px 0;color:var(--noir)}
#so-q::placeholder{color:#c2c2bc}
.so-x{align-self:stretch;border:0;border-left:3px solid var(--noir);background:var(--noir);color:#fff;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.05em;padding:0 20px;cursor:pointer;transition:background .15s ease}
.so-x:hover{background:var(--rouge)}
.so-x-close{display:none}
.so-top-x{width:46px;height:46px;display:none;align-items:center;justify-content:center;background:var(--noir);color:#fff;border:0;cursor:pointer;transition:background .15s ease}
.so-top-x:hover{background:var(--rouge)}
@media(max-width:760px){.so-in{display:flex;flex-direction:column}.so-top-x{display:flex;align-self:flex-end;margin-bottom:12px}.so-x{display:none}}
.so-hint{margin:14px 2px 24px;font-size:11.5px;color:var(--gris);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.so-res{display:grid;gap:10px;padding-bottom:40px}
.so-res .search-hit{background:#fff}
.so-res .search-hit.on{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--rouge);border-color:var(--noir)}
@media(max-width:600px){.so-in{padding:16px 14px 40px}.so-bar{box-shadow:4px 4px 0 var(--vert)}.so-res .search-hit{grid-template-columns:84px 1fr}.so-res .search-hit img{width:84px;height:64px}}
.err-wrap{max-width:720px;margin:0 auto;padding:70px 24px 90px;text-align:center}
.err-code{font-family:var(--display);font-weight:900;font-size:clamp(90px,18vw,160px);line-height:1;margin:0;color:var(--noir);text-shadow:6px 6px 0 var(--rouge),12px 12px 0 var(--vert)}
.err-wrap h1{font-family:var(--display);font-weight:900;font-size:clamp(24px,4vw,36px);margin:18px 0 10px}
.err-txt{color:var(--gris);margin:0 0 26px}
.err-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:34px}
.err-btn{display:inline-block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.03em;text-decoration:none;border:3px solid var(--noir);background:var(--rouge);color:#fff;padding:13px 22px;transition:transform .15s ease,box-shadow .15s ease}
.err-btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--noir)}
.err-btn-alt{background:var(--blanc);color:var(--noir)}
.err-rubs{display:flex;gap:8px 18px;justify-content:center;flex-wrap:wrap;border-top:3px solid var(--noir);padding-top:22px}
.err-rubs a{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12.5px;color:var(--noir);text-decoration:none}
.err-rubs a:hover{color:var(--rouge)}
.loupe-txt{display:none}
@media(max-width:760px){.rubriques-bar a.nav-loupe{padding:15px 20px;display:flex;align-items:center;gap:10px}.loupe-txt{display:inline}}
.back-btn{display:inline-block;margin-bottom:20px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.03em;color:var(--noir);text-decoration:none;border:1px solid rgba(20,18,16,.4);padding:9px 14px;transition:background .15s ease,color .15s ease}
.back-btn:hover{background:var(--noir);color:#fff}
.app-communes{padding:20px 0 8px}
.app-communes .cities{border-top:2px solid var(--noir)}
.cities a{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--noir);padding:11px 6px;border-bottom:1px solid #e8e8e4;transition:background .15s ease}
.cities a:hover{background:var(--papier)}
.cl-name{font-family:var(--display);font-weight:700;font-size:15px}
.cl-temp{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:800;font-size:15px;white-space:nowrap}
.cl-temp .wx-ic{width:22px;height:22px}
.cl-mx{color:var(--rouge)}.cl-mn{color:var(--gris)}
@media(min-width:720px){.app-communes .cities{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 28px}}
@media(max-width:560px){.cities,.app-communes .cities{grid-template-columns:1fr}}
.mer-mapsec{padding:20px 0 8px}
.beach-cols h3.coast-h{display:inline-block;border-bottom:4px solid var(--noir);padding-bottom:7px}
.beach-cols h3.coast-car{border-color:var(--rouge)}
.beach-cols h3.coast-atl{border-color:var(--vert)}
.coast-h .rub-dot{width:13px;height:13px;margin-right:9px;vertical-align:-1px}
.coast-car .rub-dot{background:var(--vert)}
.coast-atl .rub-dot{background:var(--rouge)}
.corps.meteo-corps.mer-guide{max-width:none;column-count:2;column-gap:64px}
.corps.meteo-corps.mer-guide h2{column-span:all;text-align:center}
@media(max-width:860px){.corps.meteo-corps.mer-guide{column-count:1}}
.bdot{display:inline-block;width:10px;height:10px;margin-right:9px;background:#c9c9c4;border:1.5px solid var(--noir);vertical-align:0}
.near-grid{display:grid;gap:0}
.near-card{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;border-bottom:1px solid #e8e8e4;padding:11px 2px;transition:background .15s ease}
.near-card:hover{background:var(--papier)}
.near-card:hover b{color:var(--rouge)}
.near-card b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;color:var(--noir);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s ease}
.near-card span{font-size:11.5px;color:var(--gris);white-space:nowrap}
.side-box a.side-all,.side-all{display:inline-block;grid-template-columns:none;gap:0;padding:0;border-bottom:0;margin-top:12px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;color:var(--rouge);text-decoration:none;white-space:nowrap}
.side-all:hover{text-decoration:underline}
.side-box-map .side-nl-btn{margin-top:10px;background:var(--noir)}
.side-near a{display:flex;align-items:center;justify-content:space-between;gap:10px}

/* Mer: hub + plages */
.mer-main,.meteo-main{padding-top:8px}
.beach-dir{margin-top:32px}
.beach-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:640px){.beach-cols{grid-template-columns:1fr;gap:22px}}
.beach-cols h3{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:16px;margin:0 0 12px;border-bottom:3px solid var(--noir);padding-bottom:10px}
.beach-cols h3 .rub-dot{width:13px;height:13px}
.beach-list{display:grid;gap:0}
.beach-list a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-decoration:none;padding:9px 2px;border-bottom:1px solid #e8e8e4}
.beach-list a>span{font-family:var(--display);font-weight:700;font-size:14.5px;color:var(--noir);transition:color .15s ease}
.beach-list a:hover>span{color:var(--rouge)}
.beach-list em{font-style:normal;font-size:12px;color:var(--gris)}
/* Beach page current card */
.beach-cur{border:1px solid rgba(20,18,16,.22);background:var(--blanc);padding:26px 24px;display:grid;grid-template-columns:1fr 1.3fr;gap:26px;align-items:center}
.beach-cur>:first-child{border-right:1px solid rgba(20,18,16,.18);padding-right:26px;align-self:stretch}
@media(max-width:860px){.beach-cur{grid-template-columns:1fr}.beach-cur>:first-child{border-right:0;padding-right:0;border-bottom:1px solid rgba(20,18,16,.18);padding-bottom:18px}}
.bc-main{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.bc-h{font-family:var(--display);font-weight:900;font-size:54px;line-height:1;letter-spacing:-.02em}
.bc-main .sea-arrow{width:38px;height:38px;color:var(--vert)}
.bc-v{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;padding:9px 14px;border:2px solid var(--noir)}
.side-map .mmap{max-height:280px}
.side-map .mmap text{font-size:0}
.side-map .mmap-dot.on circle{r:6;fill:var(--rouge)}
.cx-line.sea{stroke:#0a84c4}

/* Carte vents & pluie */
.app-windmap{padding:36px 0 8px}
.wmap{border:3px solid var(--noir);background:#eef2f0;padding:14px}
.wmap-ctrl{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin-bottom:12px}
.wmap-ctrl button{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12.5px;background:#fff;color:var(--noir);border:1px solid rgba(20,18,16,.4);padding:9px 16px;cursor:pointer;margin:0 -1px -1px 0}
@media(max-width:760px){.wmap-ctrl{gap:7px;margin-bottom:14px}.wmap-ctrl button{margin:0;flex:1 0 auto;min-width:calc(33.3% - 7px);padding:10px 8px;font-size:12px}}
.wmap-ctrl button.on{background:var(--noir);color:#fff}
.wmap-status{margin-left:14px;font-size:12px;color:var(--gris)}
#wmap-svg{width:100%;height:auto;max-height:520px}
.wmap-city text{font-size:9px;fill:var(--noir);font-weight:600;paint-order:stroke;stroke:#eef2f0;stroke-width:2.4px}
.wmap-city:hover text{fill:var(--rouge)}
.wm-arrow line,.wm-arrow path{transition:opacity .3s ease}
.wmap-leg{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 0;font-size:12px;align-items:center}
.wmap-note{color:var(--gris);font-size:11.5px}

/* Meteo: carte communes labels */
.mmap text{font-size:9px;fill:var(--noir);font-weight:600;paint-order:stroke;stroke:var(--papier);stroke-width:2.4px}
.mmap-dot:hover circle{r:7}
.mmap-dot:hover text{fill:var(--rouge)}
.mmap-dot.on circle{r:7}

/* Meteo ville: main + sidebar date */
.meteo-main{padding-top:8px}
.side-date{position:relative;overflow:hidden;background:#0e0d0b;color:#fff;padding:20px 18px}
.side-date:after{content:"";position:absolute;right:-26px;top:-16px;width:120px;height:150%;background:radial-gradient(ellipse 60px 90px at 60% 30%,rgba(255,255,255,.06),transparent 70%);pointer-events:none}
.side-date-lbl{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:var(--vert)}
.side-date b{display:block;font-family:var(--display);font-weight:900;font-size:20px;line-height:1.1;margin:6px 0 4px;text-transform:capitalize}
.side-date-live{font-size:12px;color:rgba(255,255,255,.6)}
.side-p{font-size:14px;color:var(--gris);margin:0 0 12px}
.side-near{display:grid;gap:2px}
.side-near a{text-decoration:none;color:var(--noir);font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:13px;padding:9px 0;border-bottom:1px solid #e8e8e4;transition:color .15s ease}
.side-near a:hover{color:var(--rouge)}
.side-near a:last-child{border-bottom:0}
.side-near a:hover span{color:var(--rouge)}

/* Webapp meteo/mer */
.app-hub{display:grid;grid-template-columns:5fr 7fr;gap:36px;padding:36px 0 8px;align-items:start}
.app-map{border-top:5px solid var(--noir);padding-top:16px}
.app-map .section-titre,.app-list .section-titre{margin:0 0 14px}
.mmap{width:100%;height:auto;max-height:440px}
.carte-plages-liste{list-style:none;padding:0;margin:18px 0 30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 22px}
.carte-plages-liste li{border-bottom:1px solid rgba(20,18,16,.14);padding:7px 0 7px 12px;display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--cote,rgba(20,18,16,.2))}
.carte-plages-liste li::before,.corps .carte-plages-liste li::before{content:none}
.carte-plages-liste li.cote-car{--cote:var(--vert)}
.carte-plages-liste li.cote-atl{--cote:var(--rouge)}
.carte-plages-liste li a{font-weight:700;text-decoration:none;border-bottom:none}
.carte-plages-liste li em{font-style:normal;font-size:13px;color:rgba(20,18,16,.62)}
.carte-plages-liste li em a{font-weight:600;border-bottom:1px solid currentColor}
.mmap-dot{cursor:pointer}
.mmap-dot circle{transition:r .15s ease}
.mmap-dot:hover circle{r:8}
.mmap-leg{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0 0;font-size:12px}
.mmap-leg .lg,.mer-leg .lg,.wmap-leg .lg,.map-legend .lg{display:inline-flex;align-items:center;gap:6px;color:var(--gris)}
.mmap-leg .lg:before,.mer-leg .lg:before,.wmap-leg .lg:before,.map-legend .lg:before{content:"";width:11px;height:11px;background:var(--gris)}
.lg.ok:before{background:var(--vert)}.lg.bad:before{background:var(--rouge)}.lg.dark:before{background:var(--noir)}.lg.warn:before{background:#e8b004}
.app-list{border-top:5px solid var(--noir);padding-top:16px}
.cities{display:grid;grid-template-columns:1fr 1fr;gap:0}
.cities a{text-decoration:none;color:var(--noir);font-weight:600;font-size:14.5px;padding:9px 4px;border-bottom:1px solid #e8e8e4;transition:color .15s ease,padding-left .15s ease}
.cities a:hover{color:var(--rouge);padding-left:5px}
.app-featured{border-top:5px solid var(--rouge);padding-top:16px;margin-top:20px}
.feat-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:16px}
.feat-h .section-titre{margin:0}
.app-live{padding-top:8px}
.app-current{border:1px solid rgba(20,18,16,.22);padding:26px 24px;background:var(--blanc);display:grid;grid-template-columns:1fr 1.2fr;gap:26px;align-items:center}
.app-current>:first-child{border-right:1px solid rgba(20,18,16,.18);padding-right:26px;align-self:stretch;display:flex;align-items:center}
@media(max-width:860px){.app-current>:first-child{border-right:0;padding-right:0;border-bottom:1px solid rgba(20,18,16,.18);padding-bottom:18px}}
.cur-main{display:flex;align-items:center;gap:16px}
.cur-main .wx-ic{width:64px;height:64px;color:var(--rouge)}
.cur-t{font-family:var(--display);font-weight:900;font-size:64px;line-height:1;letter-spacing:-.025em}
.cur-d{color:var(--gris);font-size:16px}
.cur-app{font-size:13px;color:var(--gris);margin-top:2px}
.cur-dl{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px;margin:0}
.cur-dl>div{display:flex;flex-direction:column;padding:9px 0;border-bottom:1px solid #ecece7}
.cur-dl dt{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gris);text-transform:uppercase;letter-spacing:.03em}
.cur-dl dd{margin:2px 0 0;font-family:var(--display);font-weight:800;font-size:17px}
.app-block{margin-top:28px}
.app-block .section-titre{font-size:clamp(19px,2vw,24px);border-left:5px solid var(--vert);padding-left:13px;margin:0 0 16px}
.app-moments{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mmt{position:relative;overflow:hidden;border:1px solid rgba(20,18,16,.22);padding:18px 14px 15px;text-align:center;display:grid;gap:5px;justify-items:center;background:var(--blanc);transition:transform .15s ease,box-shadow .15s ease}
.mmt:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--rouge)}
.mmt:after,.day:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;transform:scaleY(0);transform-origin:top;transition:transform .18s ease}
.mmt{position:relative}.day{position:relative;overflow:hidden}
.mmt:hover:after,.day:hover:after{transform:scaleY(1)}
.mmt:nth-child(1):after,.mmt:nth-child(4):after{background:var(--noir)}
.mmt:nth-child(2):after{background:var(--vert)}
.mmt:nth-child(3):after{background:var(--rouge)}
.day:nth-child(3n+1):after{background:var(--rouge)}
.day:nth-child(3n+2):after{background:var(--vert)}
.day:nth-child(3n):after{background:var(--noir)}
.mmt:hover{transform:translate(-2px,-2px)}
.mmt:nth-child(1):hover,.mmt:nth-child(4):hover{border-color:var(--noir);box-shadow:3px 3px 0 var(--noir)}
.mmt:nth-child(2):hover{border-color:var(--vert-fonce);box-shadow:3px 3px 0 var(--vert)}
.mmt:nth-child(3):hover{border-color:var(--rouge);box-shadow:3px 3px 0 var(--rouge)}
.mmt .wx-ic{width:36px;height:36px;color:var(--rouge)}
.mmt b{font-family:var(--display);text-transform:uppercase;font-size:13px}
.mmt-t{font-family:var(--display);font-weight:900;font-size:22px}
.mmt-r{font-size:12px;color:var(--vert-fonce);font-weight:800}
.app-chart,.mer-chart{border:1px solid rgba(20,18,16,.22);background:var(--blanc);padding:14px}
@media(max-width:760px){
  .app-chart svg,.mer-chart svg{width:100%;min-width:0;height:200px}
}
.cx{width:100%;height:auto}
.cx-line{fill:none;stroke:var(--rouge);stroke-width:2.5}
.cx-area{fill:rgba(224,30,38,.07);stroke:none}
.cx-dots circle{fill:var(--rouge)}
.cx-v{font-family:var(--display);font-weight:800;font-size:11px;fill:var(--noir);text-anchor:middle}
.cx-x{font-size:10px;fill:var(--gris);text-anchor:middle}
.cx-grid{stroke:#e3e3dc;stroke-width:1}
.cx-axis{stroke:var(--noir);stroke-width:2}
.cx-tick{stroke:var(--noir);stroke-width:1}
.cx-gy{font-size:9.5px;fill:#9b9b94;text-anchor:end;font-weight:600}
.cx-thr{stroke-dasharray:6 4;stroke-width:1.4;opacity:.6}
.app-tabs,.mer-tabs{display:flex;gap:0;margin-bottom:16px}
.app-tabs,.mer-tabs{gap:8px}
.app-tabs button,.mer-tabs button{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.03em;background:var(--blanc);color:var(--noir);border:1px solid rgba(20,18,16,.35);padding:10px 18px;cursor:pointer;margin:0;transition:background .15s ease,color .15s ease}
.app-tabs button.on,.mer-tabs button.on{background:var(--vert);border-color:var(--vert-fonce);color:#fff}
.app-tabs button:not(.on):hover,.mer-tabs button:not(.on):hover{border-color:var(--rouge);color:var(--rouge)}
.mer-tabs{padding-top:8px}
.app-sealink{display:block;margin-top:26px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13.5px;color:var(--noir);text-decoration:none;background:#e7f6ec;border:1px solid rgba(14,167,78,.35);padding:15px 18px;transition:background .15s ease}
.app-sealink:hover{background:#d8f0e0}
.mer-fc-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.mer-fc-head label{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px}
.mer-fc-head select{font:inherit;font-size:15px;border:3px solid var(--noir);padding:9px 12px;background:#fff}
.mer-chart h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:16px;margin:0 0 12px}
.mer-sst{font-size:14px;color:var(--gris);margin:10px 0 0}
.mer-leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12px}
.mer-load{padding:30px;text-align:center;color:var(--gris)}
@media(max-width:860px){.app-hub{grid-template-columns:1fr}.app-current{grid-template-columns:1fr}.cur-dl{grid-template-columns:1fr 1fr}.app-moments{grid-template-columns:1fr 1fr}}

/* Meteo & mer (module detaille) */
.meteo-wrap{max-width:1140px;margin:0 auto;padding:0 24px 64px}
.mto-status{font-size:13px;color:var(--gris);font-weight:600;padding:28px 0 4px}
.mto-sec{padding:22px 0 8px}
.mto-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;border-left:5px solid var(--vert);padding-left:14px;margin-bottom:18px}
.mto-h .section-titre{margin:0;display:flex;align-items:center;gap:12px}
.mto-h .rub-dot{width:16px;height:16px}
.mto-sub{font-size:13px;color:var(--gris)}
.mto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wx-card,.sea-card{border:3px solid var(--noir);background:var(--blanc);padding:18px}
.wx-card header,.sea-card header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:2px solid var(--noir);padding-bottom:10px;margin-bottom:14px}
.wx-card header b,.sea-card header b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:16px}
.wx-card header span,.sea-card header span{font-size:12px;color:var(--gris)}
.wx-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.wx-ic{width:52px;height:52px;flex-shrink:0;color:var(--rouge)}
.wx-t{font-family:var(--display);font-weight:900;font-size:42px;line-height:1;letter-spacing:-.02em}
.wx-d{color:var(--gris);font-size:14px}
.wx-dl{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin:0}
.wx-dl>div{display:flex;justify-content:space-between;font-size:13.5px;border-bottom:1px solid #e8e8e4;padding:7px 0}
.wx-dl dt{color:var(--gris)}
.wx-dl dd{margin:0;font-weight:800}
.wx-sun{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-size:12px;color:var(--gris)}
.sea-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.sea-h{font-family:var(--display);font-weight:900;font-size:40px;line-height:1;letter-spacing:-.02em}
.sea-arrow{width:40px;height:40px;color:var(--vert);flex-shrink:0}
.sea-b{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.02em;padding:11px 12px;text-align:center;border:2px solid var(--noir);margin-top:14px}
.b-ok{background:var(--vert);color:#fff}.b-warn{background:#e8b004;color:var(--noir)}.b-bad{background:var(--rouge);color:#fff}.b-na{background:var(--papier);color:var(--gris)}
.mto-days{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.day{border:1px solid rgba(20,18,16,.22);background:var(--blanc);padding:14px 8px;text-align:center;display:grid;gap:5px;justify-items:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.day:nth-child(3n+1):hover{border-color:var(--rouge);box-shadow:3px 3px 0 var(--rouge)}
.day:nth-child(3n+2):hover{border-color:var(--vert);box-shadow:3px 3px 0 var(--vert)}
.day:nth-child(3n):hover{border-color:var(--noir);box-shadow:3px 3px 0 var(--noir)}
.day:hover{transform:translate(-2px,-2px)}
.day:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--vert)}
.day b{border-bottom:2px solid var(--rouge);padding-bottom:4px}
.day:nth-child(3n+2) b{border-bottom-color:var(--vert)}
.day:nth-child(3n) b{border-bottom-color:var(--noir)}
.mmt:nth-child(2):before{background:var(--vert)}
.mmt:nth-child(3):before{background:var(--rouge)}
.mmt:nth-child(1):before,.mmt:nth-child(4):before{background:var(--noir)}
.day b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:13px}
.day .wx-ic{width:34px;height:34px;color:var(--rouge)}
.day-t{font-family:var(--display);font-weight:900;font-size:19px}
.day-n{font-size:13px;color:var(--gris)}
.day-r{font-size:11px;color:var(--vert-fonce);font-weight:800}
.mto-src{font-size:12px;color:var(--gris);margin:22px 0 0}
.meteo-corps{max-width:760px;margin:0;padding:36px 0 0}
.meteo-corps > p:first-of-type::first-letter{float:none;font-size:inherit;padding:0;color:inherit;font-family:inherit}
@media(max-width:860px){.mto-grid{grid-template-columns:1fr 1fr}.mto-days{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.mto-grid{grid-template-columns:1fr}.mto-days{grid-template-columns:repeat(3,1fr)}}

/* Pages simples *//* Pages simples *//* Meteo & mer */
.meteo-wrap{max-width:1140px;margin:0 auto;padding:0 24px 64px}
.meteo-live{padding:36px 0 8px}
.meteo-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:5px solid var(--noir);padding-top:16px;margin-bottom:20px}
.meteo-head .section-titre{margin:0}
.meteo-status{font-size:13px;color:var(--gris);font-weight:600}
.meteo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.meteo-card{border:3px solid var(--noir);padding:18px;background:var(--blanc)}
.meteo-card header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:2px solid var(--noir);padding-bottom:10px;margin-bottom:12px}
.meteo-card header b{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:16px}
.meteo-card header span{font-size:12px;color:var(--gris)}
.meteo-temp{font-family:var(--display);font-weight:900;font-size:44px;line-height:1;letter-spacing:-.02em}
.meteo-desc{color:var(--gris);font-size:14px;margin:2px 0 14px}
.meteo-card dl{display:grid;gap:8px;margin:0 0 14px}
.meteo-card dl>div{display:flex;justify-content:space-between;font-size:14px;border-bottom:1px solid #e8e8e4;padding-bottom:7px}
.meteo-card dt{color:var(--gris)}
.meteo-card dd{margin:0;font-weight:800}
.meteo-baignade{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.02em;padding:10px 12px;text-align:center;border:2px solid var(--noir)}
.b-ok{background:var(--vert);color:#fff}
.b-warn{background:#e8b004;color:var(--noir)}
.b-bad{background:var(--rouge);color:#fff}
.b-na{background:var(--papier);color:var(--gris)}
.meteo-src{font-size:12px;color:var(--gris);margin:18px 0 0}
.meteo-corps{max-width:760px;margin:0;padding:20px 0 0}
.meteo-corps > p:first-of-type::first-letter{float:none;font-size:inherit;padding:0;color:inherit;font-family:inherit}
@media(max-width:860px){.meteo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.meteo-grid{grid-template-columns:1fr}}

/* Pages simples */
.page-simple{max-width:720px;margin:0 auto;padding:52px 24px 72px;min-height:50vh}
.page-simple h1{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(28px,3.6vw,44px);letter-spacing:-.02em;line-height:1;margin:0 0 8px}
.page-simple .section-barre{margin-bottom:28px}
.page-simple h2{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:22px;margin:34px 0 12px}
.page-simple p{margin:0 0 18px;font-size:17px}

/* Parcourir par rubrique (cartes) */
.rubcards{max-width:var(--w);margin:72px auto 0;padding:64px 24px 0;border-top:1px solid rgba(20,18,16,.12)}
.rubcards-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px}
.rubcard{position:relative;display:block;text-decoration:none;border:3px solid var(--noir);overflow:hidden;aspect-ratio:3/4;background:var(--noir);transition:transform .15s ease,box-shadow .15s ease}
.rubcard:nth-child(3n+1):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.rubcard:nth-child(3n+2):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.rubcard:nth-child(3n):hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--noir)}
.rubcard-img{position:absolute;inset:0}
.rubcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.rubcard:hover .rubcard-img img{transform:scale(1.07)}
.rubcard:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,0) 30%,rgba(10,9,8,.58))}
.rubcard-tag{position:absolute;z-index:1;left:10px;bottom:34px;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:15px;letter-spacing:-.01em;color:#fff;padding:4px 8px}
.rubcard em{position:absolute;z-index:1;left:12px;bottom:14px;font-style:normal;font-size:12px;color:rgba(255,255,255,.85);font-weight:700}
.rub-b-plages{background:var(--vert)}.rub-b-rando{background:var(--rouge)}
.rub-b-nature{background:#0b6e37}.rub-b-patrimoine{background:var(--noir)}
.rub-b-communes{background:#e8b004;color:var(--noir)}.rub-b-voyage{background:#0a84c4}.rub-b-pratique{background:#fff;color:var(--noir)}
@media(max-width:1100px){.rubcards-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.rubcards-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.rubcards-grid{grid-template-columns:repeat(2,1fr)}}

/* Mosaique magazine */
.mosaique{max-width:var(--w);margin:0 auto;padding:72px 24px 0}
.mosaique .rub-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:5px solid var(--noir);padding-top:16px;margin-bottom:22px}
.mosaique .section-titre{margin:0}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.04em;color:var(--noir);border:2px solid var(--noir);padding:7px 11px;transition:background .15s ease,color .15s ease}
.chip:hover{background:var(--noir);color:#fff}
.chip em{font-style:normal;color:var(--rouge);font-weight:900}
.chip:hover em{color:#fff}
.chip .rub-dot{width:11px;height:11px}

/* mosaique cards partagent le meme squelette */
.mz-a,.mz-b,.mz-mini,.mz-wide{text-decoration:none;color:var(--noir);display:block;position:relative;border:3px solid var(--noir);background:var(--blanc);transition:transform .15s ease,box-shadow .15s ease}
.mz-a:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--rouge)}
.mz-b:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.mz-mini:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--noir)}
.mz-wide:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--vert)}
.mz-a .mz-img,.mz-b .mz-img,.mz-mini .mz-img,.mz-wide .mz-img{overflow:hidden;border-bottom:3px solid var(--noir);background:var(--noir)}
.mz-a img,.mz-b img,.mz-mini img,.mz-wide img{width:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.mz-a:hover img,.mz-b:hover img,.mz-mini:hover img,.mz-wide:hover img{transform:scale(1.05)}
.mz-a span,.mz-b span,.mz-mini span,.mz-wide span{position:absolute;top:12px;left:12px;z-index:2}
.mz-a b,.mz-b b,.mz-mini b,.mz-wide b{display:block;font-family:var(--display);font-weight:900;letter-spacing:-.015em;line-height:1.08;transition:color .15s ease}
.mz-a:hover b,.mz-b:hover b,.mz-mini:hover b,.mz-wide:hover b{color:var(--rouge)}
.mz-a small,.mz-wide small{display:block;color:var(--gris);font-size:15px;margin-top:5px}
.mz-a b,.mz-b b,.mz-mini b{padding:0 16px}
.mz-a small{padding:0 16px}
.mz-b b,.mz-mini b{padding-bottom:16px}
.mz-a .card-date,.mz-wide .card-date{padding:0}

/* rangee haute: vedette geante + 2 empilees */
.mz-top{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:20px}
.mz-a img{height:430px}
.mz-a b{font-size:30px;margin-top:14px}
.mz-a .card-date{padding:0 16px 16px}
.mz-side{display:grid;grid-template-rows:1fr 1fr;gap:20px}
.mz-b img{height:205px}
.mz-b b{font-size:19px;margin-top:12px}

/* bande de 4 mini */
.mz-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px}
.mz-mini img{height:150px}
.mz-mini b{font-size:16px;margin-top:11px}

/* carte pleine largeur */
.mz-wide{display:grid;grid-template-columns:1.5fr 1fr;gap:0;align-items:stretch}
.mz-wide .mz-img{border-bottom:0;border-right:3px solid var(--noir);height:100%}
.mz-wide img{height:100%;min-height:260px}
.mz-wide span{position:static;display:inline-block;margin:0 0 10px}
.mz-wide b{font-size:26px}
.mz-wide-txt{padding:26px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:860px){
  .mz-top,.mz-strip,.mz-wide{grid-template-columns:1fr}
  .mz-a img{height:280px}.mz-b img{height:200px}.mz-mini img{height:190px}
  .mz-wide .mz-img{border-right:0;border-bottom:3px solid var(--noir)}.mz-wide img{min-height:200px;height:200px}
}

/* Blocs rubrique home */
.rub-bloc{max-width:var(--w);margin:0 auto;padding:34px 24px 10px}
.rub-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:5px solid var(--noir);padding-top:14px;margin-bottom:18px}
.rub-head .section-titre{margin:0;display:flex;align-items:center;gap:12px}
.rub-dot{width:16px;height:16px;flex-shrink:0}
.rub-dot.rub-plages{background:var(--vert)}.rub-dot.rub-rando{background:var(--rouge)}
.rub-dot.rub-nature{background:#0b6e37}.rub-dot.rub-patrimoine{background:var(--noir)}
.rub-dot.rub-communes{background:#e8b004}.rub-dot.rub-voyage{background:#0a84c4}.rub-dot.rub-pratique{background:var(--gris)}
.rub-tout{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.05em;text-decoration:none;color:var(--rouge);white-space:nowrap}
.rub-tout:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
.rub-tout:after{content:" →"}
.rub-grid{display:grid;grid-template-columns:7fr 5fr;gap:28px;align-items:start}
.rb-lead{display:block;text-decoration:none}
.rb-lead img{width:100%;height:320px;object-fit:cover;border:3px solid var(--noir);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.rb-lead:hover img{transform:scale(1.015)}
.rb-lead b{display:block;font-family:var(--display);font-weight:900;font-size:23px;line-height:1.1;letter-spacing:-.015em;margin:12px 0 4px;transition:color .15s ease}
.rb-lead:hover b{color:var(--rouge)}
.rb-lead small{color:var(--gris);font-size:15px}
.rb-list{display:grid;gap:0}
.rb-row{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;padding:12px 0;border-bottom:2px solid var(--noir);text-decoration:none}
.rb-row:first-child{padding-top:0}
.rb-row img{width:110px;height:74px;object-fit:cover;border:2px solid var(--noir)}
.rb-row b{font-family:var(--display);font-weight:800;font-size:16px;line-height:1.2;transition:color .15s ease}
.rb-row:hover b{color:var(--rouge)}
@media (max-width:860px){.rub-grid{grid-template-columns:1fr}.rb-lead img{height:220px}}

/* Badges rubrique colorés */
.guide-rub.gr-rub-plages{color:var(--vert-fonce)}
.guide-rub.gr-rub-rando{color:var(--rouge)}
.guide-rub.gr-rub-nature{color:#0b6e37}
.guide-rub.gr-rub-patrimoine{color:var(--noir)}
.guide-rub.gr-rub-communes{color:#b88a00}
.guide-rub.gr-rub-voyage{color:#0a84c4}
.guide-rub.gr-rub-pratique{color:var(--gris)}
.rub-plages{background:var(--vert)}
.rub-rando{background:var(--rouge)}
.rub-nature{background:#0b6e37}
.rub-patrimoine{background:var(--noir)}
.rub-communes{background:#e8b004;color:var(--noir)}
.rub-pratique{background:#fff;color:var(--noir);border:2px solid var(--noir)}

/* Guides */
.guides{max-width:var(--w);margin:0 auto;padding:56px 24px 24px}
.rubrique-page{min-height:52vh;padding-bottom:72px}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.guide-row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;text-decoration:none;padding:16px 0;border-bottom:2px solid var(--noir)}
.guide-row img{width:150px;height:100px;object-fit:cover;border:2px solid var(--noir);transition:transform .25s ease}
.guide-row:hover img{transform:scale(1.04)}
.guide-row:hover b{color:var(--rouge)}
.guide-rub{display:inline-block;font-family:var(--display);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--vert-fonce)}
.guide-row b{display:block;font-family:var(--display);font-weight:800;font-size:18px;line-height:1.15;letter-spacing:-.01em;transition:color .15s ease}
.guide-row small{display:block;color:var(--gris);font-size:14px;margin-top:3px}

/* Wordmark tricolore */
.w-r{color:var(--rouge)}.w-v{color:var(--vert)}.w-n{color:var(--noir)}
footer .w-n{color:var(--noir);-webkit-text-stroke:1px rgba(255,255,255,.85);paint-order:stroke fill}

/* Carte */
.carte{background:var(--blanc);padding:0 24px 72px}
.carte:before{content:"";display:block;max-width:var(--w);margin:72px auto 64px;border-top:1px solid rgba(20,18,16,.14)}
.carte-in{max-width:var(--w);margin:0 auto;padding:64px 24px;display:grid;grid-template-columns:5fr 6fr;gap:48px;align-items:center}
.carte-txt p{font-size:18px;color:var(--gris);max-width:44ch}
.carte-liste{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:0}
.carte-liste a{display:block;text-decoration:none;padding:16px 4px;border-top:2px solid var(--noir);font-size:17px;transition:padding-left .2s ease}
.carte-liste li:last-child a{border-bottom:2px solid var(--noir)}
.carte-liste a:hover{padding-left:12px;color:var(--rouge)}
.carte-liste b{font-family:var(--display);text-transform:uppercase;font-size:15px;letter-spacing:.02em;display:block}
.carte-svg svg{width:100%;height:auto;display:block}
.spot{cursor:pointer}
.spot text{font-family:var(--display);font-weight:800;font-size:17px;text-transform:uppercase;letter-spacing:.02em;fill:var(--noir);paint-order:stroke;stroke:#fff;stroke-width:4px}
.spot circle{transition:r .18s ease}
.spot:hover circle{r:11}
.spot:hover text{fill:var(--rouge)}

/* Motion: scroll-driven reveals (progressive enhancement) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .explorer,.carte-in,.evenement .in,.reperes,.lettre .in,.corps h2,.alire,.rub-bloc,.corps-photo{
      animation:monte linear both;animation-timeline:view();animation-range:entry 0% entry 42%}
    .tile{animation:monte linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
  }
}
@keyframes monte{from{opacity:.001;transform:translateY(26px)}to{opacity:1;transform:none}}

/* Footer structuré */
footer{background:var(--noir);color:rgba(255,255,255,.85)}
footer .tricolore{height:5px}
footer .in{max-width:var(--w);margin:0 auto;padding:52px 24px 40px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.fbrand .logo{margin-bottom:16px}
.fbrand .wordmark{color:#fff;font-size:24px}
.fbrand .baseline{color:rgba(255,255,255,.55)}
.fbrand p{font-size:14px;max-width:42ch;color:rgba(255,255,255,.55);margin:0}
.fcol b{display:block;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.02em;color:#fff;margin-bottom:16px;padding-bottom:10px;border-bottom:3px solid var(--vert)}
.fcol b.u-rouge,.fcol b.u-rouge2{border-bottom-color:var(--rouge)}
.fcol b.u-vert{border-bottom-color:var(--vert)}
footer>.madras{height:10px}
.fcol nav{display:grid;gap:11px}
.fcol nav a{color:rgba(255,255,255,.78);text-decoration:none;font-size:14px;transition:color .15s ease,padding-left .15s ease}
.fcol nav a:hover{color:#fff;padding-left:5px}
.fbar{border-top:1px solid rgba(255,255,255,.14)}
.fbar{max-width:var(--w);margin:0 auto;padding:18px 24px 26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.45)}
@media(max-width:860px){footer .in{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
@media(max-width:520px){footer .in{grid-template-columns:1fr;text-align:center}.fbrand .logo{justify-content:center}footer .in nav a{justify-content:center}.fbar{flex-direction:column;gap:6px;text-align:center}}

@media (max-width:860px){
  .une,.evenement .in,.lettre .in,.carte-in,.guide-grid{grid-template-columns:1fr}
  .masthead nav{flex-wrap:wrap;gap:12px 18px;white-space:normal}
  .une{padding-bottom:44px}
  .une-photo img{height:330px}
  .reperes{grid-template-columns:1fr;gap:24px;padding:0 24px 48px}
  .tiles{grid-template-columns:1fr;grid-auto-rows:215px}
  .t-1,.t-2,.t-3,.t-4,.t-5{grid-column:1;grid-row:auto}
}
@media (prefers-reduced-motion:reduce){
  *,:before,:after{transition:none!important;animation:none!important}
  .marquee .track{transform:none}
}
