/*
 * LoomWire — styles.css  v3
 * Engineering Portal — Full Redesign
 * ─────────────────────────────────────────────
 * Changelog v3:
 *  - IBM Plex Mono added as utility/mono face
 *  - Scroll progress bar (native CSS scroll-driven)
 *  - Hero redesigned around animated harness schematic
 *  - Darker navy (#091220) replaces #0D1B2E throughout
 *  - Copper system refined: 5 copper values
 *  - Section transitions use clip-path reveals
 *  - Card grid: tighter gaps, monospace meta labels
 *  - All touch targets ≥44px
 *
 * TABLE OF CONTENTS
 *  1.  Tokens & Reset
 *  2.  Base Typography
 *  3.  Layout Utilities
 *  4.  Scroll Progress Bar
 *  5.  Navigation
 *  6.  Hero
 *  7.  Harness Schematic SVG
 *  8.  Banner Strip
 *  9.  Services
 * 10.  Why LoomWire
 * 11.  Sectors
 * 12.  Process
 * 13.  Technical Library
 * 14.  Article Cards
 * 15.  Pagination
 * 16.  Contact
 * 17.  Footer
 * 18.  Quote Wizard
 * 19.  Language System
 * 20.  Responsive
 * 21.  Reduced Motion
 */

/* ═══════════════════════════════════════════════
   1. TOKENS & RESET
═══════════════════════════════════════════════ */
:root {
  /* Navy scale — darker than v2 */
  --navy-deep:  #060E1A;
  --navy:       #091220;
  --navy-mid:   #0F1E35;
  --navy-lift:  #162440;
  --slate:      #243450;

  /* Copper system */
  --cu-dk:   #7A4A1E;
  --cu:      #B87333;
  --cu-mid:  #CE8E55;
  --cu-lt:   #E7B576;
  --cu-dim:  rgba(184,115,51,.12);
  --cu-glow: rgba(184,115,51,.06);

  /* Neutrals */
  --white:    #FFFFFF;
  --surface:  #F4F2EE;
  --border:   #E2E4EA;
  --line:     #C4C9D6;
  --muted:    #7A8499;
  --body:     #464F63;
  --heading:  #131A27;

  /* Semantic */
  --green: #2C7A47;
  --red:   #C43030;

  /* Type */
  --f-display: "Barlow Condensed", sans-serif;
  --f-body:    "Inter", sans-serif;
  --f-mono:    "IBM Plex Mono", "Courier New", monospace;

  /* Type scale */
  --ts-xs:   .68rem;
  --ts-sm:   .8rem;
  --ts-base: .95rem;
  --ts-md:   1.05rem;
  --ts-lg:   1.25rem;

  /* Spacing */
  --sp-1:.25rem; --sp-2:.5rem;  --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.25rem;--sp-6:1.5rem; --sp-8:2rem;   --sp-10:2.5rem;
  --sp-12:3rem;  --sp-16:4rem;

  /* Motion */
  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast:160ms; --t-base:260ms; --t-slow:420ms;

  /* Shadow */
  --sh-xs:0 1px 3px rgba(0,0,0,.06);
  --sh-sm:0 2px 8px rgba(0,0,0,.09);
  --sh-md:0 4px 20px rgba(0,0,0,.12);
  --sh-lg:0 12px 40px rgba(0,0,0,.16);
  --sh-xl:0 24px 64px rgba(0,0,0,.20);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;scrollbar-gutter:stable;}
body{
  font-family:var(--f-body);
  font-size:var(--ts-base);
  line-height:1.65;
  color:var(--body);
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
:focus-visible{outline:2px solid var(--cu);outline-offset:3px;}


/* ═══════════════════════════════════════════════
   2. BASE TYPOGRAPHY
═══════════════════════════════════════════════ */
.label{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--f-mono);
  font-size:var(--ts-xs);font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--cu);
}
.label::before{content:'';width:20px;height:1px;background:var(--cu);flex-shrink:0;}
.label--light{color:var(--cu-mid);}
.label--light::before{background:var(--cu-mid);}

.section-title{
  font-family:var(--f-display);
  font-size:clamp(1.85rem,3vw,2.7rem);
  font-weight:900;color:var(--heading);
  line-height:1.05;letter-spacing:-.015em;
  margin-bottom:var(--sp-4);
}
.section-title--light{color:var(--white);}

.rule{display:block;width:40px;height:2px;background:var(--cu);border:none;margin:var(--sp-4) 0 var(--sp-5);}

.section-lead{
  font-size:var(--ts-md);font-weight:300;
  color:var(--body);line-height:1.82;max-width:580px;
}
.section-lead--light{color:rgba(255,255,255,.6);}


