/* ═══ DESIGN TOKENS ═══ */
:root {
  --blue: #223A4C;
  --cream: #F9F0D8;
  --font-d: 'Rajdhani', sans-serif;
  --font-b: 'Open Sans', sans-serif;
  --ease: cubic-bezier(0.4,0,0.2,1);
  --ease-out: cubic-bezier(0.22,1,0.36,1);
}
[data-theme="institutional"] {
  --bg: #2A465B;
  --bg-alt: var(--cream);
  --fg: #F9F0D8;
  --fg-alt: #223A4C;
  --fg-dim: rgba(249,240,216,0.72);
  --fg-mute: rgba(249,240,216,0.18);
  --fg-ghost: rgba(249,240,216,0.07);
  --fg-alt-dim: rgba(34,58,76,0.7);
  --fg-alt-mute: rgba(34,58,76,0.18);
  --accent: #c8a864;
  --accent-dim: rgba(200,168,100,0.5);
  --accent-ghost: rgba(200,168,100,0.08);
  --deep: #1a2a38;
}
[data-theme="private"] {
  --bg: #0d1a24;
  --bg-alt: #F6E9C6;
  --fg: #F6E9C6;
  --fg-alt: #223A4C;
  --fg-dim: rgba(246,233,198,0.68);
  --fg-mute: rgba(246,233,198,0.12);
  --fg-ghost: rgba(246,233,198,0.05);
  --fg-alt-dim: rgba(34,58,76,0.7);
  --fg-alt-mute: rgba(34,58,76,0.18);
  --accent: #c8a864;
  --accent-dim: rgba(200,168,100,0.45);
  --accent-ghost: rgba(200,168,100,0.06);
  --deep: #0f1e2a;
}

