/*
Theme Name: Hello Elementor Child - NonStop Drive
Theme URI: https://nonstopdrive.ch/
Description: Theme enfant de Hello Elementor pour NonStop Drive.
Author: BPX
Template: hello-elementor
Version: 1.0.2
Text Domain: hello-elementor-child
*/

/* Les polices Sora + Mulish sont chargees globalement via WPCode. */

/* ==========================================================================
   VARIABLES
   ========================================================================== */
:root{
  --nsd-orange:#FF6116;
  --nsd-orange-dark:#E24F0B;
  --nsd-ink:#1A1613;
  --nsd-ink-60:rgba(26,22,19,.62);
  --nsd-cream:#FAF7F3;
  --nsd-white:#FFFFFF;
  --nsd-line:#ECE5DC;
  --nsd-radius:12px;
  --nsd-font-title:'Sora',sans-serif;
  --nsd-font-text:'Mulish',sans-serif;
}

/* ==========================================================================
   BASE
   ========================================================================== */
.nsd-article{
  font-family:var(--nsd-font-text);
  color:var(--nsd-ink);
  background:var(--nsd-white);
  width:100vw;
  margin-left:calc(50% - 50vw);
  padding-top:44px;
}
.nsd-article *,.nsd-article *::before,.nsd-article *::after{box-sizing:border-box;}
.nsd-article .nsd-shell{max-width:1200px;margin:0 auto;padding:0 20px;}

/* ==========================================================================
   EN-TETE
   ========================================================================== */
.nsd-article__head{padding-bottom:34px;}
.nsd-crumbs{font-size:13px;color:var(--nsd-ink-60);margin-bottom:16px;}
.nsd-crumbs a{color:var(--nsd-ink-60);text-decoration:none;}
.nsd-crumbs a:hover{color:var(--nsd-orange);}
.nsd-crumbs span{margin:0 6px;}

.nsd-article__cat{
  display:inline-block;font-family:var(--nsd-font-title);font-size:12px;font-weight:600;
  letter-spacing:.04em;color:var(--nsd-orange);background:rgba(255,97,22,.10);
  padding:6px 12px;border-radius:999px;text-decoration:none;margin-bottom:16px;
}
.nsd-article__cat:hover{background:rgba(255,97,22,.18);}

.nsd-article .nsd-article__title{
  font-family:var(--nsd-font-title);font-weight:700;font-size:clamp(30px,4vw,46px);
  line-height:1.14;letter-spacing:-.02em;margin:0 0 16px;max-width:24ch;color:var(--nsd-ink);
}
.nsd-article__lede{font-size:19px;line-height:1.62;color:var(--nsd-ink-60);max-width:64ch;margin:0 0 20px;}

.nsd-article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;color:var(--nsd-ink-60);}
.nsd-dot{width:4px;height:4px;border-radius:50%;background:var(--nsd-line);display:inline-block;}

/* ==========================================================================
   GRILLE : sommaire a gauche, contenu a droite
   ========================================================================== */
.nsd-article__grid{
  display:grid;grid-template-columns:290px minmax(0,1fr);gap:52px;
  padding-bottom:72px;align-items:start;
}
.nsd-article__body{min-width:0;}
.nsd-article__aside{min-width:0;}
.nsd-aside-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:20px;}

/* Image de une */
.nsd-article__cover{margin:0 0 34px;}
.nsd-article__cover img{display:block;width:100%;height:auto;border-radius:var(--nsd-radius);}
.nsd-article__cover figcaption{font-size:13px;color:var(--nsd-ink-60);margin-top:10px;}

/* ==========================================================================
   PROSE
   ========================================================================== */
