:root{
  --bg:#f6f7f9;
  --card:#ffffff;
  --text:#1e2430;
  --muted:#5f6b7a;
  --line:rgba(0,0,0,.08);
  --accent:#c81f2a;
  --shadow:0 10px 26px rgba(0,0,0,.08);
  --radius:14px;
  --max:920px;

  --signal-border:rgba(58,118,240,.45);
  --signal-bg:rgba(58,118,240,.06);
  --signal-shadow:0 8px 20px rgba(58,118,240,.14);

  --wa-border:rgba(37,211,102,.40);
  --wa-bg:rgba(37,211,102,.06);
  --wa-shadow:0 8px 20px rgba(37,211,102,.12);
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color:var(--text);
  background:var(--bg);
  line-height:1.5;
}
.container{
  max-width:var(--max);
  margin:0 auto;
  padding:40px 20px;
}

header{
  margin-bottom:22px;
  border-bottom:2px solid var(--accent);
  padding-bottom:18px;
}

/* top bar */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.lang{
  display:inline-flex;
  gap:10px;
  align-items:center;
  user-select:none;
  font-weight:950;
  letter-spacing:0.02em;
  font-size:0.85rem;
  color:rgba(0,0,0,.55);
}
.lang button{
  border:none;
  background:transparent;
  cursor:pointer;
  padding:6px 6px;
  border-radius:10px;
  font-weight:950;
  color:rgba(0,0,0,.55);
}
.lang button[aria-pressed="true"]{
  color:var(--text);
  background:rgba(0,0,0,.05);
}
.lang .sep{ opacity:.45; }

/* header layout with photo */
.header-inner{
  display:flex;
  align-items:flex-start;
  gap:16px;
  flex-wrap:wrap;
}
.header-copy{ min-width:240px; }
.headshot{
  width:118px;
  height:118px;
  border-radius:14px;
  object-fit:cover;
  border:1px solid var(--line);
  box-shadow:0 10px 26px rgba(0,0,0,.10);
  filter:grayscale(35%) contrast(1.05);
  opacity:.95;
  flex:0 0 auto;
}

h1{
  font-size:2.15rem;
  margin:0;
  letter-spacing:-0.02em;
}
.subtitle{
  color:var(--muted);
  font-size:1.02rem;
  margin-top:6px;
  font-weight:650;
}

.pill{
  display:inline-block;
  margin-top:10px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:0.85rem;
  font-weight:800;
}
.method-pill{
  border-color:rgba(200,31,42,.22);
  background:rgba(200,31,42,.04);
  color:#2b3240;
  font-weight:950;
  letter-spacing:-0.01em;
}

.hero{
  margin-top:14px;
  font-weight:1000;
  letter-spacing:0.06em;
  font-size:1.35rem;
  line-height:1.1;
  text-transform:uppercase;
}
.baseline{
  margin-top:10px;
  color:var(--muted);
  font-weight:700;
  font-size:1.02rem;
  max-width:80ch;
  line-height:1.45;
}

.cta-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.btn{
  border:1px solid var(--line);
  background:#fff;
  padding:12px 14px;
  border-radius:12px;
  cursor:pointer;
  font-weight:950;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:inherit;
}
.btn-primary{
  border-color:rgba(200,31,42,.35);
  box-shadow:0 8px 20px rgba(200,31,42,.10);
}
.btn-accent{
  border-color:rgba(200,31,42,.45);
  background:rgba(200,31,42,.05);
}

/* sections */
.section{
  background:var(--card);
  padding:26px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  margin-bottom:14px;
}

/* label & detail */
.label{
  font-size:1.05rem;
  margin:0;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:1000;
}
.detail{
  margin-top:8px;
  color:var(--muted);
  font-weight:650;
  font-size:0.98rem;
  line-height:1.45;
}

/* bilingual visibility */
.desc-en{ display:block; }
.desc-fr{ display:block; }
html[data-lang="en"] .desc-fr{ display:none; }
html[data-lang="fr"] .desc-en{ display:none; }

/* list */
.list{ list-style:none; padding:0; margin:0; }
.list li{
  padding:12px 0;
  border-bottom:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.list li:last-child{ border-bottom:none; }
.enline{
  font-weight:1000;
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:#2b3240;
  font-size:0.98rem;
}
.frline{
  color:var(--muted);
  font-weight:650;
  font-size:0.95rem;
}

/* split (EN/FR) panes */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:12px;
}
.pane{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  background:#fff;
}
.pane h3{
  margin:0 0 10px 0;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-size:0.92rem;
  color:#2b3240;
}
.bullets{ margin:10px 0 0; padding-left:18px; }
.bullets li{ margin:6px 0; }

/* callout */
.callout{
  border:1px solid rgba(200,31,42,.18);
  background:rgba(200,31,42,.04);
  padding:14px;
  border-radius:12px;
  color:#2b3240;
  margin-top:12px;
  font-size:0.98rem;
  font-weight:650;
}
.callout strong{ color:var(--accent); }

/* compact visuals */
.viz{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background: linear-gradient(135deg, rgba(0,0,0,.02), rgba(200,31,42,.03));
  padding:10px;
  overflow:hidden;
}
.viz-title{
  font-weight:1000;
  letter-spacing:0.06em;
  font-size:0.78rem;
  margin:0 0 8px 0;
  color:rgba(0,0,0,.55);
  text-transform:uppercase;
}
.viz svg{ width:100%; height:auto; display:block; opacity:.95; }