/* ═══ READABLE / HIGH CONTRAST ═══ */
[data-theme="readable"] {
  --bg: #ffffff;
  --bg-alt: #f4f4f4;
  --fg: #111111;
  --fg-alt: #111111;
  --fg-dim: rgba(17,17,17,0.82);
  --fg-mute: rgba(17,17,17,0.28);
  --fg-ghost: rgba(17,17,17,0.08);
  --fg-alt-dim: rgba(17,17,17,0.82);
  --fg-alt-mute: rgba(17,17,17,0.28);
  --accent: #1a1a1a;
  --accent-dim: rgba(26,26,26,0.65);
  --accent-ghost: rgba(26,26,26,0.08);
}
html[data-theme="readable"] .nav-bar { background:none; opacity:1!important; animation:none!important; }
html[data-theme="readable"] .rv { opacity:1!important; transform:none!important; transition:none!important; }
html[data-theme="readable"] .hero-logo,
html[data-theme="readable"] .hero-tag,
html[data-theme="readable"] .hero-branches,
html[data-theme="readable"] .scroll-cue { opacity:1!important; animation:none!important; }
html[data-theme="readable"] .hero-branch { animation:none!important; opacity:1!important; }
html[data-theme="readable"] .pillar::before { height:calc(100% - 0.15em)!important; background:#111!important; }
html[data-theme="readable"] .scroll-cue { display:none; }
html[data-theme="readable"] .duo-card { border-color:rgba(0,0,0,0.15); background:rgba(0,0,0,0.02); }
html[data-theme="readable"] .duo-card-hero-img { background:#f0f0f0; }
html[data-theme="readable"] .duo-card-badge-center span { border-color:rgba(0,0,0,0.2); color:#333; }
html[data-theme="readable"] .eco-badge { border-color:rgba(0,0,0,0.12); background:rgba(0,0,0,0.02); }
html[data-theme="readable"] ::selection { background:#111; color:#fff; }
html[data-theme="readable"] .cta-book { border-color:#111; color:#111; }
html[data-theme="readable"] .cta-book:hover { background:#111; color:#fff; }

/* ═══ MARKDOWN VIEW ═══ */
#md-view {
  display:none; position:fixed; inset:0; z-index:50;
  background:#ffffff; overflow-y:auto;
  padding:5rem 2rem 3rem;
}
#md-view pre {
  max-width:680px; margin:0 auto;
  font-family:'SF Mono','Fira Code','Fira Mono','Roboto Mono','Consolas',monospace;
  font-size:0.88rem; line-height:2; color:#222;
  white-space:pre-wrap; word-wrap:break-word;
}
#md-toolbar button:hover { background:#e8e8e8!important; color:#111!important; }
#md-copy.copied { background:#111!important; color:#fff!important; border-color:#111!important; }
@media(max-width:900px) { #md-toolbar { right:20px!important; } }

/* ═══ RESET & BASE ═══ */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-b);
  background: var(--bg);
  color: var(--fg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  transition: background 0.8s var(--ease);
}
::selection { background: var(--fg); color: var(--bg); }

/* ambient + grain — disabled (clean background) */
body::before, body::after { display:none; }

/* ═══ A11Y ═══ */
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.sec-light :focus-visible { outline-color:var(--fg-alt); }

/* ═══ SCROLL REVEAL ═══ */
.rv { opacity:1; transform:translateY(0); transition:opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out); }
.rv1 { transition-delay:0.1s; } .rv2 { transition-delay:0.2s; }
.rv3 { transition-delay:0.3s; } .rv4 { transition-delay:0.4s; }
body.rv-active .rv { opacity:0; transform:translateY(20px); }
body.rv-active .rv.vis { opacity:1; transform:translateY(0); }

/* ═══ NAV ═══ */
.nav-bar {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 42px;
  background:transparent;
  opacity:0.9;
}
@keyframes navFadeIn { to { opacity:0.9; } }
@keyframes fadeIn { to { opacity:1; } }
.nav-logo { width:min(180px,28vw); height:auto; opacity:0.92; cursor:pointer; transition:opacity 0.3s; }
.nav-logo:hover { opacity:1; }
.nav-ctrls { display:flex; gap:8px; align-items:center; }
.nb {
  background:transparent; border:1px solid transparent;
  color:var(--fg); font-family:var(--font-d); font-weight:600; font-size:15px;
  letter-spacing:0.18em; text-transform:uppercase;
  border-radius:2px; cursor:pointer;
  transition:background 0.4s var(--ease), border-color 0.4s var(--ease);
  backdrop-filter:blur(12px);
}
.nb:hover { background:rgba(249,240,216,0.06); border-color:rgba(249,240,216,0.1); }

/* lang toggle: FR / EN */
.nb-lang { display:flex; align-items:center; gap:8px; padding:10px 20px; }
.lang-opt { opacity:0.45; transition:opacity 0.5s var(--ease), color 0.5s var(--ease); }
.lang-opt.active { opacity:1; color:var(--accent); }
.lang-sep { opacity:0.12; font-weight:400; }

/* theme toggle: sun ↔ moon crossfade */
.nb-theme, .nb-contrast {
  position:relative; display:flex; align-items:center; justify-content:center;
  padding:10px 14px; width:46px; height:42px;
}
.nb-contrast {
  font-size:16px; font-weight:600; letter-spacing:0.02em;
  text-transform:none; opacity:0.72; transition:opacity 0.4s var(--ease);
}
.nb-contrast:hover { opacity:1; }
html[data-theme="readable"] .nb-contrast { opacity:1; color:var(--accent); }
.nb-theme .ti {
  position:absolute;
  transition:opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
.nb-theme .ti.is-hidden { opacity:0; transform:rotate(-60deg) scale(0.4); pointer-events:none; }
.nb-theme .ti.is-visible { opacity:0.78; transform:rotate(0deg) scale(1); }
.nb-theme:hover .ti.is-visible { opacity:1; }

/* ═══ HERO ═══ */
.hero {
  min-height:auto; display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center;
  padding:10rem 2rem 4rem; position:relative;
}
.hero::before { display:none; }
.hero-logo {
  width:clamp(280px,78vw,960px); position:relative;
  opacity:0; animation:fadeIn 3.6s cubic-bezier(0.4,0,0.2,1) 0.5s forwards;
}
.hero-logo svg { width:100%; height:auto; display:block; }
.hero-tag {
  font-family:var(--font-b); font-size:clamp(1.15rem,1.8vw,1.45rem); font-weight:300;
  letter-spacing:0.14em; color:var(--fg-dim); margin-top:0.5rem;
  opacity:0; animation:fadeIn 4.5s cubic-bezier(0.16,1,0.3,1) 2.0s forwards;
}
/* hero-branches (legacy — kept for subpage compatibility) */
.hero-branches {
  margin-top:4rem; display:flex; gap:3rem; flex-wrap:wrap; justify-content:center;
  opacity:0; animation:fadeIn 5s var(--ease) 2.5s forwards;
}
@keyframes navBreath { 0%,100%{opacity:0.88;} 50%{opacity:0.6;} }
.hero-branch {
  font-family:var(--font-d); font-weight:400; font-size:1.1rem;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--fg); cursor:pointer;
  text-decoration:none; opacity:0.88;
  transition:opacity 1.2s ease-out, color 1.2s ease-out;
}
.hero-branch:hover { opacity:1; color:var(--accent); }
.hero-branch::after {
  content:''; display:block; width:60%; height:1px; margin:6px auto 0;
  background:var(--fg); opacity:0.12;
}
.scroll-cue {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  opacity:0; animation:fadeIn 3s cubic-bezier(0.16,1,0.3,1) 4.5s forwards;
}
.scroll-cue svg { width:18px; height:36px; animation:bob 4s ease-in-out infinite; opacity:0.6; }
@keyframes bob { 0%,100%{transform:translateY(0);} 50%{transform:translateY(5px);} }

/* ═══ SECTIONS ═══ */
.wrap { max-width:820px; margin:0 auto; padding:0 2.5rem; }
.sec-dark { padding:5rem 0; background:var(--bg); color:var(--fg); transition:background 0.8s var(--ease); scroll-margin-top:72px; }
.sec-light { padding:5rem 0; background:var(--bg-alt); color:var(--fg-alt); transition:background 0.8s var(--ease); scroll-margin-top:72px; }

.s-label {
  font-family:var(--font-d); font-size:0.9rem; font-weight:500;
  letter-spacing:0.20em; text-transform:uppercase;
  margin-bottom:0.8rem; text-align:left;
}
.s-label-dark { color:var(--fg-dim); }
.s-label-light { color:var(--accent); }
.s-head {
  font-family:var(--font-d); font-weight:600;
  font-size:clamp(3.2rem,7vw,5.4rem);
  letter-spacing:0.04em; line-height:1.12; text-align:left;
  margin-top:0.4rem;
}
body.rv-active .s-head.rv { transform:translateY(36px); transition:opacity 1.2s var(--ease-out), transform 1.2s var(--ease-out); transition-delay:0.15s; }

/* ═══ PROSE ═══ */
.prose { font-size:1.18rem; line-height:1.85; text-align:justify; }
.prose-dark { color:var(--fg-dim); }
.prose-light { color:var(--fg-alt-dim); }
.prose strong { font-weight:500; }
.sec-dark .prose strong { color:var(--fg); }
.sec-light .prose strong { color:var(--fg-alt); }
.space { margin-top:1.5rem; }

/* hook subtitle — Rajdhani, used for one-line sub-headings */
.hook-sub {
  font-family:var(--font-d); font-weight:500;
  font-size:1.3rem; letter-spacing:0.04em;
}
/* hook callout — Rajdhani, used for short punchlines in callout boxes */
.hook-callout {
  font-family:var(--font-d); font-weight:600;
  font-size:1.3rem; letter-spacing:0.04em;
}

/* ═══ PILLARS ═══ */
.pillars { display:grid; grid-template-columns:1fr 1fr; gap:2.8rem 2.6rem; margin-top:2.8rem; }
.pillars-3 { grid-template-columns:1fr 1fr 1fr; }
.pillar { padding-left:1.3rem; position:relative; transition:transform 0.4s var(--ease-out); }
.pillar:hover { transform:translateY(-2px); }
.pillar::before {
  content:''; position:absolute; left:0; top:0.15em;
  width:2px; height:calc(100% - 0.15em); transition:height 0.7s var(--ease-out) 0.2s;
}
body.rv-active .pillar::before { height:0; }
body.rv-active .pillar.vis::before { height:calc(100% - 0.15em); }
.sec-dark .pillar::before { background:linear-gradient(to bottom,var(--accent-dim),rgba(200,168,100,0.04)); }
.sec-light .pillar::before { background:linear-gradient(to bottom,var(--accent),rgba(200,168,100,0.06)); }
.pillar h3 {
  font-family:var(--font-d); font-weight:600; font-size:1.22rem;
  letter-spacing:0.04em; margin-bottom:0.3rem; text-align:left;
}
.pillar p { font-size:1.08rem; line-height:1.75; text-align:left; }
.sec-dark .pillar p { color:var(--fg-dim); }
.sec-light .pillar p { color:var(--fg-alt-dim); }

/* ═══ PILLAR PICTOGRAMS ═══ */
.pillar-picto {
  display:block; margin-bottom:1rem; opacity:0.7;
  transition:opacity 0.4s var(--ease);
}
.pillar:hover .pillar-picto { opacity:1; }

/* ═══ DUO CARDS (main entry — courtage / stratégie) ═══ */
.duo-cards {
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
.duo-card {
  position:relative; display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  border:1px solid var(--fg-mute);
  border-radius:6px;
  background:var(--fg-ghost);
  overflow:hidden;
  transition:transform 0.6s var(--ease-out), border-color 0.6s var(--ease-out), box-shadow 0.6s var(--ease-out);
}
.duo-card:hover {
  transform:translateY(-6px);
  border-color:var(--accent-dim);
  box-shadow:0 20px 60px rgba(0,0,0,0.15);
}

/* Hero image block — top of courtage card */
.duo-card-hero-img {
  width:100%; background:var(--deep); overflow:hidden;
}
.duo-card-hero-img img {
  display:block; width:100%; height:280px;
  object-fit:cover;
  object-position:center bottom;
  transition:transform 0.8s var(--ease-out);
}
.duo-card:hover .duo-card-hero-img img { transform:scale(1.04); }

.duo-card-inner {
  padding:2.2rem 2.4rem 2.2rem;
  display:flex; flex-direction:column; flex:1;
}
.duo-card-inner--tall {
  padding:3rem 2.4rem 2.2rem;
  justify-content:center;
}
.duo-card-num {
  font-family:var(--font-d); font-weight:600; font-size:0.72rem;
  letter-spacing:0.22em; color:var(--accent); opacity:0.4;
  margin-bottom:0.8rem;
}
/* Surtitle: label above headline */
.duo-card-surtitle {
  font-family:var(--font-d); font-weight:500; font-size:1.05rem;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--fg-dim); margin-bottom:0.5rem;
}
/* Headline: the big line */
.duo-card-headline {
  font-family:var(--font-d); font-weight:600;
  font-size:clamp(2rem,4vw,2.8rem);
  letter-spacing:0.02em; line-height:1.12;
  margin-bottom:1.2rem;
}
.duo-card-desc {
  font-size:1.1rem; line-height:1.8; color:var(--fg-dim); flex:1;
}
.duo-card-cta {
  display:inline-block; margin-top:1.4rem;
  font-family:var(--font-d); font-weight:600; font-size:0.92rem;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent); opacity:0.5;
  transition:opacity 0.4s var(--ease-out), letter-spacing 0.4s var(--ease-out);
}
.duo-card:hover .duo-card-cta { opacity:1; letter-spacing:0.16em; }

/* Centered badge — Anthropic */
.duo-card-badge-center {
  display:flex; justify-content:center; margin-top:1.6rem;
}
.duo-card-badge-center span {
  display:inline-block; padding:10px 20px;
  border:1px solid var(--accent-dim);
  border-radius:24px;
  font-family:var(--font-d); font-weight:500; font-size:0.78rem;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent); opacity:0.7;
  transition:opacity 0.4s var(--ease-out), border-color 0.4s var(--ease-out);
}
.duo-card:hover .duo-card-badge-center span { opacity:1; border-color:var(--accent); }

/* ═══ ECOSYSTEM BADGE (in conseil section) ═══ */
.eco-badge {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.4rem 1.6rem;
  border:1px solid rgba(200,168,100,0.12);
  border-radius:3px;
  background:rgba(200,168,100,0.03);
}
.eco-badge p { font-size:1rem; line-height:1.8; color:var(--fg-dim); }

/* (duo-card-img removed — replaced by duo-card-hero-img) */

/* ═══ ACCORDION CARDS ═══ */
.accordion-group { display:flex; flex-direction:column; gap:0; }
.acc {
  border-bottom:1px solid rgba(34,58,76,0.08);
  transition:background 0.3s var(--ease-out);
}
.acc--dark { border-color:var(--fg-mute); }
.acc[open] { background:rgba(34,58,76,0.02); }
.acc--dark[open] { background:var(--deep); }
.acc-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.3rem 0.4rem; cursor:pointer;
  font-family:var(--font-d); font-weight:600; font-size:1.1rem;
  letter-spacing:0.04em;
  list-style:none;
  transition:color 0.3s var(--ease-out);
}
.acc-head::-webkit-details-marker { display:none; }
.acc-head::marker { display:none; content:''; }
.acc-head::after {
  content:'+'; display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px;
  font-size:1.2rem; font-weight:500;
  border:1px solid var(--fg-mute);
  border-radius:50%;
  opacity:0.5;
  transition:all 0.4s var(--ease-out);
  margin-left:auto; flex-shrink:0;
}
.sec-light .acc-head::after { border-color:rgba(34,58,76,0.15); }
.acc[open] .acc-head::after { content:'−'; opacity:0.8; border-color:var(--accent-dim); }
.acc-head:hover::after { opacity:0.9; border-color:var(--accent-dim); }
.acc-head:hover { color:var(--accent); }
.sec-light .acc-head { color:var(--fg-alt); }
.sec-dark .acc-head { color:var(--fg); }
.acc-body {
  padding:0 0.4rem 1.5rem;
  animation:accOpen 0.3s var(--ease-out);
}
@keyframes accOpen { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }
.acc-body p {
  font-size:1.05rem; line-height:1.8;
}
.sec-light .acc-body p { color:var(--fg-alt-dim); }
.sec-dark .acc-body p { color:var(--fg-dim); }

