/* ════════════════════════════════════════════════════
   KAN AN DOUR — Les chants de l'eau
   CSS unique & consolidé · Palette Atlantique bretonne
   Raleway (display) + IBM Plex Sans (corps)
════════════════════════════════════════════════════ */

/* ── 1. VARIABLES & RESET ── */
:root {
  --deep:       #0E1B2E;
  --deep-2:     #162336;
  --slate:      #1D3252;
  --ocean:      #1E4D8C;
  --jade:       #2A8C7A;
  --jade-dk:    #1F6E5E;
  --jade-lt:    #3EAFA0;
  --white:      #FFFFFF;
  --grey-50:    #F4F6FA;
  --grey-100:   #E8EBF2;
  --grey-200:   #C8D0DE;
  --text:       #1A2B3E;
  --text-2:     #3C5168;
  --text-muted: #6A7E96;
  --success:    #1E8A6E;
  --error:      #C94040;
  --gold:       #C8973A;

  --f-display: 'Raleway', Georgia, sans-serif;
  --f-body:    'IBM Plex Sans', system-ui, sans-serif;

  --sp-xs:  0.5rem;  --sp-sm:  1rem;   --sp-md:  1.5rem;
  --sp-lg:  2.5rem;  --sp-xl:  4rem;   --sp-2xl: 6.5rem;

  --r-sm: 6px; --r-md: 14px; --r-lg: 22px; --r-xl: 36px;

  --s-sm:  0 2px 10px rgba(14,27,46,.10);
  --s-md:  0 4px 24px rgba(14,27,46,.14);
  --s-lg:  0 8px 48px rgba(14,27,46,.20);
  --s-xl:  0 16px 64px rgba(14,27,46,.26);

  --ease: cubic-bezier(.25,.46,.45,.94);
  --t-fast: .22s var(--ease); --t-med: .38s var(--ease); --t-slow: .65s var(--ease);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--f-body);color:var(--text);background:var(--white);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:var(--f-body)}
::selection{background:var(--jade);color:var(--white)}
:focus-visible{outline:2px solid var(--jade);outline-offset:3px;border-radius:3px}

/* ── 2. UTILITAIRES ── */
.container{max-width:1180px;margin:0 auto;padding:0 var(--sp-md)}
.section{padding:var(--sp-2xl) 0}
.bg-deep{background:var(--deep)}
.bg-slate{background:var(--slate)}
.bg-light-2{background:var(--grey-50)}

.section-eyebrow{font-family:var(--f-body);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--jade);margin-bottom:.6rem}
.section-eyebrow.light{color:var(--jade-lt)}
.section-h2{font-family:var(--f-display);font-size:clamp(1.85rem,3.8vw,2.8rem);font-weight:700;line-height:1.2;color:var(--deep);margin-bottom:1rem;letter-spacing:-.02em}
.section-h2 em{font-style:italic;color:var(--jade);font-weight:200}
.section-h2.light{color:var(--white)}
.section-h2.light em{color:var(--jade-lt)}
.section-sub{font-size:1rem;color:var(--text-2);max-width:520px;line-height:1.75}
.section-sub.light{color:rgba(255,255,255,.65)}
.section-head{margin-bottom:var(--sp-xl)}
.section-head.center{text-align:center}
.section-head.center .section-sub{margin:0 auto}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.78rem 1.55rem;border-radius:var(--r-md);font-family:var(--f-body);font-size:.88rem;font-weight:600;letter-spacing:.01em;transition:var(--t-fast);white-space:nowrap}
.btn-jade{background:var(--jade);color:var(--white);box-shadow:0 4px 18px rgba(42,140,122,.35)}
.btn-jade:hover,.btn-jade:focus-visible{background:var(--jade-dk);box-shadow:0 6px 26px rgba(42,140,122,.45);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.1);color:var(--white);border:1.5px solid rgba(255,255,255,.3);backdrop-filter:blur(8px)}
.btn-ghost:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55)}
.btn-outline-tile{background:transparent;color:var(--text-2);border:1.5px solid var(--grey-200)}
.btn-outline-tile:hover{border-color:var(--jade);color:var(--jade);background:rgba(42,140,122,.05)}
.btn-sm{padding:.5rem 1rem;font-size:.82rem;border-radius:var(--r-sm)}