/* offer card */
.offer{
  border:1px solid var(--line);
  border-radius:14px;
  padding:16px;
  background:#fff;
  margin-top:10px;
}
.offer-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.offer-title{
  font-weight:1000;
  font-size:1.05rem;
  letter-spacing:-0.01em;
  text-transform:uppercase;
}
.price-tag{
  display:inline-block;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(200,31,42,.28);
  background:rgba(200,31,42,.05);
  font-weight:1000;
  white-space:nowrap;
  text-transform:uppercase;
  letter-spacing:0.04em;
  font-size:0.86rem;
}
.offer-desc{ color:var(--muted); margin-top:8px; font-weight:650; line-height:1.45; }

/* form */
.grid{ display:grid; grid-template-columns:1fr; gap:14px; margin-top:16px; }
label{
  font-size:0.92rem;
  color:rgba(0,0,0,.55);
  font-weight:900;
  letter-spacing:0.05em;
  text-transform:uppercase;
  display:block;
  margin-bottom:6px;
}
.label-fr{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:650;
  letter-spacing:0;
  text-transform:none;
  font-size:0.92rem;
}
input[type="text"], textarea, select{
  width:100%;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--text);
  font-size:1rem;
}
textarea{ min-height:120px; resize:vertical; }

.row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }
.btn-signal{
  border-color: var(--signal-border);
  background: var(--signal-bg);
  box-shadow: var(--signal-shadow);
}
.btn-wa{
  border-color: var(--wa-border);
  background: var(--wa-bg);
  box-shadow: var(--wa-shadow);
}

.small{ font-size:0.9rem; color:var(--muted); margin-top:10px; }
.hint{
  margin-top:10px;
  padding:12px 12px;
  border-radius:12px;
  border:1px dashed rgba(58,118,240,.35);
  background:rgba(58,118,240,.04);
  color:#2b3240;
  font-size:0.95rem;
}

/* footer */
footer{
  text-align:center;
  padding:40px 0;
  color:var(--muted);
  font-size:0.85rem;
  border-top:1px solid var(--line);
  margin-top:10px;
}
.footer-strong{
  margin-top:10px;
  font-weight:1000;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:#2b3240;
}

/* responsive */
@media (max-width:780px){
  .split{ grid-template-columns:1fr; }
  h1{ font-size:2.0rem; }
  .headshot{ width:108px; height:108px; }
}

/* ---------- TERRITORY (WIRE/TECH MAP) ---------- */
.map-card{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background: linear-gradient(135deg, rgba(0,0,0,.02), rgba(200,31,42,.03));
  padding:12px;
}
.map-head{ margin-bottom:10px; }
.map-title{
  font-weight:1000;
  letter-spacing:0.06em;
  font-size:0.80rem;
  text-transform:uppercase;
  color:rgba(0,0,0,.62);
}
.map-sub{
  margin-top:6px;
  font-weight:650;
  font-size:0.92rem;
  color:var(--muted);
}
.map-card svg{
  width:100%;
  height:auto;
  display:block;
  border-radius:12px;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
}

/* ---------- REPORT SAMPLE (BLURRED) ---------- */
.report-sample{
  margin-top:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
}
.report-title{
  font-weight:1000;
  letter-spacing:0.06em;
  font-size:0.80rem;
  text-transform:uppercase;
  color:rgba(0,0,0,.62);
}
.report-sub{
  margin-top:6px;
  font-weight:650;
  font-size:0.92rem;
  color:var(--muted);
}
.report-frame{
  margin-top:12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.00));
  padding:12px;
}
.report-page{
  border-radius:12px;
  background:rgba(255,255,255,.90);
  border:1px solid rgba(0,0,0,.06);
  padding:14px;
}
.blur{
  filter: blur(2.2px);
  opacity:.92;
}
.report-caption{
  margin-top:10px;
  color:var(--muted);
  font-weight:650;
  font-size:0.92rem;
}

/* Fake report layout elements */
.rp-h1{ height:16px; width:62%; background:rgba(0,0,0,.10); border-radius:8px; }
.rp-h2{ height:10px; width:38%; background:rgba(0,0,0,.08); border-radius:8px; margin-top:10px; }

.rp-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}
.rp-card{
  border:1px solid rgba(0,0,0,.06);
  border-radius:12px;
  padding:10px;
  background:rgba(0,0,0,.015);
}
.rp-mini-title{ height:10px; width:55%; background:rgba(0,0,0,.08); border-radius:8px; margin-bottom:10px; }

.rp-bars{ display:flex; flex-direction:column; gap:10px; }
.rp-bar{
  height:10px;
  border-radius:999px;
  background:rgba(200,31,42,.20);
  border:1px solid rgba(200,31,42,.18);
}

.rp-lines{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.rp-line{ height:8px; border-radius:8px; background:rgba(0,0,0,.06); }
.rp-line.short{ width:72%; }

/* responsive */
@media (max-width:780px){
  .rp-grid{ grid-template-columns:1fr; }
}

/* ---------- FIDUCIARY INDEPENDENCE DIAGRAM ---------- */
.independence{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background: linear-gradient(135deg, rgba(0,0,0,.02), rgba(200,31,42,.02));
  padding:12px;
}
.ind-title{
  font-weight:1000;
  letter-spacing:0.06em;
  font-size:0.80rem;
  text-transform:uppercase;
  color:rgba(0,0,0,.62);
}
.ind-sub{
  margin-top:6px;
  font-weight:650;
  font-size:0.92rem;
  color:var(--muted);
}
.independence svg{
  margin-top:12px;
  width:100%;
  height:auto;
  display:block;
  border-radius:12px;
  background:rgba(255,255,255,.60);
  border:1px solid rgba(0,0,0,.06);

