/* =====================================================================
   Tuina & Qigong à Caen — feuille de styles du site public.
   Design repris du mini-site « site_php_qigong » (charte or / serif),
   porté sur les composants du moteur (topbar, header, sections,
   témoignages, formulaires, admin-bar…).
   ===================================================================== */

/* ---------- Design tokens ---------- */
:root{
  --bg:    #ffffff;
  --paper-2:#faf8f4;
  --gold:  #B5894E;
  --gold-2:#9C6F3C;
  --ink:   #494641;   /* texte principal */
  --ink2:  #6E6A64;   /* texte secondaire */
  --line:  #DEDCD8;   /* filets */
  --jade:  #5e7d62;
  --dark:  #2b2925;   /* footer / blocs sombres */

  --maxw: 1100px;
  --maxw-content: 1040px;
  --maxw-intro: 760px;

  --font-title: 'Cormorant Garamond', Georgia, serif;
  --font-body:  'Spectral', Georgia, serif;
}
@supports (color: oklch(0 0 0)){
  :root{ --gold:oklch(0.64 0.085 72); --gold-2:oklch(0.56 0.09 60); --ink:oklch(0.34 0.006 60); --ink2:oklch(0.46 0.006 60); --line:oklch(0.88 0.004 60); }
}

/* ---------- Reset ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-title);font-weight:500;line-height:1.18}
.cor{font-family:var(--font-title)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.tag,.kick{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.16em;font-size:14px;color:var(--gold-2)}

/* ---------- Top bar ---------- */
.topbar{background:var(--paper-2);border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink2)}
.topbar .w{max-width:var(--maxw);margin:0 auto;padding:7px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.topbar .l{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.08em}
.topbar .r{display:flex;align-items:center;gap:14px}
.topbar .r a{color:var(--ink2);transition:color .3s}
.topbar .r a:hover{color:var(--gold-2)}
.topbar .tb-fb{display:inline-flex;color:var(--gold-2)}

/* ---------- Header / nav ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.1) blur(6px);border-bottom:1px solid var(--line)}
.nav{max-width:var(--maxw);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,40px)}
.nav ul{list-style:none;display:flex;align-items:center;gap:clamp(14px,2.4vw,34px)}
.nav ul.l{justify-content:flex-end;flex:1}
.nav ul.r{justify-content:flex-start;flex:1}
.nav .lk{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.12em;font-size:17px;color:var(--ink);position:relative;padding-bottom:4px;transition:color .3s;white-space:nowrap}
.nav .lk::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--gold);transition:left .3s,right .3s}
.nav .lk:hover,.nav .lk.active{color:var(--gold-2)}
.nav .lk:hover::after,.nav .lk.active::after{left:0;right:0}
.logo-square{display:flex;flex-direction:column;align-items:center;line-height:1;padding:0 8px}
.logo-gly{font-family:var(--font-title);font-size:30px;color:var(--gold);line-height:1}
.logo-nom{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.22em;font-size:13px;color:var(--ink2);margin-top:2px}
.burger{display:none;background:none;border:0;font-size:26px;color:var(--ink);cursor:pointer}
.mobile-menu{display:none}

@media(max-width:860px){
  .nav ul.l,.nav ul.r{display:none}
  .nav{justify-content:space-between}
  .burger{display:block}
  .mobile-menu{display:block;max-height:0;overflow:hidden;transition:max-height .35s ease;background:var(--paper-2);border-bottom:1px solid var(--line)}
  header.site.menu-open .mobile-menu{max-height:60vh}
  .mobile-menu ul{list-style:none;padding:10px 24px}
  .mobile-menu li{padding:11px 0;border-bottom:1px solid var(--line)}
  .mobile-menu a{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.12em;font-size:18px}
}

/* ---------- Boutons ---------- */
.btn{display:inline-block;font-family:var(--font-title);font-variant:small-caps;letter-spacing:.13em;font-size:17px;padding:11px 28px;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:all .3s}
.btn-p,.btn-blue{background:var(--gold);color:#fff}
.btn-p:hover,.btn-blue:hover{background:var(--gold-2)}
.btn-o,.btn-o-d{background:transparent;color:var(--gold-2);border-color:var(--gold)}
.btn-o:hover,.btn-o-d:hover{background:var(--gold);color:#fff}

/* ---------- HERO accueil (bandeau vidéo masqué + portrait) ---------- */
.hero{position:relative;display:flex;flex-direction:column;align-items:center;padding:0 0 6px}
.hero .title,.hero h1{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.16em;font-weight:500;font-size:clamp(26px,4vw,48px);color:var(--gold);text-align:center;margin:clamp(18px,4vh,38px) 0 clamp(10px,2vh,18px);padding:0 16px}
.hero .kick{display:block;text-align:center;margin-top:clamp(16px,3vh,28px)}
.ribbon-wrap{position:relative;width:100%;margin-top:clamp(6px,1.4vh,18px)}
.ribbon{
  --ribbon-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 260' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='black'/%3E%3Cstop offset='0.13' stop-color='white'/%3E%3Cstop offset='0.87' stop-color='white'/%3E%3Cstop offset='1' stop-color='black'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0,30C480,24,660,80,800,80C940,80,1120,24,1600,30L1600,232C1120,228,980,150,800,150C620,150,480,228,0,232Z'/%3E%3C/svg%3E");
  position:relative;width:100%;height:clamp(220px,23vw,340px);overflow:hidden;
  -webkit-mask-image:var(--ribbon-mask);mask-image:var(--ribbon-mask);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
.ribbon video,.ribbon iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;object-fit:cover;border:0;pointer-events:none}
.ribbon iframe{width:max(100%,177.78vh);height:max(100%,56.25vw);aspect-ratio:16/9;min-width:100%;min-height:100%}
.ribbon .media{position:absolute;inset:0;filter:saturate(.92)}
.ribbon .media::before,.ribbon .media::after{content:"";position:absolute;inset:-20%}
.ribbon .media::before{background:radial-gradient(40% 70% at 20% 40%, oklch(0.78 0.04 150 / .9), transparent 60%),radial-gradient(45% 80% at 60% 60%, oklch(0.72 0.06 70 / .85), transparent 62%),radial-gradient(50% 90% at 85% 45%, oklch(0.74 0.03 150 / .85), transparent 60%),linear-gradient(100deg, oklch(0.60 0.02 250), oklch(0.80 0.03 120) 40%, oklch(0.70 0.06 70) 70%, oklch(0.66 0.02 230));background-size:200% 200%;animation:flow 34s ease-in-out infinite}
.ribbon .media::after{background:radial-gradient(30% 60% at 35% 70%, oklch(0.96 0.01 120 / .6), transparent 60%),radial-gradient(26% 50% at 70% 35%, oklch(0.94 0.01 90 / .5), transparent 60%);background-size:170% 170%;mix-blend-mode:screen;animation:flow2 26s ease-in-out infinite}
@keyframes flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes flow2{0%,100%{background-position:100% 0%}50%{background-position:0% 100%}}
.portrait{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;width:clamp(150px,15.5vw,224px);height:clamp(150px,15.5vw,224px);border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 38%, oklch(0.9 0.008 70), oklch(0.82 0.01 65));box-shadow:0 10px 34px -10px rgba(40,40,60,.45), 0 0 0 6px var(--bg)}
.portrait img{width:100%;height:100%;object-fit:cover}

/* ---------- Sections génériques ---------- */
section{position:relative}
.intro{text-align:center;max-width:var(--maxw-intro);margin:clamp(20px,4vh,40px) auto 0;padding:0 24px}
.intro .lead-q,.intro h2{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.06em;font-size:clamp(22px,2.6vw,32px);color:var(--ink);line-height:1.25}
.intro p{font-weight:300;font-size:clamp(16px,1.4vw,19px);color:var(--ink2);margin-top:clamp(16px,3vh,26px);line-height:1.75}
.intro .lead,.lead{font-style:italic}
.sig{display:block;margin-top:1.4rem;color:var(--gold-2);font-variant:small-caps;letter-spacing:.12em}
.intro-cta,.cta,.intro-rond{margin-top:clamp(20px,4vh,34px);display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.intro-rond{display:block}

/* Ornement */
.ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:clamp(28px,5vh,52px) auto 0;color:var(--gold);max-width:300px}
.ornament .ln{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line))}
.ornament .ln.r{background:linear-gradient(90deg,var(--line),transparent)}
.ornament .dot{font-size:18px}