/* ── 3. ANIMATIONS REVEAL ── */
.r-left,.r-right,.r-card{opacity:0;transform:translateY(26px);transition:opacity var(--t-slow),transform var(--t-slow)}
.r-left.visible,.r-right.visible,.r-card.visible{opacity:1;transform:translateY(0)}
.r-left{transform:translateX(-30px)}.r-left.visible{transform:translateX(0)}
.r-right{transform:translateX(30px)}.r-right.visible{transform:translateX(0)}

/* ── 4. NAVBAR ── */
.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.1rem 0;transition:background var(--t-med),box-shadow var(--t-med),padding var(--t-med)}
.navbar.solid{background:rgba(14,27,46,.96);backdrop-filter:blur(18px);box-shadow:0 2px 24px rgba(14,27,46,.3);padding:.75rem 0}
.nav-inner{max-width:1180px;margin:0 auto;padding:0 var(--sp-md);display:flex;align-items:center;gap:var(--sp-md)}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--white);flex-shrink:0}
.brand-icon{width:38px;height:28px;flex-shrink:0}
.brand-icon svg{width:100%;height:100%}
.brand-name{display:flex;flex-direction:column}
.brand-main{font-family:var(--f-display);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;line-height:1}
.brand-sub{font-size:.6rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;opacity:.55;line-height:1.2}
.nav-menu{display:flex;align-items:center;gap:.2rem;margin-left:auto;list-style:none}
.nav-link{padding:.4rem .75rem;font-size:.84rem;font-weight:500;color:rgba(255,255,255,.78);border-radius:var(--r-sm);transition:var(--t-fast);display:block}
.nav-link:hover{color:var(--white);background:rgba(255,255,255,.1)}
.nav-right{display:flex;align-items:center;gap:var(--sp-sm)}
.nav-tel{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:500;color:rgba(255,255,255,.72);transition:color var(--t-fast)}
.nav-tel:hover{color:var(--white)}
.nav-tel span{display:none}
.nav-cta{background:var(--jade);color:var(--white);padding:.48rem 1.1rem;border-radius:var(--r-sm);font-size:.82rem;font-weight:600;transition:var(--t-fast);box-shadow:0 3px 12px rgba(42,140,122,.3)}
.nav-cta:hover{background:var(--jade-dk)}
.burger{display:none;flex-direction:column;gap:5px;padding:6px;border-radius:var(--r-sm)}
.burger span{display:block;width:22px;height:2px;background:var(--white);border-radius:2px;transition:var(--t-fast)}
.burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mob-overlay{display:none;position:fixed;inset:0;background:rgba(14,27,46,.65);z-index:998;backdrop-filter:blur(4px)}
.mob-overlay.show{display:block}

