:root{
  --bg:#0f1216;
  --bg-2:#0c121a;
  --panel:#121722;
  --panel-2:#0f1216;

  --text:#F2F4F7;
  --muted:#A3ACBA;
  --muted-2:#7E8796;

  --line:rgba(255,255,255,.08);
  --line-2:rgba(255,255,255,.06);

  --accent:#C4121A;
  --accent-hover:#E02B34;

  --shadow-1:0 8px 24px rgba(0,0,0,.35);
  --shadow-2:0 16px 50px rgba(0,0,0,.45);

  --radius-xl:22px;
  --radius-lg:18px;
  --radius-md:14px;
  --radius-sm:12px;

  --container:1240px;
  --text-max:720px;
  --block-photo-size:clamp(180px,20vw,240px);

  --ease:cubic-bezier(.2,.8,.2,1);
  --motion-fast:180ms;
  --motion-base:240ms;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  margin:0;
  padding:0;
  background:var(--bg) !important;
  color:var(--text) !important;
}

html{
  overflow-x:clip;
}

body{
  overflow-x:clip;
  font-size:17px;
  line-height:1.6;
  background-image:
    radial-gradient(1200px 460px at 50% -12%, rgba(163,172,186,.08), transparent 70%),
    linear-gradient(180deg, var(--bg-2) 0%, #0d131b 46%, var(--bg) 100%);
}

body.has-hero .mobile-cta[data-mobile-cta="true"]{
  display:none !important;
}

.container,
.header__container{
  width:100%;
  max-width:var(--container) !important;
  margin-inline:auto !important;
  padding-inline:32px !important;
}

.section,
.section--tight,
.section--paper,
.section--dark,
main section,
.legal-section{
  padding-top:120px !important;
  padding-bottom:120px !important;
}

.section + .section,
section + section{
  margin-top:0 !important;
}

.section + .section,
section + section{
  position:relative;
}

.section + .section::before,
section + section::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(var(--container),calc(100% - 64px));
  height:1px;
  background:linear-gradient(90deg, rgba(126,135,150,0) 0%, rgba(126,135,150,.34) 16%, rgba(163,172,186,.48) 50%, rgba(126,135,150,.34) 84%, rgba(126,135,150,0) 100%);
  box-shadow:0 0 10px rgba(163,172,186,.12);
  opacity:.96;
  pointer-events:none;
}

.section__head + *,
h2 + .grid,
h2 + .products,
h2 + .faq-list,
h2 + .bestsellers-slider,
.h2 + .grid,
.h2 + .products,
.h2 + .faq-list,
.h2 + .bestsellers-slider{
  margin-top:40px !important;
}

.grid,
.products,
.faq-list,
.bestsellers-slider-track,
.bestsellers__grid,
.footer__grid{
  gap:24px !important;
}

p,
.lead,
.sub,
.small,
.muted,
li{
  color:var(--muted) !important;
  max-width:var(--text-max);
}

p + .btn,
.lead + .btn,
.sub + .btn,
.small + .btn,
.bestsellers__copy p + .bestsellers__actions,
.bestsellers__copy p + .btn,
.hero__panel p + .btn{
  margin-top:28px !important;
}

h1,
.h1{
  font-size:clamp(42px,4vw,64px) !important;
  line-height:1.12 !important;
  letter-spacing:-.02em !important;
  color:var(--text) !important;
}

h2,
.h2,
.faq-category-title{
  font-size:clamp(30px,2.4vw,40px) !important;
  line-height:1.2 !important;
  color:var(--text) !important;
}

h3,
.h3,
.faq-question,
.bestsellers-slider-name,
.product__meta b{
  font-size:22px !important;
  line-height:1.3 !important;
  color:var(--text) !important;
}

a{
  color:var(--text);
  text-decoration:none;
  transition:color var(--motion-base) var(--ease);
}

a[href]{
  position:relative;
}

a[href]::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:1px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--motion-base) var(--ease);
}

a[href]:hover::after,
a[href]:focus-visible::after{
  transform:scaleX(1);
}

