/* ===== Base ===== */
:root{
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial;
  --font-serif: "Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;

  --blue:#0b1fbf;
  --blue2:#07157d;
  --lime:#dbe87a;
  --peach:#ffc88a;
  --text:#0b1020;
  --muted:#334166;
  --white:#ffffff;
  --border:rgba(11,16,32,.12);
  --shadow:0 18px 50px rgba(0,0,0,.18);
  --radius:20px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;font-family:var(--font-sans);color:var(--text)}

/* Typography enforcement */
body, p, li, a, button, input, select, textarea, label, small, span{
  font-family: var(--font-sans);
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3,
.hero-title{
  font-family: var(--font-sans);
}
/* Keep subtitles & UI in sans */
.hero-lead, .subtitle, .lead, .kicker, .muted{
  font-family: var(--font-sans);
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 22px}

/* ===== Topbar ===== */
.topbar{
  position:sticky;top:0;z-index:20;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(8px);
}
.topbar-inner{
  max-width:1200px;margin:0 auto;
  padding:12px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:900}
.brand .icon{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff}
.brand-name{font-weight:900}
.nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.nav a{padding:8px 10px;border-radius:999px;color:#233055}
.nav a:hover{background:rgba(11,31,191,.08)}
.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.small{font-size:13px;color:#233055}
.lang{display:flex;align-items:center;gap:8px}
select{background:#fff;border:1px solid var(--border);border-radius:999px;padding:8px 10px}

/* ===== Buttons & Inputs ===== */
.btn{
  border:1px solid var(--border);
  border-radius:999px;
  padding:10px 16px;
  font-weight:700;
  background:#fff;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;box-shadow:none}
.btn.lime{background:var(--lime);border-color:rgba(0,0,0,.12)}
.btn.peach{background:var(--peach);border-color:rgba(0,0,0,.12)}
.btn.white{background:#fff;border-color:rgba(255,255,255,.45)}
.btn.outline{background:transparent}
.btn.dark{background:#111827;color:#fff;border-color:rgba(255,255,255,.10)}
.input{
  width:100%;
  padding:12px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  outline:none;
  font-size:15px;
}


/* v23 header layout (2 rows) */
.topbar-row{width:100%}
.topbar-row--utility{padding-top:12px;padding-bottom:8px}
.topbar-row--nav{padding-top:6px;padding-bottom:12px}
.topbar-actions{display:flex;align-items:center;gap:10px}
.nav.nav-main{justify-content:center;flex-wrap:nowrap;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.nav.nav-main a{white-space:nowrap}
.nav.nav-main::-webkit-scrollbar{height:6px}
.nav.nav-main::-webkit-scrollbar-thumb{background:rgba(11,16,32,.18);border-radius:999px}
@media (max-width: 900px){
  .topbar-inner{gap:10px}
  .nav.nav-main{justify-content:flex-start}
}


/* ===== Hero ===== */
.hero{
  background:linear-gradient(180deg,var(--blue),var(--blue2));
  color:#fff;
  padding:54px 0 46px;
}

/* Boxed hero (used on Examples page) */
.hero.hero-boxed{border-radius:28px;overflow:hidden}

/* Examples page: reduce vertical height of the boxed top hero */
.section.section-hero-box .hero{
  padding:18px 0 18px;
}
@media (max-width: 920px){
  .section.section-hero-box .hero{
    padding:16px 0 16px;
  }
}

.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:center;
}
.hero-title{
  font-family: var(--font-sans);
  font-weight:800;
  letter-spacing:.2px;
  font-size:64px;
  line-height:1.05;
  margin:0 0 16px;
  color:#ffd3a8;
}
.hero-lead{
  margin:0 0 20px;
  font-size:18px;
  line-height:1.65;
  color:rgba(255,255,255,.92);
  max-width:620px;
}
.hero-domain{
  margin:18px 0 18px;
}
.hero-domain-title{
  font-family: var(--font-sans);
  font-size:22px;
  font-weight:800;
  margin-bottom:10px;
}
.hero-domain-row{
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  max-width:680px;
}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.hero-art{
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  background:rgba(255,255,255,.06);
}
.hero-art img{width:100%;height:auto}

/* ===== Sections ===== */
.section{padding:56px 0}

/* Examples page: tighten spacing between boxed hero and the content block below */
/* Examples page spacing tweaks: reduce large white gaps around the boxed hero */
.section.section-hero-box{padding:18px 0 5px;}
.section.section-after-hero{padding-top:5px;padding-bottom:16px}
.section-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:center;
}
.section-grid.flip .copy{order:2}
.section-grid.flip .media{order:1}
.section-lime{background:var(--lime)}
.section-blue{background:linear-gradient(180deg,var(--blue),var(--blue2));color:#fff}
.section-title{
  font-family: var(--font-sans);
  letter-spacing:-0.02em;
}
.section-title.invert{color:#dbe7ff}
.section-text{
  margin:0 0 18px;
  font-size:18px;
  line-height:1.7;
  color:#1c2a44;
}
.section-text.invert{color:rgba(255,255,255,.90)}
.media img{
  border-radius:28px;
  box-shadow:0 22px 55px rgba(0,0,0,.25);
  background:rgba(255,255,255,.18);
}

/* ===== Footer ===== */
.footer{padding:26px 22px 46px}
.footer-note{color:#233055;font-size:13px}
.footer-links{margin-top:10px;display:flex;gap:12px;font-size:13px;color:#233055}
.footer-links a{text-decoration:underline}

/* ===== Guide page (keep readable cards) ===== */
.container-guide{max-width:1200px;margin:0 auto;padding:26px 40px}
.layout{display:grid;grid-template-columns:320px 1fr;gap:14px;align-items:start}
.card{
  background:linear-gradient(180deg,#ffffff,#f6f8ff);
  border:1px solid var(--border);
  border-radius:18px;
  padding:18px;
  box-shadow:var(--shadow);
}
.h1{font-family: var(--font-sans);font-size:44px;line-height:1.08;margin:0 0 12px;color:#0b1020;letter-spacing:.2px}
.h2{font-family: var(--font-sans);font-size:24px;line-height:1.15;margin:0 0 10px;color:#0b1020;letter-spacing:.15px}
.p{color:#334166;margin:0 0 12px;line-height:1.75}
.badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#e7efff;border:1px solid #c6d6ff;font-size:13px;margin-bottom:10px;color:#0b1fbf;font-weight:800}
.hr{height:1px;background:var(--border);margin:18px 0}
.toc{position:sticky;top:84px}
.toc .title{font-weight:900;margin-bottom:10px;font-size:14px;color:#0b1020;letter-spacing:.2px;text-transform:uppercase}
.toc a{display:block;padding:10px 12px;border-radius:14px;color:#223055;border:1px solid transparent;transition:background .15s ease, border-color .15s ease, transform .15s ease}
.toc a:hover{background:rgba(11,31,191,.10);border-color:rgba(11,31,191,.18);transform:translateY(-1px)}
.pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.14);color:rgba(255,255,255,.96);font-size:12px;font-weight:800;backdrop-filter:blur(6px)}
.stepHeader{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.callout{border:1px solid rgba(11,31,191,.18);background:rgba(11,31,191,.06);border-radius:16px;padding:14px;color:#111827}
.list{margin:0 0 12px 0;padding-left:18px;color:#334166;line-height:1.8}
.ph{width:100%;aspect-ratio:16/9;border-radius:16px;border:1px dashed rgba(11,16,32,.22);display:flex;align-items:center;justify-content:center;color:#223055;background:rgba(0,0,0,.03);font-weight:700}
.small-link{font-size:13px;color:#223055;text-decoration:underline}

/* Responsive */
@media (max-width: 980px){
  .hero-grid, .section-grid{grid-template-columns:1fr}
  .hero-title{font-size:44px}
  .section-title{
  font-family: var(--font-sans);
  letter-spacing:-0.02em;
}
  .layout{grid-template-columns:1fr}
  .toc{position:relative;top:auto}
}

/* Guide tweaks */
.container-guide{max-width:1200px;margin:0 auto;padding:26px 40px}

/* ===== Guide wrapper ===== */
.guide-hero{
  background:linear-gradient(180deg,var(--blue),var(--blue2));
  padding:28px;
  border-radius:28px;
  
}
.guide-hero .card{box-shadow:0 18px 40px rgba(0,0,0,.22)}
.guide-hero .layout{gap:18px}
@media (max-width: 980px){
  .container-guide{padding:18px 18px}
  .guide-hero{padding:16px;border-radius:20px}
}

/* Pills inside cards (light background) */
.card .pill{
  background:#eef3ff;
  border:1px solid #cddcff;
  color:#0b1fbf;
  backdrop-filter:none;
}

.toc a.active{
  background:rgba(11,31,191,.14);
  border-color:rgba(11,31,191,.26);
  color:#0b1020;
  box-shadow:0 10px 24px rgba(11,31,191,.10);
  position:relative;
}
.toc a.active::before{
  content:"";
  position:absolute;
  left:8px; top:10px; bottom:10px;
  width:4px;
  border-radius:999px;
  background:rgba(11,31,191,.75);
}

.section{scroll-margin-top:110px}

@media (max-width: 980px){
  .h1{font-size:34px}
  .h2{font-size:20px}
}


/* Intro (hero card) layout */
.intro-grid{
  display:grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap:28px;
  align-items:center;
}
.intro-image img{
  width:100%;
  max-width:420px;
  margin:0 auto;
}
@media (max-width: 980px){
  .intro-grid{grid-template-columns:1fr}
  .intro-image{margin-top:18px}
}


/* Warning callout variant */
.callout.warning{background:#fff7e6;border:1px solid #ffd79a;}


/* Guide step media (thumbnails + lightbox) */
.step-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
  align-items:start;
}
@media (max-width: 920px){
  .step-grid{ grid-template-columns: 1fr; }
}
.thumbs{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.thumb{
  display:block;
  border-radius: 14px;
  overflow:hidden;
  border:1px solid var(--line);
  background: #fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.10);
  transition: transform .16s ease, box-shadow .16s ease;
}
.thumb img{ display:block; width:100%; height:auto; }
.thumb:hover{ transform: translateY(-2px); box-shadow: 0 14px 34px rgba(0,0,0,.14); }
.thumb-note{
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
}

.lightbox{
  position: fixed;
  inset: 0;
  display:none;
  padding: 28px;
  background: rgba(8,12,25,.72);
  z-index: 999;
  align-items:center;
  justify-content:center;
}
.lightbox:target{ display:flex; }
.lightbox img{
  max-width: min(1100px, 92vw);
  max-height: 86vh;
  border-radius: 16px;
  background:#fff;
  box-shadow: 0 22px 70px rgba(0,0,0,.35);
}
.lb-close{
  position: absolute;
  inset: 0;
  cursor: zoom-out;
}

.h3{font-size:20px;margin:0 0 10px}
.h4{font-size:18px;margin:18px 0 8px}
.prose .p{margin-top:10px}

.section-white { background: #fff; }

.examples-head { text-align: center; margin-bottom: 18px; }

.examples-grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(140px, 1fr));
  gap: 18px;
  align-items: start;
}

.ex-card{
  text-align: center;
  padding: 8px 6px;
}

.ex-avatar{
  width: 64px;
  height: 64px;
  border-radius: 999px;
  object-fit: cover;
  display: block;
  margin: 0 auto 10px auto;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  background: #f2f2f2;
}

.ex-name{
  font-weight: 700;
  font-size: 13px;
  line-height: 1.2;
  margin-bottom: 4px;
  color: #1f4bd8;
}

.ex-role{
  font-size: 12px;
  line-height: 1.25;
  color: rgba(0,0,0,.55);
  min-height: 32px;
  margin-bottom: 10px;
}

.ex-btn{
  display: inline-flex;
  justify-content: center;
  min-width: 110px;
  padding: 8px 12px;
}

/* Responsive */
@media (max-width: 1100px){
  .examples-grid{ grid-template-columns: repeat(5, minmax(140px, 1fr)); }
}
@media (max-width: 820px){
  .examples-grid{ grid-template-columns: repeat(3, minmax(140px, 1fr)); }
}
@media (max-width: 520px){
  .examples-grid{ grid-template-columns: repeat(2, minmax(140px, 1fr)); }
}

/* Premium block (home) */
.premium-media img{
  width: 80%;
  max-width: 520px;
  height: auto;
  display: block;
  margin: 0 auto;
}


/* V29 – Home inspiration block adjustments */
.inspiration-media img{
  width: 80%;
  height: auto;
  display: block;
  margin-left: auto;
}

/* Support & NFC block (home) */
.section-blue{
  background: #0b2a6b;
  color: #fff;
}

.section-blue .section-title{
  font-family: var(--font-sans);
  letter-spacing:-0.02em;
}

.section-blue .support-subtitle{
  margin: 14px 0 6px 0;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

.section-blue .support-text{
  margin: 0 0 10px 0;
  color: rgba(255,255,255,.85);
  line-height: 1.55;
}

.split-grid{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 40px;
  align-items: center;
}

.split-media img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
}

@media (max-width: 900px){
  .split-grid{ grid-template-columns: 1fr; }
  .split-media{ order: -1; }
}





@media (max-width: 520px){
  .footer-reassurance{ font-size:13px; }
}



/* Footer reassurance title */
.footer-reassurance{
  text-align: center;
  margin: 48px auto 24px auto;
}

/* Visibility guide hero (green variant) */
.guide-hero--green{
  background:linear-gradient(180deg,var(--lime), #b7d94d);
}
/* Placeholder blocks for upcoming screenshots/images */
.shot-placeholder{
  width: 100%;
  min-height: 220px;
  border-radius: 16px;
  border: 2px dashed rgba(11,16,32,.18);
  background: rgba(255,255,255,.55);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 16px;
  font-weight: 600;
  color: rgba(11,16,32,.65);
}

.shot-img{width:100%;border-radius:16px;display:block;}

.shot-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;}


/* Visibility page: spacing between sections */
.page-visibility .card.section{ margin-bottom: 22px; }
.page-visibility .card.section:last-child{ margin-bottom: 0; }


/* Creation page: spacing between sections */
.page-creation .card.section{ margin-bottom: 22px; }
.page-creation .card.section:last-child{ margin-bottom: 0; }


/* Harmonized media blocks */
.page-creation .shot-img{ box-shadow: 0 14px 28px rgba(0,0,0,.10); }
.page-creation .shot-grid{ align-items: start; }
@media (max-width: 820px){
  .page-creation .shot-grid{ grid-template-columns: 1fr; }
}



/* Examples page (large cards) */
.ex-longlist{ display:flex; flex-direction:column; gap:18px; margin-top:18px; }

.ex-longcard{
  display:grid;
  grid-template-columns: 224px 1fr;
  gap: 22px;
  padding: 18px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 28px rgba(0,0,0,.08);
  overflow:hidden;
}

.ex-longcard-media{ display:flex; align-items:center; justify-content:center; }
.ex-longcard-img{
  width: 100%;
  max-width: 128px;
  aspect-ratio: 1/1;
  border-radius: 999px;
  object-fit: cover;
  background: #f2f2f2;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}

.ex-longcard-name{ margin:0; font-size: 20px; line-height:1.15; }
.ex-longcard-role{ margin-top:6px; color: rgba(0,0,0,.62); font-size: 14px; }

.ex-longcard-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 14px; }
.ex-longcard-label{ font-weight: 700; font-size: 13px; color:#1f4bd8; margin-bottom: 6px; }
.ex-longcard-text{ margin:0; color: rgba(0,0,0,.70); font-size: 14px; line-height: 1.5; }

.ex-longcard-actions{ display:flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }

@media (max-width: 920px){
  .ex-longcard{ grid-template-columns: 1fr; }
  .ex-longcard-media{ justify-content:flex-start; }
  .ex-longcard-img{ max-width: 112px; }
  .ex-longcard-grid{ grid-template-columns: 1fr; }
}



/* Clamp text to 3 lines by default (used on Examples d'i‑Cards) */
.ex-longcard-text.clamp{
  display:-webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.ex-longcard.open .ex-longcard-text.clamp{
  -webkit-line-clamp: initial;
  overflow: visible;
}
/* Examples page: expand/collapse */
.ex-longcard .ex-longcard-avatar{
  width: 64px;
  height: 64px;
  border-radius: 999px;
  object-fit: cover;
}

/* Smooth expand/collapse with max-height transition */
.ex-longcard .ex-more{
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  margin-top: 0;
  transition: max-height .28s ease, opacity .22s ease, margin-top .22s ease;
}
.ex-longcard.open .ex-more{
  max-height: 420px; /* large enough for the additional text */
  opacity: 1;
  margin-top: 10px;
}
.ex-longcard .ex-more p{ margin: 0; }




.section-hero-box .container-guide{padding-bottom:0;}
.section-after-hero .container-guide{padding-top:5px;}


/* Premium page */
.premium-card{padding:28px;border-top:6px solid rgba(219,232,122,.9)}
.premium-title{font-size:24px;line-height:1.2;margin:0 0 10px 0}
.premium-lead{margin:0 0 18px 0;max-width:900px}
.premium-table-wrap{overflow:auto;border-radius:14px}
.premium-table{width:100%;border-collapse:collapse;background:#fff}
.premium-table th,.premium-table td{border:1px solid rgba(0,0,0,.12);padding:14px 12px;vertical-align:middle}
.premium-table thead th{font-weight:700;text-align:left}
.premium-plan{min-width:140px;text-align:center}
.premium-plan.free{background:rgba(219,232,122,.55)}
.premium-plan.premium{background:rgba(10, 40, 90, .92);color:#fff}
.premium-group td{font-weight:800;color:#2c4b00;background:rgba(219,232,122,.25)}
.premium-icon{text-align:center;font-size:28px;font-weight:700}
.premium-icon.ok{color:#2db57b}
.premium-icon.no{color:#e54848}
.premium-price-row td{background:rgba(0,0,0,.02)}
.premium-price{text-align:center;font-size:18px}
.premium-note{margin-top:10px;font-size:12px;color:#1e8f5f;text-align:right}
.premium-h2{margin:20px 0 10px 0;font-size:18px}
.premium-list{margin:0 0 14px 0;padding-left:18px}
.premium-list li{margin:8px 0}
.premium-cta{margin:12px 0 0 0}
.premium-more{margin-top:6px;background:transparent;border:0;padding:0;color:var(--blue);display:inline-flex;gap:6px;align-items:center;cursor:pointer;font-size:12px}
.premium-chevron{transition:transform .2s ease}
.premium-more.open .premium-chevron{transform:rotate(180deg)}
.premium-more-text{max-height:0;opacity:0;overflow:hidden;transition:max-height .25s ease,opacity .2s ease;margin-top:6px;font-size:12pxwhite-space:pre-line;}
.premium-more-text.open{max-height:120px;opacity:1}
@media (min-width: 900px){
  .premium-title{font-size:28px}
}


/* Premium page: match green frame like "Développer votre visibilité" */
.premium-section.guide-hero--green{padding:40px 0 16px 0}
.premium-card--green{border-top:4px solid #b7d94d}
.premium-card--green .premium-title{margin-top:0}
.premium-more-list{margin:8px 0 0 18px;padding:0}
.premium-more-list li{margin:6px 0}


/* Experts page filters */
.experts-filters{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  align-items:flex-end;
  margin: 10px 0 18px;
}
.experts-filter{min-width: 180px}
.experts-filter--actions{min-width:auto}
.experts-label{display:block;font-size:13px;margin:0 0 6px;font-weight:600;color:#1b1f2a}
.experts-select{
  width:100%;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,.15);
  border-radius:12px;
  background:#fff;
  font-size:14px;
}
.expert-loc{margin-top:4px;font-size:13px;opacity:.75}
.experts-empty{margin-top:10px;font-size:14px;opacity:.8}


/* Experts directory */
.expert-card .ex-longcard-actions{margin-top:14px}
.expert-card .expert-loc{color:var(--muted);font-size:14px;margin-top:6px}


/* Force titles to serif (site-wide) */
h1,h2,h3,h4,.h1,.h2,.h3,.hero-title{font-family: var(--font-sans)!important}


/* ===== Font lock (site-wide) =====
   Titles/UI: Inter (same as homepage hero)
   Accent serif (optional): Playfair Display
*/
html, body{
  font-family: var(--font-sans) !important;
}
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,
.hero-title,
.section-title,
.card-title,
.title,
.premium-title,
.examples-title{
  font-family: var(--font-sans) !important;
  letter-spacing: -0.02em;
}
.serif,
.font-serif{
  font-family: var(--font-sans) !important;
}