/* ═══════════════════════════════════════════════
   3. LAYOUT UTILITIES
═══════════════════════════════════════════════ */
.container{max-width:1340px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem);}
.section{padding:clamp(4rem,7vw,7.5rem) 0;}
.section--surface{background:var(--surface);}
.section--navy  {background:var(--navy);}
.section--slate {background:var(--slate);}
.section--white {background:var(--white);}
.section-header{margin-bottom:clamp(2.5rem,4vw,4rem);}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--f-mono);font-size:var(--ts-xs);font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  padding:13px 26px;border:none;cursor:pointer;
  min-height:44px;white-space:nowrap;
  transition:background var(--t-base) var(--ease),
             color var(--t-base) var(--ease),
             transform var(--t-fast) var(--ease),
             box-shadow var(--t-base) var(--ease);
}
.btn--primary{background:var(--cu);color:var(--white);}
.btn--primary:hover{background:var(--cu-mid);transform:translateY(-2px);box-shadow:0 8px 24px rgba(184,115,51,.3);}
.btn--ghost{background:transparent;color:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.2);}
.btn--ghost:hover{border-color:rgba(184,115,51,.5);color:var(--white);background:rgba(184,115,51,.07);}
.btn--dark{background:var(--navy);color:var(--white);}
.btn--dark:hover{background:var(--cu);}
.btn--sm{font-size:.62rem;padding:9px 18px;min-height:36px;}


/* ═══════════════════════════════════════════════
   4. SCROLL PROGRESS BAR
═══════════════════════════════════════════════ */
.scroll-progress{
  position:fixed;top:0;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg,var(--cu),var(--cu-lt));
  transform-origin:left;
  transform:scaleX(0);
  z-index:9999;
  /* Native CSS scroll-driven animation */
  animation:scaleProgress linear;
  animation-timeline:scroll(root);
}
@keyframes scaleProgress{to{transform:scaleX(1);}}


/* ═══════════════════════════════════════════════
   5. NAVIGATION
═══════════════════════════════════════════════ */
.nav{
  position:fixed;inset-block-start:0;inset-inline:0;
  z-index:900;height:70px;
  background:rgba(6,14,26,.96);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(184,115,51,.14);
  transition:height var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease);
}
.nav.is-scrolled{
  height:60px;
  box-shadow:0 4px 32px rgba(0,0,0,.35);
  border-bottom-color:rgba(184,115,51,.22);
}
.nav__inner{
  height:100%;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:2rem;
}
.nav__logo img{height:38px;width:auto;transition:height var(--t-base) var(--ease);}
.nav.is-scrolled .nav__logo img{height:32px;}

.nav__menu{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(.75rem,2vw,2rem);list-style:none;
}
.nav__menu a{
  font-family:var(--f-mono);font-size:.65rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
  padding:.375rem 0;
  position:relative;
  display:inline-flex;align-items:center;min-height:44px;
  transition:color var(--t-fast) var(--ease);
}
.nav__menu a::after{
  content:'';position:absolute;bottom:4px;left:0;
  width:0;height:1px;background:var(--cu-mid);
  transition:width var(--t-base) var(--ease);
}
.nav__menu a:hover,.nav__menu a.is-active{color:var(--white);}
.nav__menu a:hover::after,.nav__menu a.is-active::after{width:100%;}

.nav__actions{display:flex;align-items:center;gap:.875rem;flex-shrink:0;}

.lang-toggle{display:flex;border:1px solid rgba(184,115,51,.28);overflow:hidden;}
.lang-btn{
  background:transparent;color:rgba(255,255,255,.45);
  font-family:var(--f-mono);font-size:.65rem;font-weight:600;
  letter-spacing:.1em;padding:6px 12px;border:none;cursor:pointer;
  min-height:36px;
  transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.lang-btn.is-active{background:var(--cu);color:var(--white);}
.lang-btn:not(.is-active):hover{background:var(--cu-dim);color:var(--white);}

.nav__cta{font-size:.65rem;padding:9px 18px;min-height:38px;}
.nav__hamburger{
  display:none;background:none;border:none;
  color:rgba(255,255,255,.65);font-size:1.3rem;cursor:pointer;
  padding:var(--sp-2);min-width:44px;min-height:44px;
  align-items:center;justify-content:center;
}


/* ═══════════════════════════════════════════════
   6. HERO
═══════════════════════════════════════════════ */
.hero{
  min-height:100vh;background:var(--navy-deep);
  display:grid;grid-template-rows:1fr auto;
  position:relative;overflow:hidden;padding-top:70px;
}

/* Fine engineering grid */
.hero__bg{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(184,115,51,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(184,115,51,.05) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 85% 85% at 50% 40%, black 20%, transparent 100%);
}

/* Radial copper bloom behind schematic */
.hero__bloom{
  position:absolute;
  top:50%;right:0;
  width:560px;height:560px;
  transform:translate(10%,-50%);
  background:radial-gradient(circle, rgba(184,115,51,.1) 0%, transparent 70%);
  pointer-events:none;
}

.hero__content{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,580px);
  gap:clamp(2rem,4vw,4rem);
  align-items:center;
  padding:clamp(3rem,6vh,5rem) 0 3rem;
}