/* ═══ PRODUCT PHOTO ═══ */
.product-photo {
  border-radius:4px; overflow:hidden;
  background:rgba(0,0,0,0.03);
  border:1px solid rgba(34,58,76,0.08);
}
.product-photo img {
  display:block; width:100%; height:auto; max-height:360px;
  object-fit:contain;
}
.product-photo-caption {
  padding:0.8rem 1.2rem;
  font-family:var(--font-d); font-weight:500; font-size:0.78rem;
  letter-spacing:0.12em; text-transform:uppercase;
  text-align:center; opacity:0.4;
}
.sec-light .product-photo-caption { color:var(--fg-alt); }
.sec-dark .product-photo-caption { color:var(--fg); }

/* ═══ SPECS TABLE ═══ */
.specs-table-wrap { border-radius:4px; overflow:hidden; }
.specs-table {
  width:100%; border-collapse:collapse;
  font-family:var(--font-d); font-size:0.88rem;
  letter-spacing:0.02em;
}
.specs-table thead th {
  background:var(--blue); color:var(--cream);
  padding:0.9rem 1rem; font-weight:600; font-size:0.95rem;
  letter-spacing:0.08em; text-transform:uppercase;
  text-align:center;
}
.specs-table thead th:first-child { text-align:left; background:transparent; }
.specs-table tbody td {
  padding:0.75rem 1rem;
  border-bottom:1px solid rgba(34,58,76,0.08);
  text-align:center; color:var(--fg-alt-dim);
  font-size:0.9rem; line-height:1.5;
}
.specs-table tbody td:first-child {
  text-align:left; font-weight:600;
  color:var(--fg-alt); font-size:0.85rem;
  letter-spacing:0.04em;
}
.specs-table tbody tr:nth-child(even) td { background:rgba(34,58,76,0.03); }
.specs-table tbody tr:hover td { background:rgba(200,168,100,0.06); }