/* ── 5. HERO ── */
.hero{position:relative;height:100svh;min-height:620px;display:flex;align-items:flex-end;overflow:hidden;color:var(--white)}
.hero-bg{
  position:absolute;inset:0;
  background:
    linear-gradient(165deg,rgba(14,27,46,.72) 0%,rgba(30,77,140,.45) 55%,rgba(42,140,122,.25) 100%),
    url('images/hero.jpg') center 35%/cover no-repeat;
}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(14,27,46,.85) 0%,transparent 55%)}
.hero-body{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:0 var(--sp-md) var(--sp-2xl);display:flex;flex-direction:column;align-items:flex-start}
.hero-eyebrow{display:flex;align-items:center;gap:.6rem;font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:1rem}
.eyebrow-dot{width:5px;height:5px;border-radius:50%;background:var(--jade-lt);display:inline-block;animation:pulseDot 2.4s ease-in-out infinite}
@keyframes pulseDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.6}}
.hero-headline{font-family:var(--f-display);font-size:clamp(2.5rem,6.5vw,5.2rem);font-weight:800;line-height:1.08;letter-spacing:-.03em;margin-bottom:1.25rem;max-width:750px}
.hl-thin{display:block;font-weight:200;font-style:italic;opacity:.85}
.hl-em{display:block;color:var(--jade-lt);font-style:italic;font-weight:800}
.hero-tagline{font-size:clamp(.95rem,1.8vw,1.1rem);line-height:1.75;color:rgba(255,255,255,.72);margin-bottom:1.75rem;max-width:520px}
.hero-actions{display:flex;align-items:center;gap:var(--sp-sm);flex-wrap:wrap;margin-bottom:2.25rem}
.hero-kpis{display:flex;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);overflow:hidden;backdrop-filter:blur(10px);max-width:440px}
.kpi{flex:1;padding:.85rem 1.1rem;text-align:center}
.kpi b{display:block;font-family:var(--f-display);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.kpi sup{font-size:.8em}
.kpi span{font-size:.68rem;letter-spacing:.04em;opacity:.6;font-weight:400}
.kpi-sep{width:1px;background:rgba(255,255,255,.12);align-self:stretch}
.scroll-cue{position:absolute;left:50%;bottom:1.75rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;color:rgba(255,255,255,.45);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;z-index:2;animation:floatCue 3s ease-in-out infinite}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.5));animation:scrollLine 2.5s ease-in-out infinite}
@keyframes floatCue{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}
@keyframes scrollLine{0%,100%{opacity:1}50%{opacity:.35}}
.hero-cert{position:absolute;top:7rem;right:var(--sp-lg);display:flex;align-items:center;gap:.4rem;background:rgba(42,140,122,.2);border:1px solid rgba(42,140,122,.35);border-radius:100px;padding:.3rem .8rem;font-size:.72rem;font-weight:600;color:var(--jade-lt);backdrop-filter:blur(8px);z-index:2}
.h-anim{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.h-anim.delay-0{transition-delay:.05s}.h-anim.delay-1{transition-delay:.2s}
.h-anim.delay-2{transition-delay:.4s}.h-anim.delay-3{transition-delay:.6s}.h-anim.delay-4{transition-delay:.8s}

/* ── 6. PRÉSENTATION ── */
.pres-section{padding:var(--sp-2xl) 0}
.pres-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:center}
.pres-photo-frame{position:relative}
.pres-photo{border-radius:var(--r-xl);aspect-ratio:3/4;background-size:cover;background-position:center;box-shadow:var(--s-xl);overflow:hidden;transition:transform 8s var(--ease)}
.pres-photo-frame:hover .pres-photo{transform:scale(1.03)}
.pres-photo-deco{position:absolute;top:-14px;left:-14px;right:14px;bottom:14px;border:2px solid var(--jade);border-radius:var(--r-xl);opacity:.25;pointer-events:none}
.pres-badge-float{position:absolute;bottom:-1.25rem;right:-1.25rem;background:var(--white);border-radius:var(--r-md);padding:.9rem 1.1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--s-lg);font-size:.83rem}
.pres-badge-float i{color:var(--jade);font-size:1.2em}
.pres-badge-float b{display:block;font-weight:600;color:var(--deep)}
.pres-badge-float span{color:var(--text-muted);font-size:.75rem}
.pres-copy{padding:.5rem 0}
.pres-lead{font-size:1.05rem;line-height:1.8;color:var(--text);margin-bottom:1rem}
.pres-body{color:var(--text-2);line-height:1.8;margin-bottom:1rem}
.pres-pillars{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1.25rem}
.pres-pillars li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--text-2)}
.pres-pillars i{color:var(--jade);flex-shrink:0}

