/* ============================================================
   CABARESCA VOYAGES — cabaresca.bond
   Feuille de style unique — carnet de route éditorial
   Structure inédite : registre de navigation vertical à droite,
   contenu en "folio", ornements dessinés en pur CSS.
   ============================================================ */

/* ---------- 1. Variables & base ---------- */
:root{
  --navy:#18334f;          /* bleu nuit des cartes marines */
  --navy-deep:#10243a;
  --navy-soft:#2c4a68;
  --copper:#c07a2d;        /* laiton des instruments */
  --copper-deep:#96591b;
  --sand:#efe4cd;          /* sable des fonds de carte */
  --paper:#faf6ea;         /* papier vélin */
  --card:#fffdf6;
  --ink:#23262e;
  --muted:#5e6470;
  --line:#d9c9a6;
  --line-soft:#e7dbc2;
  --ok:#2f6b4f;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Work Sans','Segoe UI',system-ui,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  font-size:16px;line-height:1.75;color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration:none;transition:color .15s}
a:hover{color:var(--copper-deep)}
::selection{background:var(--copper);color:#fff}

/* ---------- 2. Bandeau supérieur ---------- */
.topbar{
  background:var(--navy-deep);color:#d9e2ea;
  font-size:12.5px;letter-spacing:.06em;
}
.topbar-inner{
  max-width:1240px;margin:0 auto;padding:7px 22px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.topbar a{color:#d9e2ea;border-bottom:1px dotted rgba(255,255,255,.35)}
.topbar a:hover{color:#fff;border-color:var(--copper)}
.tb-dot{color:var(--copper);margin:0 8px}

/* ---------- 3. En-tête ---------- */
.masthead{
  background:var(--paper);
  border-bottom:4px double var(--line);
}
.masthead-inner{
  max-width:1240px;margin:0 auto;padding:18px 22px 14px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{flex:none}
.brand-name{
  font-family:var(--serif);font-weight:700;font-size:clamp(28px,4vw,40px);
  line-height:1;color:var(--navy);letter-spacing:.01em;
}
.brand-name span{color:var(--copper)}
.brand-sub{
  font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--muted);margin-top:6px;font-weight:500;
}
.folio-tag{
  margin-left:auto;text-align:right;font-size:12px;color:var(--muted);
  line-height:1.6;border-left:1px solid var(--line);padding-left:18px;
}
.folio-tag b{display:block;color:var(--navy);font-weight:600;font-size:13px}

/* ---------- 4. Structure générale ---------- */
.page{
  max-width:1240px;margin:0 auto;padding:30px 22px 10px;
  display:grid;grid-template-columns:minmax(0,1fr) 292px;
  gap:34px;align-items:start;
}
.content{min-width:0}
main:focus{outline:none}

/* ---------- 5. Registre de navigation (colonne droite) ---------- */
.guide-nav{
  position:sticky;top:16px;
  background:linear-gradient(180deg,var(--sand),#f1e8d4);
  border:1px solid var(--line);
  outline:1px dashed var(--line-soft);outline-offset:-7px;
  padding:16px 14px 14px;
}
.guide-title{
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--navy);font-weight:700;padding-bottom:10px;margin-bottom:8px;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:8px;
}
.guide-title::before{
  content:"";width:8px;height:8px;background:var(--copper);
  transform:rotate(45deg);flex:none;
}
.guide-list{list-style:none;counter-reset:folio}
.guide-list li{counter-increment:folio}
.guide-list a{
  display:flex;align-items:center;gap:10px;
  padding:7px 6px;border-bottom:1px dotted var(--line-soft);
  font-size:14.5px;color:var(--ink);position:relative;
}
.guide-list li:last-child a{border-bottom:0}
.guide-list a::before{
  content:counter(folio,decimal-leading-zero);
  font-family:var(--serif);font-size:12.5px;color:var(--copper-deep);
  letter-spacing:.05em;flex:none;
}
.guide-list a:hover{background:rgba(255,255,255,.55);color:var(--navy-deep)}
.guide-list a.active{color:var(--navy-deep);font-weight:700}
.guide-list a.active::after{
  content:"";width:7px;height:7px;background:var(--copper);
  transform:rotate(45deg);margin-left:auto;flex:none;margin-top:6px;
}
.guide-call{
  margin-top:12px;background:var(--navy);color:#f2e9d8;
  padding:11px 12px;font-size:13px;line-height:1.55;
}
.guide-call b{display:block;color:#fff;font-family:var(--serif);font-size:17px;letter-spacing:.02em}
.guide-call a{color:var(--copper);border-bottom:1px dotted var(--copper)}
.guide-call a:hover{color:#fff;border-color:#fff}

/* ---------- 6. Pied de page ---------- */
.site-footer{background:var(--navy-deep);color:#c9d4de;margin-top:56px}
.footer-grid{
  max-width:1240px;margin:0 auto;padding:44px 22px 20px;
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:34px;
}
.footer-grid h4{
  font-family:var(--serif);color:#fff;font-size:19px;font-weight:600;
  margin-bottom:12px;letter-spacing:.02em;
}
.footer-grid h4::after{content:"";display:block;width:34px;height:2px;background:var(--copper);margin-top:6px}
.footer-grid ul{list-style:none}
.footer-grid li{margin-bottom:7px;font-size:14px}
.footer-grid a{color:#c9d4de}
.footer-grid a:hover{color:#fff}
.footer-about{font-size:13.5px;line-height:1.7}
.footer-about .brand-name{color:#fff;font-size:26px;margin-bottom:10px}
.footer-contact li{padding-left:0;font-size:13.5px}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  max-width:1240px;margin:0 auto;padding:14px 22px 26px;
  font-size:12px;color:#93a3b0;display:flex;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
}
.footer-bottom .mini-mark{display:flex;align-items:center;gap:8px}

/* ---------- 7. Typographie éditoriale ---------- */
.kicker{
  font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--copper-deep);font-weight:700;display:flex;align-items:center;gap:10px;
  margin-bottom:10px;
}
.kicker::before{content:"";width:26px;height:1px;background:var(--copper);flex:none}
.kicker--center{justify-content:center}
.kicker--center::after{content:"";width:26px;height:1px;background:var(--copper)}
h1.page-title{
  font-family:var(--serif);font-weight:700;color:var(--navy);
  font-size:clamp(34px,5.4vw,56px);line-height:1.04;letter-spacing:.005em;
  margin-bottom:14px;
}
h1,h2,h3{text-wrap:balance}
h2{
  font-family:var(--serif);font-weight:700;color:var(--navy);
  font-size:clamp(23px,3vw,30px);line-height:1.15;margin:38px 0 14px;
}
h2 .sec-num{
  color:var(--copper);font-size:.66em;vertical-align:.35em;
  font-weight:600;margin-right:6px;font-family:var(--sans);
}
h3{font-family:var(--serif);font-weight:700;color:var(--navy-deep);font-size:21px;margin:26px 0 8px}
h4{font-weight:700;font-size:15.5px;color:var(--navy);margin:20px 0 6px}
p{margin-bottom:14px}
.lead{font-size:18.5px;line-height:1.8;color:#3a3f48}
.lead em{font-family:var(--serif);font-size:1.12em;color:var(--copper-deep)}
strong{color:var(--navy-deep)}
.crumbs{font-size:12.5px;color:var(--muted);letter-spacing:.04em;margin-bottom:18px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--copper-deep)}
.crumbs .sep{margin:0 7px;color:var(--line)}

/* ornement séparateur */
.orn{display:flex;align-items:center;gap:14px;margin:30px 0}
.orn::before,.orn::after{content:"";height:1px;flex:1;background:var(--line)}
.orn i{width:9px;height:9px;background:var(--copper);transform:rotate(45deg);flex:none;box-shadow:0 0 0 4px var(--paper),0 0 0 5px var(--line)}

/* ---------- 8. Figures & images ---------- */
.fig{margin:26px 0;border:1px solid var(--line);background:var(--card);box-shadow:6px 6px 0 rgba(24,51,79,.08)}
.fig img{width:100%}
.fig figcaption{
  font-size:13px;color:var(--muted);padding:10px 14px;
  border-top:1px dashed var(--line-soft);font-style:italic;
}
.fig figcaption b{color:var(--copper-deep);font-style:normal;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}
.fig--hero{border-width:1px;outline:4px double var(--line);outline-offset:-10px;position:relative;margin-top:22px}
.fig--hero img{filter:saturate(.94)}
.fig-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* ---------- 9. Cartes "étapes" ---------- */
.tcard{
  background:var(--card);border:1px solid var(--line);
  border-top:3px solid var(--copper);display:flex;flex-direction:column;
  transition:transform .18s ease,box-shadow .18s ease;
}
.tcard:hover{transform:translateY(-4px);box-shadow:8px 8px 0 rgba(192,122,45,.18)}
.tcard .tc-img{position:relative;overflow:hidden}
.tcard .tc-img img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.tcard:hover .tc-img img{transform:scale(1.05)}
.tc-num{
  position:absolute;top:10px;left:10px;background:var(--navy);color:#fff;
  font-family:var(--serif);font-size:15px;padding:2px 9px;letter-spacing:.08em;
}
.tc-num i{font-style:normal;color:var(--copper)}
.tc-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.tc-body h3{margin:0 0 6px;font-size:22px}
.tc-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-deep);font-weight:600;margin-bottom:8px}
.tc-body p{font-size:14.5px;color:#454b55;margin-bottom:12px}
.tc-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line-soft);padding-top:10px}
.tc-price{font-family:var(--serif);font-size:19px;color:var(--navy);font-weight:700}
.tc-price small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;color:var(--muted);font-weight:500;text-transform:uppercase}
.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:26px 0}
.grid-cards--2{grid-template-columns:repeat(2,1fr)}

/* ---------- 10. Jour par jour ---------- */
.day{
  display:grid;grid-template-columns:78px 1fr;gap:18px;
  padding:18px 0;border-bottom:1px dashed var(--line);
}
.day:last-child{border-bottom:0}
.day-num{
  width:62px;height:62px;border:1px solid var(--copper);position:relative;
  display:flex;align-items:center;justify-content:center;
  background:var(--sand);
}
.day-num::before{content:"";position:absolute;inset:5px;border:1px dashed var(--line)}
.day-num b{
  font-family:var(--serif);color:var(--navy);font-size:24px;font-weight:700;
  text-align:center;line-height:1;
}
.day-num b small{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.24em;color:var(--copper-deep);text-transform:uppercase;font-weight:700;margin-top:2px}
.day h3{margin:2px 0 8px;font-size:22px}
.day p{font-size:15px;margin-bottom:9px}
.day .day-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{
  font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--line);color:var(--muted);padding:2px 9px;background:#fff;
  font-weight:600;
}

/* ---------- 11. Frise chronologique (Moulin Rouge) ---------- */
.timeline{position:relative;margin:30px 0 10px;padding-left:34px}
.timeline::before{
  content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;
  background:repeating-linear-gradient(var(--copper) 0 4px,transparent 4px 9px);
}
.tl-item{position:relative;margin-bottom:26px}
.tl-item::before{
  content:"";position:absolute;left:-31px;top:6px;width:15px;height:15px;
  background:var(--paper);border:3px solid var(--navy);transform:rotate(45deg);
}
.tl-item::after{content:"";position:absolute;left:-27px;top:10px;width:7px;height:7px;background:var(--copper);transform:rotate(45deg)}
.tl-year{
  font-family:var(--serif);font-weight:700;color:var(--copper-deep);
  font-size:26px;line-height:1;
}
.tl-item h4{margin:4px 0 4px}
.tl-item p{font-size:15px;margin-bottom:6px}

/* ---------- 12. Tableaux de tarifs ---------- */
.tbl-wrap{overflow-x:auto;margin:24px 0;border:1px solid var(--line);box-shadow:5px 5px 0 rgba(24,51,79,.07)}
table.tarif{width:100%;border-collapse:collapse;background:var(--card);min-width:640px}
table.tarif th{
  background:var(--navy);color:#fff;text-align:left;font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  padding:12px 16px;
}
table.tarif td{padding:13px 16px;border-bottom:1px solid var(--line-soft);font-size:14.5px;vertical-align:top}
table.tarif tbody tr:nth-child(even){background:#f8f2e3}
table.tarif tbody tr:hover{background:#f1e7cd}
table.tarif td.px{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:18px;white-space:nowrap}
table.tarif td.px small{display:block;font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.1em;font-weight:500;text-transform:uppercase}
.note-line{font-size:13px;color:var(--muted);font-style:italic;margin-top:8px}

/* ---------- 13. Formulaires ---------- */
.form-panel{
  background:var(--card);border:1px solid var(--line);
  padding:28px;box-shadow:7px 7px 0 rgba(24,51,79,.08);
  position:relative;margin:24px 0;
}
.form-panel::before{
  content:"";position:absolute;inset:8px;border:1px dashed var(--line);pointer-events:none;
}
.form-panel>*{position:relative}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.field{display:flex;flex-direction:column;gap:5px}
.field--full{grid-column:1/-1}
.field label{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);font-weight:600}
.field label .req{color:var(--copper-deep)}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:15px;color:var(--ink);
  border:0;border-bottom:1px solid var(--line);background:transparent;
  padding:8px 2px;outline:none;transition:border-color .15s;width:100%;
}
.field textarea{min-height:110px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom:2px solid var(--copper)}
.field select{appearance:none;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M0 0l5 6 5-6z" fill="%23c07a2d"/></svg>') no-repeat right 2px center}
.form-note{font-size:12.5px;color:var(--muted);margin-top:14px}
.form-note a{border-bottom:1px dotted var(--line);color:var(--muted)}
.form-note a:hover{color:var(--copper-deep)}

/* ---------- 14. Boutons ---------- */
.btn{
  display:inline-block;padding:12px 26px;font-family:var(--sans);
  font-size:12.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--navy);background:var(--navy);color:#fff;
  cursor:pointer;transition:all .16s ease;
}
.btn:hover{color:#fff;background:var(--navy-soft);border-color:var(--navy-soft);transform:translate(-1px,-1px);box-shadow:4px 4px 0 rgba(192,122,45,.35)}
.btn--copper{background:var(--copper);border-color:var(--copper);color:#fff}
.btn--copper:hover{background:var(--copper-deep);border-color:var(--copper-deep)}
.btn--ghost{background:transparent;color:var(--navy)}
.btn--ghost:hover{background:var(--navy);color:#fff;box-shadow:none;transform:none}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin:22px 0}

/* ---------- 15. Encadrés, notes, FAQ ---------- */
.infobox{
  background:var(--sand);border-left:4px solid var(--copper);
  padding:16px 20px;margin:24px 0;font-size:15px;
}
.infobox--navy{background:var(--navy);color:#dfe7ee;border-left-color:var(--copper)}
.infobox--navy h4{color:#fff}
.infobox--navy a{color:var(--copper)}
.infobox p:last-child{margin-bottom:0}
.infobox .ib-title{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--navy);margin-bottom:6px}
.infobox--navy .ib-title{color:#fff}
.checklist{list-style:none;margin:10px 0 16px}
.checklist li{position:relative;padding:5px 0 5px 30px;font-size:15px}
.checklist li::before{
  content:"";position:absolute;left:6px;top:13px;width:9px;height:9px;
  background:var(--copper);transform:rotate(45deg);
}
details.faq{border-bottom:1px solid var(--line-soft);padding:4px 0}
details.faq:first-of-type{border-top:1px solid var(--line-soft)}
details.faq summary{
  cursor:pointer;font-weight:600;color:var(--navy);font-size:16px;
  padding:13px 34px 13px 0;position:relative;list-style:none;
}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{
  content:"+";position:absolute;right:4px;top:12px;color:var(--copper);
  font-size:22px;font-weight:400;transition:transform .2s;
}
details.faq[open] summary::after{transform:rotate(45deg);color:var(--navy-deep)}
details.faq .faq-body{padding:0 0 14px;font-size:15px;color:#41464f;max-width:72ch}
.testi{
  background:var(--card);border:1px solid var(--line);padding:20px 22px;
  position:relative;margin:16px 0;
}
.testi::before{
  content:"“";position:absolute;top:2px;left:12px;
  font-family:var(--serif);font-size:64px;color:var(--line);line-height:1;
}
.testi p{font-family:var(--serif);font-size:18px;font-style:italic;color:#33383f;line-height:1.6;padding-top:16px}
.testi cite{display:block;font-style:normal;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-deep);margin-top:6px;font-weight:600}

/* ---------- 16. Statistiques ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:26px 0}
.stat{background:var(--card);text-align:center;padding:22px 10px}
.stat b{display:block;font-family:var(--serif);font-size:38px;color:var(--navy);line-height:1;font-weight:700}
.stat b span{color:var(--copper)}
.stat small{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}

/* ---------- 17. Blocs éditoriaux & colonnes ---------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:10px 0 20px}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:10px 0 20px}
.picto{text-align:center;padding:18px 10px;border:1px solid var(--line);background:var(--card)}
.picto .picto-mark{
  width:52px;height:52px;margin:0 auto 12px;border-radius:50%;
  background:var(--navy);display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);color:#fff;font-size:20px;border:2px solid var(--copper);
  box-shadow:0 0 0 3px var(--paper),0 0 0 4px var(--line);
}
.picto h4{margin:0 0 6px;font-size:16.5px}
.picto p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.6}
.legal-body h2{margin-top:44px;padding-top:18px;border-top:1px solid var(--line)}
.legal-body h2:first-of-type{margin-top:26px;padding-top:0;border-top:0}
.legal-body p,.legal-body li{font-size:15px}
.legal-body ul,.legal-body ol{margin:0 0 14px 22px}
.legal-body li{margin-bottom:6px}
.legal-body address{font-style:normal;background:var(--sand);border-left:3px solid var(--copper);padding:12px 16px;margin:14px 0;font-size:14.5px;line-height:1.8}
.legal-meta{font-size:12.5px;color:var(--muted)}

/* ---------- 18. Responsive ---------- */
@media (max-width:1100px){
  .page{grid-template-columns:1fr;gap:24px;padding-left:0;padding-right:0}
  .content{padding:0 22px}
  .guide-nav{position:static;order:-1;overflow-x:auto;padding:10px 8px;margin:0;border-left:0;border-right:0;-webkit-overflow-scrolling:touch}
  .guide-title{display:none}
  .guide-list{display:flex;gap:2px;width:max-content}
  .guide-list a{flex-direction:column;align-items:center;gap:2px;padding:8px 13px;border-bottom:0;border-right:1px dotted var(--line-soft);font-size:12px;text-align:center}
  .guide-list li:last-child a{border-right:0}
  .guide-list a::before{font-size:11px}
  .guide-list a.active::after{display:none}
  .guide-list a.active{background:var(--navy);color:#fff}
  .guide-call{display:none}
  .grid-cards{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .page{padding:18px 0 10px}
  .content{padding:0 14px}
  .grid-cards,.grid-cards--2,.cols,.cols-3,.fig-cols,.form-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .folio-tag{display:none}
  .footer-grid{grid-template-columns:1fr}
  .day{grid-template-columns:58px 1fr;gap:12px}
  .day-num{width:50px;height:50px}
  .form-panel{padding:20px 18px}
  .topbar-inner{justify-content:center;text-align:center}
  .fig figcaption{font-size:12px}
}
@media print{
  .topbar,.guide-nav,.site-footer,.btn-row,.crumbs{display:none}
  .page{grid-template-columns:1fr;padding:0}
  body{background:#fff}
  .fig{box-shadow:none}
}
