/* ==========================================================================
   LINOVA — feuille de style V3 (statique, auto-hébergeable)
   Palette : navy #293854 + blanc + fond bleu clair (wash) + accent bleu acier.
   Sans beige, sans doré. Police Poppins embarquée. Zéro dépendance externe.
   ========================================================================== */

@font-face { font-family:"Poppins"; font-weight:400; font-display:swap;
  src:url("assets/fonts/Poppins-Regular.ttf") format("truetype"); }
@font-face { font-family:"Poppins"; font-weight:500; font-display:swap;
  src:url("assets/fonts/Poppins-Medium.ttf") format("truetype"); }
@font-face { font-family:"Poppins"; font-weight:600; font-display:swap;
  src:url("assets/fonts/Poppins-SemiBold.ttf") format("truetype"); }
@font-face { font-family:"Poppins"; font-weight:700; font-display:swap;
  src:url("assets/fonts/Poppins-Bold.ttf") format("truetype"); }

:root{
  --navy:#293854;
  --navy-deep:#1e2b41;
  --white:#ffffff;
  --wash:#eaf0f8;            /* fond bleu clair NOVA */
  --wash-2:#dfe8f4;          /* fond bleu clair, un ton plus soutenu */
  --soft:#eef3fa;            /* fond bleu très clair */
  --accent:#4f6f9c;          /* bleu acier, seul accent */
  --accent-deep:#3d5a86;
  --accent-soft:#e6eef8;
  --ink:#2b3242;
  --muted:#697386;
  --line:rgba(41,56,84,.12);
  --line-soft:rgba(41,56,84,.08);
  --shadow:0 20px 44px -26px rgba(41,56,84,.5);
  --shadow-soft:0 14px 34px -22px rgba(41,56,84,.35);
  --radius:18px;
  --maxw:1160px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-y:scroll;}