/* ── 7. MER ── */
.mer-transverse{display:flex;align-items:flex-start;gap:1rem;padding:1.1rem 1.5rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-md);margin-bottom:var(--sp-lg);color:rgba(255,255,255,.8);font-size:.88rem;line-height:1.7}
.mer-transverse i{color:var(--jade-lt);font-size:1.1rem;flex-shrink:0;margin-top:2px}
.mer-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-md);margin-bottom:var(--sp-lg)}
.mer-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);overflow:hidden;color:var(--white);transition:transform var(--t-med),box-shadow var(--t-med);display:flex;flex-direction:column}
.mer-card:hover{transform:translateY(-4px);box-shadow:var(--s-xl)}
.mc-img{height:210px;background-size:cover;background-position:center;flex-shrink:0}
.mc-img-top{background-position:center top}
.mc-body{padding:1.4rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.mc-tag{display:inline-flex;align-items:center;background:rgba(62,175,160,.2);border:1px solid rgba(62,175,160,.3);color:var(--jade-lt);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .6rem;border-radius:100px;width:fit-content}
.mc-tag-full{background:rgba(30,77,140,.25);border-color:rgba(30,77,140,.4);color:#7DC3FF}
.mc-tag-sunset{background:rgba(200,151,58,.2);border-color:rgba(200,151,58,.35);color:#F4C842}
.mc-body h3{font-family:var(--f-display);font-size:1.25rem;font-weight:700;color:var(--white)}
.mc-body p{font-size:.83rem;color:rgba(255,255,255,.65);line-height:1.65}
.mc-detail{font-size:.8rem!important}
.mc-specs{display:flex;flex-direction:column;gap:.3rem;margin-top:.2rem}
.mc-specs li{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:rgba(255,255,255,.55)}
.mc-specs i{color:var(--jade-lt);font-size:.85em;flex-shrink:0}
.mc-price{display:flex;gap:.85rem;margin-top:auto;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08)}
.mc-price span{font-size:.82rem;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:.3rem}
.mc-price b{font-family:var(--f-display);font-size:1.2rem;font-weight:700;color:var(--white)}

/* Autres itinéraires */
.autres-section{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-lg);padding:1.5rem 1.75rem;display:flex;flex-direction:column;gap:1.1rem;color:var(--white)}
.autres-header{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.autres-header>i{font-size:1.8rem;color:var(--jade-lt);flex-shrink:0}
.autres-header>div{flex:1}
.autres-header strong{display:block;font-weight:600;margin-bottom:.25rem}
.autres-header p{font-size:.83rem;color:rgba(255,255,255,.55);line-height:1.6}
.autres-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-sm)}
.ap-item{border-radius:var(--r-md);overflow:hidden;position:relative}
.ap-img{height:160px;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
.ap-item:hover .ap-img{transform:scale(1.04)}
.ap-item>span{display:block;padding:.5rem .75rem;background:rgba(14,27,46,.7);font-size:.75rem;font-weight:500;color:rgba(255,255,255,.8);text-align:center}

/* ── 8. RIVIÈRE ── */
.riv-section{background:var(--grey-50)}
.riv-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-xl);align-items:center}
.riv-lead{font-size:1.05rem;line-height:1.8;color:var(--text);margin-bottom:.85rem}
.riv-body{color:var(--text-2);line-height:1.8;margin-bottom:1.5rem}
.riv-features{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.5rem}
.riv-features li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--text-2)}
.riv-features i{color:var(--jade);flex-shrink:0}
.riv-grid-all{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-sm)}
.riv-p{border-radius:var(--r-md);background-size:cover;background-position:center;overflow:hidden;height:170px;transition:transform .8s var(--ease)}
.riv-p:hover{transform:scale(1.03)}
.riv-p-wide{grid-column:1/-1;height:220px}

/* ── 9. TARIFS ── */
.tarifs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-md);margin-bottom:var(--sp-md)}
.tarif-tile{background:var(--white);border:1.5px solid var(--grey-100);border-radius:var(--r-lg);padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.8rem;position:relative;overflow:hidden;transition:transform var(--t-med),box-shadow var(--t-fast)}
.tarif-tile:hover{transform:translateY(-4px);box-shadow:var(--s-lg)}
.tarif-tile-star{border-color:var(--jade);background:linear-gradient(155deg,#F0FAF8,#FFFFFF);box-shadow:0 4px 24px rgba(42,140,122,.12)}
.tt-star-tag{position:absolute;top:0;right:0;background:var(--jade);color:var(--white);font-size:.68rem;font-weight:700;padding:.28rem .65rem;border-radius:0 var(--r-lg) 0 var(--r-sm)}
.tt-icon{font-size:1.5rem;color:var(--jade)}
.tt-name{font-family:var(--f-display);font-size:1.2rem;font-weight:700;color:var(--deep);letter-spacing:-.01em}
.tt-sub{font-size:.78rem;color:var(--text-muted);margin-top:-.4rem}
.tt-prices{background:var(--grey-50);border-radius:var(--r-sm);padding:.8rem;display:flex;flex-direction:column;gap:.4rem}
.tt-price-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--text-2)}
.tt-price-row strong{font-size:1.15rem;font-weight:700;color:var(--deep);font-family:var(--f-display)}
.tt-mineur{background:rgba(42,140,122,.08);border-radius:var(--r-sm);padding:.2rem .4rem;margin:0 -.3rem}
.tt-mineur strong{color:var(--jade);font-size:1rem}
.tt-price-devis{justify-content:center}
.tt-price-devis strong{font-size:1.3rem;color:var(--jade)}
.tt-incl{display:flex;flex-direction:column;gap:.4rem;flex:1}
.tt-incl li{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-2)}
.tt-incl .fa-check{color:var(--success)}
.tarifs-note{text-align:center;font-size:.84rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.9rem;background:var(--grey-50);border-radius:var(--r-md)}
.tarifs-note .fa-circle-info{color:var(--jade)}