/* ═══ ACCORDION SPECS (index.html range accordions) ═══ */
.acc-specs .acc-body { padding-top:0.8rem; }
.acc-range-header {
  display:flex; align-items:flex-start; gap:1.4rem;
  margin-bottom:1.4rem;
}
.acc-range-thumb {
  flex-shrink:0; width:140px; height:100px;
  object-fit:cover; object-position:center bottom;
  border-radius:4px;
  border:1px solid rgba(34,58,76,0.08);
  background:rgba(34,58,76,0.03);
}
.acc-range-tagline {
  font-size:0.92rem; line-height:1.7;
  color:var(--fg-alt-dim); margin-bottom:0;
  max-width:540px; flex:1;
}
.acc-range-price {
  display:inline-block; margin-top:1.2rem; padding:8px 18px;
  border:1px solid rgba(200,168,100,0.3); border-radius:3px;
  font-family:var(--font-d); font-weight:600; font-size:0.88rem;
  letter-spacing:0.04em; color:var(--accent);
  background:var(--accent-ghost);
}
@media(max-width:600px) {
  .acc-range-header { flex-direction:column; gap:0.8rem; }
  .acc-range-thumb { width:100%; height:120px; }
}

/* ═══ CE CERTIFICATE PHOTO CARD ═══ */
.ce-card-photo {
  display:flex; gap:1.8rem; align-items:flex-start;
  padding:1.6rem;
  border:1px solid rgba(34,58,76,0.1);
  border-radius:4px;
  background:rgba(34,58,76,0.015);
}
.ce-card-img {
  flex-shrink:0; width:200px;
  border-radius:3px;
  border:1px solid rgba(34,58,76,0.12);
  box-shadow:0 2px 12px rgba(0,0,0,0.06);
  object-fit:contain;
}
.ce-card-photo-text { flex:1; }
.ce-card-photo-text p {
  font-size:0.95rem; line-height:1.8; color:var(--fg-alt-dim);
}
.ce-card-ref {
  margin-top:0.6rem;
  font-family:var(--font-d); font-size:0.75rem; font-weight:500;
  letter-spacing:0.04em; color:var(--fg-alt-dim); opacity:0.5;
}
@media(max-width:600px) {
  .ce-card-photo { flex-direction:column; align-items:center; text-align:center; }
  .ce-card-img { width:160px; }
}