body{
  margin:0; font-family:"Poppins",system-ui,sans-serif;
  color:var(--ink); background:var(--white);
  line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{color:var(--navy); line-height:1.14; margin:0; letter-spacing:-.015em; overflow-wrap:break-word;}
p{margin:0;}

.container{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.section{padding:100px 0;}
.bg-wash{background:var(--wash);}
.bg-white{background:var(--white);}
.bg-soft{background:var(--soft);}

.eyebrow{display:inline-block; font-size:13px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent); margin-bottom:16px;}
.section-head{max-width:720px; margin-bottom:52px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(28px,4vw,42px); font-weight:700;}
.section-head p{margin-top:16px; font-size:18px; color:var(--muted);}

/* Boutons */
.btn{display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-family:inherit;
  font-size:16px; font-weight:600; border:0; padding:15px 28px; border-radius:999px;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;}
.btn--primary{background:var(--navy); color:#fff; box-shadow:var(--shadow);}
.btn--primary:hover{transform:translateY(-2px); background:var(--navy-deep);}
.btn--accent{background:var(--accent); color:#fff;}
.btn--accent:hover{transform:translateY(-2px); background:var(--accent-deep);}
.btn--ghost{background:transparent; color:var(--navy); border:1.5px solid var(--line);}
.btn--ghost:hover{border-color:var(--navy); transform:translateY(-2px);}
.btn--light{background:#fff; color:var(--navy); box-shadow:var(--shadow-soft);}
.btn--light:hover{transform:translateY(-2px);}
.btn--outline-light{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.45);}
.btn--outline-light:hover{border-color:#fff; background:rgba(255,255,255,.08); transform:translateY(-2px);}

/* Header */
.header{position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.85); backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--line-soft);}
.header .container{display:flex; align-items:center; justify-content:space-between; height:76px;}
.brand img{height:28px; width:auto;}
.nav{display:flex; align-items:center; gap:32px;}
.nav-links{display:flex; gap:30px;}
.nav-links a{font-size:15px; font-weight:500; color:var(--navy); opacity:.82;}
.nav-links a:hover{opacity:1; color:var(--accent);}
.header .btn{padding:11px 22px; font-size:15px;}

/* Hero */
.hero{padding:96px 0 100px; background:
  radial-gradient(1200px 520px at 86% -14%, rgba(41,56,84,.20), transparent 60%),
  linear-gradient(180deg, var(--wash) 0%, var(--wash) 30%, var(--white) 90%);}
.hero .container{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
.hero h1{font-size:clamp(34px,5vw,56px); font-weight:700; letter-spacing:-.02em;}
.hero h1 .hl{color:var(--accent);}
.hero .lead{margin-top:24px; font-size:19px; color:var(--ink); max-width:560px;}
.hero .cta{margin-top:34px; display:flex; gap:14px; flex-wrap:wrap;}
.hero .trust{margin-top:26px; font-size:14.5px; color:var(--muted); display:flex; align-items:center; gap:10px;}
.hero .trust::before{content:""; width:26px; height:2px; background:var(--accent); display:inline-block;}
.hero-card{background:var(--navy); color:#fff; border-radius:24px; padding:34px; box-shadow:var(--shadow);}
.hero-card h3{color:#fff; font-size:18px; font-weight:600; margin-bottom:20px;}
.hero-card ul{list-style:none; margin:0; padding:0; display:grid; gap:14px;}
.hero-card li{display:flex; gap:12px; align-items:flex-start; font-size:15.5px; color:rgba(255,255,255,.9);}
.hero-card li::before{content:""; flex:0 0 auto; margin-top:8px; width:8px; height:8px; border-radius:50%; background:var(--accent);}

/* "What I do" strip */
.dostrip{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.do{display:flex; gap:16px; align-items:flex-start;}
.do .ic{flex:0 0 auto; width:48px; height:48px; border-radius:13px; background:var(--accent-soft);
  color:var(--accent); display:flex; align-items:center; justify-content:center;}
.do h3{font-size:18px; font-weight:600; margin-bottom:6px;}
.do p{color:var(--muted); font-size:15px;}

/* Sample work */
.worknote{color:var(--muted); font-size:14.5px; margin-top:-32px; margin-bottom:44px;}
.work{display:grid; grid-template-columns:repeat(2,1fr); gap:34px;}
.work .wide{grid-column:1 / -1;}
.workcard{position:relative;}
.workcard .cap{margin-top:18px;}
/* Zoom au survol pour lire les interfaces */
.work .browser, .work .phone{transition:transform .45s cubic-bezier(.2,.75,.2,1), box-shadow .45s ease; position:relative; z-index:1;}
@media(hover:hover){
  .work .browser, .work .phone{cursor:zoom-in;}
  .work .browser:hover{transform:scale(1.62); transform-origin:left center; z-index:30; box-shadow:0 50px 90px -32px rgba(30,43,65,.6);}
  .work .phone:hover{transform:scale(1.7); transform-origin:right center; z-index:30; box-shadow:0 50px 90px -32px rgba(30,43,65,.6);}
}
.workcard .cap h3{font-size:19px; font-weight:600;}
.workcard .cap p{color:var(--muted); font-size:15px; margin-top:4px;}

/* Cadre navigateur */
.browser{border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); background:#fff;}
.browser .bar{display:flex; align-items:center; gap:8px; padding:12px 16px; background:#f1f3f6; border-bottom:1px solid var(--line-soft);}
.browser .bar i{width:11px; height:11px; border-radius:50%; background:#d3d8e0; display:inline-block;}
.browser .bar i:nth-child(1){background:#e6a1a1;} .browser .bar i:nth-child(2){background:#e6cf9c;} .browser .bar i:nth-child(3){background:#a8d3ad;}
.browser .url{flex:1; margin-left:12px; background:#fff; border:1px solid var(--line-soft); border-radius:8px;
  font-size:12.5px; color:#8b93a3; padding:6px 12px;}
.browser img{width:100%; display:block;}

/* Duo : navigateur + téléphone côte à côte */
.duo{display:grid; grid-template-columns:1.5fr .85fr; gap:34px; align-items:center;}
.phone{border-radius:34px; border:10px solid #1e2b41; overflow:hidden; box-shadow:var(--shadow); background:#1e2b41; max-width:300px; margin:0 auto;}
.phone img{width:100%; display:block; border-radius:24px;}

/* Galerie de sites interactive */
.gallery{display:grid; grid-template-columns:1fr; gap:22px;}
.gallery .stage{position:relative;}
.gallery .stage .browser img{transition:opacity .25s ease;}
.gallery .open{position:absolute; top:56px; right:18px; z-index:2;
  background:rgba(30,43,65,.92); color:#fff; padding:9px 16px; border-radius:999px;
  font-size:13.5px; font-weight:600; display:inline-flex; gap:7px; align-items:center; backdrop-filter:blur(4px);
  box-shadow:0 8px 20px -8px rgba(0,0,0,.5); transition:transform .15s, background .2s;}
.gallery .open:hover{transform:translateY(-2px); background:var(--navy);}
.tabs{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.tab{text-align:left; cursor:pointer; font-family:inherit; background:#fff; border:1.5px solid var(--line); border-radius:14px;
  padding:16px 18px; transition:border-color .18s, transform .15s, box-shadow .2s;}
.tab:hover{transform:translateY(-2px); box-shadow:var(--shadow-soft);}
.tab.active{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);}
.tab .nm{font-weight:600; color:var(--navy); font-size:15.5px;}
.tab .ty{color:var(--muted); font-size:13px; margin-top:3px;}
.tab .go{color:var(--accent); font-size:12.5px; font-weight:600; margin-top:8px; display:inline-block;}

/* Galerie showcase : grand aperçu + sélecteur en bas (non cliquable, auto-animé) */
.bigframe{border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); background:#fff;}
.bigframe .chrome{display:flex; align-items:center; gap:8px; padding:13px 18px; background:#eef1f5; border-bottom:1px solid var(--line-soft);}
.bigframe .chrome i{width:11px; height:11px; border-radius:50%; background:#d3d8e0;}
.bigframe .chrome i:nth-child(1){background:#e6a1a1;} .bigframe .chrome i:nth-child(2){background:#e8cf9c;} .bigframe .chrome i:nth-child(3){background:#a8d3ad;}
.bigframe .chrome .u{margin-left:10px; font-size:13px; color:#8b93a3;}
.bigscreen{position:relative; width:100%; height:640px; overflow:hidden; background:#fff;}
.bigscreen iframe{width:1280px; height:1600px; border:0; transform-origin:top left; transform:scale(.83); pointer-events:auto;}
.bigscreen .hint{position:absolute; right:12px; bottom:12px; z-index:3; display:flex; align-items:center; gap:7px; padding:7px 12px; border-radius:100px; background:rgba(41,56,84,.82); color:#fff; font-size:12px; font-weight:600; letter-spacing:.01em; backdrop-filter:blur(4px); box-shadow:var(--shadow-soft); pointer-events:none; opacity:0; transition:opacity .25s ease;}
.bigscreen:hover .hint{opacity:1;}
.bigscreen .hint svg{display:block;}
.selector{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-top:18px;}
.sel{cursor:pointer; font-family:inherit; text-align:left; background:#fff; border:1.5px solid var(--line); border-radius:12px; padding:13px 15px; transition:border-color .18s, transform .15s, box-shadow .2s;}
.sel:hover{transform:translateY(-2px); box-shadow:var(--shadow-soft);}
.sel.active{border-color:var(--navy); box-shadow:0 0 0 3px var(--accent-soft);}
.sel b{display:block; color:var(--navy); font-size:14px; font-weight:600;}
.sel span{color:var(--muted); font-size:11px;}
@media(max-width:900px){.selector{grid-template-columns:repeat(3,1fr);} .bigscreen{height:440px;}}
@media(max-width:560px){.selector{grid-template-columns:repeat(2,1fr);} .bigscreen{height:300px;}}

/* Benefits (navy) */
.benefits{background:var(--navy); color:#fff;}
.benefits .section-head h2{color:#fff;}
.benefits .section-head p{color:rgba(255,255,255,.72);}
.bcols{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.bcol{background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); padding:30px;}
.bcol h3{color:#fff; font-size:19px; font-weight:600; margin-bottom:6px;}
.bcol .sub{color:#9db6d6; font-size:13.5px; font-weight:600; text-transform:uppercase; letter-spacing:.09em; margin-bottom:18px;}
.bcol ul{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.bcol li{display:flex; gap:11px; font-size:15px; color:rgba(255,255,255,.88);}
.bcol li::before{content:"›"; color:var(--accent); font-weight:700;}

/* Types */
.chips{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px;}
.chip{background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 24px; transition:transform .15s, box-shadow .2s;}
.chip:hover{transform:translateY(-3px); box-shadow:var(--shadow-soft);}
.chip strong{display:block; color:var(--navy); font-weight:600; font-size:16.5px; margin-bottom:6px;}
.chip span{color:var(--muted); font-size:14.5px;}

/* Steps */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.step{padding:28px; background:#fff; border:1px solid var(--line); border-radius:var(--radius);}
.step .k{font-size:44px; font-weight:700; color:rgba(41,56,84,.16); line-height:1;}
.step h3{font-size:18px; font-weight:600; margin:10px 0 8px;}
.step p{color:var(--muted); font-size:15px;}

/* About */
.about .container{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.about h2{font-size:clamp(26px,3.6vw,36px); font-weight:700;}
.about .points{margin-top:26px; display:grid; gap:16px;}
.about .point b{color:var(--navy); font-weight:600;}
.about .point span{color:var(--muted); font-size:15.5px;}
.about-badge{background:var(--navy); color:#fff; border-radius:24px; padding:44px 40px; box-shadow:var(--shadow); border-left:4px solid var(--accent); margin-top:clamp(32px,4vw,52px);}
.about-badge .q{font-size:22px; font-weight:600; color:#fff; line-height:1.45;}
.about-badge .who{margin-top:22px; font-size:14.5px; color:rgba(255,255,255,.72);}

/* CTA final */
.cta-final{background:var(--navy-deep); color:#fff;}
.cta-final .inner{text-align:center; max-width:680px; margin:0 auto;}
.cta-final .eyebrow{color:#9db6d6;}
.cta-final h2{color:#fff; font-size:clamp(28px,4vw,42px); font-weight:700;}
.cta-final p{margin-top:16px; font-size:18px; color:rgba(255,255,255,.8);}
.cta-final .cta{margin-top:32px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

/* Footer */
.footer{background:var(--navy-deep); color:rgba(255,255,255,.72); padding:48px 0 40px; border-top:1px solid rgba(255,255,255,.1);}
.footer .foot-top{display:flex; justify-content:space-between; align-items:center; gap:22px; flex-wrap:wrap; padding-bottom:24px; margin-bottom:22px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer img{height:24px;}
.footer .foot-links{display:flex; gap:26px; flex-wrap:wrap;}
.footer .foot-links a{font-size:14px; color:rgba(255,255,255,.82); font-weight:500;}
.footer .legal{font-size:13.5px;}
.footer .legal a{color:rgba(255,255,255,.85);}
.footer a{color:#fff;} .footer a:hover{color:var(--accent);}
.placeholder{color:var(--accent); border-bottom:1px dashed rgba(79,111,156,.6);}

/* ===================== PAGES : book / contact ===================== */
/* Bandeau d'en-tête bleu NOVA */
.pagehead{color:#fff; padding:74px 0 84px; background:
  radial-gradient(900px 440px at 88% -40%, rgba(79,111,156,.55), transparent 60%),
  linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);}
.pagehead .eyebrow{color:#9db6d6;}
.pagehead h1{color:#fff; font-size:clamp(32px,4.6vw,50px); font-weight:700; letter-spacing:-.02em; max-width:18ch;}
.pagehead .lead{margin-top:18px; font-size:18px; color:rgba(255,255,255,.82); max-width:600px;}
.pagehead .cta{margin-top:30px; display:flex; gap:14px; flex-wrap:wrap;}
/* Flèche retour sobre, haut à gauche */
.backlink{display:flex; width:fit-content; align-items:center; gap:11px; color:rgba(255,255,255,.72); font-size:14px; font-weight:600; margin-bottom:26px; transition:color .15s;}
.backlink .ic{width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.28); display:flex; align-items:center; justify-content:center; transition:.15s;}
.backlink:hover{color:#fff;}
.backlink:hover .ic{background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.55); transform:translateX(-2px);}

/* Zone de contenu : espace symétrique entre le bandeau, les blocs et le bas de page */
.book{padding:88px 0 88px; background:var(--soft);}
.book .container{display:grid; grid-template-columns:1.12fr .88fr; gap:24px; align-items:start;}
.book .container.even{grid-template-columns:1fr 1fr;}

/* Cartes génériques */
.box{background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px; box-shadow:var(--shadow-soft);}
.box h3{font-size:18px; font-weight:600; color:var(--navy); margin-bottom:16px;}
.box .eyebrow{margin-bottom:12px;}
.box p{color:var(--muted); font-size:15.5px;}
.box.navy{background:var(--navy); border:0; color:#fff; box-shadow:var(--shadow);}
.box.navy h3{color:#fff;} .box.navy p{color:rgba(255,255,255,.82);} .box.navy .eyebrow{color:#9db6d6;}
.box .btn{width:100%; justify-content:center; margin-top:20px;}

/* Carte formulaire */
.form{background:#fff; border:1px solid var(--line); border-radius:20px; padding:36px; box-shadow:var(--shadow);}
.form .form-title{font-size:20px; font-weight:600; color:var(--navy); margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--line-soft);}
.field{margin-bottom:18px;}
.field label{display:block; font-size:14px; font-weight:600; color:var(--navy); margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%; font-family:inherit; font-size:15.5px; color:var(--ink);
  padding:13px 15px; border:1.5px solid var(--line); border-radius:12px; background:var(--white); transition:border-color .15s, box-shadow .15s;}
.field input::placeholder,.field textarea::placeholder{color:#a7afbd;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);}
.field textarea{min-height:120px; resize:vertical;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form>.btn{width:100%; justify-content:center; margin-top:6px;}
.form .fine{font-size:12.5px; color:var(--muted); margin-top:14px; text-align:center;}
.success{display:none; background:#fff; border:1px solid var(--accent); border-left:4px solid var(--accent);
  border-radius:16px; padding:26px 28px; color:var(--navy); box-shadow:var(--shadow-soft);}
.success strong{font-size:17px;}

/* Colonne latérale */
.side-contact{display:grid; gap:20px;}

/* Étapes numérotées */
.next{list-style:none; padding:0; margin:0; display:grid; gap:18px;}
.next li{display:flex; gap:14px; align-items:flex-start; font-size:15px; color:rgba(255,255,255,.9);}
.next .n{flex:0 0 auto; width:27px; height:27px; border-radius:50%; background:var(--accent); color:#fff;
  font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; margin-top:1px;}

/* Lignes de contact (icônes) */
.line{display:flex; gap:14px; align-items:center; margin-bottom:16px;}
.line:last-child{margin-bottom:0;}
.line .ic{width:44px; height:44px; border-radius:12px; background:var(--accent-soft); color:var(--accent);
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.line a,.line span{font-size:15.5px; color:var(--ink); font-weight:500;}
.line a{font-weight:600; color:var(--navy);}
.box.navy .line .ic{background:rgba(255,255,255,.12); color:#cfe0f2;}
.box.navy .line a,.box.navy .line span{color:#fff;}

/* ---------- Agenda de réservation (book.html) : pleine largeur, grand, aéré ---------- */
.book .container.solo{display:block;}
.booking{width:100%; max-width:1000px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:24px; padding:clamp(26px,4vw,52px); box-shadow:var(--shadow);}
.booking .bk-head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:32px; padding-bottom:26px; border-bottom:1px solid var(--line-soft);}
.booking .bk-head .t{font-size:clamp(20px,2.2vw,25px); font-weight:700; color:var(--navy); letter-spacing:-.01em;}
.booking .bk-head .tz{font-size:12.5px; color:var(--muted); text-align:right; white-space:nowrap; line-height:1.5; display:flex; align-items:center; gap:8px;}
.booking .bk-head .tz::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--accent);}
.bk-pick{display:grid; grid-template-columns:minmax(0,1.32fr) minmax(0,1fr); gap:clamp(28px,4vw,52px); align-items:start;}

/* Calendrier */
.cal-nav{display:flex; align-items:center; justify-content:space-between; margin-bottom:22px;}
.cal-nav .mo{font-weight:700; color:var(--navy); font-size:19px; letter-spacing:-.01em;}
.cal-nav button{width:42px; height:42px; border-radius:13px; border:1px solid var(--line); background:#fff; cursor:pointer;
  color:var(--navy); display:flex; align-items:center; justify-content:center; transition:.15s; font-family:inherit;}
.cal-nav button:hover:not(:disabled){border-color:var(--accent); color:var(--accent); background:var(--accent-soft);}
.cal-nav button:disabled{opacity:.3; cursor:not-allowed;}
.dow{display:grid; grid-template-columns:repeat(7,1fr); gap:9px; margin-bottom:12px;}
.dow span{text-align:center; font-size:11.5px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.04em;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:9px;}
.cal-grid .day{position:relative; aspect-ratio:1; border:1.5px solid transparent; border-radius:13px; background:transparent; color:#b1b9c6;
  font-size:16px; font-weight:500; cursor:default; display:flex; align-items:center; justify-content:center; transition:.16s ease; font-family:inherit;}
.cal-grid .day.free{background:var(--wash); color:var(--navy); font-weight:600; cursor:pointer;}
.cal-grid .day.free:hover:not(.sel){background:var(--accent-soft); border-color:var(--accent); color:var(--accent-deep); transform:translateY(-2px); box-shadow:var(--shadow-soft);}
.cal-grid .day.sel{background:var(--navy); color:#fff; border-color:var(--navy); box-shadow:0 12px 24px -12px rgba(41,56,84,.65);}
.cal-grid .day.empty{border:0;}

/* Créneaux */
.slots .sl-title{font-size:16px; font-weight:700; color:var(--navy); margin-bottom:18px; letter-spacing:-.01em;}
.slots .sl-title span{color:var(--muted); font-weight:500;}
.sl-list{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
.sl-list .slot{padding:15px 10px; border:1.5px solid var(--line); border-radius:13px; background:#fff; color:var(--navy);
  font-weight:600; font-size:15px; cursor:pointer; font-family:inherit; transition:.15s ease; text-align:center;}
.sl-list .slot:hover:not(:disabled){border-color:var(--accent); color:var(--accent); background:var(--accent-soft); transform:translateY(-2px); box-shadow:var(--shadow-soft);}
.sl-list .slot:disabled{opacity:.4; text-decoration:line-through; cursor:not-allowed; background:var(--soft);}
.sl-empty{color:var(--muted); font-size:14.5px; padding:44px 16px; text-align:center; background:var(--soft); border-radius:16px; line-height:1.55;}
.sl-empty .em-ic{display:block; margin:0 auto 12px; color:#c4ccd8;}

/* Étape détails (masquée au départ) : centrée */
.bk-details{display:none; max-width:640px; margin:0 auto;}
.booking.on-details .bk-head{justify-content:center; text-align:center;}
.booking.on-details .bk-head .tz{display:none;}
.bk-summary{display:flex; align-items:center; gap:16px; background:var(--accent-soft); border:1px solid var(--accent-soft); border-radius:16px; padding:18px 20px; margin-bottom:28px;}
.bk-summary .ic{width:46px; height:46px; border-radius:13px; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
.bk-summary .txt{line-height:1.4;}
.bk-summary .txt .lab{font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);}
.bk-summary .txt b{display:block; color:var(--navy); font-size:16.5px; font-weight:700;}
.bk-summary .change{margin-left:auto; color:var(--accent); font-weight:600; font-size:13.5px; cursor:pointer; background:none; border:0; font-family:inherit; white-space:nowrap;}
.bk-summary .change:hover{text-decoration:underline;}

/* Bandeau "what happens next" léger sous l'agenda */
.bk-steps{max-width:1000px; margin:30px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.bk-steps .s{display:flex; gap:14px; align-items:flex-start;}
.bk-steps .n{flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--navy); color:#fff; font-size:14px; font-weight:700; display:flex; align-items:center; justify-content:center;}
.bk-steps .s p{color:var(--muted); font-size:14.5px; line-height:1.5;}
.bk-steps .s b{color:var(--navy); font-weight:600;}

/* Responsive */
@media (max-width:900px){
  .hero .container{grid-template-columns:1fr; gap:36px;}
  .about .container{grid-template-columns:1fr; gap:36px;}
  .book .container{grid-template-columns:1fr; gap:24px;}
  .book .container.even{grid-template-columns:1fr;}
  .bk-pick{grid-template-columns:1fr; gap:24px;}
  .bk-steps{grid-template-columns:1fr; gap:16px;}
  .sl-list{grid-template-columns:repeat(3,1fr);}
  .dostrip,.bcols,.steps,.work,.tabs{grid-template-columns:1fr;}
  .duo{grid-template-columns:1fr; gap:28px;}
  .gallery .open{top:auto; bottom:14px;}
  .nav-links{display:none;}
  .section{padding:72px 0;}
  .footer .foot-top{flex-direction:column; align-items:flex-start;}
}
@media (max-width:560px){
  .header .container{height:64px;}
  .brand img{height:23px;}
  .hero{padding:52px 0 60px;}
  .hero .cta{flex-direction:column; align-items:stretch;}
  .hero .cta .btn{justify-content:center;}
  .row2{grid-template-columns:1fr;}
  .footer .foot-links{gap:14px 20px;}
}