/* Left: copy */
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:.75rem;
  font-family:var(--f-mono);font-size:.62rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--cu-mid);margin-bottom:var(--sp-6);
  border:1px solid rgba(184,115,51,.25);
  padding:6px 14px;
}
.hero__eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--cu);animation:pulse-dot 2s ease-in-out infinite;}
@keyframes pulse-dot{0%,100%{opacity:.4;transform:scale(.7);}50%{opacity:1;transform:scale(1.2);}}

.hero__headline{
  font-family:var(--f-display);
  font-size:clamp(3rem,6vw,5.2rem);
  font-weight:900;color:var(--white);
  line-height:.96;letter-spacing:-.02em;
  text-transform:uppercase;
  margin-bottom:var(--sp-6);
}
.hero__headline mark{background:none;color:var(--cu-lt);}

.hero__sub{
  font-size:clamp(.92rem,1.3vw,1.05rem);font-weight:300;
  color:rgba(255,255,255,.58);line-height:1.8;
  max-width:500px;margin-bottom:var(--sp-10);
}

.hero__actions{
  display:flex;gap:var(--sp-4);flex-wrap:wrap;
  align-items:center;margin-bottom:var(--sp-10);
}

.hero__stats{
  display:flex;gap:var(--sp-8);flex-wrap:wrap;
  padding-top:var(--sp-8);
  border-top:1px solid rgba(255,255,255,.07);
}
.stat__number{
  font-family:var(--f-display);font-size:2.2rem;font-weight:900;
  color:var(--white);line-height:1;margin-bottom:var(--sp-1);
}
.stat__number span{color:var(--cu-mid);}
.stat__label{
  font-family:var(--f-mono);font-size:.58rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}

/* Right: harness schematic */
.hero__schematic{
  position:relative;
  display:flex;align-items:center;justify-content:center;
}


/* ═══════════════════════════════════════════════
   7. HARNESS SCHEMATIC SVG
   All animation keyframes for the live schematic
═══════════════════════════════════════════════ */
@keyframes flow-fast  {to{stroke-dashoffset:-240;}}
@keyframes flow-med   {to{stroke-dashoffset:-200;}}
@keyframes flow-slow  {to{stroke-dashoffset:-160;}}
@keyframes pin-pulse  {0%,100%{opacity:.3;transform:scale(.6);}50%{opacity:1;transform:scale(1.2);}}
@keyframes sweep      {0%{transform:translateX(-15%);opacity:0;}10%{opacity:1;}90%{opacity:1;}100%{transform:translateX(1200%);opacity:0;}}
@keyframes sch-fade   {from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
@keyframes blink-led  {0%,100%{opacity:.9;}50%{opacity:.25;}}

.sch-wrap{
  position:relative;
  background:linear-gradient(145deg,var(--navy-mid),var(--navy-deep));
  border:1px solid rgba(184,115,51,.25);
  padding:clamp(.875rem,2vw,1.5rem);
  overflow:hidden;
  animation:sch-fade .9s var(--ease) both;
}
/* Corner brackets */
.sch-wrap::before,.sch-wrap::after{
  content:'';position:absolute;width:14px;height:14px;
  border-color:rgba(206,142,85,.55);border-style:solid;
}
.sch-wrap::before{top:8px;left:8px;border-width:1.5px 0 0 1.5px;}
.sch-wrap::after {bottom:8px;right:8px;border-width:0 1.5px 1.5px 0;}
/* Second pair of corners via child */
.sch-corners::before,.sch-corners::after{
  content:'';position:absolute;width:14px;height:14px;
  border-color:rgba(206,142,85,.55);border-style:solid;
}
.sch-corners::before{top:8px;right:8px;border-width:1.5px 1.5px 0 0;}
.sch-corners::after {bottom:8px;left:8px;border-width:0 0 1.5px 1.5px;}

/* Sweep highlight — runs once on load */
.sch-sweep{
  position:absolute;top:0;bottom:0;width:140px;
  background:linear-gradient(90deg,transparent,rgba(206,142,85,.12),transparent);
  pointer-events:none;mix-blend-mode:screen;
  animation:sweep 3.5s var(--ease) 0.5s 1 forwards;
  opacity:0;
}

.sch-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem;
}
.sch-status{
  display:flex;align-items:center;gap:.5rem;
  font-family:var(--f-mono);font-size:.58rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cu-mid);
}
.sch-led{
  width:6px;height:6px;border-radius:50%;background:#45B06E;
  animation:blink-led 1.8s ease-in-out infinite;
}
.sch-fig{
  font-family:var(--f-mono);font-size:.58rem;
  letter-spacing:.12em;color:rgba(255,255,255,.3);
}
.sch-footer{
  display:flex;justify-content:space-between;align-items:center;
  gap:1rem;flex-wrap:wrap;
  margin-top:.75rem;padding-top:.75rem;
  border-top:1px solid rgba(255,255,255,.07);
  font-family:var(--f-mono);font-size:.58rem;
  letter-spacing:.08em;color:rgba(255,255,255,.35);
}
.sch-footer-tag{color:var(--cu-mid);}


