/* =========================================================================
   arc144 skin — deep reskin of Digital Ecom Club to match arc144.com.
   Reversible OVERRIDE layer. Structure + French content unchanged. Loaded
   LAST in <head>, so it wins the cascade.

   arc144 language: near-black canvas, mostly WHITE + GREY, teal used only as a
   sparse technical ACCENT (thin beams, ticks, chevrons). Restrained glow.
   Signatures: monospace technical labels, dark glass eyebrow pills, bright
   teal beam lines, corner brackets, edge ruler rails, faint grid.
   All old-site color/glow (gold #fce48f, blue #000212, bright-blue media) is
   neutralized here so everything blends into the new palette.
   ========================================================================= */

:root {
  /* ---- canvas ---- */
  --arc-bg:    #060708;   /* near-black */
  --arc-bg-1:  #0a0c0d;   /* panels */
  --arc-bg-2:  #0e1113;   /* lifted panels */

  /* ---- ink ---- */
  --arc-white: #f4f6f6;
  --arc-grey:  #a6afb1;   /* body copy */
  --arc-dim:   #6b7578;   /* muted / captions */

  /* ---- lines ---- */
  --arc-line:   rgba(255,255,255,0.07);
  --arc-line-2: rgba(255,255,255,0.13);
  --arc-line-3: rgba(255,255,255,0.22);

  /* ---- teal accent (sparse) ---- */
  --arc-teal:        #269dae;
  --arc-teal-bright: #45c2d4;   /* beams / ticks */
  --arc-teal-soft:   rgba(38,157,174,0.14);
  --arc-teal-line:   rgba(69,194,212,0.9);

  /* ---- type ---- */
  --arc-font: 'Geist', 'Helvetica Neue', Arial, sans-serif;
  --arc-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* ---- surfaces ---- */
  --gr-panel: linear-gradient(180deg, rgba(255,255,255,0.035) 0%, rgba(255,255,255,0.006) 45%, rgba(255,255,255,0) 100%), var(--arc-bg-1);
  --gr-glass: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.015) 100%), rgba(11,14,15,0.6);
  --sh-panel: 0 1px 0 0 rgba(255,255,255,0.04) inset, 0 24px 60px -34px rgba(0,0,0,0.9);
  --beam: 0 0 12px rgba(69,194,212,0.55), 0 0 4px rgba(69,194,212,0.85);

  /* ---- motion ---- */
  --ease:      cubic-bezier(0.22, 1, 0.36, 1);
  --ease-main: cubic-bezier(0.6, 0.6, 0, 1);
  --dur-med:  0.6s;
  --dur-half: 0.4s;
  --dur-fast: 0.28s;
}