.nsd-prose{font-size:17.5px;line-height:1.78;max-width:72ch;}
.nsd-prose > *:first-child{margin-top:0;}
.nsd-prose p{margin:0 0 22px;}
.nsd-prose h2{font-family:var(--nsd-font-title);font-weight:700;font-size:clamp(24px,2.6vw,31px);line-height:1.24;letter-spacing:-.015em;margin:48px 0 16px;scroll-margin-top:110px;color:var(--nsd-ink);}
.nsd-prose h3{font-family:var(--nsd-font-title);font-weight:600;font-size:clamp(19px,2vw,22px);line-height:1.32;margin:34px 0 12px;scroll-margin-top:110px;color:var(--nsd-ink);}
.nsd-prose h4{font-family:var(--nsd-font-title);font-weight:600;font-size:18px;margin:26px 0 10px;color:var(--nsd-ink);}
.nsd-prose a{color:var(--nsd-orange);text-decoration:underline;text-underline-offset:3px;}
.nsd-prose a:hover{color:var(--nsd-orange-dark);}
.nsd-prose ul,.nsd-prose ol{margin:0 0 22px;padding-left:22px;}
.nsd-prose li{margin-bottom:9px;}
.nsd-prose ul li::marker{color:var(--nsd-orange);}
.nsd-prose img{max-width:100%;height:auto;border-radius:var(--nsd-radius);display:block;}
.nsd-prose figure{margin:32px 0;}
.nsd-prose figcaption{font-size:13.5px;color:var(--nsd-ink-60);margin-top:8px;}
.nsd-prose blockquote{
  margin:30px 0;padding:20px 24px;background:var(--nsd-cream);
  border-left:3px solid var(--nsd-orange);border-radius:var(--nsd-radius);
  font-size:18px;line-height:1.7;
}
.nsd-prose blockquote p:last-child{margin-bottom:0;}
.nsd-prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:15.5px;}
.nsd-prose th,.nsd-prose td{border:1px solid var(--nsd-line);padding:12px 14px;text-align:left;}
.nsd-prose th{background:var(--nsd-cream);font-family:var(--nsd-font-title);font-weight:600;}
.nsd-prose hr{border:0;border-top:1px solid var(--nsd-line);margin:44px 0;}

/* ==========================================================================
   SOMMAIRE NUMEROTE
   ========================================================================== */
.nsd-toc--desk{background:var(--nsd-cream);border:1px solid var(--nsd-line);border-radius:var(--nsd-radius);padding:20px 18px;max-height:calc(100vh - 220px);overflow-y:auto;}
.nsd-toc__title{font-family:var(--nsd-font-title);font-size:13px;font-weight:700;letter-spacing:.05em;color:var(--nsd-ink-60);margin:0 0 14px;}
.nsd-toc__list{list-style:none;margin:0;padding:0;counter-reset:nsd-toc;}
.nsd-toc__item{margin:0;}
.nsd-toc__item a{
  position:relative;display:block;padding:9px 8px 9px 36px;border-radius:8px;
  color:var(--nsd-ink-60);text-decoration:none;font-size:14.5px;line-height:1.42;
  transition:background .18s ease,color .18s ease;
}
.nsd-toc__item a::before{
  counter-increment:nsd-toc;content:counter(nsd-toc);
  position:absolute;left:6px;top:9px;width:20px;height:20px;border-radius:50%;
  background:var(--nsd-line);color:var(--nsd-ink-60);
  font-family:var(--nsd-font-title);font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  transition:background .18s ease,color .18s ease;
}
.nsd-toc__item a:hover{background:rgba(26,22,19,.05);color:var(--nsd-ink);}
.nsd-toc__item--h3 a{padding-left:52px;font-size:14px;}
.nsd-toc__item--h3 a::before{left:22px;}
.nsd-toc__item.is-active a{background:var(--nsd-white);color:var(--nsd-ink);font-weight:600;box-shadow:0 1px 3px rgba(26,22,19,.06);}
.nsd-toc__item.is-active a::before{background:var(--nsd-orange);color:var(--nsd-white);}