/* ═══════════════════════════════════════════════
   8. BANNER STRIP
═══════════════════════════════════════════════ */
.hero__bar{
  position:relative;z-index:2;
  border-top:1px solid rgba(255,255,255,.04);
  background:rgba(0,0,0,.18);
}
.hero__bar-inner{
  display:flex;align-items:center;gap:2rem;
  flex-wrap:wrap;padding:var(--sp-4) 0;
}
.hero__badge{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--f-mono);font-size:.6rem;font-weight:500;
  letter-spacing:.08em;color:rgba(255,255,255,.38);
}
.hero__badge::before{
  content:'✓';width:16px;height:16px;
  background:rgba(184,115,51,.15);color:var(--cu-mid);
  font-size:.58rem;display:flex;align-items:center;justify-content:center;
  border-radius:50%;flex-shrink:0;
}

.banner-strip{line-height:0;overflow:hidden;}
.banner-strip img{width:100%;max-height:340px;object-fit:cover;object-position:center;}


/* ═══════════════════════════════════════════════
   9. SERVICES
═══════════════════════════════════════════════ */
.services-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.5px;background:var(--line);border:1.5px solid var(--line);
}
.service-card{
  background:var(--white);
  padding:2.75rem 2.25rem;
  position:relative;overflow:hidden;
  transition:background var(--t-base) var(--ease);
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--cu),var(--cu-lt));
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--t-base) var(--ease);
}
.service-card:hover{background:var(--navy);}
.service-card:hover::before{transform:scaleX(1);}
.service-card:hover .svc-num {color:rgba(184,115,51,.1);}
.service-card:hover .svc-name{color:var(--white);}
.service-card:hover .svc-desc{color:rgba(255,255,255,.5);}
.service-card:hover .svc-icon{background:rgba(184,115,51,.1);border-color:rgba(184,115,51,.22);}

.svc-num{
  font-family:var(--f-display);font-size:4rem;font-weight:900;
  color:var(--border);line-height:1;
  position:absolute;top:1.25rem;right:1.75rem;
  transition:color var(--t-base) var(--ease);user-select:none;
}
.svc-icon{
  width:48px;height:48px;background:var(--surface);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
  margin-bottom:var(--sp-6);
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease);
}
.svc-name{
  font-family:var(--f-display);font-size:1.2rem;font-weight:700;
  color:var(--navy);text-transform:uppercase;letter-spacing:.04em;
  line-height:1.2;margin-bottom:var(--sp-4);
  transition:color var(--t-base) var(--ease);
}
.svc-desc{
  font-size:var(--ts-sm);color:var(--body);line-height:1.78;
  transition:color var(--t-base) var(--ease);
}


/* ═══════════════════════════════════════════════
   10. WHY LOOMWIRE
═══════════════════════════════════════════════ */
.why-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,7rem);align-items:start;}
.why-pillars{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);margin-top:var(--sp-4);}
.pillar{
  padding:var(--sp-5);
  border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease);
}
.pillar:hover{background:rgba(184,115,51,.07);border-color:rgba(184,115,51,.22);}
.pillar__icon{font-size:1.3rem;margin-bottom:var(--sp-3);}
.pillar__title{
  font-family:var(--f-display);font-size:.92rem;font-weight:700;
  color:var(--white);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-2);
}
.pillar__text{font-size:var(--ts-sm);font-weight:300;color:rgba(255,255,255,.42);line-height:1.72;}