/* ── 10. PROJET SUR MESURE ── */
.projet-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--sp-xl);align-items:start}
.projet-left .section-h2{text-align:left}
.projet-intro{color:rgba(255,255,255,.72);font-size:1rem;line-height:1.75;margin-bottom:1.25rem}
.projet-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-sm);margin-bottom:var(--sp-md)}
.pp-item{border-radius:var(--r-md);overflow:hidden;position:relative}
.pp-img{height:140px;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
.pp-item:hover .pp-img{transform:scale(1.05)}
.pp-item>span{display:block;padding:.4rem .6rem;background:rgba(14,27,46,.65);font-size:.72rem;font-weight:500;color:rgba(255,255,255,.8);text-align:center}
.projet-items{display:flex;flex-direction:column;gap:.75rem}
.projet-item{display:flex;align-items:flex-start;gap:.85rem;padding:.85rem 1rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md)}
.projet-item i{font-size:1.1rem;color:var(--jade-lt);flex-shrink:0;margin-top:2px}
.projet-item b{display:block;font-weight:600;color:var(--white);font-size:.9rem}
.projet-item span{font-size:.8rem;color:rgba(255,255,255,.55)}
.projet-form-wrap{background:var(--white);border-radius:var(--r-xl);padding:2rem;box-shadow:var(--s-xl)}
.projet-form-title{font-family:var(--f-display);font-size:1.3rem;font-weight:700;color:var(--deep);margin-bottom:1.25rem;padding-bottom:.85rem;border-bottom:1px solid var(--grey-100)}

/* ── 11. FORMULAIRES ── */
.bk-form,.ct-form{display:flex;flex-direction:column;gap:.9rem}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.bk-field{display:flex;flex-direction:column;gap:.28rem}
.bk-full{grid-column:1/-1}
label{font-size:.78rem;font-weight:600;color:var(--text-2);letter-spacing:.02em}
label span{color:var(--jade)}
input,select,textarea{width:100%;padding:.68rem .9rem;border:1.5px solid var(--grey-200);border-radius:var(--r-sm);font-size:.88rem;color:var(--text);background:var(--white);transition:border-color var(--t-fast),box-shadow var(--t-fast);-webkit-appearance:none}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px rgba(42,140,122,.12)}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.65}
textarea{resize:vertical;min-height:75px}
select{cursor:pointer}
input.bad,select.bad,textarea.bad{border-color:var(--error)}
.f-err{font-size:.72rem;color:var(--error);min-height:14px}
.bk-submit{width:100%;justify-content:center;padding:.85rem;font-size:.92rem;border-radius:var(--r-md)}
.btn-txt{display:flex;align-items:center;gap:.45rem}
.btn-spin{display:none;align-items:center;gap:.4rem}
.is-loading .btn-txt{display:none}
.is-loading .btn-spin{display:flex}

/* ── 12. PARTENAIRES ── */
.partenaires-section{background:var(--grey-50)}
.partners-block{background:var(--white);border:1px solid var(--grey-100);border-radius:var(--r-lg);padding:1.75rem;margin-bottom:var(--sp-md)}
.partners-block:last-child{margin-bottom:0}
.pb-header{display:flex;align-items:center;gap:.65rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--grey-100)}
.pb-header i{font-size:1.2rem;color:var(--jade)}
.pb-header h3{font-family:var(--f-display);font-size:1.15rem;font-weight:700;color:var(--deep)}
.pb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-md)}
.pb-placeholder{border:2px dashed var(--grey-200);border-radius:var(--r-md);aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;color:var(--text-muted);background:var(--grey-50);transition:var(--t-fast)}
.pb-placeholder:hover{border-color:var(--jade);color:var(--jade);background:rgba(42,140,122,.04)}
.pb-placeholder i{font-size:2rem;opacity:.4}
.pb-placeholder span{font-size:.9rem;font-weight:600;letter-spacing:.04em}

