/* ============================================================
   Blocked Security · styles.css
   Shared stylesheet for index.html and 404.html (scoped via body.page-404)
   ============================================================ */

:root{
  --ink:#111111;
  --graphite:#2B2B2B;
  --mid:#555555;
  --soft:#8A8A8A;
  --line:#E5E5E5;
  --paper:#FFFFFF;
  --bg-soft:#F7F7F6;
  --bg-dark:#0E0E0E;
  --maxw:1200px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  font-family:'Inter','Helvetica Neue',Arial,sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* ---------- Brand SVG classes (used in inline <svg>) ---------- */
.bs-word{font-family:'Archivo Black','Helvetica Neue','Arial Black',sans-serif;font-weight:400;font-size:148px;letter-spacing:-3px;fill:#111}
.bs-tag{font-family:'Inter','Helvetica Neue',sans-serif;font-weight:600;font-size:42px;letter-spacing:20px;fill:#111;opacity:.62}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-top:22px;padding-bottom:22px}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);flex-shrink:0}
.brand svg{height:56px;width:auto;aspect-ratio:880 / 290;overflow:hidden}
.nav{display:flex;align-items:center;gap:32px}
.nav-links{display:flex;align-items:center;gap:32px}
.nav a{font-size:14px;font-weight:500;color:var(--graphite);letter-spacing:.2px;transition:color .15s ease}
.nav a:hover{color:var(--ink)}
.lang-toggle{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--mid);border:1px solid var(--line);border-radius:999px;padding:6px 4px}
.lang-toggle button{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;color:var(--mid);letter-spacing:.5px;transition:all .15s ease}
.lang-toggle button.active{background:var(--ink);color:#fff}
.menu-toggle{display:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;letter-spacing:.2px;padding:12px 22px;border-radius:999px;transition:transform .15s ease, background .15s ease, color .15s ease}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{transform:translateY(-1px);background:#000}
.btn-ghost{color:var(--ink);border:1px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-arrow::after{content:"→";display:inline-block;transition:transform .2s ease}
.btn-arrow:hover::after{transform:translateX(3px)}

/* ---------- Hero ---------- */
.hero{padding:96px 0 80px;background:radial-gradient(1200px 500px at 80% -10%, rgba(17,17,17,.06), transparent 60%),radial-gradient(900px 500px at -10% 100%, rgba(17,17,17,.05), transparent 60%),var(--paper)}
.hero-inner{max-width:880px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--mid);margin-bottom:28px}
.eyebrow .dot{width:8px;height:8px;border-radius:999px;background:var(--ink);box-shadow:0 0 0 4px rgba(17,17,17,.12)}
.hero h1{font-family:'Inter',sans-serif;font-weight:700;font-size:clamp(40px,6vw,72px);line-height:1.04;letter-spacing:-2px;margin-bottom:24px}
.hero h1 em{font-style:normal;color:var(--soft);font-weight:700}
.hero p.lede{font-size:clamp(17px,1.6vw,21px);color:var(--graphite);max-width:680px;margin-bottom:40px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{display:flex;gap:32px;flex-wrap:wrap;margin-top:64px;padding-top:32px;border-top:1px solid var(--line)}
.hero-meta div{font-size:13px;color:var(--mid)}
.hero-meta strong{display:block;color:var(--ink);font-size:15px;font-weight:600;margin-bottom:2px}

/* ---------- Sections ---------- */
section{padding:96px 0}
.section-head{max-width:760px;margin-bottom:56px}
.section-head .kicker{font-size:12px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--mid);margin-bottom:18px;display:block}
.section-head h2{font-family:'Inter',sans-serif;font-weight:700;font-size:clamp(32px,4vw,48px);line-height:1.1;letter-spacing:-1px;margin-bottom:18px}
.section-head p{font-size:18px;color:var(--graphite);max-width:640px}

/* ---------- Services ---------- */
.services{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.services-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
@media (min-width: 640px){.services-grid{grid-template-columns:repeat(2,1fr)}.services-grid > article:last-child{grid-column:1 / -1}}
@media (min-width: 1080px){.services-grid{grid-template-columns:repeat(5,1fr)}.services-grid > article:last-child{grid-column:auto}}
.service{background:var(--paper);padding:36px 26px;display:flex;flex-direction:column;gap:14px;transition:background .2s ease}
.service:hover{background:#FAFAFA}
.service-icon{width:44px;height:44px;border-radius:10px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.service-icon svg{width:22px;height:22px}
.service h3{font-size:19px;font-weight:600;letter-spacing:-.3px;color:var(--ink)}
.service p{font-size:14.5px;color:var(--mid);line-height:1.55}
.service ul{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:6px}
.service ul li{font-size:13px;color:var(--graphite);padding-left:18px;position:relative}
.service ul li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:1px;background:var(--ink)}

/* ---------- Capabilities ---------- */
.capabilities-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.cap{border:1px solid var(--line);border-radius:14px;padding:28px;background:var(--paper);transition:border-color .2s ease,transform .2s ease}
.cap:hover{border-color:var(--ink);transform:translateY(-2px)}
.cap .label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--mid);margin-bottom:10px}
.cap h4{font-size:18px;font-weight:600;margin-bottom:8px;letter-spacing:-.2px}
.cap p{font-size:14px;color:var(--mid);line-height:1.55}

/* ---------- Why Blocked (dark) ---------- */
.why{background:var(--bg-dark);color:#fff}
.why .section-head h2{color:#fff}
.why .section-head p{color:#BFBFBF}
.why .section-head .kicker{color:#9A9A9A}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.why-item{padding:24px 0;border-top:1px solid #262626}
.why-item .num{font-family:'Archivo Black',sans-serif;font-size:14px;color:#7A7A7A;letter-spacing:1px;margin-bottom:12px}
.why-item h4{font-size:19px;font-weight:600;margin-bottom:10px;letter-spacing:-.2px}
.why-item p{font-size:14px;color:#BFBFBF;line-height:1.6}

/* ---------- Process ---------- */
.process{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;counter-reset:step}
.step{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:28px;position:relative}
.step::before{counter-increment:step;content:"0" counter(step);font-family:'Archivo Black',sans-serif;font-size:13px;letter-spacing:1.5px;color:var(--soft);display:block;margin-bottom:14px}
.step h4{font-size:17px;font-weight:600;margin-bottom:8px;letter-spacing:-.2px}
.step p{font-size:14px;color:var(--mid);line-height:1.55}

/* ---------- Contact ---------- */
.contact{background:var(--paper)}
.contact-card{background:var(--ink);color:#fff;border-radius:24px;padding:64px 56px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.contact-card h2{font-size:clamp(28px,3.5vw,44px);font-weight:700;letter-spacing:-1px;line-height:1.1;margin-bottom:14px}
.contact-card p{color:#C9C9C9;font-size:16px;margin-bottom:28px;max-width:480px}
.contact-card .btn-primary{background:#fff;color:var(--ink)}
.contact-card .btn-primary:hover{background:#F0F0F0}
.contact-side{display:flex;flex-direction:column;gap:16px;font-size:14px;color:#C9C9C9}
.contact-side .item{padding:16px 0;border-top:1px solid #2C2C2C}
.contact-side .item:first-child{border-top:none}
.contact-side .item strong{display:block;color:#fff;font-size:13px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}
.contact-side .item a{color:#fff;border-bottom:1px solid #444;transition:border-color .15s}
.contact-side .item a:hover{border-color:#fff}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:48px 0 40px;font-size:13px;color:var(--mid)}
.site-footer .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}
.site-footer .brand svg{height:44px}
.site-footer .legal{display:flex;gap:24px;flex-wrap:wrap}
.site-footer .legal a{transition:color .15s}
.site-footer .legal a:hover{color:var(--ink)}

/* ============================================================
   404 page (scoped via body.page-404)
   ============================================================ */
body.page-404{min-height:100vh;display:flex;flex-direction:column}
body.page-404 .site-header{position:static;background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}
body.page-404 .brand svg{height:42px}
body.page-404 main{flex:1;display:flex;align-items:center;justify-content:center;padding:80px 0;background:radial-gradient(800px 400px at 50% 25%, rgba(17,17,17,.04), transparent 60%),radial-gradient(600px 360px at 50% 100%, rgba(17,17,17,.04), transparent 60%)}
body.page-404 .site-footer{padding:24px 0}
body.page-404 .site-footer .brand{display:none}

.site-link{font-size:13px;font-weight:500;color:var(--mid);letter-spacing:.3px;transition:color .15s ease}
.site-link:hover{color:var(--ink)}

.error-card{text-align:center;max-width:580px;padding:0 22px}
.error-display{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 40px;font-family:'Archivo Black','Helvetica Neue','Arial Black',sans-serif;font-weight:400;font-size:clamp(110px,17vw,190px);line-height:.85;letter-spacing:-5px;color:var(--ink)}
.error-display .lock{height:.78em;width:auto;flex-shrink:0;margin-top:.04em;overflow:hidden}
h1.error-title{font-family:'Inter',sans-serif;font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.4px;line-height:1.2;margin-bottom:8px}
.error-subtitle{font-size:15px;font-weight:500;color:var(--mid);letter-spacing:.2px;margin-bottom:28px}
.error-text{font-size:15px;color:var(--mid);margin:0 auto 36px;max-width:440px}
.error-text .es{display:block}
.error-text .en{display:block;color:var(--soft);margin-top:6px;font-size:14px}

/* 404 CTA — slightly larger than landing buttons */
body.page-404 .btn{background:var(--ink);color:#fff;padding:14px 28px}
body.page-404 .btn:hover{background:#000;transform:translateY(-1px)}
body.page-404 .btn::after{content:"→";display:inline-block;transition:transform .2s ease}
body.page-404 .btn:hover::after{transform:translateX(3px)}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 860px){
  section{padding:64px 0}
  .hero{padding:64px 0 56px}
  .brand svg{height:42px}
  .nav{gap:14px;position:relative}
  .nav .nav-links{display:none}
  .menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:1px solid var(--line)}
  .menu-toggle svg{width:20px;height:20px}
  .nav.is-open .nav-links{display:flex;flex-direction:column;gap:0;align-items:stretch;position:absolute;top:calc(100% + 22px);left:0;right:0;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;box-shadow:0 8px 24px rgba(0,0,0,.06)}
  .nav.is-open .nav-links a{padding:14px 22px;border-top:1px solid var(--line)}
  .nav.is-open .nav-links a:first-child{border-top:none}
  .contact-card{grid-template-columns:1fr;padding:40px 28px}
  .hero-meta{gap:20px}
}
@media (max-width: 520px){
  .container{padding:0 22px}
  .hero h1{letter-spacing:-1px}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{justify-content:center}
  body.page-404 .brand svg{height:38px}
  body.page-404 .site-link{display:none}
  body.page-404 .error-display{gap:10px;letter-spacing:-3px}
  body.page-404 main{padding:48px 0}
}
@media (max-width: 420px){
  .lang-toggle button{padding:4px 8px;font-size:11px}
  .lang-toggle{padding:4px 3px}
  .brand svg{height:38px}
}

@media print{
  .site-header,.menu-toggle,.lang-toggle,.hero-cta,.contact{display:none}
  body{font-size:12pt}
  section{padding:24px 0;page-break-inside:avoid}
}