.why-feature{
  padding:var(--sp-6) 0;border-bottom:1px solid rgba(255,255,255,.06);
  display:flex;gap:var(--sp-5);align-items:flex-start;
}
.why-feature:first-child{padding-top:0;}
.why-feature__num{
  font-family:var(--f-display);font-size:1.8rem;font-weight:900;
  color:rgba(184,115,51,.22);line-height:1;flex-shrink:0;width:2.2rem;
}
.why-feature__title{
  font-family:var(--f-mono);font-size:.72rem;font-weight:600;
  color:var(--cu-mid);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--sp-2);
}
.why-feature__text{font-size:var(--ts-sm);font-weight:300;color:rgba(255,255,255,.48);line-height:1.78;}


/* ═══════════════════════════════════════════════
   11. SECTORS
═══════════════════════════════════════════════ */
.sectors-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:1px;background:var(--surface);border:1px solid var(--surface);
  margin-top:var(--sp-12);
}
.sector-card{
  background:var(--white);padding:1.625rem 1.875rem;
  display:flex;align-items:center;gap:var(--sp-4);min-height:60px;
  transition:background var(--t-base) var(--ease);
}
.sector-card:hover{background:var(--navy);}
.sector-card:hover .sector-dot {background:var(--cu-lt);transform:scale(1.5);}
.sector-card:hover .sector-name{color:var(--white);}
.sector-dot{
  width:8px;height:8px;background:var(--cu);flex-shrink:0;
  transition:background var(--t-base) var(--ease),transform var(--t-fast) var(--ease);
}
.sector-name{
  font-family:var(--f-display);font-size:.92rem;font-weight:600;
  color:var(--navy);text-transform:uppercase;letter-spacing:.05em;
  transition:color var(--t-base) var(--ease);
}


/* ═══════════════════════════════════════════════
   12. PROCESS
═══════════════════════════════════════════════ */
.process-steps{
  display:grid;grid-template-columns:repeat(4,1fr);
  position:relative;margin-top:var(--sp-12);
}
.process-steps::before{
  content:'';position:absolute;top:19px;left:5%;right:5%;height:1px;
  background:linear-gradient(90deg,transparent,var(--cu),transparent);opacity:.3;
}
.process-step{padding:0 var(--sp-5) 0 0;}
.process-step__marker{
  width:38px;height:38px;background:var(--slate);border:2px solid var(--cu);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:var(--sp-6);position:relative;z-index:1;
}
.process-step__marker span{
  font-family:var(--f-display);font-size:.78rem;font-weight:900;color:var(--cu-mid);
}
.process-step__label{
  font-family:var(--f-mono);font-size:.58rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--cu);margin-bottom:var(--sp-2);
}
.process-step__title{
  font-family:var(--f-display);font-size:1.1rem;font-weight:700;
  color:var(--white);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--sp-3);
}
.process-step__text{
  font-size:var(--ts-sm);font-weight:300;color:rgba(255,255,255,.44);line-height:1.78;
}


/* ═══════════════════════════════════════════════
   13. TECHNICAL LIBRARY
═══════════════════════════════════════════════ */
.library{background:var(--surface);}

.library__filter-bar{
  display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;
  margin-bottom:var(--sp-8);
  padding-bottom:var(--sp-4);border-bottom:1px solid var(--border);
}
.filter-btn{
  background:var(--white);color:var(--body);border:1px solid var(--line);
  font-family:var(--f-mono);font-size:.62rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  padding:8px 16px;min-height:36px;cursor:pointer;
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
}
.filter-btn:hover{border-color:var(--cu);color:var(--cu);}
.filter-btn.is-active{background:var(--navy);color:var(--white);border-color:var(--navy);}

.library__count{
  margin-left:auto;font-family:var(--f-mono);
  font-size:.62rem;color:var(--muted);font-weight:500;flex-shrink:0;
}

.library__subfilter{
  display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;
  margin-bottom:var(--sp-8);
  padding:var(--sp-4);
  background:rgba(9,18,32,.05);border-left:3px solid var(--cu);
}
.library__subfilter.is-hidden{display:none;}
.subfilter-label{
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  margin-right:var(--sp-1);flex-shrink:0;
}
.subfil-btn{
  background:transparent;color:var(--muted);border:1px solid var(--line);
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  padding:5px 11px;min-height:32px;cursor:pointer;
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
}
.subfil-btn:hover{border-color:var(--cu);color:var(--cu);}
.subfil-btn.is-active{background:var(--cu);color:var(--white);border-color:var(--cu);}