/* ── 13. CONTACT & HORAIRES ── */
.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:var(--sp-lg);align-items:start;margin-bottom:var(--sp-lg)}
.ct-col{display:flex;flex-direction:column;gap:var(--sp-md)}
.ct-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:1.5rem;color:var(--white)}
.ct-card h3{font-family:var(--f-display);font-size:1rem;font-weight:700;display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.08)}
.ct-card h3 i{color:var(--jade-lt)}
.ct-list{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.1rem}
.ct-list li{display:flex;align-items:flex-start;gap:.7rem;font-size:.85rem}
.ct-list i{color:var(--jade-lt);flex-shrink:0;margin-top:2px}
.ct-list b{display:block;font-size:.7rem;color:rgba(255,255,255,.45);font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1px}
.ct-list a{color:rgba(255,255,255,.82);transition:color var(--t-fast)}
.ct-list a:hover{color:var(--jade-lt)}
.ct-call{width:100%;justify-content:center;padding:.7rem;font-size:.86rem}
.ct-form-wrap{background:rgba(255,255,255,.06)}
.ct-form-wrap h3{font-size:1rem}

/* Blocs horaires */
.hours-block{margin-bottom:.85rem;padding-bottom:.85rem;border-bottom:1px solid rgba(255,255,255,.08)}
.hours-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}
.hours-zone-title{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--jade-lt);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.65rem;flex-wrap:wrap}
.hours-zone-title i{font-size:.9em}
.hz-season{background:rgba(42,140,122,.2);border-radius:100px;padding:.15rem .55rem;font-size:.68rem;color:rgba(255,255,255,.7);font-weight:500;text-transform:none;letter-spacing:.02em}
.hours-list{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}
.h-row{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;padding:.38rem .55rem;border-radius:var(--r-sm);transition:background var(--t-fast)}
.h-row.today{background:rgba(42,140,122,.2)}
.h-row.today .h-day{color:var(--jade-lt);font-weight:600}
.h-day{color:rgba(255,255,255,.65)}
.h-time{font-weight:500;color:var(--white)}
.h-closed{color:rgba(255,255,255,.35);font-style:italic}
.hours-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;padding:.28rem .65rem;border-radius:100px}
.hb-open{background:rgba(30,138,110,.2);color:#5EDAAF}
.hb-closed{background:rgba(201,64,64,.2);color:#F29090}
.hb-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.hours-scorff-note{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:rgba(255,255,255,.6);padding:.5rem .65rem;background:rgba(255,255,255,.05);border-radius:var(--r-sm)}
.hours-scorff-note i{color:var(--jade-lt)}

/* Carte */
.map-card-wrap{border-radius:var(--r-lg);overflow:hidden;position:relative;height:400px;background:var(--grey-100)}
#leafMap{width:100%;height:100%}
.map-overlay-card{position:absolute;top:var(--sp-md);left:var(--sp-md);background:rgba(14,27,46,.92);backdrop-filter:blur(12px);border-radius:var(--r-md);padding:1rem;display:flex;flex-direction:column;gap:.4rem;z-index:500;color:var(--white);border:1px solid rgba(255,255,255,.1);min-width:185px}
.map-overlay-card i{color:var(--jade-lt);font-size:1.1rem;margin-bottom:.1rem}
.map-overlay-card strong{font-size:.92rem;font-weight:700}
.map-overlay-card span{font-size:.75rem;color:rgba(255,255,255,.6);margin-bottom:.3rem}

/* ── 14. FOOTER ── */
.site-footer{background:var(--deep);color:rgba(255,255,255,.6)}
.ft-body{padding:var(--sp-xl) 0}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr 1fr;gap:var(--sp-xl)}
.ft-brand-col .brand{color:var(--white);margin-bottom:.85rem}
.ft-brand{display:inline-flex}
.ft-tagline{font-size:.82rem;line-height:1.7;margin-bottom:1rem}
.ft-nav-col h4,.ft-info-col h4,.ft-cert-col h4{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:.85rem}
.ft-nav-col ul,.ft-info-col ul{display:flex;flex-direction:column;gap:.45rem}
.ft-nav-col a,.ft-info-col li,.ft-info-col a{font-size:.83rem;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:.45rem;transition:color var(--t-fast)}
.ft-nav-col a:hover,.ft-info-col a:hover{color:var(--jade-lt)}
.ft-info-col i{color:rgba(62,175,160,.6);font-size:.8rem;flex-shrink:0}
.ft-certs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.ft-cert{background:rgba(255,255,255,.05);border-radius:var(--r-sm);padding:.45rem .55rem;display:flex;align-items:center;gap:.35rem;font-size:.74rem;color:rgba(255,255,255,.55)}
.ft-cert i{color:var(--jade-lt);font-size:.8em}
.ft-bottom{border-top:1px solid rgba(255,255,255,.06);padding:1.1rem 0;font-size:.78rem}
.ft-bottom-in{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);flex-wrap:wrap}
.ft-legal{display:flex;gap:1.25rem}
.ft-legal a{color:rgba(255,255,255,.38);transition:color var(--t-fast)}
.ft-legal a:hover{color:var(--jade-lt)}