/* ============================= BASE ============================= */
html, body { background: var(--arc-bg) !important; color: var(--arc-grey); }
body,
p, li, span, a, div, blockquote, figcaption,
input, textarea, select, button, .w-button {
  font-family: var(--arc-font);
}
::selection { background: var(--arc-teal); color: #001014; }
* { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* ambient backdrop: teal wash up top + a soft second beam upper-right for
   depth + deep vignette. Present (arc144 atmosphere) but still restrained. */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(78% 48% at 50% -8%, rgba(38,157,174,0.11) 0%, transparent 60%),
    radial-gradient(48% 44% at 88% 10%, rgba(38,157,174,0.055) 0%, transparent 62%),
    radial-gradient(120% 90% at 50% 118%, rgba(0,0,0,0.5) 0%, transparent 66%);
}
/* faint technical grid, masked to the top so it fades out */
body::after {
  content: "";
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .55;
  background-image:
    linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size: 74px 74px;
  -webkit-mask-image: radial-gradient(135% 100% at 50% 0%, #000 0%, transparent 78%);
  mask-image: radial-gradient(135% 100% at 50% 0%, #000 0%, transparent 78%);
}
/* keep all real content above the fixed backdrop + ruler rails */
.page-wrapper, .navbar, header, main, footer, section, .footer,
.section-pricing, .section-8, .section-2 { position: relative; z-index: 1; }

/* ---- NEUTRALIZE old-site glows / colored washes ---- */
/* NB: `.glow` is the class on <section class="section-2 glow"> — a CONTENT
   container (the "contenu réservé aux membres" feature grid). Only strip its
   colored wash; NEVER opacity:0/display:none it or the whole section vanishes. */
.section-2.glow { background-image: none !important; background-color: transparent !important; box-shadow: none !important; filter: none !important; }
/* old dark-blue hero background media -> clean black canvas (arc144 hero).
   NB: .background-video is the page-level wrapper that HOLDS the navbar + all
   content, so only the inner <video> is hidden — never the wrapper. */
/* display:none (not just opacity:0) so the multi-MB autoplay loop stops
   decoding/downloading — it is never shown in the arc144 look anyway */
.background-video > video, .w-background-video > video { display: none !important; }
.background-video, .w-background-video { background-color: var(--arc-bg) !important; }
.hero-img-wrap, .hero-img-wrap.dif.da { opacity: 0 !important; }

/* =================================================================
   KILL ALL LEGACY BLUE  +  GUARANTEE VISIBILITY
   The old Webflow site is navy (#000212) with blue/purple radial "glow"
   ellipses, AND it ships content at inline opacity:0 revealed by IX2 JS
   that misfires here (whole sections render as an empty background). We
   (a) recolor the design TOKENS that drive many blues, (b) pin every IX2
   element permanently visible, and (c) strip every hardcoded navy fill and
   blue/purple glow. Only backgrounds (and decoration-only opacity) are
   touched, so no content container is ever hidden. */

/* (a) recolor the tokens -> kills all var-driven navy at once */
:root {
  --_apps---colors--popover-dark: #060708 !important;
  --_apps---colors--background-dark: #060708 !important;
  --_apps---colors--card-dark: #0e1214 !important;
  --_apps---colors--muted-dark: #0a0d0e !important;
  --_apps---sidebar--sidebar-dark: #0a0d0e !important;
}

/* (b) VISIBILITY GUARANTEE: defeat the legacy IX2 opacity:0 trap so nothing
   can render as a blank section. motion.js still animates transform for a
   subtle entrance; opacity simply stays pinned at 1. Intentional hides use
   higher-specificity/!important rules elsewhere, so they still win. */
[data-w-id] { opacity: 1 !important; }

/* (c) solid near-black instead of navy #000212 on sections/wrappers */
.main, .section, .section-highlights, .section_timeline, .section-medium,
.section-8, .pricing-content, .pricing-content.popular, .pricing-card,
.stars-curve-bottom, .timeline10_progress-line-cover {
  background-color: var(--arc-bg) !important;
}
/* strip blue/purple radial "glow" ellipses + colored washes */
.container.glow, .section.ef, .section-7, .section-8, .home-intro_section,
.section-2.glow, .section_timeline, .footer, .section-pricing,
.stars-curve-glow, .integrations-center, .integrations-bg-circle {
  background-image: none !important;
}
/* keep a solid near-black base where a glow used to sit */
.footer, .section-pricing, .section-7, .section-8, .section.ef,
.home-intro_section, .section-medium {
  background-color: var(--arc-bg) !important;
}
/* pure-decoration blue glow layers -> gone */
.stars-curve-glow, .stars-curve-glow.stars-curve-glow--blue { opacity: 0 !important; }
.stars-curve-bottom, .stars-curve-bottom.stars-curve-bottom--blue {
  background: transparent !important; border-color: var(--arc-teal-soft) !important;
}
/* hero: drop the blue glow SVG + screenshot gradient washes -> clean canvas */
.hero, .hero.live, .hero.live.jh, .hero.live.jh.lpnew, .hero.live.jh.livedz {
  background-image: none !important; background-color: var(--arc-bg) !important;
}
/* marquee / carousel / timeline edge-fades that faded to navy -> arc bg */
.carousel-overlay { background-image: linear-gradient(90deg, var(--arc-bg), transparent 15% 85%, var(--arc-bg)) !important; }
.timeline10_fade-overlay-bottom { background-image: linear-gradient(transparent, var(--arc-bg)) !important; }
.timeline10_fade-overlay-top { background-image: linear-gradient(var(--arc-bg), transparent) !important; }

/* =========================== TYPOGRAPHY ========================= */
h1, h2, h3, h4, h5, h6,
.hero-heading, .heading-3, .heading-medium, .heading-style-h1,
.title-large, .max-w-title-2, .h4-heading, .dz, .subheading {
  font-family: var(--arc-font) !important;
  color: var(--arc-white) !important;
  -webkit-text-fill-color: var(--arc-white) !important;
  background-image: none !important;
}
h1, h2, h3, .hero-heading, .heading-3, .heading-medium, .heading-style-h1, .max-w-title-2 {
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  font-weight: 600 !important;
}
.hero-heading, .hero-heading.newlp { letter-spacing: -0.03em !important; font-weight: 600 !important; }
/* arc144 fluid type scale — html root left untouched (webflow uses rem
   everywhere); one clamp per tier tracks every breakpoint and stays
   responsive. Endpoints from arc144 computed px @1920: h1~52, h2~42, h3~30. */
h1, .hero-heading, .hero-heading.newlp, .heading-style-h1 {
  font-size: clamp(2.125rem, 0.5rem + 2.9vw, 3.25rem) !important;
}
h2, .heading-3, .dz, .max-w-title-2, .title-large {
  font-size: clamp(1.75rem, 0.65rem + 2.25vw, 2.625rem) !important;
}
h3, h4, .h4-heading, .heading-medium {
  font-size: clamp(1.4rem, 0.7rem + 1.55vw, 1.9rem) !important;
}
/* the hero subheading is body copy dressed as an <h2>: pin it to a calm,
   readable size + weight (higher specificity than the bare-h2 heading rules
   above) so it is never blown up to the heading tier */
h2.subheading, .subheading--hero {
  font-size: clamp(1rem, 0.9rem + 0.45vw, 1.15rem) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
/* long hero/section headings: drop hard <br/> line breaks on phones so the
   larger type never wraps awkwardly (heading content itself is never edited) */
@media (max-width: 560px) {
  .hero-heading br, .dz br, .heading-3 br, h1 br, h2 br { display: none !important; }
}
/* headings are solid white in arc144 (no gold/blue gradient text) */
.gradient-span, .gradient-span-2 {
  background-image: none !important;
  -webkit-text-fill-color: var(--arc-white) !important;
  color: var(--arc-white) !important;
}
/* body / sub copy = calm grey */
.paragraph-regular, .paragraph-small, .paragraph-small-2, .paragraph-large,
.subheading, .subheading--hero {
  color: var(--arc-grey) !important;
  -webkit-text-fill-color: var(--arc-grey) !important;
  background-image: none !important;
  letter-spacing: -0.012em;
  line-height: 1.45;
}
.paragraph-small.text-color-white, .paragraph-regular.center.blue,
.paragraph-small.blanc, .text-color-white {
  color: var(--arc-grey) !important; -webkit-text-fill-color: var(--arc-grey) !important;
}
/* card / FAQ / module titles = clean tight grotesk (white) */
.label-regular, .label-regular-2, .faq-title, .faq-question, .faq-question-2,
.heading-medium {
  font-family: var(--arc-font) !important;
  text-transform: none !important;
  letter-spacing: -0.02em !important;
  font-weight: 500 !important;
  color: var(--arc-white) !important;
  -webkit-text-fill-color: var(--arc-white) !important;
  background-image: none !important;
}

/* ==================== TECHNICAL EYEBROW PILLS =================== */
/* arc144 signature: uppercase MONO tag inside a dark glass rounded-rect */
/* eyebrow pills. NB: .badge is ALSO the Trustpilot widget class, so the section
   eyebrows are scoped with :has(.text-block-5) to never touch that widget. */
.hero-badge-2, .pricing-badge, .badge:has(.text-block-5) {
  display: inline-flex !important; align-items: center; gap: 8px;
  background: rgba(255,255,255,0.035) !important;
  border: 1px solid var(--arc-line-2) !important;
  border-radius: 7px !important;
  padding: 8px 15px !important;
  position: relative;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}
.hero-badge-2 .text-block-2, .pricing-badge .text-block-14, .badge .text-block-5 {
  font-family: var(--arc-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.16em !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  color: var(--arc-white) !important;
  -webkit-text-fill-color: var(--arc-white) !important;
  background-image: none !important;
  white-space: nowrap;
}
.hero-badge-2 .text-block-2::before, .pricing-badge .text-block-14::before, .badge .text-block-5::before { content: "[ "; color: var(--arc-teal-bright); }
.hero-badge-2 .text-block-2::after,  .pricing-badge .text-block-14::after,  .badge .text-block-5::after  { content: " ]"; color: var(--arc-teal-bright); }
/* red pastille -> teal status dot */
.hero-badge-2 .div-block-6 { background: var(--arc-teal-bright) !important; box-shadow: 0 0 8px var(--arc-teal-bright); border-radius: 50%; width: 7px; height: 7px; }
.hero-badge-2 .image-2, .pricing-badge .image-2 { display: none !important; } /* drop old red svg pastille */
/* narrow phones: let long eyebrow labels wrap instead of overflowing the pill */
@media (max-width: 480px) {
  .hero-badge-2 .text-block-2, .pricing-badge .text-block-14, .badge .text-block-5 {
    white-space: normal !important; letter-spacing: 0.12em !important; font-size: 10px !important;
  }
}
/* centered section eyebrows (FAQ, offre, certification) get a teal beam below */
.header-center-small .hero-badge-2, .badge:has(.text-block-5) { margin-bottom: 8px; }
.header-center-small .hero-badge-2::after,
.badge:has(.text-block-5)::after {
  content: ""; position: absolute; left: -18%; right: -18%; bottom: -11px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--arc-teal-line) 24%, var(--arc-teal-line) 76%, transparent 100%);
  box-shadow: var(--beam); border-radius: 2px;
}

/* ===================== BEAMS (section accents) ================= */
/* the thin Webflow "line" elements become bright teal beams w/ soft glow */
.accent-line, .feature-line, .navigation-line, .footer-line {
  background-image: linear-gradient(90deg, transparent 0%, var(--arc-teal-line) 30%, var(--arc-teal-bright) 50%, var(--arc-teal-line) 70%, transparent 100%) !important;
  background-color: transparent !important;
  box-shadow: var(--beam) !important;
  height: 2px !important; opacity: .9;
}
.navigation-line { opacity: .5; }
/* masked hairline frames on cards -> whisper of teal, no glow */
.linear-border {
  background: linear-gradient(180deg, rgba(38,157,174,0.30) 0%, rgba(38,157,174,0) 62%) !important;
  box-shadow: none !important;
}

/* ============================= NAVBAR ========================== */
.navbar, .nav-container, .nav-container-lines {
  background-color: rgba(6, 7, 8, 0.72) !important;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.nav-container-lines.lvie { border-bottom: 1px solid var(--arc-line); }
.image-9 { filter: grayscale(1) brightness(1.7) contrast(1.05); opacity: .92; } /* logo -> monochrome */
.annonce-bar-mobile {
  background: rgba(10,13,14,0.9) !important;
  border-bottom: 1px solid var(--arc-line);
}
.annonce-bar-mobile .text-block-8 {
  color: var(--arc-grey) !important;
  font-family: var(--arc-mono); letter-spacing: 0.04em; font-size: 12px;
}
.annonce-bar-mobile .text-block-8 strong { color: var(--arc-white) !important; }

/* ============================= BUTTONS ========================= */
/* arc144 buttons: dark glass, uppercase MONO, thin border, subtle chevron.
   NOT bright teal. */
.cta-button, .button-primary, .w-button, .button-5, .button-secondary {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
  border-radius: 7px !important;
  font-family: var(--arc-mono) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.11em !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  transition: box-shadow var(--dur-fast) var(--ease),
              transform var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              background-color var(--dur-fast) var(--ease);
  will-change: transform;
}
/* primary = teal-tinted dark glass (a touch more presence) */
.cta-button, .button-primary.w-button, .cta-button.main-new-lp, .cta-button.main.hj {
  background: linear-gradient(180deg, rgba(38,157,174,0.16) 0%, rgba(38,157,174,0.03) 100%), rgba(9,12,13,0.7) !important;
  color: var(--arc-white) !important;
  border: 1px solid rgba(69,194,212,0.30) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08) !important;
}
.cta-button:hover, .button-primary.w-button:hover, .cta-button.main-new-lp:hover, .cta-button.main.hj:hover {
  border-color: rgba(69,194,212,0.6) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 0 22px rgba(38,157,174,0.28) !important;
  transform: translateY(-2px);
}
/* secondary = plain dark glass */
.button-5, .button-5.is-secondary-2, .button-secondary {
  background: var(--gr-glass) !important;
  color: var(--arc-white) !important;
  border: 1px solid var(--arc-line-2) !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.button-5:hover, .button-5.is-secondary-2:hover, .button-secondary:hover {
  border-color: rgba(69,194,212,0.5) !important;
  box-shadow: 0 0 20px rgba(38,157,174,0.20) !important;
  transform: translateY(-2px);
}
/* subtle chevron on the main CTAs */
.cta-button.main-new-lp::after, .cta-button.main.hj::after, .button-5.is-secondary-2::after, .button-primary.w-button::after {
  content: "\203A"; font-family: var(--arc-mono); font-size: 15px; line-height: 1;
  color: var(--arc-teal-bright); opacity: .9; margin-top: -1px;
}
/* arc144 CTA corner-bracket frame (ref: "REJOINDRE LE PROTOCOLE"): four teal
   L-brackets on ONE ::before overlay via the 8-gradient corner trick + near-square body */
.cta-button, .button-primary.w-button, .button-5, .button-secondary {
  border-radius: 2px !important;
  position: relative;
}
.cta-button::before,
.button-primary.w-button::before,
.button-5::before,
.button-secondary::before {
  content: "";
  position: absolute;
  inset: 1px;
  pointer-events: none;
  z-index: 2;
  --bl: 14px;   /* bracket arm length */
  --bt: 1.5px;  /* bracket thickness  */
  --bc: var(--arc-teal-bright);
  background-image:
    linear-gradient(var(--bc), var(--bc)), linear-gradient(var(--bc), var(--bc)),
    linear-gradient(var(--bc), var(--bc)), linear-gradient(var(--bc), var(--bc)),
    linear-gradient(var(--bc), var(--bc)), linear-gradient(var(--bc), var(--bc)),
    linear-gradient(var(--bc), var(--bc)), linear-gradient(var(--bc), var(--bc));
  background-repeat: no-repeat;
  background-position:
    left top, left top, right top, right top,
    left bottom, left bottom, right bottom, right bottom;
  background-size:
    var(--bl) var(--bt), var(--bt) var(--bl),
    var(--bl) var(--bt), var(--bt) var(--bl),
    var(--bl) var(--bt), var(--bt) var(--bl),
    var(--bl) var(--bt), var(--bt) var(--bl);
  opacity: .85;
  filter: drop-shadow(0 0 3px rgba(69,194,212,0.45));
  transition: opacity var(--dur-fast) var(--ease);
}
.cta-button:hover::before,
.button-primary.w-button:hover::before,
.button-5:hover::before,
.button-secondary:hover::before { opacity: 1; }
/* button LABELS were dark navy (#13142e) for the old light buttons -> force
   white so they read on the new dark glass */
.cta-button div, .cta-button span, .cta-button strong,
.button-5 div, .button-5 span,
.button-primary div, .button-primary span, .button-primary strong,
.button-secondary div, .button-secondary span,
.text-block-3, .text-block-3.dif, .text-block-4 {
  color: var(--arc-white) !important;
  -webkit-text-fill-color: var(--arc-white) !important;
  text-shadow: none !important;
}

/* ============================== CARDS ========================== */
.feature-card-small, .pricing-card, .cta_card,
.carousel-item-large, .home-intro_visual-content, .div-block-11,
.cert-card, .cert-comp, .cert-qualiopi, .cert-badge {
  background: var(--gr-panel) !important;
  border: 1px solid var(--arc-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--sh-panel) !important;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: transform var(--dur-fast) var(--ease),
              border-color var(--dur-fast) var(--ease),
              box-shadow var(--dur-fast) var(--ease);
}
.feature-card-small:hover, .pricing-card:hover, .cta_card:hover,
.carousel-item-large:hover, .cert-card:hover {
  transform: translateY(-4px);
  border-color: var(--arc-line-3) !important;
  box-shadow: var(--sh-panel), 0 0 32px rgba(38,157,174,0.18) !important;
}
.carousel-item-large { color: var(--arc-grey) !important; }

/* corner-bracket framing (arc144 motif) on key cards + the hero video */
.feature-card-small, .pricing-card, .cta_card, .cert-card, .div-block-11, .video-2 { position: relative; }
.feature-card-small::before, .feature-card-small::after,
.pricing-card::before, .pricing-card::after,
.cta_card::before, .cta_card::after,
.cert-card::before, .cert-card::after,
.div-block-11::before, .div-block-11::after,
.video-2::before, .video-2::after {
  content: ""; position: absolute; width: 16px; height: 16px; pointer-events: none;
  border: 1.5px solid var(--arc-teal); opacity: .55; z-index: 3;
}
.feature-card-small::before, .pricing-card::before, .cta_card::before,
.cert-card::before, .div-block-11::before, .video-2::before {
  top: 10px; left: 10px; border-right: 0; border-bottom: 0;
}
.feature-card-small::after, .pricing-card::after, .cta_card::after,
.cert-card::after, .div-block-11::after, .video-2::after {
  bottom: 10px; right: 10px; border-left: 0; border-top: 0;
}
.video-2::before, .video-2::after { z-index: 5; }

/* member-card contact rows / dividers */
.wrap-h-xsmall.align-c, .pricing-divider { border-color: var(--arc-line) !important; }
.pricing-divider { background-color: var(--arc-line) !important; }

/* ======================= MEDIA (blend old colors) ============= */
/* the hero video thumbnail is a bright-blue screenshot -> heavily desaturate
   + dim so it reads dark/monochrome and blends into the arc144 canvas */
.dec-video-facade { filter: grayscale(0.85) brightness(0.6) contrast(1.05); }
.dec-video-facade::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit;
  background: linear-gradient(180deg, rgba(6,7,8,0.15) 0%, rgba(6,7,8,0.55) 100%),
              radial-gradient(60% 60% at 50% 45%, rgba(38,157,174,0.10) 0%, transparent 70%);
}
.dec-play { z-index: 2; background: rgba(244,246,246,0.94) !important; }
/* feature / cta imagery -> calmer, desaturated so blue charts blend */
.feature-image img, .cta_background-image { filter: grayscale(0.4) brightness(0.92) contrast(1.03); }
.cta_background-image { opacity: .35 !important; }

/* ========================== TESTIMONIALS ====================== */
.marquee-vertical_gradient-2 {
  background-image: linear-gradient(180deg, var(--arc-bg) 0%, transparent 15%, transparent 85%, var(--arc-bg) 100%) !important;
}
.marquee-vertical_panel, .carousel-overlay, .carousel-wrapper { background-color: transparent !important; }
.carousel-container-lines { position: relative; }
/* baked-in review screenshots -> framed cards on a dark mat, gently desaturated */
.marquee-vertical_img, .marquee-vertical_img-2 {
  border-radius: 10px !important;
  border: 1px solid var(--arc-line-2);
  box-shadow: var(--sh-panel);
  outline: 6px solid #0a0d0f;
  outline-offset: -1px;
  filter: grayscale(0.15) brightness(0.98);
}
/* trustpilot rating badge (real widget) -> keep legible, just calm the frame */
.badge { border-radius: 8px !important; }

/* testimonial video thumbnails -> gently desaturate loud warm tones so the
   colored screenshots settle into the near-black canvas */
.lightbox-link-2 img { filter: grayscale(0.45) brightness(0.9) contrast(1.03); }
/* the play button is a baked-in NAVY circle image -> hide it and draw a
   glass + teal ring play button that matches the arc144 accents. Draw it on
   the CARD (.div-block-26 — a sized 352px box webflow already sets
   position:relative), NOT the lightbox <a>. webflow makes .lightbox-link-2
   position:absolute;inset:0 (so it covers the whole card and stays clickable);
   forcing a different position on that anchor to host the button collapsed it
   and pushed the button to the card's TOP edge (the reported bug). */
.div-block-26 { position: relative; }
.play-btn-2 { opacity: 0 !important; }
.div-block-26::before {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 62px; height: 62px; border-radius: 50%; z-index: 2;
  background: rgba(6,7,8,0.42); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  border: 1px solid rgba(69,194,212,0.55);
  box-shadow: 0 0 22px rgba(38,157,174,0.25); pointer-events: none;
  transition: transform var(--dur-half) var(--ease-main), border-color var(--dur-half) var(--ease-main);
}
.div-block-26::after {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-38%,-50%);
  border-style: solid; border-width: 9px 0 9px 15px; z-index: 2;
  border-color: transparent transparent transparent var(--arc-white);
  pointer-events: none;
}
.div-block-26:hover::before { transform: translate(-50%,-50%) scale(1.08); border-color: var(--arc-teal-bright); }

/* ============================ ACCORDION ======================= */
/* smooth, never-clipped FAQ + module dropdowns (height driven by
   arc144-motion.js so answers always grow to fit — no cutoff) */
.dec-acc { overflow: hidden; }
.dec-acc-toggle { cursor: pointer; -webkit-user-select: none; user-select: none; }
.dec-acc-toggle:focus-visible { outline: 2px solid var(--arc-teal); outline-offset: 2px; }
/* answers hide/show by HEIGHT only (never opacity) — a prior opacity gate used
   a `>` child combinator that didn't match the nested <nav>, so open panels
   expanded but their text stayed invisible. Height + overflow is bulletproof. */
.dec-acc-list {
  overflow: hidden; height: 0;
  transition: height var(--dur-med) var(--ease-main);
}
.faq-answer, .faq-answer-2 { top: 0 !important; padding: 2px 28px 22px 24px !important; }
.faq-icon .plus, .faq-icon .minus { transition: opacity var(--dur-fast) var(--ease-main); }
.faq-icon .minus { opacity: 0 !important; }
.dec-acc.dec-open .faq-icon .plus { opacity: 0 !important; }
.dec-acc.dec-open .faq-icon .minus { opacity: 1 !important; }
.dec-acc { transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.dec-acc:hover { border-color: var(--arc-line-3) !important; }
.dec-acc.dec-open { border-color: rgba(69,194,212,0.35) !important; box-shadow: 0 0 22px rgba(38,157,174,0.14) !important; }
.faq-dropdown-4, .faq-dropdown-2, .faq-dropdown-3 {
  background: var(--gr-panel) !important;
  border: 1px solid var(--arc-line) !important;
  border-radius: 10px !important;
  box-shadow: var(--sh-panel) !important;
}
.faq-answer, .faq-answer-2 { color: var(--arc-grey) !important; }
.faq-answer strong, .faq-answer-2 strong { color: var(--arc-white) !important; }
/* BULLETPROOF answer copy: literal colours + high specificity so the text is
   ALWAYS painted — never inherits webflow's default (`color: var(--_apps---colors--background)`,
   i.e. text = page background = invisible) and never depends on a custom
   property resolving in the visitor's browser. */
.dec-acc .faq-answer, .dec-acc .faq-answer-2,
.dec-acc .faq-answer p, .dec-acc .faq-answer-2 p,
.dec-acc-list p, .faq-dropdown-list p {
  color: #a6afb1 !important; -webkit-text-fill-color: #a6afb1 !important;
  opacity: 1 !important; visibility: visible !important;
}
.dec-acc .faq-answer strong, .dec-acc .faq-answer-2 strong,
.dec-acc-list strong, .faq-dropdown-list strong {
  color: #f4f6f6 !important; -webkit-text-fill-color: #f4f6f6 !important;
}
.faq-icon { color: var(--arc-teal) !important; }
.faq-icon .plus, .faq-icon .minus { filter: grayscale(1) brightness(2.2); }

/* ============================= PRICING ======================== */
.section-pricing { background-image: none !important; background-color: var(--arc-bg) !important; }
.pricing-card.popular, .pricing-content.popular { box-shadow: var(--sh-panel), 0 0 26px rgba(38,157,174,0.14); }

/* ============================== CTA =========================== */
.cta_card { background: var(--gr-panel) !important; }

/* ============================= FOOTER ========================= */
.footer, .footer-main, .footer-container-lines, .container-lines-legal {
  background-color: var(--arc-bg) !important;
}
.footer-link, .footer-contact-link { color: var(--arc-grey) !important; transition: color var(--dur-fast); }
.footer-link:hover, .footer-contact-link:hover { color: var(--arc-white) !important; }

/* ======================== CERTIFICATION ======================= */
.cert-section { color: #e9eef0 !important; font-family: var(--arc-font) !important; }
.cert-badge-k, .cert-label, .cert-kv span {
  color: var(--arc-teal-bright) !important;
  font-family: var(--arc-mono) !important; letter-spacing: 0.12em;
}
.cert-p.big { color: var(--arc-teal-bright) !important; }
.cert-badge, .cert-card, .cert-comp, .cert-qualiopi {
  background: var(--gr-panel) !important; border-color: var(--arc-line) !important; border-radius: 12px !important;
}
.cert-block { border-top-color: var(--arc-line) !important; }
.cert-quote { border-left-color: var(--arc-teal) !important; color: #d7dfe1 !important; }
.cert-links a { color: var(--arc-teal-bright) !important; }
.cert-badge-v, .cert-p b { color: #fff !important; }
.cert-p { color: var(--arc-grey) !important; }

/* ===================== EDGE RULER RAILS (HUD) ================= */
/* decorative vertical scales at the far edges — pure arc144 signature */
.dec-rail {
  position: fixed; top: 108px; bottom: 34px; width: 44px; z-index: 0;
  display: flex; flex-direction: column; justify-content: space-between;
  pointer-events: none; opacity: .5;
}
.dec-rail-left  { left: 0; align-items: flex-start; padding-left: 10px; }
.dec-rail-right { right: 0; align-items: flex-end; padding-right: 10px; }
.dec-tick { position: relative; height: 1px; width: 8px; background: var(--arc-line-3); }
.dec-tick.maj { width: 16px; background: rgba(69,194,212,0.5); }
.dec-tick span {
  position: absolute; top: -6px; font-family: var(--arc-mono); font-size: 9px;
  letter-spacing: 0.06em; color: var(--arc-dim);
}
.dec-rail-left .dec-tick span  { left: 22px; }
.dec-rail-right .dec-tick span { right: 22px; }
@media (max-width: 1200px) { .dec-rail { display: none; } }

/* ===================== SCROLL REVEAL / LOADER ================= */
@media (prefers-reduced-motion: no-preference) {
  .dec-reveal { will-change: opacity, transform;
    transition: opacity var(--dur-med) var(--ease), transform var(--dur-med) var(--ease); }
}

#dec-loader {
  position: fixed; inset: 0; z-index: 99999;
  background: var(--arc-bg);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .6s var(--ease-main);
}
#dec-loader.dec-hide { opacity: 0; pointer-events: none; }

/* arc144 intro TERMINAL card: corner-bracket frame + mono status lines */
.dec-term {
  position: relative;
  min-width: min(560px, 84vw);
  padding: 30px 34px 26px;
  background: rgba(255,255,255,0.015);
  border: 1px solid var(--arc-line-2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.045), 0 30px 90px rgba(0,0,0,0.55);
  opacity: 0; transform: scale(1.045);
  transition: opacity .6s var(--ease-main), transform .6s var(--ease-main);
}
#dec-loader.dec-in .dec-term { opacity: 1; transform: scale(1); }
/* four L-shaped corner brackets (9px arms, white, teal glow) flush to edges */
.dec-term-c {
  position: absolute; width: 11px; height: 11px; border: 1px solid var(--arc-white);
  filter: drop-shadow(0 0 8px rgba(69,194,212,0.35)); pointer-events: none;
}
.dec-c-tl { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.dec-c-tr { top: -1px; right: -1px; border-left: 0; border-bottom: 0; }
.dec-c-bl { bottom: -1px; left: -1px; border-right: 0; border-top: 0; }
.dec-c-br { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.dec-term-list { display: flex; flex-direction: column; gap: 15px; }
.dec-term-row, .dec-term-cta {
  font-family: var(--arc-mono); font-size: 13px; letter-spacing: 0.02em; line-height: 1.4;
  color: var(--arc-white);
  opacity: 0; transform: translateY(7px);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.dec-term-row { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.dec-term-cta { margin-top: 22px; letter-spacing: 0.05em; }
#dec-loader.dec-in .dec-term-row,
#dec-loader.dec-in .dec-term-cta { opacity: 1; transform: none; }
.dec-dim { color: var(--arc-white); opacity: 0.42; }
.dec-ok { color: var(--arc-teal-bright); text-shadow: 0 0 8px rgba(69,194,212,0.4); }
.dec-caret {
  display: inline-block; width: 8px; height: 1.05em; margin-left: 7px; vertical-align: -2px;
  background: var(--arc-teal-bright); box-shadow: 0 0 8px rgba(69,194,212,0.5);
  animation: dec-blink 1s steps(1) infinite;
}
@keyframes dec-blink { 50% { opacity: 0; } }

/* ========================= BENEFITS MARQUEE ==================== */
/* Seamless INFINITE scroll: the markup now holds TWO identical
   .carousel-group tracks; the .carousel is translated 0 -> -50% so group 2
   lands exactly where group 1 began -> perfect loop with no jump. Webflow's
   IX2 (data-w-id / inline opacity:0) was removed from the markup, so this
   pure-CSS animation fully owns the motion and can never stall.
   Per request: SQUARE corners (no rounded contours) on the items. */
.carousel {
  animation: arc-marquee 30s linear infinite;
  will-change: transform;
}
@keyframes arc-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) { .carousel { animation: none !important; } }

/* items: squared technical chips, mono uppercase label, teal check */
.carousel-item-large {
  border-radius: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 11px 22px !important;
  flex: none;
}
.carousel-group { gap: 20px; padding-right: 20px; }
.carousel-item-large:hover {
  transform: none !important;
  box-shadow: var(--sh-panel) !important;
  border-color: var(--arc-line) !important;
}
.carousel-item-large .text-block {
  white-space: nowrap;
  font-family: var(--arc-mono) !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  line-height: 1;
  color: var(--arc-grey) !important;
  -webkit-text-fill-color: var(--arc-grey) !important;
}
.carousel-item-large .icon-x-small-3 { color: var(--arc-teal-bright) !important; }

/* =================================================================
   PHASE 4 — arc144 focal glow / ambiance
   arc144's teal reads as PRESENT but FOCAL: a signature stacked bloom
   keyed off #269dae concentrates on the hero media card, and CTAs/cards
   lift with a soft teal halo on hover. The ambient page wash lives on
   body::before above. Additive box-shadows only — no layout/opacity
   impact, fully reversible. */

/* hero media card: signature arc144 teal bloom + depth shadow */
.div-block-11 {
  box-shadow:
    0 0 96px rgba(38,157,174,0.16),
    0 0 36px rgba(38,157,174,0.12),
    0 30px 72px rgba(0,0,0,0.5) !important;
}

/* =================================================================
   PHASE 5 — scroll reveals (opt-in, JS-armed)
   The [data-w-id]{opacity:1 !important} pin earlier stays PERMANENT so a
   no-JS / broken-JS page can never render a blank section. motion.js adds
   .dec-fade only to data-w-id elements below the fold at load, then .dec-shown
   once they scroll into view. This selector's (0,3,0) !important beats the
   pin's (0,1,0) !important, so armed elements start hidden and fade+rise in;
   un-armed (above-the-fold) elements stay pinned visible. */
[data-w-id].dec-fade {
  transition: opacity .7s cubic-bezier(.22,1,.36,1),
              transform .7s cubic-bezier(.22,1,.36,1);
}
[data-w-id].dec-fade:not(.dec-shown) {
  opacity: 0 !important;
  transform: translateY(24px) !important;
}
