@font-face { font-family: 'Playfair'; src: url('assets/fonts/PlayfairDisplay.ttf') format('truetype'); font-weight: 400 900; }
@font-face { font-family: 'Playfair Italic'; src: url('assets/fonts/PlayfairDisplayItalic.ttf') format('truetype'); font-weight: 400 900; font-style: italic; }
@font-face { font-family: 'Inter'; src: url('assets/fonts/Inter.ttf') format('truetype'); font-weight: 100 900; }

:root {
  color-scheme: light only;
  --navy: #0B1F3A;
  --navy-deep: #071A31;
  --navy-mid: #0B2440;
  --green: #0E7A5F;
  --green-light: #4FBE9C;
  --cream: #F7F3EA;
  --grey: #5B6578;
  --grey-light: #8FA0BC;
  --border: rgba(11,31,58,0.1);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
body {
  font-family: 'Inter', sans-serif;
  color: var(--navy);
  background: #fff;
  line-height: 1.6;
}
img { max-width:100%; display:block; }
a { color: inherit; text-decoration: none; }
.container { max-width: 1120px; margin: 0 auto; padding: 0 32px; }

/* ---- Nav ---- */
.nav {
  position: sticky; top:0; z-index: 50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}
.nav .container { display:flex; align-items:center; justify-content:space-between; height: 104px; }
.nav-logo { display:flex; align-items:center; gap:12px; flex-shrink:0; margin-right:24px; }
.nav-logo img.icon { height: 50px; }
.nav-logo img.wm { height: 29px; }
.nav-links { display:flex; align-items:center; gap: 28px; flex-shrink:0; }
.nav-links > a { white-space: nowrap; }
.nav-cta { white-space: nowrap; }
.nav-links a {
  font-size: 14px; font-weight: 500; color: var(--navy);
  letter-spacing: 0.2px;
}
.nav-links a.active, .nav-links a:hover { color: var(--green); }
.nav-cta {
  background: var(--navy); color:#fff !important; padding: 12px 24px; border-radius: 999px;
  font-size: 14px; font-weight: 600;
}
.nav-cta:hover { background: var(--green); }
.nav-toggle {
  display:none; background:none; border:none; cursor:pointer; padding:8px; margin-left:auto;
}
.nav-toggle svg { width:24px; height:24px; display:block; }
.lang-switch {
  display:flex; align-items:center; gap:4px; font-size:13px; font-weight:600;
  margin-right:8px; background: rgba(11,31,58,0.06); border-radius:999px; padding:5px 6px;
}
.lang-switch a { padding:5px 10px; border-radius:999px; color: var(--grey); transition: all 0.2s; }
.lang-switch a.active { background: var(--navy); color:#fff; }
.lang-switch span { display:none; }

/* ---- Buttons ---- */
.btn {
  display:inline-block; padding: 18px 38px; border-radius: 999px;
  font-size: 15.5px; font-weight: 600; letter-spacing: 0.2px;
  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s, background .25s;
}
.btn-primary { box-shadow: 0 10px 30px rgba(14,122,95,0.28); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 40px rgba(14,122,95,0.38); }
.btn-outline-light:hover { transform: translateY(-2px); }
.btn-primary { background: var(--green); color:#fff; }
.btn-primary:hover { background: #0A6650; }
.btn-outline { border: 1.5px solid var(--navy); color: var(--navy); }
.btn-outline:hover { background: var(--navy); color:#fff; }
.btn-outline-light { border: 1.5px solid rgba(255,255,255,0.5); color:#fff; }
.btn-outline-light:hover { background: rgba(255,255,255,0.12); }

/* ---- Hero (dark) ---- */
.hero {
  position: relative; overflow:hidden;
  background: linear-gradient(150deg, var(--navy-deep) 0%, var(--navy-mid) 55%, #0E2C3F 100%);
  color: #fff;
  padding: 130px 0 140px 0;
}
.hero-glow {
  position:absolute; top:-260px; right:-160px; width:760px; height:760px; border-radius:50%;
  background: radial-gradient(circle, rgba(14,122,95,0.18) 0%, rgba(14,122,95,0) 65%);
}
.hero .container { position:relative; z-index:2; }
.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-size: 15px; font-weight: 600; letter-spacing: 2.6px; text-transform: uppercase;
  color: var(--green-light); margin-bottom: 32px;
  padding: 11px 22px; border-radius: 999px;
  background: rgba(79,190,156,0.10); border: 1px solid rgba(79,190,156,0.30);
}
.eyebrow::before {
  content:""; width:6px; height:6px; border-radius:50%; background:var(--green-light);
  box-shadow:0 0 0 4px rgba(79,190,156,0.20);
}
.hero h1 {
  font-family:'Playfair'; font-weight: 600; font-size: 74px; line-height: 1.05;
  letter-spacing: -1.2px;
  max-width: 900px; margin-bottom: 28px; color: var(--cream);
}
.hero h1 em { font-family:'Playfair Italic'; font-style: italic; color: var(--green-light); }
.hero p.lead {
  font-size: 20px; line-height: 1.6; color: #C7CEDB; max-width: 560px; margin-bottom: 42px;
}
.hero-actions { display:flex; gap: 18px; flex-wrap: wrap; }
.hero-proof {
  margin-top: 60px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,0.10);
  display:flex; gap: 48px; flex-wrap: wrap;
  font-size: 14px; color: var(--grey-light); letter-spacing: 0.2px;
}
.hero-proof b { color: var(--green-light); font-weight:600; }

/* ---- Sections (light) ---- */
section { padding: 100px 0; }
.section-cream { background: var(--cream); }
h2.section-title {
  font-family:'Playfair'; font-weight: 600; font-size: 46px; line-height:1.18;
  letter-spacing:-0.6px; color: var(--navy); max-width: 760px;
}
.section-eyebrow {
  font-size: 12.5px; font-weight: 600; letter-spacing: 3.5px; text-transform: uppercase;
  color: var(--green); margin-bottom: 16px;
}
.section-lead { font-size: 17px; color: var(--grey); max-width: 620px; margin-top: 20px; line-height: 1.7; }

/* ---- band (dark quote strip) ---- */
.band {
  background: linear-gradient(120deg, var(--navy-deep) 0%, var(--navy-mid) 100%);
  color: #fff; padding: 96px 0;
}
.band p {
  font-family:'Playfair Italic'; font-style: italic; font-weight: 500; font-size: 38px; line-height:1.4;
  letter-spacing:-0.4px; max-width: 900px;
}
.band p .accent { color: var(--green-light); }

/* ---- 3-col grid ---- */
.cols3 { display:grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin-top: 64px; }
.col-icon {
  width:46px; height:46px; border-radius:50%; background:var(--green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Playfair'; font-size:20px;
  margin-bottom: 20px;
}
.col h3 { font-size: 15px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 16px; }
.col ul { padding-left: 18px; }
.col li { font-size: 14.5px; color: var(--grey); margin-bottom: 8px; line-height:1.6; }
.col li.bad { color: #B4463F; }
.col li.good { color: var(--green); font-weight: 500; }
.col p.desc { font-size: 14.5px; color: var(--grey); margin-bottom: 10px; }

/* ---- 2x2 grid (why us) ---- */
.grid2 { display:grid; grid-template-columns: 1fr 1fr; gap: 48px 56px; margin-top: 64px; }
.grid2 .num {
  width:44px; height:44px; border-radius:50%;
  background: linear-gradient(135deg, var(--green-light), var(--green)); color:#051425;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair'; font-weight:700; font-size:17px; margin-bottom: 16px;
}
.grid2 h4 { font-size: 18px; font-weight: 700; margin-bottom: 10px; }
.grid2 p { font-size: 14.5px; color: var(--grey); line-height:1.65; max-width: 420px; }

/* ---- steps ---- */
.steps { display:flex; flex-direction: column; gap: 40px; margin-top: 60px; }
.step { display:flex; gap: 30px; align-items:flex-start; }
.step-num {
  width:56px; height:56px; border-radius:50%; flex-shrink:0;
  background: linear-gradient(135deg, var(--green), var(--navy)); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair'; font-weight:600; font-size:21px;
}
.step h4 { font-size: 18px; font-weight:700; margin-bottom: 8px; }
.step p { font-size: 15px; color: var(--grey); max-width: 600px; }

/* ---- Cards / services ---- */
.services-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 60px; }
.service-card {
  background:#fff; border: 1px solid var(--border); border-radius: 16px; padding: 40px;
}
.service-card .icon {
  width:52px; height:52px; border-radius:12px; background: #EFF6F3; color: var(--green);
  display:flex; align-items:center; justify-content:center; font-family:'Playfair'; font-size:22px;
  margin-bottom: 22px;
}
.service-card h3 { font-size: 20px; font-weight:700; margin-bottom: 18px; }
.service-card ul { padding-left: 18px; }
.service-card li { font-size: 14.5px; color: var(--grey); margin-bottom: 10px; line-height:1.6; }

/* ---- Footer ---- */
footer {
  background: var(--navy-deep); color: #C7CEDB; padding: 64px 0 40px 0;
}
footer .foot-top { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap: 40px; margin-bottom: 48px; }
footer .foot-logo { display:flex; align-items:center; gap:12px; margin-bottom: 16px; }
footer .foot-logo img.icon { height: 30px; }
footer .foot-logo img.wm { height: 18px; }
footer .foot-tag { font-family:'Playfair Italic'; font-style: italic; font-size: 15px; color:#8FA0BC; max-width:280px; }
footer .foot-links { display:flex; gap: 60px; flex-wrap: wrap; }
footer .foot-col h5 { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#4FBE9C; margin-bottom:16px; }
footer .foot-col a, footer .foot-col p { display:block; font-size:14px; color:#C7CEDB; margin-bottom:10px; }
footer .foot-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 28px; font-size:12.5px; color:#6E7FA0; }

/* ---- CTA band bottom of pages ---- */
.cta-band {
  background: linear-gradient(120deg, var(--navy-deep) 0%, var(--navy-mid) 100%);
  color:#fff; padding: 120px 0; text-align:center;
}
.cta-band h2 { font-family:'Playfair'; font-weight:600; font-size:48px; line-height:1.15; letter-spacing:-0.6px; margin-bottom: 22px; color: var(--cream); }
.cta-band p { font-size:16px; color:#C7CEDB; max-width:560px; margin: 0 auto 36px auto; }

/* ---- About page specific ---- */
.about-hero { display:grid; grid-template-columns: 380px 1fr; gap: 64px; align-items:center; }
.about-hero img.founder { border-radius: 20px; width:100%; }
.about-hero .quote {
  font-family:'Playfair Italic'; font-style:italic; font-size:22px; line-height:1.55; color:#DCE3EE; margin-top:24px;
}

/* ---- Contact page ---- */
.contact-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-top: 56px; }
.contact-info-item { margin-bottom: 32px; }
.contact-info-item h5 { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--green); margin-bottom:8px; }
.contact-info-item p, .contact-info-item a { font-size:16px; color:var(--navy); }
.calendly-box {
  background: var(--cream); border-radius: 16px; padding: 48px; text-align:center;
}
.calendly-box h3 { font-family:'Playfair'; font-weight:600; font-size:24px; margin-bottom:14px; }
.calendly-box p { font-size:14.5px; color:var(--grey); margin-bottom:28px; }


/* --- Nav: paliers intermédiaires pour éviter tout chevauchement --- */
@media (max-width: 1480px) and (min-width: 861px) {
  .nav-logo img.icon { height: 42px; }
  .nav-logo img.wm { height: 23px; }
  .nav-logo { margin-right: 16px; }
  .nav-links { gap: 18px; }
  .nav-links > a { font-size: 13.5px; }
  .nav-cta { padding: 11px 18px; font-size: 13px; }
  .lang-switch { padding: 4px 5px; margin-right: 4px; }
  .lang-switch a { padding: 4px 9px; font-size: 12.5px; }
}
@media (max-width: 1240px) and (min-width: 861px) {
  .nav-logo img.wm { display: none; }
  .nav-logo { margin-right: 12px; }
  .nav-links { gap: 14px; }
  .nav-links > a { font-size: 13px; }
  .nav-cta { padding: 10px 15px; font-size: 12.5px; }
}

/* ---- Responsive ---- */
/* ---- Split screen (before/after) ---- */
.split { display:grid; grid-template-columns: 1fr 1fr; }
.split-side { padding: 90px 70px; }
.split-before { background: #F3ECEA; }
.split-after { background: var(--navy-deep); color:#fff; }
.split-label { font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; margin-bottom:24px; }
.split-before .split-label { color:#A85A5A; }
.split-after .split-label { color: var(--green-light); }
.split-side ul { list-style:none; }
.split-side li { font-size:17px; padding: 17px 0; border-top:1px solid rgba(0,0,0,0.08); }
.split-after li { border-top:1px solid rgba(255,255,255,0.1); }
.split-side li:first-of-type { border-top:none; }

/* ---- Staggered grid ---- */
.stagger { display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 70px; }
.stagger > div:nth-child(1) { margin-top: 0; }
.stagger > div:nth-child(2) { margin-top: 40px; }
.stagger > div:nth-child(3) { margin-top: 0; }
.stagger > div:nth-child(4) { margin-top: 40px; }
.stagger-card {
  background:#fff; border:1px solid var(--border); border-radius:18px; padding:36px 30px;
  transition: transform 0.3s, box-shadow 0.3s;
}
.stagger-card:hover { transform: translateY(-6px); box-shadow: 0 16px 32px rgba(11,31,58,0.08); }
.stagger-card .num { width:38px; height:38px; border-radius:50%; background: linear-gradient(135deg,var(--green-light),var(--green)); color:#051425; display:flex; align-items:center; justify-content:center; font-family:'Playfair'; font-weight:700; font-size:15px; margin-bottom:16px; }
.stagger-card h4 { font-size:18px; font-weight:700; margin-bottom:12px; line-height:1.3; }
.stagger-card p { font-size:15px; color:var(--grey); line-height:1.65; }

/* ---- Tool strip ---- */
.tool-strip { display:flex; flex-wrap:wrap; gap:14px; margin-top: 28px; }
.tool-pill {
  padding: 10px 20px; border-radius:999px; border:1px solid var(--border);
  font-size:13.5px; font-weight:600; color:var(--navy); background:#fff;
}
.tool-note { font-size:14.5px; color:var(--grey); margin-top:20px; max-width:560px; line-height:1.65; }

/* ---- Week rhythm (horizontal) ---- */
.week-rhythm { display:flex; overflow-x:auto; gap:0; margin-top:56px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.week-day { flex:1; min-width:150px; padding: 28px 20px; border-right:1px solid var(--border); }
.week-day:last-child { border-right:none; }
.week-day .wd-label { font-size:11.5px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--green); margin-bottom:12px; }
.week-day p { font-size:13.5px; color:var(--grey); line-height:1.6; }

@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .stagger { grid-template-columns: 1fr 1fr; gap:16px; }
  .stagger > div { margin-top:0 !important; }
  .stagger-card { padding:26px 20px; }
}
@media (max-width: 560px) {
  .stagger { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .nav { position:relative; }
  .nav .container { flex-wrap: nowrap; }
  .nav-logo { flex-shrink: 1; min-width: 0; overflow: hidden; }
  .nav-logo img.icon { height: 30px; flex-shrink:0; }
  .nav-logo img.wm { height: 18px; flex-shrink:1; min-width:0; }
  .nav-toggle { display:block; flex-shrink:0; }
  .nav-links {
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:#fff; flex-direction:column; align-items:flex-start;
    padding: 24px 32px 28px 32px; gap:20px;
    box-shadow: 0 16px 28px rgba(11,31,58,0.10);
    border-top:1px solid var(--border);
    z-index: 100;
  }
  .nav-links.open { display:flex; }
  .nav-links .lang-switch { margin-right:0; }
  .nav-links .nav-cta { width:100%; text-align:center; }
  .hero h1 { font-size: 36px; line-height:1.1; letter-spacing:-0.5px; }
  .hero p.lead { font-size:16px; }
  .hero { padding: 70px 0 80px 0; }
  .cols3, .grid2, .services-grid, .contact-grid { grid-template-columns: 1fr; }
  .about-hero { grid-template-columns: 1fr; }
  h2.section-title { font-size: 31px; }
  .band p { font-size: 24px; }
  .stat-row { grid-template-columns: 1fr; gap:32px; }
  .photo-break { height: 340px; }
  .photo-break-quote p { font-size:20px; }
  .split-side { padding: 56px 32px; }
  .week-rhythm { overflow-x: scroll; }
}

/* ---- Trust bar (confidentiality) ---- */
.trust-bar {
  background: #fff; border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding: 24px 0;
}
.trust-bar .container { display:flex; align-items:center; gap:14px; justify-content:center; flex-wrap:wrap; }
.trust-bar p { font-size:13.5px; color:var(--grey); }
.trust-bar strong { color:var(--navy); }

/* ---- Continuity section ---- */
.continuity-box {
  background: var(--navy-deep); color:#fff; border-radius:20px; padding: 56px;
  margin-top: 64px;
}
.continuity-box .q { font-family:'Playfair Italic'; font-style:italic; font-size:22px; color: var(--green-light); margin-bottom:20px; }
.continuity-box p.a { font-size:16px; line-height:1.75; color:#DCE3EE; max-width:640px; }

/* ---- Scroll reveal ---- */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(.2,.7,.3,1), transform 0.7s cubic-bezier(.2,.7,.3,1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }

/* ---- Hero animated orbit signature ---- */
.orbit-wrap {
  position:absolute; right: 6%; top:50%; transform:translateY(-50%);
  width: 380px; height: 380px; z-index:1; opacity:0.9;
}
.orbit-wrap svg { width:100%; height:100%; }
.orbit { transform-origin: 190px 190px; animation: spin 60s linear infinite; }
.orbit.rev { animation-direction: reverse; animation-duration: 90s; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.orbit-dot {
  animation: pulse 3.5s ease-in-out infinite;
}
@keyframes pulse { 0%,100% { opacity:0.9; r:4.5; } 50% { opacity:0.5; r:6.5; } }

/* ---- Card hover lift ---- */
.service-card, .col, .grid2 > div {
  transition: transform 0.35s cubic-bezier(.2,.7,.3,1), box-shadow 0.35s;
}
.service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(11,31,58,0.08);
  border-color: rgba(14,122,95,0.25);
}
.grid2 > div:hover .num, .cols3 .col:hover .col-icon {
  transform: scale(1.1);
}
.grid2 > div .num, .cols3 .col .col-icon { transition: transform 0.3s; }

/* ---- Them vs Us comparison ---- */
.vs-table { margin-top: 60px; border-radius: 16px; overflow:hidden; border:1px solid var(--border); }
.vs-head { display:grid; grid-template-columns: 1.4fr 1fr 1fr; background: var(--navy); color:#fff; }
.vs-head div { padding: 20px 24px; font-size:13px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; }
.vs-head div:nth-child(2) { color: var(--grey-light); }
.vs-head div:nth-child(3) { color: var(--green-light); }
.vs-row {
  display:grid; grid-template-columns: 1.4fr 1fr 1fr; border-top: 1px solid var(--border);
  background:#fff;
}
.vs-row > div { padding: 22px 24px; font-size:14.5px; line-height:1.55; }
.vs-row .vs-label { font-weight:600; color:var(--navy); }
.vs-row .vs-them { color:#A85A5A; }
.vs-them::before { content:"✕ "; opacity:0.6; }
.vs-row .vs-us { color: var(--green); font-weight:500; }
.vs-us::before { content:"✓ "; }

/* ---- FAQ Accordion ---- */
.faq-list { margin-top: 48px; }
.faq-item { border-bottom: 1px solid var(--border); }
.faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding: 26px 4px; cursor:pointer; font-size:17px; font-weight:600; color:var(--navy);
}
.faq-q::after {
  content: "+"; font-size:22px; font-weight:400; color:var(--green); transition: transform 0.3s; flex-shrink:0; margin-left:20px;
}
.faq-item.open .faq-q::after { transform: rotate(45deg); }
.faq-a {
  max-height:0; overflow:hidden; transition: max-height 0.4s ease, padding 0.4s ease;
  font-size:15px; color:var(--grey); line-height:1.7;
}
.faq-item.open .faq-a { max-height: 300px; padding-bottom: 26px; }

/* ---- Timeline (about page) ---- */
.timeline { margin-top: 50px; }
.tl-item {
  display:grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 22px 0;
  border-top: 1px solid var(--border);
}
.tl-item:last-child { border-bottom: 1px solid var(--border); }
.tl-date { font-size:13px; font-weight:600; color:var(--green); letter-spacing:0.5px; }
.tl-role { font-size:15.5px; font-weight:600; color:var(--navy); margin-bottom:4px; }
.tl-desc { font-size:14px; color:var(--grey); }

/* ---- Stat callouts (about page) ---- */
.stat-row { display:grid; grid-template-columns: repeat(3,1fr); gap:40px; margin-top:56px; }
.stat-num {
  font-family:'Playfair'; font-weight:700; font-size:56px; color:var(--green);
  line-height:1; margin-bottom:14px;
}
.stat-label { font-size:14.5px; color:var(--grey); line-height:1.55; max-width:240px; }

/* ---- Photo break band ---- */
.photo-break {
  position:relative; height: 480px; overflow:hidden;
}
.photo-break img { width:100%; height:100%; object-fit:cover; object-position: center 15%; }
.photo-break::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(7,26,49,0.85) 0%, rgba(7,26,49,0.15) 55%, rgba(7,26,49,0.35) 100%);
}
.photo-break-quote {
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding: 44px 0;
}
.photo-break-quote p {
  font-family:'Playfair Italic'; font-style:italic; font-weight:500; font-size:26px; color:#fff;
  max-width: 640px; line-height:1.5;
}

/* ---- Why Mauritius emphasis ---- */
.mu-compare { display:flex; gap: 48px; margin-top: 44px; flex-wrap:wrap; }
.mu-item { flex:1; min-width:220px; }
.mu-num { font-family:'Playfair'; font-weight:700; font-size:42px; color:var(--navy); }
.mu-num.good { color: var(--green); }
.mu-label { font-size:13.5px; color:var(--grey); margin-top:6px; }

/* ---- Text + image split layout ---- */
.text-img { display:grid; grid-template-columns: 1fr 0.9fr; gap:56px; align-items:center; }
.text-img img { border-radius:16px; width:100%; height:100%; object-fit:cover; max-height:360px; }
@media (max-width: 860px) {
  .text-img { grid-template-columns: 1fr; }
}

/* ---- Subtle background image (Why Mauritius) ---- */
.mu-bg-image {
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0.10; z-index:1;
}

/* ---- Accessibility ---- */
a:focus-visible, button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { transition: none !important; opacity:1 !important; transform:none !important; }
  .orbit { animation: none !important; }
}

/* ---- Signal list (recognition section) ---- */
.signal-list { margin-top: 28px; }
.signal {
  display:flex; align-items:flex-start; gap:16px;
  font-family:'Playfair'; font-size:23px; line-height:1.45; color:var(--navy);
  padding: 15px 0; border-bottom:1px solid var(--border);
}
.signal:last-child { border-bottom:none; }
.signal-dot {
  width:7px; height:7px; border-radius:50%; background:var(--green);
  margin-top:13px; flex-shrink:0;
}
.signal-close {
  margin-top:26px; font-size:16px; font-weight:600; color:var(--green);
}
@media (max-width: 860px) {
  .signal { font-size:18px; padding:12px 0; }
  .signal-dot { margin-top:10px; }
}


/* ---- Timeline: ce qui change concrètement ---- */
.change-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:0; margin-top:64px;
  border-top:1px solid rgba(255,255,255,0.14); }
.change-step { padding:34px 26px 10px 0; border-right:1px solid rgba(255,255,255,0.10); }
.change-step:last-child { border-right:none; }
.change-when { font-size:12px; font-weight:700; letter-spacing:2.4px; text-transform:uppercase;
  color:var(--green-light); margin-bottom:16px; }
.change-what { font-family:'Playfair'; font-size:22px; line-height:1.35; color:#F7F3EA; }
@media (max-width:860px){
  .change-grid { grid-template-columns:1fr; }
  .change-step { border-right:none; border-bottom:1px solid rgba(255,255,255,0.10); padding:24px 0; }
  .change-step:last-child { border-bottom:none; }
  .change-what { font-size:19px; }
}
.change-grid, .change-step { min-width:0; }
.change-what { overflow-wrap:anywhere; }


/* ---- Pillars: ce qu'on prend en charge ---- */
.pillars { display:grid; grid-template-columns: repeat(3,1fr); gap:0; margin-top:64px;
  border-top:1px solid var(--border); }
.pillar { padding:44px 34px 44px 0; border-right:1px solid var(--border); }
.pillar:last-child { border-right:none; padding-right:0; }
.pillar:not(:first-child) { padding-left:34px; }
.pillar-num { font-family:'Playfair'; font-size:15px; font-weight:700; color:var(--green);
  letter-spacing:1px; margin-bottom:14px; }
.pillar h3 { font-family:'Playfair'; font-size:27px; font-weight:600; color:var(--navy);
  line-height:1.2; margin-bottom:22px; }
.pillar ul { list-style:none; padding:0; }
.pillar li { font-size:15px; color:var(--grey); line-height:1.5; padding:9px 0;
  display:flex; gap:11px; align-items:flex-start; }
.pillar li::before { content:""; width:5px; height:5px; border-radius:50%;
  background:var(--green); flex-shrink:0; margin-top:8px; }
.pillar-gap { margin-top:56px; padding:34px 38px; background:var(--navy); border-radius:18px;
  font-family:'Playfair'; font-size:24px; line-height:1.45; color:var(--cream); }
.pillar-gap span { color:var(--green-light); }
@media (max-width:860px){
  .pillars { grid-template-columns:1fr; }
  .pillar { border-right:none; border-bottom:1px solid var(--border); padding:32px 0 !important; }
  .pillar:last-child { border-bottom:none; }
  .pillar h3 { font-size:23px; }
  .pillar-gap { font-size:20px; padding:26px 24px; }
}

/* ---- Edge: l'avantage structurel (bilingue + fuseau) ---- */
.edge { background: linear-gradient(120deg, var(--navy-deep) 0%, var(--navy-mid) 60%, #0E2C3F 100%);
  color:#fff; padding: 104px 0; position:relative; overflow:hidden; }
.edge .glow { position:absolute; top:-240px; right:-180px; width:760px; height:760px; border-radius:50%;
  background: radial-gradient(circle, rgba(79,190,156,0.16) 0%, rgba(79,190,156,0) 65%); }
.edge .container { position:relative; z-index:2; }
.edge h2 { font-family:'Playfair'; font-weight:600; font-size:46px; line-height:1.15;
  letter-spacing:-0.6px; color:var(--cream); max-width:820px; margin-bottom:22px; }
.edge p.lead-edge { font-size:19px; line-height:1.65; color:#C7CEDB; max-width:640px; }
.edge-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:0; margin-top:60px;
  border-top:1px solid rgba(255,255,255,0.14); }
.edge-cell { padding:36px 30px 8px 0; border-right:1px solid rgba(255,255,255,0.10); }
.edge-cell:last-child { border-right:none; }
.edge-cell:not(:first-child) { padding-left:30px; }
.edge-num { font-family:'Playfair'; font-weight:700; font-size:46px; color:var(--green-light);
  line-height:1; margin-bottom:14px; }
.edge-txt { font-size:15px; line-height:1.6; color:#C7CEDB; }
@media (max-width:860px){
  .edge { padding:76px 0; }
  .edge h2 { font-size:31px; }
  .edge-grid { grid-template-columns:1fr; }
  .edge-cell { border-right:none; border-bottom:1px solid rgba(255,255,255,0.10);
    padding:26px 0 !important; }
  .edge-cell:last-child { border-bottom:none; }
  .edge-num { font-size:38px; }
}

/* ---- Bloc fondatrice sur l'accueil ---- */
.founder-block { display:grid; grid-template-columns: 340px 1fr; gap:64px; align-items:center; }
.founder-block img { width:100%; border-radius:18px; display:block; }
.founder-quote { font-family:'Playfair'; font-weight:500; font-size:27px; line-height:1.45;
  color:var(--navy); margin-bottom:26px; }
.founder-quote em { font-family:'Playfair Italic'; font-style:normal; color:var(--green); }
.founder-body { font-size:16px; line-height:1.75; color:var(--grey); margin-bottom:26px; max-width:560px; }
.founder-sig { font-size:14px; font-weight:700; color:var(--navy); }
.founder-sig span { display:block; font-weight:500; color:var(--grey); margin-top:3px; }
@media (max-width:860px){
  .founder-block { grid-template-columns:1fr; gap:32px; }
  .founder-block img { max-width:280px; }
  .founder-quote { font-size:22px; }
}


/* ---- Hero sector line ---- */
.hero-proof { margin-top: 44px; padding-top:26px; }
@media (max-width:560px){
  }

/* ---- Sector bar (under the hero) ---- */
.sector-bar { background: var(--cream); padding: 92px 0 96px; position:relative; overflow:hidden; }
.sector-bar:before {
  content:""; position:absolute; top:-260px; left:50%; transform:translateX(-50%);
  width:1100px; height:520px; border-radius:50%;
  background: radial-gradient(ellipse at center, rgba(79,190,156,0.13), rgba(79,190,156,0) 68%);
  pointer-events:none;
}
.sector-bar .container { position:relative; }
.sbar-head { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.sbar-head h2 { font-family:'Playfair'; font-weight:600; font-size:40px; line-height:1.15;
  letter-spacing:-0.6px; color:var(--navy); max-width:600px; margin-top:14px; }
.sbar-head h2 em { font-style:italic; color:var(--green); }

.sbar { display:grid; grid-template-columns: repeat(4,1fr); gap:20px; margin-top:52px; }
.scard {
  background:#fff; border:1px solid var(--border); border-radius:20px;
  padding:34px 26px 30px; position:relative; overflow:hidden;
  transition: transform .34s cubic-bezier(.2,.7,.3,1), box-shadow .34s, border-color .34s;
}
.scard:before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--green-light), var(--green));
  transform:scaleX(0); transform-origin:left; transition:transform .42s cubic-bezier(.2,.7,.3,1);
}
.scard:hover { transform:translateY(-8px); box-shadow:0 22px 44px rgba(11,31,58,0.11); border-color:rgba(79,190,156,0.42); }
.scard:hover:before { transform:scaleX(1); }
.sicon {
  width:48px; height:48px; border-radius:14px; margin-bottom:20px;
  background:linear-gradient(135deg, rgba(79,190,156,0.20), rgba(79,190,156,0.06));
  display:flex; align-items:center; justify-content:center;
}
.sicon svg { width:24px; height:24px; fill:none; stroke:var(--green);
  stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.scard h3 { font-family:'Playfair'; font-size:21px; font-weight:700; color:var(--navy);
  line-height:1.26; margin-bottom:11px; }
.scard p { font-size:14.5px; color:var(--grey); line-height:1.66; }

.sbar-close {
  margin-top:44px; max-width:880px; padding-left:22px;
  border-left:3px solid var(--green-light);
  font-size:16.5px; color:var(--grey); line-height:1.75;
}
.sbar-close strong { color:var(--navy); font-weight:600; }
.sbar-link { margin-top:26px; }
.sbar-link a { font-size:14.5px; font-weight:600; color:var(--green); }

@media (max-width:1040px){
  .sbar { grid-template-columns:1fr 1fr; }
  .sbar-head h2 { font-size:34px; }
}
@media (max-width:620px){
  .sector-bar { padding:64px 0 68px; }
  .sbar { grid-template-columns:1fr; gap:14px; margin-top:38px; }
  .scard { padding:26px 22px 24px; }
  .sbar-head h2 { font-size:29px; }
  .sbar-close { font-size:15.5px; margin-top:34px; }
}

.scard .sbar-tag { font-size:11px; font-weight:700; letter-spacing:1.7px; text-transform:uppercase;
  color:var(--green); margin-bottom:10px; }
@media (min-width:1041px){ .scard h3 { min-height:3.9em; } }
@media (min-width:621px) and (max-width:1040px){ .scard h3 { min-height:2.6em; } }