.site-header{
  position:sticky;
  top:0;
  z-index:30;
  border-bottom:1px solid var(--line);
  background:rgba(15,17,21,.9) !important;
  backdrop-filter:blur(8px);
}

.header__inner,
.header__container,
.brand{
  min-height:72px !important;
}

.brand,
.brand__logo{
  display:inline-flex !important;
  align-items:center !important;
}

.header__brand,
.header__logo{
  display:inline-flex !important;
  align-items:center !important;
}

.brand{
  overflow:visible !important;
}

.header__brand{
  overflow:visible !important;
}

.brand__logo,
.site-header .brand img,
.header__logo,
.site-header .header__brand img{
  width:auto !important;
  max-width:100% !important;
  max-height:44px !important;
  object-fit:contain !important;
}

[data-theme-toggle],
.theme-toggle,
#theme-toggle,
button[aria-label*="thème" i],
button[aria-label*="theme" i]{
  display:none !important;
}

.site-footer{
  position:relative;
  border-top:0;
  background:var(--panel-2) !important;
}

.site-footer::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(var(--container),calc(100% - 64px));
  height:1px;
  background:linear-gradient(90deg, rgba(126,135,150,0) 0%, rgba(126,135,150,.34) 16%, rgba(163,172,186,.48) 50%, rgba(126,135,150,.34) 84%, rgba(126,135,150,0) 100%);
  box-shadow:0 0 10px rgba(163,172,186,.12);
  pointer-events:none;
}

.site-footer .footer__brand{
  display:flex;
  justify-content:center;
  align-items:center;
}

.site-footer .footer__brand img{
  width:auto !important;
  max-width:100% !important;
  max-height:72px !important;
  object-fit:contain !important;
  display:block !important;
  margin-inline:auto !important;
}

main,
main section,
.section,
.section--tight,
.section--paper,
.section--dark,
.legal-section,
.faq,
.faq-page,
.contact-page,
.concept-page,
.applications-page,
.services-page,
.gamme-page,
.gamme-page,
.estimation-page{
  background:var(--bg) !important;
}

.legal-content,
.legal-section,
.legal-info,
.data-table,
.data-table thead,
.data-table tbody,
.data-table tr,
.data-table th,
.data-table td{
  background:var(--bg) !important;
  color:var(--text) !important;
}

.legal-info,
.data-table{
  border:1px solid var(--line-2) !important;
  border-radius:var(--radius-md) !important;
}

.data-table th,
.data-table td{
  border-color:var(--line-2) !important;
}

.header__nav-link,
.nav__link,
.footer__links a,
.footer__legal a{
  color:var(--muted) !important;
}

.header__nav-link,
.nav__link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding:10px 16px !important;
  border-radius:12px !important;
  border:1px solid transparent !important;
  font-size:15px !important;
  font-weight:500 !important;
  line-height:1 !important;
  background:transparent !important;
  transition:color var(--motion-base) var(--ease),background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease) !important;
}

.header__nav-link::after,
.nav__link::after{
  display:none !important;
}

.header__nav-link:hover,
.nav__link:hover,
.footer__links a:hover,
.footer__legal a:hover,
.header__nav-link.is-active,
.nav__link.is-active{
  color:var(--text) !important;
}

.header__nav-link:hover,
.nav__link:hover{
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(255,255,255,.14) !important;
  transform:translateY(-2px);
}

.header__nav-link.is-active,
.nav__link.is-active{
  background:rgba(255,255,255,.04) !important;
  border-color:rgba(255,255,255,.10) !important;
}

.btn,
a.btn,
button.btn,
.mobile-cta .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  padding:14px 28px;
  border-radius:12px;
  border:1px solid transparent;
  font-weight:600;
  font-size:15px;
  letter-spacing:normal;
  line-height:1.2;
  gap:8px;
  text-align:center;
  cursor:pointer;
  transition:color var(--motion-base) var(--ease),background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease),box-shadow var(--motion-base) var(--ease);
}