/* En-tête de section */
.h,.ps-head,.cadre .head{max-width:var(--maxw-content);margin:clamp(40px,7vh,80px) auto 0;padding:0 24px;text-align:center}
.h h2,.ps-head h2,.cadre h2{font-variant:small-caps;letter-spacing:.06em;font-size:clamp(24px,3vw,38px);color:var(--ink);margin-top:.3rem}
.h{display:flex;flex-direction:column;align-items:center;gap:.2rem}

/* ---------- Piliers / trésors (精 气 神 ou 5 piliers) ---------- */
.piliers-section,.voies,.tem,.traite,.cadre,.def,.rdv{padding-left:24px;padding-right:24px}
.ps-grid,.pillars{max-width:var(--maxw-content);margin:clamp(30px,5vh,60px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);text-align:center}
.ps-card,.pillar{display:flex;flex-direction:column;align-items:center;padding:8px}
.ps-gly,.pillar .gl,.gly{font-family:var(--font-title);font-size:38px;color:var(--gold);line-height:1}
.ps-nom,.pillar h3{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.1em;font-size:22px;margin:12px 0 8px;color:var(--ink)}
.ps-sous,.pillar p{font-weight:300;font-size:15.5px;color:var(--ink2);line-height:1.7;max-width:32ch;margin:0 auto}
@media(max-width:760px){.ps-grid,.pillars{grid-template-columns:1fr;gap:40px}}