/* ═══ CONTACT CARDS ═══ */
.contact-intro { margin-bottom:3rem; }
.contact-cards {
  display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:1.5rem;
}
.contact-card {
  padding:2rem 1.6rem;
  border:1px solid var(--fg-mute);
  border-radius:4px;
  background:var(--fg-ghost);
  transition:border-color 0.5s var(--ease-out), transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.contact-card:hover {
  border-color:var(--accent-dim);
  transform:translateY(-3px);
  box-shadow:0 8px 32px rgba(0,0,0,0.1);
}
.contact-card--primary {
  border-color:var(--accent-dim);
  background:var(--deep);
}
.contact-card-icon {
  margin-bottom:1.2rem; opacity:0.4;
  transition:opacity 0.4s var(--ease-out);
}
.contact-card:hover .contact-card-icon { opacity:0.8; }
.contact-card--primary .contact-card-icon { opacity:0.6; color:var(--accent); }
.contact-card h3 {
  font-family:var(--font-d); font-weight:600; font-size:1.15rem;
  letter-spacing:0.04em; margin-bottom:0.6rem;
}
.contact-card p { font-size:0.95rem; line-height:1.7; color:var(--fg-dim); }
.contact-card .cg-val { margin-bottom:0.4rem; }
.contact-card .cg-val a {
  font-family:var(--font-d); font-weight:600; font-size:1.05rem;
  color:var(--fg); text-decoration:none; transition:opacity 0.3s;
}
.contact-card .cg-val a:hover { opacity:0.7; }
.contact-card .cta-book { margin-top:1.2rem; font-size:0.95rem; padding:12px 24px; }
.contact-card-note {
  font-size:0.82rem; color:var(--fg-dim); opacity:0.6;
  font-family:var(--font-d); letter-spacing:0.04em;
  margin-top:0.4rem;
}
.contact-scope {
  margin-top:3rem; text-align:center;
  font-family:var(--font-d); font-weight:500; font-size:0.85rem;
  letter-spacing:0.14em; text-transform:uppercase;
  color:var(--fg-dim); opacity:0.35;
}

/* ═══ FLOATING CONTACT PILL ═══ */
.float-pill {
  position:fixed; bottom:2rem; right:2rem; z-index:90;
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 28px;
  background:var(--deep);
  color:var(--cream);
  border:1px solid rgba(200,168,100,0.2);
  border-radius:32px;
  font-family:var(--font-d); font-weight:600; font-size:0.95rem;
  letter-spacing:0.1em; text-transform:uppercase;
  text-decoration:none;
  box-shadow:0 4px 24px rgba(0,0,0,0.25);
  opacity:0; pointer-events:none;
  transition:opacity 1.2s var(--ease), transform 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
  transform:translateY(8px);
}
.float-pill.visible {
  opacity:1; pointer-events:auto; transform:translateY(0);
}
.float-pill:hover {
  box-shadow:0 6px 32px rgba(0,0,0,0.35);
  transform:translateY(-2px);
}
.float-pill svg { opacity:0.7; }

/* ═══ PHOTO PLACEHOLDERS ═══ */
.photo-placeholder {
  display:flex; align-items:center; justify-content:center;
  height:160px; margin-top:1.4rem; border-radius:3px;
  border:1px dashed rgba(200,168,100,0.2);
  background:rgba(200,168,100,0.03);
}
.photo-placeholder span {
  font-family:var(--font-d); font-size:0.78rem; font-weight:500;
  letter-spacing:0.1em; text-transform:uppercase;
  opacity:0.3;
}
.photo-placeholder--wide { height:220px; }
.sec-dark .photo-placeholder { border-color:rgba(200,168,100,0.12); background:rgba(200,168,100,0.02); }
.sec-dark .photo-placeholder span { color:var(--fg); }
.sec-light .photo-placeholder { border-color:rgba(34,58,76,0.1); background:rgba(34,58,76,0.02); }
.sec-light .photo-placeholder span { color:var(--fg-alt); }

/* ═══ WRAP WIDE (for card sections) ═══ */
.wrap-wide { max-width:1080px; margin:0 auto; padding:0 2.5rem; }

/* ═══ CALLOUT ═══ */
.callout {
  margin-top:2.2rem; padding:1.5rem 1.7rem;
  border-left:2px solid var(--accent-ghost);
  transition:border-color 0.5s var(--ease-out), background 0.5s var(--ease-out);
}
.callout:hover { border-color:var(--accent-dim); }
.sec-dark .callout { background:rgba(200,168,100,0.03); border-color:rgba(200,168,100,0.15); }
.sec-light .callout { background:rgba(34,58,76,0.03); border-color:rgba(34,58,76,0.12); }
.callout p { font-size:1.12rem; line-height:1.85; text-align:justify; }
.sec-dark .callout p { color:var(--fg-dim); }
.sec-light .callout p { color:var(--fg-alt-dim); }

/* ═══ CONTACT ═══ */
.cta-book {
  display:inline-block; font-family:var(--font-d); font-weight:600; font-size:1.1rem;
  letter-spacing:0.08em; text-decoration:none; padding:14px 32px;
  border:1.5px solid var(--fg-alt); color:var(--fg-alt); border-radius:2px;
  transition:all 0.3s var(--ease);
  position:relative; overflow:hidden;
}
.cta-book::after {
  content:''; position:absolute; bottom:0; left:0; width:0; height:2px;
  background:var(--accent); transition:width 0.4s var(--ease-out);
}
.cta-book:hover { background:var(--fg-alt); color:var(--bg-alt); box-shadow:0 4px 16px rgba(34,58,76,0.12); }
.cta-book:hover::after { width:100%; }
/* dark-section variant */
.cta-book--dark { border-color:var(--fg); color:var(--fg); }
.cta-book--dark:hover { background:var(--fg); color:var(--bg); box-shadow:0 4px 16px rgba(0,0,0,0.2); }
.cta-fallback {
  margin-top:0.9rem; font-size:0.88rem; font-weight:300; letter-spacing:0.02em;
  color:var(--fg-alt-dim);
}
.cta-fallback--dark { color:var(--fg-dim); }
.cta-fallback a { color:var(--fg-alt); text-decoration:none; font-weight:500; transition:opacity 0.3s; }
.cta-fallback a:hover { opacity:0.7; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:2.5rem; }
.contact-grid-3 { grid-template-columns:1fr 1fr 1fr; }
.contact-block { text-align:center; }
.contact-picto {
  display:block; margin:0 auto 0.8rem; opacity:0.35;
  transition:opacity 0.4s var(--ease-out);
}
.contact-block:hover .contact-picto { opacity:0.7; }
.contact-block .cg-label { text-align:center; }
.contact-block .cg-val { text-align:center; }
.cg-label {
  font-family:var(--font-d); font-weight:500; font-size:0.85rem;
  letter-spacing:0.20em; text-transform:uppercase;
  margin-bottom:0.4rem;
}
.sec-dark .cg-label { color:var(--fg-mute); }
.sec-light .cg-label { color:var(--fg-alt-mute); }
.cg-val { font-size:0.95rem; font-weight:300; line-height:1.8; }
.cg-val a {
  text-decoration:none; font-family:var(--font-d); font-weight:600; font-size:1.05rem;
  transition:opacity 0.3s;
}
.sec-dark .cg-val { color:var(--fg-dim); }
.sec-dark .cg-val a { color:var(--fg); }
.sec-light .cg-val { color:var(--fg-alt-dim); }
.sec-light .cg-val a { color:var(--fg-alt); }
.cg-val a:hover { opacity:0.7; }
.maps-link {
  display:inline-flex; align-items:center; gap:6px; margin-top:8px;
  font-family:var(--font-d); font-weight:500; font-size:0.85rem;
  letter-spacing:0.08em; text-decoration:none; opacity:0.7;
  transition:opacity 0.3s;
}
.sec-light .maps-link { color:var(--fg-alt); }
.sec-dark .maps-link { color:var(--fg); }
.maps-link:hover { opacity:1; }

/* ═══ FOOTER ═══ */
footer { padding:5rem 2rem 3rem; text-align:center; }
.foot-logo { display:block; width:220px; height:auto; margin:0 auto; opacity:0.5; }
.foot-divider { width:40px; height:1px; margin:1.5rem auto; background:var(--accent); opacity:0.2; }
.foot-meta { font-size:0.75rem; color:var(--fg-dim); opacity:0.35; letter-spacing:0.04em; }
.foot-legal { display:inline-block; margin-top:0.6rem; font-size:0.7rem; color:var(--fg-dim); opacity:0.30; letter-spacing:0.03em; cursor:pointer; border:none; background:none; font-family:var(--font-d); transition:opacity 0.3s; }
.foot-legal:hover { opacity:0.55; }

/* ═══ LEGAL OVERLAY ═══ */
#legal-view { display:none; position:fixed; inset:0; z-index:50; background:#fff; color:#111; overflow-y:auto; padding:5rem 2rem 3rem; font-family:var(--font-d); font-size:0.92rem; line-height:1.7; }
#legal-view h2 { font-family:var(--font-d); font-size:1.3rem; font-weight:700; margin:0 0 1.5rem; letter-spacing:0.02em; }
#legal-view h3 { font-family:var(--font-d); font-size:1rem; font-weight:600; margin:1.5rem 0 0.5rem; }
#legal-view p { margin:0.4rem 0; color:#333; }
#legal-back { position:fixed; top:18px; left:24px; z-index:110; background:none; border:1px solid rgba(0,0,0,0.15); color:#333; font-family:var(--font-d); font-size:13px; padding:6px 16px; border-radius:4px; cursor:pointer; letter-spacing:0.04em; transition:border-color 0.3s; }
#legal-back:hover { border-color:rgba(0,0,0,0.4); }

/* ═══ SUBPAGE LAYOUT ═══ */
/* Applied via <body class="subpage"> on dedicated pages (courtage, conseil…) */
/* Neutralises hub-specific behaviours: nav animation, gradient, hero spacing */
.subpage .nav-bar {
  opacity:1; animation:none;
  background:var(--bg);
}
/* ═══ BREADCRUMB ═══ */
.breadcrumb {
  padding-top:5.2rem; padding-bottom:0; margin:0;
  background:var(--bg);
  line-height:1;
}
.breadcrumb-list {
  display:flex; align-items:center; gap:0;
  list-style:none; padding:0; margin:0;
  font-family:var(--font-d); font-size:0.82rem;
  letter-spacing:0.08em;
}
.breadcrumb-list li + li::before {
  content:'/'; display:inline-block;
  margin:0 0.6rem; opacity:0.25; color:var(--fg);
}
.breadcrumb-list a {
  color:var(--fg); opacity:0.5; text-decoration:none;
  transition:opacity 0.3s var(--ease);
}
.breadcrumb-list a:hover { opacity:1; }
.breadcrumb-current span {
  color:var(--fg); opacity:0.8;
}
.subpage .nav-bar > * { pointer-events:auto; }
.subpage .page-hero {
  padding-top:4rem;
}
.subpage .page-hero .s-label {
  font-size:clamp(1.4rem,3.5vw,2.2rem);
  font-weight:600;
  letter-spacing:0.12em;
  color:var(--fg);
}
.subpage .page-hero .s-head {
  font-size:clamp(1.8rem,4.5vw,3rem);
  line-height:1.3;
  font-weight:500;
}
/* Section headings on subpages — subordinate to page-hero heading */
.subpage .s-head {
  font-size:clamp(1.6rem,4vw,2.4rem);
  line-height:1.2;
}
/* Section labels on subpages — consistent with hub but not competing with page header */
.subpage .s-label {
  font-size:0.85rem;
}
/* Disable scroll-reveal entirely on subpages — no flash, no dimming */
body.subpage.rv-active .rv {
  opacity:1; transform:none;
}
body.subpage.rv-active .pillar::before {
  height:calc(100% - 0.15em);
}

/* ═══ COURTAGE PAGE ═══ */
/* Contrast grid — "Sans courtier / Avec Rongqia" */
.contraste-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:2rem; }
.contraste-col h3 { font-family:var(--font-d); font-weight:600; font-size:1.15rem; letter-spacing:0.04em; margin-bottom:1.5rem; padding-bottom:0.75rem; border-bottom:2px solid var(--accent); }
.contraste-col.sans h3 { opacity:0.5; border-color:var(--fg-mute); }
.contraste-item { margin-bottom:1.3rem; }
.contraste-item .c-label { font-family:var(--font-d); font-weight:600; font-size:0.88rem; letter-spacing:0.12em; text-transform:uppercase; display:block; margin-bottom:0.25rem; }
.sec-light .contraste-col.sans .c-label { color:var(--fg-alt-dim); }
.sec-light .contraste-col.avec .c-label { color:var(--fg-alt); }
.contraste-item .c-detail { font-size:1rem; line-height:1.7; }
.sec-light .contraste-col.sans .c-detail { color:var(--fg-alt-dim); opacity:0.7; }
/* Dark theme variants for contrast grid */
.sec-dark .contraste-col h3 { color:var(--fg); border-color:var(--accent-dim); }
.sec-dark .contraste-col.sans h3 { opacity:0.5; border-color:var(--fg-mute); }
.sec-dark .contraste-col.sans .c-label { color:var(--fg-dim); }
.sec-dark .contraste-col.avec .c-label { color:var(--fg); }
.sec-dark .contraste-col.sans .c-detail { color:var(--fg-dim); opacity:0.6; }
.sec-dark .contraste-col.avec .c-detail { color:var(--fg-dim); }
/* Mission steps */
.mission-list { max-width:720px; margin:2rem auto 0; }
.mission-item { display:flex; align-items:flex-start; gap:1.2rem; margin-bottom:2rem; }
.mission-number { font-family:var(--font-d); font-weight:700; font-size:1.6rem; opacity:0.2; min-width:2rem; text-align:right; line-height:1.4; }
.mission-text strong { display:block; font-size:1.05rem; margin-bottom:0.2rem; }
.mission-text span { font-size:0.98rem; line-height:1.7; }
.sec-dark .mission-text span { color:var(--fg-dim); }
/* Guarantee cards */
.garanties-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:2rem; }
.garantie-card { text-align:center; padding:1.5rem; }
.garantie-card .g-titre { font-family:var(--font-d); font-weight:600; font-size:1.1rem; letter-spacing:0.04em; margin-bottom:0.6rem; }
.garantie-card .g-desc { font-size:0.95rem; line-height:1.7; opacity:0.85; }

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px) {
  .nav-bar { padding:14px 20px; }
  .nav-logo { width:min(150px,35vw); }
  .hero-logo { width:clamp(280px,85vw,500px); }
  .hero-branches { gap:1.5rem; }
  .wrap { padding:0 1.5rem; }
  .pillars, .pillars-3 { grid-template-columns:1fr; }
  .duo-cards { grid-template-columns:1fr; }
  .duo-card-hero-img img { height:200px; }
  .wrap-wide { padding:0 1.5rem; }
  .photo-placeholder--wide { height:160px; }
  .contact-grid, .contact-grid-3 { grid-template-columns:1fr; gap:1.5rem; }
  .contact-cards { grid-template-columns:1fr 1fr; }
  .float-pill { bottom:1.2rem; right:1.2rem; }
  .prose, .callout p { text-align:left; }
  .ce-card { flex-direction:column; gap:1rem; }
  .ce-card-doc { width:100%; }
  .specs-table thead th, .specs-table tbody td { padding:0.6rem 0.6rem; font-size:0.8rem; }
  .contraste-grid { grid-template-columns:1fr; }
  .garanties-grid { grid-template-columns:1fr; }
}
@media(max-width:480px) {
  .nb { font-size:13px; }
  .hero-branches { flex-direction:column; gap:1rem; }
  .contact-cards { grid-template-columns:1fr; }
}