/* ── 15. FLOTTANTS ── */
.mob-call{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--jade);color:var(--white);border-radius:100px;padding:.72rem 1.15rem;display:none;align-items:center;gap:.45rem;font-size:.86rem;font-weight:600;box-shadow:0 6px 24px rgba(42,140,122,.45);z-index:900;transition:var(--t-fast)}
.mob-call:hover{background:var(--jade-dk)}
.back-top{position:fixed;bottom:1.5rem;right:1.5rem;width:42px;height:42px;background:var(--deep);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;box-shadow:var(--s-md);z-index:900;opacity:0;transform:translateY(12px);transition:opacity var(--t-fast),transform var(--t-fast),background var(--t-fast);pointer-events:none}
.back-top.up{opacity:1;transform:translateY(0);pointer-events:all}
.back-top:hover{background:var(--jade)}
.toast-notif{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(16px);background:var(--white);color:var(--text);border-radius:var(--r-md);padding:.85rem 1.4rem;box-shadow:var(--s-xl);font-size:.88rem;font-weight:500;z-index:2000;opacity:0;transition:opacity .3s var(--ease),transform .3s var(--ease);pointer-events:none;min-width:260px;max-width:480px;border-left:4px solid var(--jade);display:flex;align-items:center}
.toast-notif.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast-notif.t-err{border-left-color:var(--error)}

/* ── 16. LEAFLET ── */
.leaflet-popup-content-wrapper{border-radius:var(--r-md)!important;box-shadow:var(--s-lg)!important;font-family:var(--f-body)!important}
.leaflet-popup-content{font-size:.85rem;color:var(--text)}
.leaflet-popup-content strong{color:var(--deep);font-weight:700}

/* ── 17. RESPONSIVE TABLETTE ≤1024px ── */
@media(max-width:1024px){
  .mer-cards{grid-template-columns:1fr}
  .tarifs-grid{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr 1fr;gap:var(--sp-lg)}
  .ft-brand-col{grid-column:1/-1}
  .nav-tel span{display:inline}
  .pb-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── 18. RESPONSIVE MOBILE ≤768px ── */
@media(max-width:768px){
  :root{--sp-xl:2.5rem;--sp-2xl:4rem}
  .nav-menu{position:fixed;top:0;right:0;bottom:0;width:275px;background:var(--deep-2);flex-direction:column;align-items:flex-start;padding:5rem 1.5rem 2rem;gap:.2rem;z-index:999;transform:translateX(105%);transition:transform var(--t-slow);box-shadow:var(--s-xl)}
  .nav-menu.open{transform:translateX(0)}
  .nav-link{font-size:1rem;padding:.65rem .75rem;width:100%;color:rgba(255,255,255,.8)}
  .nav-tel span{display:none}
  .burger{display:flex}
  .mob-call{display:flex}
  .back-top{display:none}
  .hero-body{padding-bottom:var(--sp-xl)}
  .hero-headline{font-size:clamp(2.2rem,8vw,3.2rem)}
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%;justify-content:center}
  .hero-kpis{max-width:100%}
  .hero-cert{display:none}
  .pres-layout{grid-template-columns:1fr}
  .pres-media{display:none}
  .pres-pillars{grid-template-columns:1fr}
  .riv-layout{grid-template-columns:1fr}
  .riv-p-large{grid-column:1/-1}
  .tarifs-grid{grid-template-columns:1fr}
  .projet-layout{grid-template-columns:1fr}
  .bk-row{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .map-card-wrap{height:320px}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom-in{flex-direction:column;text-align:center}
  .ft-legal{justify-content:center}
  .autres-photos{grid-template-columns:1fr}
  .projet-photos{grid-template-columns:1fr}
  .pb-grid{grid-template-columns:1fr}
  .autres-header{flex-direction:column;text-align:center}
}

@media(max-width:400px){
  .hero-headline{font-size:2rem}
  .hero-kpis{flex-direction:column}
  .kpi-sep{width:100%;height:1px}
}