/* Campus-Track Landing — Design tokens + page styles */

/* ---- Color tokens ---- */
:root {
  --forest-50:  #ECF5F1; --forest-100: #D5EAE1; --forest-200: #AAD5C5;
  --forest-300: #74B7A1; --forest-400: #3F9078; --forest-500: #1E7259;
  --forest-600: #145A46; --forest-700: #0E4536; --forest-800: #083025;
  --forest-900: #051E17;

  --teal-50:  #E1F5EE; --teal-100: #C3EADD; --teal-200: #9FE1CB;
  --teal-300: #5DCAA5; --teal-400: #34B189; --teal-500: #1D9E75;
  --teal-600: #137A5F; --teal-700: #0F6E56; --teal-800: #0A5443;
  --teal-900: #07110E;

  --amber-50:  #FDF3E0; --amber-100: #FBE6BF; --amber-300: #F5C060;
  --amber-500: #E9A020; --amber-600: #C9850F; --amber-700: #B8780A;

  --neutral-0:   #FFFFFF; --neutral-50:  #F6F8F5; --neutral-100: #EFF2EE;
  --neutral-200: #E2E6E1; --neutral-300: #CFD4CD; --neutral-400: #9BA39A;
  --neutral-500: #6B736C; --neutral-600: #4B524C; --neutral-700: #353B36;
  --neutral-800: #1E231F; --neutral-900: #11150F;

  --role-admin-fg:    #2360AE; --role-admin-bg:    #EAF1FB;
  --role-teacher-fg:  #0F6E56; --role-teacher-bg:  #E1F5EE;
  --role-vacataire-fg:#B8780A; --role-vacataire-bg:#FDF3E0;
  --role-support-fg:  #993C1D; --role-support-bg:  #FAECE7;
  --role-intern-fg:   #6D28D9; --role-intern-bg:   #F3E8FF;

  --brand:         #0F6E56; --brand-bright:  #1D9E75; --brand-hover: #137A5F;
  --accent:        #E9A020; --accent-hover:  #F5C060;

  --bg-app:       #F6F8F5; --surface-card:  #FFFFFF; --surface-kiosk: #0A1411;

  --text-strong:  #11150F; --text-body:     #353B36;
  --text-muted:   #6B736C; --text-link:     #137A5F;

  --border-subtle:  #E2E6E1; --border-default: #CFD4CD;

  /* ---- Spacing ---- */
  --space-1:4px;  --space-2:8px;   --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px;  --space-8:32px; --space-10:40px;
  --space-12:48px;--space-16:64px; --space-20:80px;--space-24:96px;

  --radius-xs:4px;  --radius-sm:6px;  --radius-md:8px;  --radius-lg:12px;
  --radius-xl:16px; --radius-2xl:20px;--radius-pill:999px;

  --shadow-sm:  0 1px 3px rgba(17,24,39,.08),0 1px 2px rgba(17,24,39,.04);
  --shadow-md:  0 4px 12px rgba(27,43,107,.08);
  --shadow-lg:  0 8px 32px rgba(27,43,107,.10);
  --shadow-xl:  0 24px 60px rgba(10,15,30,.18);

  --topbar-height: 64px;

  /* ---- Typography ---- */
  --font-display: 'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-sans:    'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:    'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;

  --text-2xs:11px; --text-xs:12px; --text-sm:14px; --text-md:16px;
  --text-lg:18px;  --text-xl:22px; --text-2xl:27px;--text-3xl:33px;
  --text-4xl:41px; --text-5xl:54px;

  --fw-regular:400;  --fw-medium:500;  --fw-semibold:600;
  --fw-bold:700;     --fw-extrabold:800;

  --lh-tight:1.12;  --lh-snug:1.28; --lh-normal:1.5; --lh-relaxed:1.7;
  --ls-tighter:-0.03em; --ls-tight:-0.02em; --ls-snug:-0.01em;
  --ls-caps:0.1em;

  --dur-base:0.2s;  --dur-reveal:0.6s;
  --ease-out: cubic-bezier(0.16,1,0.3,1);
  --ease-standard: cubic-bezier(0.4,0,0.2,1);
  --type-eyebrow: var(--fw-bold) var(--text-xs)/var(--lh-snug) var(--font-sans);
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--text-strong);background:var(--neutral-0);
  line-height:var(--lh-relaxed);font-size:var(--text-md);-webkit-font-smoothing:antialiased}