/* Grilles de cartes (voies / traités / témoignages accueil) */
.vgrid,.tr-grid,.tgrid{max-width:var(--maxw-content);margin:clamp(28px,5vh,56px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,34px)}
@media(max-width:820px){.vgrid,.tr-grid,.tgrid{grid-template-columns:1fr}}
.vcard,.tr-card,.tcard{border:1px solid var(--line);border-radius:4px;padding:28px 24px;background:var(--bg);transition:box-shadow .3s,transform .3s;text-align:left}
.vcard:hover,.tr-card:hover{box-shadow:0 14px 40px -22px rgba(40,40,40,.4);transform:translateY(-3px)}
.vcard h3,.tr-card h3{font-variant:small-caps;letter-spacing:.05em;font-size:21px;margin:.4rem 0 .5rem}
.vcard p,.tr-card p{font-weight:300;color:var(--ink2);font-size:15.5px;line-height:1.7}
.tr-card .ic,.vcard .gly{font-size:30px;color:var(--gold)}
.tr-lire,.ro{display:block;margin-top:.8rem;color:var(--gold-2);font-variant:small-caps;letter-spacing:.08em;font-size:15px}
.tcard{background:var(--paper-2)}
.tcard .qmark{font-family:var(--font-title);font-size:40px;color:var(--gold);line-height:.4}
.tcard p{font-style:italic;color:var(--ink);margin:.6rem 0}
.tcard .meta{margin-top:1rem}
.tcard .soin{font-variant:small-caps;letter-spacing:.08em;color:var(--gold-2);font-size:14px}
.tcard .who{color:var(--ink2);font-size:14px}

/* Bloc « def » (image + texte) */
.def-in,.cadre-in,.contact-grid{max-width:var(--maxw-content);margin:clamp(40px,7vh,80px) auto 0}
.def-in{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,5vw,56px);align-items:center}
@media(max-width:760px){.def-in{grid-template-columns:1fr}}
.def-in h2{font-variant:small-caps;font-size:clamp(22px,2.6vw,32px);margin-bottom:.6rem}
.def-in p{font-weight:300;color:var(--ink2);margin-bottom:.8rem}
.who{color:var(--gold-2);font-variant:small-caps;letter-spacing:.08em}

/* Cadre / engagements */
.cadre-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:var(--maxw-content);margin:clamp(24px,4vh,40px) auto 0}
@media(max-width:680px){.cadre-grid{grid-template-columns:1fr}}
.eng{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);border-radius:4px;padding:20px}
.eng .no{font-family:var(--font-title);font-size:28px;color:var(--gold);line-height:1}
.eng p{font-weight:300;color:var(--ink2);font-size:15.5px}
.note{max-width:var(--maxw-intro);margin:1.6rem auto 0;text-align:center;font-style:italic;color:var(--ink2);font-size:14.5px}