/* ═══ REDUCED MOTION ═══ */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:0.01ms!important; animation-iteration-count:1!important; transition-duration:0.01ms!important; }
}

/* ═══ SCROLLBAR ═══ */
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--fg-ghost);border-radius:2px;}

/* ═══ PRINT ═══ */
@media print {
  body { background:white!important; color:var(--blue)!important; }
  body::after { display:none; }
  .nav-bar { display:none; }
  .hero { min-height:auto; padding:3rem 2rem; }
  .hero-logo,.hero-tag,.hero-branches,.scroll-cue { opacity:1!important; animation:none!important; }
  .sec-dark, .sec-light { background:white!important; color:var(--blue)!important; }
  .sec-dark .prose,.sec-dark .pillar p,.sec-dark .callout p,
  .sec-light .prose,.sec-light .pillar p,.sec-light .callout p { color:rgba(34,58,76,0.65)!important; }
  .rv { opacity:1!important; transform:none!important; }
  .pillar::before { height:calc(100% - 0.15em)!important; }
  .scroll-cue { display:none; }
  .cta-book { border-color:var(--blue)!important; color:var(--blue)!important; }
  footer { background:white!important; }
  .foot-meta { color:rgba(34,58,76,0.4)!important; opacity:1!important; }
  #legal-view, #legal-back { display:none!important; }
}