.btn--primary,
.mobile-cta .btn--primary{
  background:linear-gradient(135deg,#b02433 0%,#d33a4a 100%);
  color:#fff;
  box-shadow:0 4px 20px rgba(176,36,51,.3);
}

.btn--primary:hover,
.mobile-cta .btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(176,36,51,.5);
}

.btn--ghost,
.btn--dark,
.nav__cta.btn--ghost,
.mobile-cta .btn--ghost,
.mobile-cta .btn--dark{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.10);
  color:#fff;
}

.btn--ghost:hover,
.btn--dark:hover,
.nav__cta.btn--ghost:hover,
.mobile-cta .btn--ghost:hover,
.mobile-cta .btn--dark:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
  transform:translateY(-2px);
}

.card,
.product,
.faq-item,
.bestsellers-slider-item,
.cookie-banner,
.cookie-modal,
.notice,
.table,
.acc,
.concept-card,
.kh-concept .kh-card,
.hero__panel.card,
.concept-wrap,
.section--paper{
  background:var(--panel) !important;
  border:1px solid var(--line-2) !important;
  border-radius:var(--radius-lg) !important;
  box-shadow:none;
}

.card,
.product,
.bestsellers-slider-item,
.concept-card,
.kh-concept .kh-card,
.hero__panel.card,
.notice,
.acc,
.table,
.cookie-banner,
.cookie-modal{
  padding:28px !important;
  transition:transform var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),box-shadow var(--motion-base) var(--ease) !important;
}

.card:hover,
.product:hover,
.bestsellers-slider-item:hover,
.concept-card:hover,
.kh-concept .kh-card:hover,
.hero__panel.card:hover,
.notice:hover,
.acc:hover,
.table:hover{
  transform:translateY(-2px);
  border-color:rgba(196,18,26,.35) !important;
  box-shadow:var(--shadow-1);
}

.page-concept .concept-wrap{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

.page-concept .concept-wrap::after{
  display:none !important;
}

.page-concept .concept-canvas{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:12px 0 !important;
  gap:24px !important;
  align-items:stretch !important;
  overflow:visible !important;
}

.page-concept .concept-hero{
  justify-self:center;
  align-self:center;
  margin-inline:auto;
  max-width:min(420px,48vw);
}

.page-concept .concept-card{
  min-height:170px;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:22px !important;
}

.page-concept .concept-card h2{
  margin:0 0 10px !important;
  font-size:clamp(15px,1.05vw,18px) !important;
  line-height:1.18 !important;
  letter-spacing:.03em;
  text-transform:uppercase;
  max-width:22ch;
  overflow-wrap:anywhere;
  word-break:normal;
}

.page-concept .concept-card p{
  margin:0;
}

.faq-search{
  max-width:820px;
  margin:0 auto;
}

.faq-search-label{
  display:block;
  margin:0 0 10px;
  font-size:.95rem;
  font-weight:600;
  color:var(--text);
}

.faq-search-input{
  width:100%;
  min-height:52px;
  padding:12px 16px;
  border-radius:12px;
  border:1px solid var(--line-2);
  background:var(--panel);
  color:var(--text);
  outline:none;
}

.faq-search-input::placeholder{
  color:var(--muted);
}

.faq-search-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 2px rgba(196,18,26,.2);
}

.faq-search-meta{
  margin:10px 2px 0;
  min-height:1.25rem;
  font-size:.92rem;
  color:var(--muted);
}

.media,
.hero__bg,
.product__img,
.bestsellers-slider-image,
.concept-hero,
.concept-img,
.card--photo,
.concept-canvas{
  background:var(--panel-2) !important;
  border-radius:var(--radius-md) !important;
  overflow:hidden;
}

img,
.product__img img,
.bestsellers-slider-image img,
.media img,
.concept-img img,
.hero__bg img{
  border-radius:var(--radius-md) !important;
  object-fit:cover !important;
}

.hero{
  position:relative;
  overflow:hidden;
  min-height:620px;
}

.hero__inner{
  position:relative;
  z-index:2;
  padding-block:160px !important;
}