/* Bloc RDV */
.rdv{margin-top:clamp(46px,8vh,90px)}
.rdv-in{max-width:var(--maxw-content);margin:0 auto;background:var(--dark);color:#f3efe8;border-radius:6px;padding:clamp(28px,4vw,46px);display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.rdv-in h3{font-variant:small-caps;letter-spacing:.06em;font-size:26px;color:#fff}
.rdv-in p{font-weight:300;color:#cfc8bb;margin-top:.4rem}
.rdv-in .num{font-family:var(--font-title);font-size:30px;color:var(--gold)}

/* Bandeau infos (Où / Séances / Contact) */
.info{max-width:var(--maxw-content);margin:clamp(40px,7vh,90px) auto 0;padding:clamp(28px,4vw,44px) 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:center;gap:clamp(30px,7vw,90px);flex-wrap:wrap;text-align:center}
.info .blk .k{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.16em;font-size:15px;color:var(--gold-2)}
.info .blk .v{font-weight:300;font-size:17px;color:var(--ink);margin-top:6px;line-height:1.6}

/* ---------- Hero des pages intérieures ---------- */
.page-hero{position:relative;background:var(--paper-2);border-bottom:1px solid var(--line);padding:clamp(40px,7vh,84px) 0 clamp(28px,5vh,52px);text-align:center}
.page-hero .wrap{max-width:var(--maxw-intro)}
.page-hero h1{font-variant:small-caps;letter-spacing:.1em;font-size:clamp(28px,4vw,46px);color:var(--gold);margin:.4rem 0}
.page-hero .lead{font-weight:300;color:var(--ink2);font-size:clamp(16px,1.5vw,19px)}
.hero-img-wrap{display:flex;justify-content:center;margin-bottom:1rem}

/* Fil d'Ariane */
.breadcrumb{font-size:13px;color:var(--ink2);font-variant:small-caps;letter-spacing:.06em;margin-bottom:1rem}
.breadcrumb a{color:var(--gold-2)}
.breadcrumb .bc-cur{color:var(--ink)}
.breadcrumb-dark{margin-top:1rem}

/* ---------- Contenu éditorial / prose / pages légales ---------- */
.page,.prose,.legal{max-width:var(--maxw-intro);margin:clamp(30px,6vh,64px) auto 0;padding:0 24px}
.prose h1,.legal h1,.page h1{font-variant:small-caps;letter-spacing:.1em;font-size:clamp(26px,3.4vw,42px);color:var(--gold);text-align:center;margin-bottom:clamp(18px,4vh,36px)}
.prose h2,.legal h2,.page h2{font-variant:small-caps;letter-spacing:.06em;font-size:clamp(20px,2.4vw,28px);color:var(--ink);margin:1.6em 0 .5em}
.prose p,.legal p,.page p{font-weight:300;font-size:clamp(16px,1.3vw,18px);color:var(--ink2);margin-bottom:1em}
.prose ul,.legal ul,.page ul{margin:0 0 1em 1.4em;color:var(--ink2);font-weight:300}
.prose li,.legal li{margin-bottom:.4em}
.prose .lead,.page .lead{font-style:italic;font-size:clamp(17px,1.6vw,21px);color:var(--ink)}

/* ---------- Tableau horaires/tarifs ---------- */
.table{max-width:var(--maxw-content);margin:clamp(24px,4vh,46px) auto 0;width:calc(100% - 48px)}
.table .row{display:grid;grid-template-columns:160px 1fr auto;gap:24px;align-items:baseline;padding:18px 6px;border-bottom:1px solid var(--line)}
.table .row .day{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.1em;color:var(--gold-2);font-size:16px}
.table .row .name{font-size:18px;color:var(--ink)}
.table .row .name small{display:block;font-size:14px;color:var(--ink2);font-weight:300;margin-top:2px}
.table .row .time{font-weight:300;color:var(--ink)}
@media(max-width:620px){.table .row{grid-template-columns:1fr;gap:4px}}

/* ---------- Témoignages (liste + single) ---------- */
.tem-list{padding-top:clamp(24px,4vh,40px)}
.temoi-avert,.temoi-avert{font-size:13.5px;color:var(--ink2);font-style:italic;max-width:var(--maxw-intro);margin:0 auto 1.4rem;text-align:center}
.proposer{text-align:center;margin:1.2rem auto;display:flex;flex-direction:column;align-items:center;gap:.6rem}
.tem-search{display:flex;gap:10px;max-width:620px;margin:1.4rem auto;flex-wrap:wrap;justify-content:center}
.tem-search input{flex:1;min-width:220px;font-family:var(--font-body);border:1px solid var(--line);border-radius:2px;padding:11px 14px}
.tem-search input:focus{outline:none;border-color:var(--gold)}
.tem-search button{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.1em;background:var(--gold);color:#fff;border:0;border-radius:2px;padding:11px 22px;cursor:pointer}
.tem-search-reset{align-self:center;color:var(--ink2);font-size:13px}
.tem-search-info{text-align:center;color:var(--ink2);font-size:14px}
.filtres{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:1.4rem auto;max-width:var(--maxw-content)}
.filtre{border:1px solid var(--line);border-radius:30px;padding:6px 16px;font-variant:small-caps;letter-spacing:.05em;font-size:14px;color:var(--ink2);transition:all .3s}
.filtre:hover,.filtre.on{background:var(--gold);color:#fff;border-color:var(--gold)}
.filtre span{opacity:.7;font-size:12px}
.tcards{max-width:var(--maxw-content);margin:1.6rem auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:820px){.tcards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.tcards{grid-template-columns:1fr}}
.tc{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--bg);display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s}
.tc:hover{box-shadow:0 14px 40px -22px rgba(40,40,40,.4);transform:translateY(-3px)}
.tc-img img{width:100%;height:180px;object-fit:cover}
.tc-body{padding:20px 22px;display:flex;flex-direction:column;gap:.4rem}
.tc-type{font-variant:small-caps;letter-spacing:.06em;color:var(--gold-2);font-size:13px}
.tc-titre{font-size:20px;color:var(--ink);line-height:1.25}
.tc-date{font-size:13px;color:var(--ink2)}
.tc-extrait{font-weight:300;color:var(--ink2);font-size:15px;line-height:1.6}
.tc-lire{color:var(--gold-2);font-variant:small-caps;letter-spacing:.06em;font-size:14px;margin-top:.3rem}
.pagination{display:flex;gap:8px;justify-content:center;margin:2.4rem 0}
.pagination a{border:1px solid var(--line);border-radius:3px;padding:7px 13px;color:var(--ink2)}
.pagination a.on{background:var(--gold);color:#fff;border-color:var(--gold)}
.tem-single{max-width:var(--maxw-intro);padding-top:clamp(24px,5vh,48px)}
.retour{display:inline-block;margin:.6rem 0 1rem;color:var(--gold-2);font-variant:small-caps;letter-spacing:.06em}
.ts-type{margin-bottom:.4rem}
.ts-titre{font-size:clamp(26px,3.4vw,40px);color:var(--gold);font-variant:small-caps;letter-spacing:.04em}
.ts-date{color:var(--ink2);font-size:14px;margin:.3rem 0 1rem}
.ts-img{margin:1.2rem 0}
.ts-img img{width:100%;border-radius:6px}
.ts-contenu{font-weight:300;color:var(--ink);font-size:17px;line-height:1.8}
.ts-contenu p{margin-bottom:1em}
.ts-foot{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line)}

/* ---------- Formulaires ---------- */
.form{display:flex;flex-direction:column;gap:16px;max-width:560px;margin:0 auto}
.form label{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.08em;font-size:16px;color:var(--ink);display:block}
.form input,.form textarea,.form select{width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:2px;padding:12px 14px;margin-top:6px;transition:border-color .3s}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--gold)}
.form textarea{min-height:150px;resize:vertical}
.form button{align-self:flex-start}
.cf-ok{background:#eef6ee;border:1px solid #cfe3cf;color:#3c6b40;padding:16px 18px;border-radius:3px;max-width:620px;margin:0 auto}
.cf-err{background:#fbeeee;border:1px solid #e6cccc;color:#9c3b3b;padding:14px 18px;border-radius:3px;max-width:620px;margin:0 auto 1rem}
.cf-sub{color:var(--ink2);font-size:14px;margin-bottom:1rem}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,56px)}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
.ci-card{border:1px solid var(--line);border-radius:4px;padding:24px;margin-bottom:20px}
.ci-coord-row{display:flex;gap:30px;flex-wrap:wrap}
.ci-coord-col{flex:1;min-width:160px}
.ci-t{font-variant:small-caps;letter-spacing:.1em;color:var(--gold-2);font-size:15px;margin-bottom:.4rem}
.ci-num{font-family:var(--font-title);font-size:24px;color:var(--gold)}
.ci-adr{color:var(--ink);line-height:1.6}
.ci-note{font-size:13px;color:var(--ink2);margin-top:.5rem}
.ci-itin{color:var(--gold-2);font-size:14px}
.ci-map{border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:20px}
.ci-map iframe{width:100%;height:260px;border:0;display:block}
.ci-map-link{display:block;text-align:center;padding:8px;font-size:13px;color:var(--gold-2);background:var(--paper-2)}
.horaires{list-style:none}
.horaires li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-weight:300;color:var(--ink)}
.ci-rappel{background:var(--paper-2);border-left:3px solid var(--gold);padding:14px 18px;font-size:14px;color:var(--ink2);border-radius:0 4px 4px 0}
.contact-form h2{font-variant:small-caps;font-size:26px;color:var(--ink);margin-bottom:.4rem}