/* Sommaire mobile */
.nsd-toc--mobile{display:none;border:1px solid var(--nsd-line);border-radius:var(--nsd-radius);background:var(--nsd-cream);margin-bottom:30px;overflow:hidden;}
.nsd-toc__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;cursor:pointer;font-family:var(--nsd-font-title);font-weight:600;font-size:15px;
  white-space:normal;
}
.nsd-toc__head span{white-space:normal;}
.nsd-toc__chev{width:20px;height:20px;flex:0 0 20px;transition:transform .22s ease;}
.nsd-toc--mobile.is-open .nsd-toc__chev{transform:rotate(180deg);}
.nsd-toc--mobile .nsd-toc__list{padding:0 12px 14px;}

/* ==========================================================================
   CTA LATERAL
   ========================================================================== */
.nsd-aside-cta{background:var(--nsd-ink);border-radius:var(--nsd-radius);padding:22px 20px;text-align:left;}
.nsd-aside-cta__title{font-family:var(--nsd-font-title);font-weight:700;font-size:17px;line-height:1.3;color:var(--nsd-white);margin:0 0 8px;}
.nsd-aside-cta__text{font-size:14px;line-height:1.55;color:rgba(255,255,255,.68);margin:0 0 16px;}
.nsd-aside-cta__link{display:block;text-align:center;margin-top:12px;font-size:13.5px;color:rgba(255,255,255,.68);text-decoration:underline;text-underline-offset:3px;}
.nsd-aside-cta__link:hover{color:var(--nsd-white);}

/* ==========================================================================
   BOUTONS
   ========================================================================== */
.nsd-article .nsd-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--nsd-font-title);font-weight:600;font-size:15.5px;
  background:var(--nsd-orange);color:var(--nsd-white);text-decoration:none;
  padding:13px 24px;border-radius:var(--nsd-radius);border:0;cursor:pointer;
  transition:background .18s ease,transform .18s ease;
}
.nsd-article .nsd-btn:hover{background:var(--nsd-orange-dark);color:var(--nsd-white);transform:translateY(-1px);}
.nsd-article .nsd-btn--full{width:100%;}
.nsd-article .nsd-btn--sm{padding:11px 20px;font-size:14.5px;}
.nsd-article .nsd-btn--ghost{background:transparent;color:var(--nsd-ink);border:1px solid var(--nsd-line);}
.nsd-article .nsd-btn--ghost:hover{background:var(--nsd-ink);color:var(--nsd-white);border-color:var(--nsd-ink);}

/* ==========================================================================
   TAGS
   ========================================================================== */
.nsd-tags{display:flex;flex-wrap:wrap;gap:8px;margin:40px 0 0;}
.nsd-tags a{font-size:13.5px;color:var(--nsd-ink-60);background:var(--nsd-cream);border:1px solid var(--nsd-line);border-radius:999px;padding:6px 14px;text-decoration:none;}
.nsd-tags a:hover{border-color:var(--nsd-orange);color:var(--nsd-orange);}

/* ==========================================================================
   CTA DE FIN
   ========================================================================== */
.nsd-cta{background:var(--nsd-cream);border:1px solid var(--nsd-line);border-radius:var(--nsd-radius);padding:34px;margin-top:44px;}
.nsd-article .nsd-cta__title{font-family:var(--nsd-font-title);font-weight:700;font-size:clamp(21px,2.4vw,26px);line-height:1.25;margin:0 0 10px;}
.nsd-cta__text{color:var(--nsd-ink-60);margin:0 0 22px;}
.nsd-cta__actions{display:flex;flex-wrap:wrap;gap:12px;}

/* ==========================================================================
   AUTRES ARTICLES
   ========================================================================== */