.hero__panel,
.hero__panel.card,
.hero .lead,
.hero .sub,
.hero p{
  max-width:680px !important;
}

.hero__overlay{
  background:
    linear-gradient(92deg, rgba(15,17,21,.86) 0%, rgba(15,17,21,.72) 44%, rgba(15,17,21,.46) 72%, rgba(15,17,21,.82) 100%),
    radial-gradient(760px 320px at 20% 32%, rgba(196,18,26,.22), transparent 66%) !important;
}

.hero .btn + .btn,
.hero__panel .btn + .btn,
.hero__panel .bestsellers__actions .btn + .btn{
  margin-left:12px;
}

.hero .btn--ghost,
.hero .btn--secondary,
.hero .btn--outline{
  margin-top:0 !important;
}

.kicker,
.badge,
.hero .chip,
.hero .chips span,
.hero .benefit,
.hero .benefits li{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  width:fit-content;
  max-width:100%;
  flex:0 0 auto;
  min-height:34px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:var(--muted) !important;
}

.bestsellers-slider,
.bestsellers-slider-container,
.bestsellers__slider-wrapper{
  position:relative;
  min-height:560px;
}

.bestsellers-slider{
  overflow:hidden;
}

.bestsellers-slider-track{
  display:flex !important;
  gap:0 !important;
  align-items:stretch;
}

.bestsellers-slider-item{
  flex:0 0 50% !important;
  max-width:50% !important;
  height:100%;
}

.bestsellers-slider-image,
.product__img{
  width:min(100%,var(--block-photo-size));
  aspect-ratio:1/1;
  height:var(--block-photo-size);
  min-height:var(--block-photo-size);
  margin-inline:auto;
  padding:10px;
}

.bestsellers-slider-image img,
.product__img img{
  object-fit:contain !important;
  object-position:center !important;
  image-rendering:auto;
}

.bestsellers-slider-nav{
  display:flex;
  align-items:center;
  gap:12px;
}

.bestsellers-slider-arrow,
.bestsellers-slider-arrow-prev,
.bestsellers-slider-arrow-next{
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  border-radius:999px !important;
  border:1px solid var(--line) !important;
  background:rgba(0,0,0,.35) !important;
  color:var(--text) !important;
  transition:color var(--motion-base) var(--ease),background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease) !important;
}

.bestsellers-slider-arrow:hover,
.bestsellers-slider-arrow-prev:hover,
.bestsellers-slider-arrow-next:hover{
  border-color:var(--accent) !important;
  color:var(--accent) !important;
}

.bestsellers-slider-bullets{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:20px;
}

.bestsellers-slider-bullet{
  width:8px;
  height:8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.18);
  transition:width var(--motion-base) var(--ease),background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease);
}

.bestsellers-slider-bullet.is-active{
  width:20px;
  background:var(--accent) !important;
  border-color:var(--accent) !important;
}

.bestsellers-slider-meta{
  margin:12px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:6px;
}

.bestsellers-slider-meta li{
  max-width:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:13px;
  line-height:1.35;
}

.bestsellers-slider-meta li span{
  color:var(--muted-2);
}

.bestsellers-slider-meta li strong{
  color:var(--text);
  font-weight:600;
  text-align:right;
}

.faq-list{
  border-top:1px solid var(--line-2);
}

.faq-item{
  border:0 !important;
  border-bottom:1px solid var(--line-2) !important;
  border-radius:0 !important;
  padding:24px 0 !important;
  transition:background-color var(--motion-base) var(--ease),border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease) !important;
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    transition-duration:1ms !important;
    animation-duration:1ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }
}

.faq-item:hover,
.faq-item:focus-within{
  background:rgba(255,255,255,.02) !important;
  border-bottom-color:rgba(196,18,26,.35) !important;
  transform:none;
  box-shadow:none;
}

.faq-question,
.faq-question-text,
.faq-icon{
  color:var(--text) !important;
}

.faq-answer,
.faq-answer-content{
  color:var(--muted) !important;
}