.library__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:var(--sp-6);
}

.library__cta-row{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:var(--sp-4);
  margin-top:var(--sp-12);padding-top:var(--sp-8);
  border-top:1px solid var(--border);
}
.library__cta-text{font-size:var(--ts-sm);color:var(--body);line-height:1.6;}
.library__cta-text strong{color:var(--navy);}


/* ═══════════════════════════════════════════════
   14. ARTICLE CARDS
═══════════════════════════════════════════════ */
.card{
  background:var(--white);border:1px solid var(--border);
  display:flex;flex-direction:column;overflow:hidden;
  position:relative;
  transition:border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),transform var(--t-base) var(--ease);
}
.card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--cu),var(--cu-lt));
  transform:scaleX(0);transform-origin:left;z-index:1;
  transition:transform var(--t-base) var(--ease);
}
.card:not(.card--pending):hover{border-color:var(--cu);box-shadow:var(--sh-lg);transform:translateY(-4px);}
.card:not(.card--pending):hover::before{transform:scaleX(1);}
.card--pending{opacity:.58;}
.card--pending:hover{transform:none;box-shadow:none;border-color:var(--border);}
.card--pending::before{display:none;}

.card__thumb{
  height:168px;background:var(--navy);
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.card__thumb-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(184,115,51,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(184,115,51,.07) 1px,transparent 1px);
  background-size:28px 28px;
  transition:opacity var(--t-base) var(--ease);
}
.card:hover .card__thumb-grid{opacity:1.5;}
.card__thumb-icon{
  font-size:2rem;opacity:.18;position:relative;z-index:1;
  transition:opacity var(--t-base) var(--ease),transform var(--t-base) var(--ease);
}
.card:not(.card--pending):hover .card__thumb-icon{opacity:.3;transform:scale(1.1);}
.card__thumb-labels{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to top,rgba(9,18,32,.92),transparent);
  padding:1.25rem 1rem .75rem;
  display:flex;align-items:center;gap:var(--sp-2);z-index:2;
}
.card__cat{
  font-family:var(--f-mono);font-size:.58rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--white);background:var(--cu);padding:3px 9px;flex-shrink:0;
}
.card__cluster{
  font-family:var(--f-mono);font-size:.55rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.68);background:rgba(255,255,255,.1);padding:3px 8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;
}

.card__body{
  padding:var(--sp-5) var(--sp-6);
  display:flex;flex-direction:column;flex:1;
}
.card__meta{
  display:flex;align-items:center;gap:var(--sp-3);
  font-family:var(--f-mono);font-size:.6rem;color:var(--muted);font-weight:500;
  margin-bottom:var(--sp-4);flex-wrap:wrap;min-height:22px;
}
.card__ref{
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  color:var(--cu);background:rgba(184,115,51,.08);padding:2px 8px;
}
.card__dot{width:3px;height:3px;background:var(--line);border-radius:50%;display:inline-block;flex-shrink:0;}

.card__title{
  font-family:var(--f-display);font-size:var(--ts-lg);font-weight:700;
  color:var(--navy);line-height:1.25;margin-bottom:var(--sp-3);
  transition:color var(--t-base) var(--ease);
}
.card:not(.card--pending):hover .card__title{color:var(--cu-dk);}

.card__excerpt{
  font-size:var(--ts-sm);font-weight:300;color:var(--body);line-height:1.72;
  flex:1;margin-bottom:var(--sp-5);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.card__link{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--f-mono);font-size:.62rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--cu);
  min-height:44px;align-self:flex-start;
  transition:gap var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.card__link:hover{gap:.75rem;color:var(--cu-dk);}
.card__soon{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);background:var(--surface);padding:5px 10px;
  align-self:flex-start;min-height:28px;
}
.card__soon::before{content:"◷";font-size:.8rem;}

/* SVG thumbnails */
.card__thumb-svg{position:absolute;inset:0;overflow:hidden;}
.card__thumb-svg svg{width:100%;height:100%;display:block;}
.card__thumb-labels{position:relative;z-index:2;}


/* ═══════════════════════════════════════════════
   15. PAGINATION
═══════════════════════════════════════════════ */
.pagination{
  display:flex;align-items:center;justify-content:center;
  gap:var(--sp-2);margin-top:var(--sp-12);flex-wrap:wrap;
}
.pagination__info{
  text-align:center;font-family:var(--f-mono);
  font-size:.6rem;color:var(--muted);margin-top:var(--sp-4);letter-spacing:.04em;
}
.page-btn{
  min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  background:var(--white);border:1px solid var(--line);color:var(--body);
  font-family:var(--f-mono);font-size:var(--ts-sm);font-weight:600;
  cursor:pointer;padding:0 var(--sp-2);
  transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
}
.page-btn:hover{border-color:var(--cu);color:var(--cu);}
.page-btn.is-active{background:var(--navy);border-color:var(--navy);color:var(--white);}
.page-btn--nav{min-width:auto;padding:0 var(--sp-4);}
.page-btn--ellipsis{border:none;background:transparent;color:var(--muted);pointer-events:none;}
.page-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none;}