a{text-decoration:none}
.lucide{width:1em;height:1em;stroke-width:2}

/* ---- Justified body text ---- */
.hero-lead,.sec-sub,.step p,.feature p,.profile p,.int-body p,.hw-points li span,
.testimonial blockquote{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

/* ---- NAV ---- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--topbar-height);
  background:color-mix(in srgb,var(--forest-800) 96%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--space-10);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-logo img{height:44px;display:block}
.nav-links{display:flex;gap:var(--space-8);list-style:none}
.nav-links a{color:rgba(255,255,255,.72);font-size:var(--text-sm);font-weight:var(--fw-medium);transition:color var(--dur-base)}
.nav-links a:hover{color:#fff}
.nav-cta{display:inline-flex;align-items:center;gap:6px;background:var(--amber-500);color:var(--forest-900);
  padding:8px 18px;border-radius:var(--radius-sm);font-weight:var(--fw-bold);font-size:var(--text-sm);
  transition:background var(--dur-base),transform var(--dur-base)}
.nav-cta:hover{background:var(--amber-300);transform:translateY(-1px)}

/* ---- HERO ---- */
.hero{background:linear-gradient(135deg,var(--forest-900) 0%,var(--forest-700) 55%,var(--teal-600) 100%);
  min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:var(--space-16);
  padding:140px var(--space-20) var(--space-20)}
.eyebrow{font:var(--type-eyebrow);text-transform:uppercase;letter-spacing:var(--ls-caps)}
.hero-badges{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}
.badge-pill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);font-size:var(--text-xs);
  font-weight:var(--fw-medium);padding:5px 12px;border-radius:var(--radius-pill)}