.nsd-related{background:var(--nsd-cream);padding:64px 0;border-top:1px solid var(--nsd-line);}
.nsd-related__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:30px;}
.nsd-article .nsd-related__title{font-family:var(--nsd-font-title);font-weight:700;font-size:clamp(23px,2.6vw,30px);margin:0;}
.nsd-related__all{font-family:var(--nsd-font-title);font-weight:600;font-size:14.5px;color:var(--nsd-orange);text-decoration:none;}
.nsd-related__all:hover{color:var(--nsd-orange-dark);text-decoration:underline;text-underline-offset:3px;}
.nsd-related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.nsd-card{background:var(--nsd-white);border:1px solid var(--nsd-line);border-radius:var(--nsd-radius);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;}
.nsd-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(26,22,19,.08);}
.nsd-card__link{text-decoration:none;color:inherit;display:block;}
.nsd-card__media{aspect-ratio:16/9;background:var(--nsd-line);}
.nsd-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.nsd-card__body{padding:18px 20px 22px;}
.nsd-card__cat{display:inline-block;font-family:var(--nsd-font-title);font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--nsd-orange);margin-bottom:8px;}
.nsd-article .nsd-card__title{font-family:var(--nsd-font-title);font-weight:600;font-size:17.5px;line-height:1.35;margin:0 0 8px;}
.nsd-card__meta{font-size:13.5px;color:var(--nsd-ink-60);margin:0;}

/* ==========================================================================
   BARRE DE PROGRESSION
   ========================================================================== */
.nsd-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999;pointer-events:none;}
.nsd-progress span{display:block;height:100%;width:0;background:var(--nsd-orange);transition:width .1s linear;}

/* ==========================================================================
   BARRE CTA STICKY
   ========================================================================== */
.nsd-stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:9998;
  transform:translateY(110%);opacity:0;visibility:hidden;
  transition:transform .3s ease,opacity .3s ease,visibility .3s ease;
}
.nsd-stickybar.is-visible{transform:translateY(0);opacity:1;visibility:visible;}
.nsd-stickybar__inner{
  max-width:1200px;margin:0 auto 16px;padding:14px 18px;
  display:flex;align-items:center;gap:18px;
  background:var(--nsd-ink);border-radius:var(--nsd-radius);
  box-shadow:0 12px 34px rgba(26,22,19,.22);
}
.nsd-stickybar__txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.nsd-stickybar__txt strong{font-family:var(--nsd-font-title);font-weight:700;font-size:15.5px;color:var(--nsd-white);}
.nsd-stickybar__txt span{font-size:13.5px;color:rgba(255,255,255,.66);}
.nsd-stickybar__close{
  flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:50%;
  background:rgba(255,255,255,.12);color:var(--nsd-white);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .18s ease;
}
.nsd-stickybar__close:hover{background:rgba(255,255,255,.24);}
.nsd-stickybar__close svg{width:16px;height:16px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1100px){
  .nsd-article__grid{grid-template-columns:1fr;gap:0;}
  .nsd-article__aside{display:none;}
  .nsd-toc--mobile{display:block;}
  .nsd-related__grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:768px){
  .nsd-article{padding-top:28px;}
  .nsd-article__head{padding-bottom:26px;}
  .nsd-prose{font-size:17px;}
  .nsd-article__cover{margin-bottom:26px;}
  .nsd-related{padding:48px 0;}
  .nsd-related__grid{grid-template-columns:1fr;}
  .nsd-cta{padding:26px 20px;}
  .nsd-cta__actions{flex-direction:column;}
  .nsd-article .nsd-cta__actions .nsd-btn{width:100%;}

  .nsd-stickybar__inner{margin:0;border-radius:0;padding:11px 14px;gap:12px;}
  .nsd-stickybar__txt span{display:none;}
  .nsd-stickybar__txt strong{font-size:14.5px;}
  .nsd-article .nsd-btn--sm{padding:11px 16px;font-size:14px;white-space:nowrap;}
  .nsd-stickybar__close{flex:0 0 28px;width:28px;height:28px;}
}

@media (max-width:420px){
  .nsd-stickybar__txt strong{font-size:13.5px;}
}