/* ═══════════════════════════════════════════════
   16. CONTACT
═══════════════════════════════════════════════ */
.contact-layout{
  display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(3rem,7vw,8rem);align-items:start;
}
.contact-info__block{margin-bottom:var(--sp-8);}
.contact-info__label{
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cu);margin-bottom:var(--sp-1);
}
.contact-info__value{font-size:var(--ts-base);color:var(--navy);}
.contact-info__value a{color:var(--navy);transition:color var(--t-fast) var(--ease);}
.contact-info__value a:hover{color:var(--cu);}

.contact-form-card{
  background:var(--white);padding:clamp(1.75rem,4vw,2.75rem);
  box-shadow:var(--sh-md);border:1px solid var(--border);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);}
.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5);}
.field label{
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--body);
}
.field input,.field textarea,.field select{
  padding:13px 14px;border:1px solid var(--line);background:var(--surface);
  font-family:var(--f-body);font-size:var(--ts-base);color:var(--heading);
  outline:none;width:100%;border-radius:0;appearance:none;-webkit-appearance:none;
  transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color:var(--cu);background:var(--white);box-shadow:0 0 0 3px rgba(184,115,51,.08);
}
.field textarea{min-height:110px;resize:vertical;}


/* ═══════════════════════════════════════════════
   17. FOOTER
═══════════════════════════════════════════════ */
.footer{background:var(--navy-deep);border-top:1px solid rgba(184,115,51,.18);padding:var(--sp-6) 0;}
.footer__inner{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:var(--sp-4);
}
.footer__logo img{height:28px;opacity:.7;}
.footer__copy{font-family:var(--f-mono);font-size:.6rem;color:rgba(255,255,255,.28);font-weight:300;}
.footer__tagline{
  font-family:var(--f-mono);font-size:.65rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cu);opacity:.7;
}