/* ---------- Footer ---------- */
footer.site{background:var(--dark);color:#cfc8bb;margin-top:clamp(50px,8vh,100px);padding:clamp(40px,6vh,70px) 24px 30px}
footer.site .fin{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
@media(max-width:760px){footer.site .fin{grid-template-columns:1fr;gap:28px}}
footer.site h4{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.14em;font-size:22px;color:#fff}
footer.site .col-t{font-family:var(--font-title);font-variant:small-caps;letter-spacing:.12em;color:var(--gold);font-size:16px;margin-bottom:.8rem}
footer.site ul{list-style:none}
footer.site li{padding:5px 0;font-weight:300;font-size:15px}
footer.site a:hover{color:#fff}
footer.site .fb{max-width:var(--maxw);margin:2.4rem auto 0;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#9b9488;text-align:center}
footer.site .fb a{color:inherit}

/* ---------- Zones éditables (admin) ---------- */
.zone-img.ronde{border-radius:50%;overflow:hidden}
.zone-img.avec-bordure{box-shadow:0 0 0 6px var(--bg),0 10px 30px -12px rgba(0,0,0,.3)}
.zone-img img{width:100%;height:100%;object-fit:cover}
.ronde,.hero-img{border-radius:50%;overflow:hidden}
.hero-img{width:clamp(120px,14vw,180px);height:clamp(120px,14vw,180px)}
.intro-rond .zone-img,.pont-rond .zone-img{width:clamp(120px,14vw,170px);height:clamp(120px,14vw,170px);margin:0 auto;border-radius:50%;overflow:hidden}
.zone-vide{display:inline-flex;align-items:center;justify-content:center;min-height:60px;color:var(--ink2);border:1px dashed var(--line);font-size:13px;padding:8px 14px;border-radius:4px}
.sec-editable{outline:1px dashed rgba(181,137,78,.4);outline-offset:4px}
.is-editable{cursor:pointer}

/* ---------- Admin bar ---------- */
.adminbar{position:fixed;bottom:0;left:0;right:0;z-index:9998;background:var(--dark);color:#f3efe8;display:flex;align-items:center;gap:14px;padding:8px 16px;font-size:13px;font-family:var(--font-body)}
.adminbar a,.adminbar .btn-mini{color:#f3efe8}
.ab-dot{width:9px;height:9px;border-radius:50%;background:var(--jade);display:inline-block}
.ab-hint{color:#b9b3a6}
.zpick,.zpick-box{font-family:var(--font-body)}

/* ---------- Cookie banner ---------- */
.cookie-banner{position:fixed;bottom:14px;left:14px;right:14px;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);box-shadow:0 14px 40px -18px rgba(0,0,0,.4);border-radius:6px;padding:16px 20px;display:flex;gap:16px;align-items:center;justify-content:space-between;z-index:9990;flex-wrap:wrap}
.cookie-banner p{font-size:14px;color:var(--ink2);font-weight:300;flex:1;min-width:220px}
.cookie-banner a{color:var(--gold-2)}

/* ---------- Reveal au scroll ---------- */
.rv,.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in,.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.05s}.d2{transition-delay:.16s}.d3{transition-delay:.27s}
@media (prefers-reduced-motion:reduce){
  .rv,.reveal{opacity:1;transform:none;transition:none}
  .ribbon .media::before,.ribbon .media::after{animation:none}
}

/* Divers */
.grain{display:none}
.pont-rond{display:flex;justify-content:center;margin:clamp(30px,5vh,60px) auto}