:focus-visible,
button:focus-visible,
a:focus-visible,
.btn:focus-visible,
.faq-question:focus-visible{
  outline:2px solid var(--accent) !important;
  outline-offset:4px !important;
}

.product__meta span,
.bestsellers-slider-dimensions,
.bestsellers-slider-tagline,
.small,
.muted{
  color:var(--muted-2) !important;
}

.table th,
.table td{
  border-color:var(--line-2) !important;
}

.back-to-top,
.nav-toggle,
.header__nav-toggle{
  border:1px solid var(--line) !important;
  background:rgba(255,255,255,.03) !important;
  color:var(--text) !important;
  border-radius:var(--radius-sm) !important;
}

html body{
  background-color:var(--bg) !important;
  color:var(--text) !important;
}

html body main,
html body section,
html body .section,
html body .page,
html body .layout,
html body .container-wrap{
  background:transparent !important;
  color:var(--text) !important;
}

html body .card,
html body .panel,
html body .modal,
html body .drawer,
html body .popover,
html body .hero__panel,
html body .hero__panel.card,
html body .card.card--solid,
html body .cookie-modal,
html body .cookie-banner{
  background:var(--panel) !important;
  border-color:var(--line-2) !important;
  color:var(--text) !important;
}

html body .hero__panel h1,
html body .hero__panel h2,
html body .hero__panel h3,
html body .hero__panel .h1,
html body .hero__panel .h2,
html body .hero__panel .h3,
html body .hero__panel p,
html body .hero__panel .sub,
html body .hero__panel .small,
html body .hero__panel .muted,
html body .card.card--solid h1,
html body .card.card--solid h2,
html body .card.card--solid h3,
html body .card.card--solid .h1,
html body .card.card--solid .h2,
html body .card.card--solid .h3,
html body .card.card--solid p,
html body .card.card--solid .sub,
html body .card.card--solid .small,
html body .card.card--solid .muted{
  color:var(--text) !important;
}

html body .hero__panel p,
html body .hero__panel .sub,
html body .hero__panel .small,
html body .hero__panel .muted,
html body .card.card--solid p,
html body .card.card--solid .sub,
html body .card.card--solid .small,
html body .card.card--solid .muted{
  color:var(--muted) !important;
}

.concept-home-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}

.concept-home-head > a.btn,
.concept-home-head > a.btn.btn--ghost{
  margin-top:0 !important;
  flex:0 0 auto;
  white-space:nowrap;
}


html body input,
html body select,
html body textarea,
html body fieldset,
html body .input,
html body .select,
html body .textarea{
  background:var(--panel-2) !important;
  color:var(--text) !important;
  border-color:var(--line) !important;
}

@media (max-width:991px){
  .container,
  .header__container{
    padding-inline:20px !important;
  }

  .site-footer .footer__brand img{
    max-height:60px !important;
  }

  .section,
  .section--tight,
  .section--paper,
  .section--dark,
  main section,
  .legal-section{
    padding-top:80px !important;
    padding-bottom:80px !important;
  }

  .hero__inner{
    padding-block:96px !important;
  }

  .hero{
    min-height:520px;
  }

  .btn,
  a.btn,
  button.btn,
  .mobile-cta .btn{
    width:auto;
  }

  .section + .section::before,
  section + section::before,
  .site-footer::before{
    width:calc(100% - 40px);
  }

  .page-concept .concept-canvas{
    padding:8px 0 !important;
    gap:18px !important;
  }

  .page-concept .concept-hero{
    width:min(100%,420px);
    margin:6px auto;
  }

  .page-concept .concept-card{
    min-height:0;
    padding:20px !important;
  }

  .page-concept .concept-card h2{
    font-size:clamp(14px,4.2vw,16px) !important;
    line-height:1.16 !important;
    max-width:none;
  }

  .concept-home-head{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .concept-home-head > a.btn,
  .concept-home-head > a.btn.btn--ghost{
    flex:0 0 100%;
    width:fit-content;
    margin-top:10px !important;
  }

}