.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--amber-300)}
.hero h1{font-family:var(--font-display);font-weight:var(--fw-extrabold);font-size:clamp(34px,4.2vw,54px);
  color:#fff;line-height:var(--lh-tight);letter-spacing:var(--ls-tighter);margin-bottom:var(--space-5)}
.hero h1 em{font-style:normal;color:var(--amber-300)}
.hero-lead{font-size:var(--text-lg);color:rgba(255,255,255,.78);max-width:500px;margin-bottom:var(--space-8);line-height:var(--lh-relaxed)}
.hero-actions{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:var(--fw-bold);font-size:var(--text-md);
  cursor:pointer;border:none;transition:background var(--dur-base),transform var(--dur-base),box-shadow var(--dur-base)}
.btn-amber{background:var(--amber-500);color:var(--forest-900);padding:13px 26px;border-radius:var(--radius-md)}
.btn-amber:hover{background:var(--amber-300);transform:translateY(-1px);box-shadow:0 10px 28px rgba(233,160,32,.3)}
.btn-green{background:var(--brand);color:#fff;padding:13px 26px;border-radius:var(--radius-md)}
.btn-green:hover{background:var(--brand-bright);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-ghost-light{color:rgba(255,255,255,.85);font-size:var(--text-md);font-weight:var(--fw-semibold);
  display:inline-flex;align-items:center;gap:7px}
.btn-ghost-light:hover{color:#fff}
.btn-outline-light{color:rgba(255,255,255,.85);background:transparent;border:1px solid rgba(255,255,255,.28);
  padding:13px 26px;border-radius:var(--radius-md);font-weight:var(--fw-semibold);font-size:var(--text-md)}
.btn-outline-light:hover{background:rgba(255,255,255,.08);color:#fff}

/* ---- KIOSK MOCKUP ---- */
.kiosk-wrap{display:flex;justify-content:center;align-items:center}
.kiosk-device{width:296px;background:var(--surface-kiosk);border-radius:var(--radius-2xl);
  border:3px solid #1B3A30;box-shadow:var(--shadow-xl),0 0 0 1px rgba(255,255,255,.05);overflow:hidden}
.kiosk-bar{height:30px;background:#10231C;display:flex;align-items:center;padding:0 14px;gap:6px}
.kiosk-bar-dot{width:8px;height:8px;border-radius:50%}
.kiosk-screen{padding:24px 22px;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.kiosk-badge{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.08em;color:#5E7E72;text-transform:uppercase;margin-bottom:14px}
.kiosk-time{font-family:var(--font-mono);font-size:30px;font-weight:var(--fw-bold);color:#fff;letter-spacing:.02em}
.kiosk-date{font-size:12px;color:#5E7E72;margin-bottom:18px}
.kiosk-id{background:#10231C;border:1px solid #1F4034;border-radius:var(--radius-lg);padding:14px;width:100%;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.kiosk-av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--forest-600),var(--teal-500));
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:var(--fw-bold);color:#fff;flex-shrink:0}
.kiosk-id .meta{text-align:left}
.kiosk-id .meta strong{display:block;font-size:14px;color:#E5E7EB;font-weight:var(--fw-semibold)}
.kiosk-id .meta span{font-size:11px;color:#6B8377}
.fp-ring{width:84px;height:84px;border-radius:50%;border:2px solid #1F4034;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;color:#3DB88C;font-size:34px;animation:ring-pulse 2s var(--ease-standard) infinite}
@keyframes ring-pulse{
  0%,100%{border-color:#1F4034;box-shadow:none;color:#2C7A60}
  50%{border-color:var(--teal-500);box-shadow:0 0 0 6px rgba(29,158,117,.15);color:#5DCAA5}
}
.kiosk-status{font-size:12px;color:#9CA3AF;margin-bottom:16px}
.kiosk-status strong{display:block;font-size:15px;color:#E5E7EB;font-weight:var(--fw-semibold);margin-bottom:4px}
.kiosk-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.kiosk-mode{background:#10231C;border:1px solid #1F4034;border-radius:var(--radius-md);padding:9px 6px;color:#9CA3AF;
  font-size:11px;font-weight:var(--fw-semibold);text-align:center;letter-spacing:.04em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:5px}
.kiosk-mode.active{background:#0C3A2B;border-color:var(--teal-500);color:#5DCAA5}
.kiosk-mode .lucide{width:13px;height:13px}

/* ---- TRUST BAR ---- */
.trust{background:var(--bg-app);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);
  padding:var(--space-8) var(--space-20);display:flex;justify-content:space-around;align-items:center;flex-wrap:wrap;gap:var(--space-6)}
.stat{text-align:center}
.stat .num{font-family:var(--font-display);font-size:40px;font-weight:var(--fw-extrabold);color:var(--brand);
  letter-spacing:var(--ls-tighter);line-height:1;display:block}
.stat .num em{font-style:normal;color:var(--amber-600)}
.stat .label{font-size:var(--text-sm);color:var(--text-muted);margin-top:6px;font-weight:var(--fw-medium);max-width:150px}
.trust-div{width:1px;height:48px;background:var(--border-subtle)}

/* ---- SECTIONS ---- */
section{padding:var(--space-24) var(--space-20)}
.bg-white{background:var(--neutral-0)}
.bg-off{background:var(--bg-app)}
.sec-head{margin-bottom:var(--space-16);max-width:640px}
.sec-head .eyebrow{color:var(--amber-600);margin-bottom:var(--space-3)}
.sec-title{font-family:var(--font-display);font-size:clamp(28px,3vw,41px);font-weight:var(--fw-extrabold);
  color:var(--forest-800);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);margin-bottom:var(--space-4)}
.sec-sub{font-size:var(--text-md);color:var(--text-muted);line-height:var(--lh-relaxed)}

/* ---- STEPS ---- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-6)}
.step{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6);position:relative}
.step-num{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;font-size:var(--text-sm);
  font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4);font-family:var(--font-mono)}
.step h3{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--forest-800);margin-bottom:var(--space-2)}
.step p{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}
.step-arrow{position:absolute;right:-18px;top:38px;color:var(--border-default);z-index:2}
.step-arrow .lucide{width:22px;height:22px}

/* ---- FEATURES ---- */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:var(--space-5)}
.feature{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:var(--space-6);transition:box-shadow var(--dur-base),transform var(--dur-base)}
.feature:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.feature-ic{width:46px;height:46px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:var(--space-4)}
.ic-green{background:var(--teal-50);color:var(--teal-700)}
.ic-amber{background:var(--amber-50);color:var(--amber-700)}
.ic-blue{background:var(--role-admin-bg);color:var(--role-admin-fg)}
.ic-coral{background:var(--role-support-bg);color:var(--role-support-fg)}
.feature h3{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--forest-800);margin-bottom:var(--space-2)}
.feature p{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}

/* ---- INTEGRATIONS ---- */
.int-group{margin-bottom:var(--space-12)}
.int-group:last-child{margin-bottom:0}
.int-group-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-bold);
  color:var(--forest-700);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3)}
.int-group-title::after{content:'';flex:1;height:1px;background:var(--border-subtle)}
.int-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}
.int-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);
  padding:var(--space-6);display:flex;gap:var(--space-4);align-items:flex-start;
  transition:box-shadow var(--dur-base),transform var(--dur-base)}
.int-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.int-card.int-active{border-color:var(--teal-200)}
.int-logo{width:48px;height:48px;border-radius:var(--radius-md);background:var(--neutral-100);
  display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.int-logo.logo-teal{background:var(--teal-50)}
.int-logo.logo-green{background:#E8F5E9}
.int-logo.logo-blue{background:var(--role-admin-bg)}
.int-logo.logo-amber{background:var(--amber-50)}
.int-logo.logo-purple{background:var(--role-intern-bg)}
.int-body{flex:1}
.int-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}
.int-name{font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--forest-800)}
.int-tag{font-size:var(--text-2xs);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;
  padding:3px 8px;border-radius:var(--radius-pill)}
.int-tag.connected{background:var(--teal-50);color:var(--teal-700);border:1px solid var(--teal-200)}
.int-tag.available{background:#E8F5E9;color:#2E7D32;border:1px solid #C8E6C9}
.int-tag.possible{background:var(--amber-50);color:var(--amber-700);border:1px solid var(--amber-100)}
.int-tag.open{background:var(--neutral-100);color:var(--text-muted);border:1px solid var(--border-subtle)}
.int-body p{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--lh-normal)}

/* ---- HARDWARE ---- */
.hardware{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
.hw-points{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}
.hw-points li{display:flex;align-items:flex-start;gap:12px;font-size:var(--text-md);color:var(--text-body)}
.hw-check{width:22px;height:22px;border-radius:50%;background:var(--teal-50);color:var(--teal-700);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.hw-check .lucide{width:13px;height:13px;stroke-width:3}
.hw-visual{background:var(--forest-900);border-radius:var(--radius-xl);padding:var(--space-10);
  display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}
.hw-frame{width:170px;height:230px;background:#10231C;border-radius:var(--radius-lg);border:2px solid #1B3A30;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.hw-mini-screen{width:124px;height:104px;background:#0A1A14;border-radius:var(--radius-sm);border:1px solid var(--teal-700);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.hw-mini-dot{width:6px;height:6px;border-radius:50%;background:var(--teal-500)}
.hw-mini-line{height:2px;background:var(--teal-700);border-radius:2px}
.hw-sensor{width:42px;height:42px;border-radius:50%;border:2px solid #1F4034;background:var(--surface-kiosk);
  display:flex;align-items:center;justify-content:center;color:#3DB88C;font-size:18px}
.hw-label{font-size:var(--text-xs);color:rgba(255,255,255,.45);text-align:center;font-weight:var(--fw-medium);
  letter-spacing:.06em;text-transform:uppercase}
.hw-opts{display:flex;gap:var(--space-4);width:100%}
.hw-opt{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);
  padding:12px 16px;text-align:center;flex:1}
.hw-opt strong{display:block;font-size:var(--text-sm);color:#fff;font-weight:var(--fw-semibold)}
.hw-opt span{font-size:var(--text-xs);color:rgba(255,255,255,.45)}

/* ---- PROFILES ---- */
.profiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}
.profile{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;background:var(--surface-card)}
.profile-av{width:50px;height:50px;border-radius:50%;margin:0 auto var(--space-3);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:var(--fw-bold)}
.av-admin{background:var(--role-admin-bg);color:var(--role-admin-fg)}
.av-teacher{background:var(--role-teacher-bg);color:var(--role-teacher-fg)}
.av-vacataire{background:var(--role-vacataire-bg);color:var(--role-vacataire-fg)}
.av-support{background:var(--role-support-bg);color:var(--role-support-fg)}
.av-intern{background:var(--role-intern-bg);color:var(--role-intern-fg)}
.profile h4{font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--forest-800);margin-bottom:var(--space-1)}
.profile p{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--lh-normal)}

/* ---- TESTIMONIAL ---- */
.testimonial{background:var(--forest-800);border-radius:var(--radius-xl);padding:var(--space-16);color:#fff;text-align:center}
.testimonial blockquote{font-size:var(--text-xl);line-height:var(--lh-relaxed);color:rgba(255,255,255,.9);
  max-width:640px;margin:0 auto var(--space-6);font-weight:var(--fw-medium)}
.testimonial .mark{color:var(--amber-300);font-size:48px;line-height:0;font-family:Georgia,serif;display:block;height:24px}
.testimonial cite{font-style:normal;font-size:var(--text-sm);color:rgba(255,255,255,.55)}
.testimonial cite strong{color:var(--amber-300);display:block;font-size:var(--text-md);margin-bottom:2px}

/* ---- CTA ---- */
.cta{background:linear-gradient(135deg,var(--forest-900),var(--forest-700));text-align:center}
.cta .eyebrow{color:var(--amber-300);margin-bottom:var(--space-3)}
.cta .sec-title{color:#fff}
.cta .sec-sub{color:rgba(255,255,255,.7);margin:0 auto var(--space-10)}
.cta-head{max-width:680px;margin:0 auto}
.cta-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap}

/* ---- FOOTER ---- */
footer{background:var(--forest-900);padding:var(--space-8) var(--space-20);display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);border-top:1px solid rgba(255,255,255,.06)}
footer img{height:40px}
footer p{font-size:var(--text-xs);color:rgba(255,255,255,.4)}

/* ---- REVEAL ---- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.fp-ring{animation:none}}

/* ---- RESPONSIVE ---- */
@media (max-width:980px){
  .hero{grid-template-columns:1fr;padding:120px var(--space-6) var(--space-10)}
  .kiosk-wrap{display:none}
  section{padding:var(--space-16) var(--space-6)}
  .trust{padding:var(--space-8) var(--space-6)}.trust-div{display:none}
  .hardware{grid-template-columns:1fr}
  nav{padding:0 var(--space-5)}.nav-links{display:none}
  footer{padding:var(--space-8) var(--space-6)}
}
@media (max-width:600px){
  .int-cards{grid-template-columns:1fr}
  .int-card{flex-direction:column}
}

/* ---- ARCHITECTURE ---- */
.arch-wrap{overflow-x:auto;margin-top:var(--space-10)}
.arch-svg{width:100%;max-width:960px;display:block;margin:0 auto}
.arch-legend{display:flex;gap:var(--space-8);justify-content:center;margin-top:var(--space-6);flex-wrap:wrap}
.arch-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--fw-medium)}
.arch-legend-swatch{width:28px;height:3px;border-radius:2px}
.arch-legend-box{width:14px;height:14px;border-radius:3px}

/* ---- VIDEO DEMO ---- */
.video-outer{max-width:860px;margin:var(--space-10) auto 0}
.video-frame{position:relative;border-radius:var(--radius-xl);overflow:hidden;
  background:var(--forest-900);aspect-ratio:16/9;
  box-shadow:var(--shadow-xl),0 0 0 1px rgba(255,255,255,.06)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:var(--space-4);cursor:pointer}
.video-play-btn{width:76px;height:76px;border-radius:50%;background:var(--amber-500);
  display:flex;align-items:center;justify-content:center;color:var(--forest-900);
  font-size:30px;transition:transform var(--dur-base),background var(--dur-base);
  box-shadow:0 8px 32px rgba(233,160,32,.4)}
.video-placeholder:hover .video-play-btn{transform:scale(1.1);background:var(--amber-300)}
.video-caption{color:rgba(255,255,255,.55);font-size:var(--text-sm);font-weight:var(--fw-medium)}