/* ═══════════════════════════════════════════════
   18. QUOTE WIZARD
═══════════════════════════════════════════════ */
.wizard-overlay{
  position:fixed;inset:0;z-index:2000;
  background:rgba(6,14,26,.9);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:var(--sp-6);
  opacity:0;pointer-events:none;transition:opacity var(--t-base) var(--ease);
}
.wizard-overlay.is-open{opacity:1;pointer-events:all;}
.wizard-box{
  background:var(--white);width:100%;max-width:620px;
  max-height:90vh;overflow-y:auto;
  transform:translateY(20px);
  transition:transform var(--t-base) var(--ease);
}
.wizard-overlay.is-open .wizard-box{transform:translateY(0);}
.wizard-header{background:var(--navy);padding:1.75rem var(--sp-8) 1.5rem;position:relative;}
.wizard-close{
  position:absolute;top:var(--sp-5);right:var(--sp-5);
  background:rgba(255,255,255,.1);border:none;color:rgba(255,255,255,.65);
  font-size:1.1rem;width:32px;height:32px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast) var(--ease);
}
.wizard-close:hover{background:rgba(255,255,255,.18);color:var(--white);}
.wizard-step-label{
  font-family:var(--f-mono);font-size:.6rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--cu-mid);margin-bottom:var(--sp-2);
}
.wizard-title{font-family:var(--f-display);font-size:1.55rem;font-weight:900;color:var(--white);line-height:1.1;}
.wizard-progress{height:2px;background:rgba(255,255,255,.1);margin-top:var(--sp-5);}
.wizard-progress__fill{height:100%;background:var(--cu);transition:width var(--t-base) var(--ease);}
.wizard-body{padding:var(--sp-8);}
.wizard-step{display:none;}
.wizard-step.is-active{display:block;}
.wizard-question{
  font-family:var(--f-mono);font-size:.72rem;font-weight:600;
  color:var(--body);letter-spacing:.06em;margin-bottom:var(--sp-5);text-transform:uppercase;
}
.wizard-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-6);}
.wizard-options--single{grid-template-columns:1fr;}
.wizard-option{
  border:1px solid var(--line);padding:var(--sp-4) var(--sp-5);cursor:pointer;
  display:flex;align-items:flex-start;gap:var(--sp-3);background:var(--white);
  transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
}
.wizard-option:hover{border-color:var(--cu);background:rgba(184,115,51,.04);}
.wizard-option.is-selected{border-color:var(--cu);background:rgba(184,115,51,.07);}
.wizard-option__icon{font-size:1.3rem;flex-shrink:0;line-height:1.2;}
.wizard-option__label{font-size:var(--ts-sm);font-weight:600;color:var(--navy);display:block;margin-bottom:var(--sp-1);}
.wizard-option__sub{font-size:var(--ts-xs);color:var(--muted);line-height:1.45;}
.wizard-input,.wizard-textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);
  font-family:var(--f-body);font-size:var(--ts-base);color:var(--heading);
  outline:none;margin-bottom:var(--sp-6);border-radius:0;background:var(--surface);
  transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.wizard-input:focus,.wizard-textarea:focus{
  border-color:var(--cu);background:var(--white);box-shadow:0 0 0 3px rgba(184,115,51,.08);
}
.wizard-textarea{min-height:100px;resize:vertical;}
.wizard-nav{padding:0 var(--sp-8) var(--sp-8);display:flex;align-items:center;justify-content:space-between;}
.wizard-btn-back{
  background:transparent;color:var(--muted);
  font-family:var(--f-mono);font-size:.72rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  padding:10px 0;border:none;cursor:pointer;min-height:44px;
  transition:color var(--t-fast) var(--ease);
}
.wizard-btn-back:hover{color:var(--navy);}
.wizard-btn-back:disabled{opacity:.3;cursor:not-allowed;}
.wizard-summary{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6);}
.wizard-summary__row{
  display:flex;gap:var(--sp-4);padding:var(--sp-3) 0;
  border-bottom:1px solid var(--border);font-size:var(--ts-sm);
}
.wizard-summary__row:last-child{border-bottom:none;}
.wizard-summary__key{font-weight:600;color:var(--navy);min-width:130px;flex-shrink:0;}
.wizard-summary__val{color:var(--body);}
.wizard-success{text-align:center;padding:3rem var(--sp-8);display:none;}
.wizard-success.is-visible{display:block;}
.wizard-success__icon{font-size:3rem;margin-bottom:var(--sp-4);}
.wizard-success h3{font-family:var(--f-display);font-size:1.8rem;font-weight:900;color:var(--navy);margin-bottom:var(--sp-3);}
.wizard-success p{font-size:var(--ts-base);color:var(--body);line-height:1.72;}


/* ═══════════════════════════════════════════════
   19. LANGUAGE SYSTEM
═══════════════════════════════════════════════ */
[data-lang="fr"]            {display:none;}
body.is-fr [data-lang="en"]{display:none;}
body.is-fr [data-lang="fr"]{display:block;}
body.is-fr span[data-lang="fr"]{display:inline;}
body.is-fr span[data-lang="en"]{display:none;}
span[data-lang="fr"]        {display:none;}


/* ═══════════════════════════════════════════════
   20. RESPONSIVE
═══════════════════════════════════════════════ */
@media(max-width:1100px){
  .hero__content   {grid-template-columns:1fr;}
  .hero__schematic {display:none;}
  .hero__bloom     {display:none;}
  .why-layout      {grid-template-columns:1fr;}
  .process-steps   {grid-template-columns:1fr 1fr;gap:var(--sp-8);}
  .process-steps::before{display:none;}
  .contact-layout  {grid-template-columns:1fr;gap:var(--sp-12);}
  .library__grid   {grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}
}
@media(max-width:768px){
  .nav__menu      {display:none;}
  .nav__hamburger {display:flex;}
  .section        {padding:clamp(3rem,6vw,5rem) 0;}
  .library__grid  {grid-template-columns:1fr;}
  .why-pillars    {grid-template-columns:1fr;}
  .process-steps  {grid-template-columns:1fr;}
  .form-row       {grid-template-columns:1fr;}
  .wizard-options {grid-template-columns:1fr;}
  .filter-btn     {font-size:.58rem;padding:7px 12px;}
}
@media(max-width:480px){
  .nav__cta       {display:none;}
  .footer__inner  {flex-direction:column;text-align:center;}
  .footer__logo   {margin:0 auto;}
  .card__thumb    {height:148px;}
  .card__body     {padding:var(--sp-4) var(--sp-5);}
  .wizard-body    {padding:var(--sp-6);}
  .wizard-nav     {padding:0 var(--sp-6) var(--sp-6);}
}


/* ═══════════════════════════════════════════════
   21. REDUCED MOTION
═══════════════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .scroll-progress{animation:none;}
}
