/* =====================================================================
   Hyde Tech One  |  Single page growth agency theme
   Palette derived from the Hyde Tech mark: crimson to maroon on ink
   ===================================================================== */

:root{
  --ink:      #0E0E12;
  --ink-2:    #16161C;
  --ink-3:    #1F1F27;
  --crimson:  #D81222;
  --crimson-2:#F2334A;
  --blood:    #8E0512;
  --maroon:   #3A0206;
  --paper:    #F4F2EE;
  --paper-2:  #FBFAF8;
  --white:    #FFFFFF;
  --text:     #17161B;
  --muted:    #5C5962;
  --muted-2:  #8A8790;
  --line:     rgba(15,15,20,.10);
  --line-d:   rgba(255,255,255,.12);
  --gold:     #E7B24C;

  --radius:   18px;
  --radius-s: 12px;
  --shadow:   0 24px 60px -28px rgba(20,4,8,.45);
  --shadow-s: 0 10px 30px -18px rgba(20,4,8,.5);

  --maxw: 1200px;
  --pad:  clamp(20px, 5vw, 64px);

  --font-display: "Space Grotesk", system-ui, sans-serif;
  --font-body:    "Plus Jakarta Sans", system-ui, sans-serif;
  --font-mono:    "Space Mono", ui-monospace, monospace;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper-2);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.06; letter-spacing:-.02em; margin:0; }

/* ---------- layout helpers ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(64px,9vw,120px); position:relative; }
.section--tight{ padding-block:clamp(40px,6vw,72px); }
.eyebrow{
  font-family:var(--font-mono);
  font-size:12.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--crimson); display:inline-flex; align-items:center; gap:10px; margin:0 0 18px;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--crimson); display:inline-block; }
.eyebrow--light{ color:var(--crimson-2); }
.eyebrow--light::before{ background:var(--crimson-2); }
.section-head{ max-width:720px; }
.section-head h2{ font-size:clamp(30px,4.4vw,50px); }
.section-head p{ color:var(--muted); font-size:1.08rem; margin:18px 0 0; }
.on-dark{ background:var(--ink); color:#EDEBEF; }
.on-dark .section-head p{ color:#B4B1BC; }
.on-dark h2,.on-dark h3,.on-dark h4{ color:#fff; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-display); font-weight:600; font-size:15.5px;
  padding:15px 26px; border-radius:100px; border:1.5px solid transparent;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn--primary{
  color:#fff; background:linear-gradient(120deg,var(--crimson),var(--blood));
  box-shadow:0 14px 34px -14px rgba(216,18,34,.7);
}
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 20px 44px -14px rgba(216,18,34,.85); }
.btn--ghost{ color:var(--text); border-color:var(--line); background:transparent; }
.on-dark .btn--ghost{ color:#fff; border-color:var(--line-d); }
.btn--ghost:hover{ border-color:var(--crimson); color:var(--crimson); }
.on-dark .btn--ghost:hover{ color:#fff; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.3); }
.btn--wa{ color:#fff; background:#25D366; box-shadow:0 12px 30px -14px rgba(37,211,102,.7); }
.btn--wa:hover{ transform:translateY(-2px); }
.btn--lg{ padding:18px 34px; font-size:16.5px; }

/* ---------- offer strip ---------- */
.offer{
  background:linear-gradient(90deg,var(--maroon),var(--blood),var(--crimson));
  color:#fff; font-size:14px; text-align:center; padding:9px 16px;
  position:relative; z-index:60;
}
.offer a{ font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.offer strong{ font-family:var(--font-mono); letter-spacing:.02em; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,250,248,.82); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .3s ease, box-shadow .3s ease;
}
.site-header.is-stuck{ box-shadow:0 10px 30px -22px rgba(20,4,8,.4); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:24px; height:76px; }
.brand{ display:inline-flex; align-items:center; gap:12px; }
.brand__mark{ width:auto; height:44px; }
.brand__name{ font-family:var(--font-display); font-weight:700; font-size:20px; letter-spacing:-.02em; color:var(--ink); }
.brand__name span{ color:var(--crimson); }
.nav__links{ display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; }
.nav__links a{ font-size:15px; font-weight:500; color:var(--text); opacity:.82; transition:opacity .15s, color .15s; }
.nav__links a:hover{ opacity:1; color:var(--crimson); }
.nav__cta{ display:flex; align-items:center; gap:12px; }
.nav__toggle{ display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:12px; background:#fff; align-items:center; justify-content:center; }
.nav__toggle span{ display:block; width:20px; height:2px; background:var(--ink); position:relative; }
.nav__toggle span::before,.nav__toggle span::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--ink); transition:.25s; }
.nav__toggle span::before{ top:-6px; } .nav__toggle span::after{ top:6px; }

/* ---------- hero ---------- */
.hero{ position:relative; background:var(--ink); color:#fff; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(1100px 520px at 78% -10%, rgba(216,18,34,.5), transparent 60%),
    radial-gradient(760px 520px at 8% 108%, rgba(142,5,18,.55), transparent 60%);
  opacity:.9;
}
.hero__grid{
  position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr;
  gap:56px; align-items:center; padding-block:clamp(56px,8vw,104px);
}
.hero__eyebrow{ color:#FF9AA6; }
.hero__eyebrow::before{ background:#FF9AA6; }
.hero h1{ font-size:clamp(38px,6vw,68px); color:#fff; }
.hero h1 em{ font-style:normal; color:var(--crimson-2); }
.hero__sub{ font-size:clamp(17px,2.1vw,20px); color:#CFCCD6; max-width:560px; margin:24px 0 34px; }
.hero__cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero__chips{ display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:36px; }
.hero__chips li{ list-style:none; font-size:14px; color:#C9C6D1; display:inline-flex; align-items:center; gap:9px; }
.hero__chips li::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--crimson-2); box-shadow:0 0 12px var(--crimson); }

.hero__card{
  position:relative; background:rgba(255,255,255,.04); border:1px solid var(--line-d);
  border-radius:24px; padding:30px; backdrop-filter:blur(6px);
}
.hero__card h3{ font-size:19px; color:#fff; margin-bottom:6px; }
.hero__card p{ color:#B4B1BC; font-size:14.5px; margin:0 0 22px; }
.hero__stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line-d); border-radius:16px; overflow:hidden; }
.hero__stat{ background:var(--ink-2); padding:20px 18px; }
.hero__stat b{ font-family:var(--font-display); font-size:30px; color:#fff; display:block; letter-spacing:-.03em; }
.hero__stat b i{ font-style:normal; color:var(--crimson-2); }
.hero__stat span{ font-size:12.5px; color:#9C99A5; text-transform:uppercase; letter-spacing:.08em; }

/* ---------- marquee ---------- */
.marquee{ overflow:hidden; position:relative; }
.marquee::before,.marquee::after{ content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none; }
.marquee__track{ display:flex; width:max-content; gap:0; animation:scroll-x var(--dur,38s) linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
@keyframes scroll-x{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* partner badges strip */
.partners{ background:var(--ink-2); border-block:1px solid var(--line-d); padding-block:26px; }
.partners__label{ text-align:center; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.24em; text-transform:uppercase; color:#8A8790; margin-bottom:18px; }
.partners .marquee::before{ left:0; background:linear-gradient(90deg,var(--ink-2),transparent); }
.partners .marquee::after{ right:0; background:linear-gradient(270deg,var(--ink-2),transparent); }
.badge{
  display:inline-flex; align-items:center; gap:12px; margin:0 14px;
  background:linear-gradient(180deg,#20202a,#171720); border:1px solid var(--line-d);
  border-radius:14px; padding:12px 20px; min-width:230px;
}
.badge__ico{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:none; color:#fff; font-family:var(--font-display); font-weight:700; font-size:15px; }
.badge__txt b{ display:block; font-family:var(--font-display); font-size:14px; color:#fff; line-height:1.15; }
.badge__txt span{ font-size:11px; color:#9C99A5; letter-spacing:.04em; }

/* ---------- stats band ---------- */
.stats{ background:var(--paper); }
.stats__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:24px; }
.stat b{ font-family:var(--font-display); font-size:clamp(30px,4vw,46px); letter-spacing:-.03em; color:var(--ink); display:block; }
.stat b i{ font-style:normal; color:var(--crimson); }
.stat span{ font-size:13.5px; color:var(--muted); }

/* ---------- about ---------- */
.about__grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.about__body p{ color:var(--muted); font-size:1.06rem; }
.about__body p+p{ margin-top:18px; }
.about__panel{
  position:relative; border-radius:22px; overflow:hidden; padding:38px; color:#fff;
  background:linear-gradient(150deg,var(--maroon),var(--blood) 55%,var(--crimson));
  box-shadow:var(--shadow);
}
.about__panel h3{ font-size:26px; color:#fff; margin-bottom:14px; }
.about__list{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:14px; }
.about__list li{ display:flex; gap:12px; font-size:15px; color:#FBE7E9; }
.about__list li::before{ content:""; width:20px; height:20px; border-radius:6px; background:rgba(255,255,255,.16); flex:none; margin-top:2px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* ---------- services ---------- */
.services__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.svc{
  position:relative; background:var(--ink-2); border:1px solid var(--line-d);
  border-radius:var(--radius); padding:26px; overflow:hidden;
  transition:transform .2s ease, border-color .2s ease;
}
.svc:hover{ transform:translateY(-4px); border-color:rgba(242,51,74,.5); }
.svc::after{ content:""; position:absolute; inset:auto -40% -60% auto; width:180px; height:180px; border-radius:50%;
  background:radial-gradient(circle,rgba(216,18,34,.35),transparent 70%); opacity:0; transition:opacity .25s; }
.svc:hover::after{ opacity:1; }
.svc__ico{ width:48px; height:48px; border-radius:12px; display:grid; place-items:center; margin-bottom:18px;
  background:linear-gradient(135deg,var(--crimson),var(--blood)); }
.svc__ico svg{ width:24px; height:24px; }
.svc h3{ font-size:18.5px; color:#fff; margin-bottom:9px; }
.svc p{ font-size:14.5px; color:#B4B1BC; margin:0; }
.svc__tag{ position:absolute; top:18px; right:18px; font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:#fff; background:var(--crimson); padding:4px 9px; border-radius:100px; }
.svc--wide{ grid-column:span 2; }

/* ---------- why choose ---------- */
.why{ background:var(--paper-2); }
.why__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border-radius:22px; overflow:hidden; border:1px solid var(--line); }
.why__cell{ background:var(--paper-2); padding:34px 30px; }
.why__num{ font-family:var(--font-mono); font-size:12px; color:var(--crimson); letter-spacing:.14em; }
.why__cell h3{ font-size:19px; margin:14px 0 10px; color:var(--ink); }
.why__cell p{ font-size:14.5px; color:var(--muted); margin:0; }

/* ---------- markets ---------- */
.markets{ background:var(--ink); color:#fff; }
.markets__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-top:44px; }
.market{ border:1px solid var(--line-d); border-radius:16px; padding:24px 20px; background:var(--ink-2); transition:transform .2s, border-color .2s; }
.market:hover{ transform:translateY(-4px); border-color:rgba(242,51,74,.5); }
.market__flag{ font-size:30px; line-height:1; }
.market h3{ font-size:18px; color:#fff; margin:16px 0 8px; }
.market span{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--crimson-2); }
.market p{ font-size:13.5px; color:#A6A3AE; margin:10px 0 0; }
.market--hq{ background:linear-gradient(160deg,var(--blood),var(--maroon)); border-color:transparent; }
.market--hq p{ color:#F3D6D9; }
.market--hq span{ color:#FFC9CF; }

/* ---------- industries strip ---------- */
.industries{ background:var(--paper); border-block:1px solid var(--line); padding-block:34px; }
.industries__label{ text-align:center; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.industries .marquee::before{ left:0; background:linear-gradient(90deg,var(--paper),transparent); }
.industries .marquee::after{ right:0; background:linear-gradient(270deg,var(--paper),transparent); }
.chip-ind{ display:inline-flex; align-items:center; gap:10px; margin:0 10px; padding:12px 22px; border:1px solid var(--line); border-radius:100px; background:#fff; font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--ink); }
.chip-ind i{ width:8px; height:8px; border-radius:50%; background:var(--crimson); font-style:normal; }

/* ---------- client logo slider ---------- */
.clients{ background:var(--paper-2); }
.clients__marquee{ margin-top:38px; }
.clients__marquee::before{ left:0; background:linear-gradient(90deg,var(--paper-2),transparent); }
.clients__marquee::after{ right:0; background:linear-gradient(270deg,var(--paper-2),transparent); }
.client-logo{
  flex:0 0 auto; width:200px; height:112px; margin:0 12px;
  display:grid; place-items:center; padding:20px 22px;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.client-logo:hover{ transform:translateY(-3px); box-shadow:var(--shadow-s); border-color:rgba(15,15,20,.18); }
.client-logo img{
  max-width:100%; max-height:100%; object-fit:contain;
  filter:grayscale(1); opacity:.72; transition:filter .25s ease, opacity .25s ease;
}
.client-logo:hover img{ filter:grayscale(0); opacity:1; }
.client-logo--dark{ background:var(--ink); border-color:rgba(255,255,255,.12); }
.client-logo--dark:hover{ border-color:rgba(255,255,255,.28); }

/* ---------- testimonials ---------- */
.tst{ background:var(--ink); color:#fff; overflow:hidden; }
.tst .marquee::before{ left:0; background:linear-gradient(90deg,var(--ink),transparent); }
.tst .marquee::after{ right:0; background:linear-gradient(270deg,var(--ink),transparent); }
.tst__track{ animation-duration:52s; }
.quote{
  width:400px; flex:none; margin:0 12px; background:var(--ink-2); border:1px solid var(--line-d);
  border-radius:20px; padding:30px; display:flex; flex-direction:column; gap:18px;
}
.quote__stars{ color:var(--gold); letter-spacing:2px; font-size:15px; }
.quote p{ font-size:16px; line-height:1.55; color:#E6E4EA; margin:0; }
.quote__who{ display:flex; align-items:center; gap:13px; margin-top:auto; }
.quote__ava{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; color:#fff; flex:none; }
.quote__who b{ display:block; font-family:var(--font-display); font-size:15px; color:#fff; }
.quote__who span{ font-size:12.5px; color:#9C99A5; }

/* ---------- tech stack ---------- */
.stack{ background:var(--paper); border-top:1px solid var(--line); padding-block:30px; }
.stack__label{ text-align:center; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:20px; }
.stack .marquee::before{ left:0; background:linear-gradient(90deg,var(--paper),transparent); }
.stack .marquee::after{ right:0; background:linear-gradient(270deg,var(--paper),transparent); }
.stack__track{ animation-duration:44s; }
.tool{ margin:0 22px; font-family:var(--font-display); font-weight:600; font-size:17px; color:var(--muted); white-space:nowrap; }
.tool:hover{ color:var(--crimson); }

/* ---------- cta band ---------- */
.cta-band{ background:linear-gradient(120deg,var(--maroon),var(--blood) 55%,var(--crimson)); color:#fff; text-align:center; }
.cta-band h2{ font-size:clamp(30px,4.4vw,50px); color:#fff; max-width:760px; margin-inline:auto; }
.cta-band p{ color:#F6DDE0; max-width:560px; margin:18px auto 30px; font-size:1.08rem; }
.cta-band .btn--primary{ background:#fff; color:var(--blood); box-shadow:0 16px 40px -16px rgba(0,0,0,.5); }
.cta-band .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.5); }
.cta-band .btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.cta-band__row{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ---------- contact ---------- */
.contact__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:start; }
.contact__info h3{ font-size:22px; margin-bottom:8px; }
.info-list{ list-style:none; margin:26px 0 0; padding:0; display:grid; gap:20px; }
.info-list li{ display:flex; gap:14px; }
.info-list .ico{ width:44px; height:44px; border-radius:12px; flex:none; display:grid; place-items:center; background:linear-gradient(135deg,var(--crimson),var(--blood)); }
.info-list .ico svg{ width:20px; height:20px; }
.info-list b{ display:block; font-family:var(--font-display); font-size:15px; color:var(--ink); }
.info-list span{ font-size:14.5px; color:var(--muted); }
.info-list a{ color:var(--crimson); font-weight:600; }
.map-embed{ margin-top:26px; border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-s); }
.map-embed iframe{ width:100%; height:230px; border:0; display:block; filter:grayscale(.15); }

.form-card{ background:#fff; border:1px solid var(--line); border-radius:22px; padding:34px; box-shadow:var(--shadow); }
.form-card h3{ font-size:22px; margin-bottom:6px; }
.form-card p.lead{ color:var(--muted); font-size:14.5px; margin:0 0 22px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:7px; }
.field input,.field select,.field textarea{
  width:100%; padding:13px 15px; border:1.5px solid var(--line); border-radius:12px;
  font-family:inherit; font-size:15px; color:var(--text); background:var(--paper-2); transition:border-color .15s, box-shadow .15s;
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--crimson); box-shadow:0 0 0 4px rgba(216,18,34,.12); background:#fff; }
.field textarea{ resize:vertical; min-height:110px; }
.field--row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-note{ font-size:12.5px; color:var(--muted-2); margin-top:12px; text-align:center; }
.form-msg{ margin-top:16px; padding:13px 16px; border-radius:12px; font-size:14.5px; display:none; }
.form-msg.ok{ display:block; background:rgba(37,211,102,.12); color:#1a7f43; border:1px solid rgba(37,211,102,.35); }
.form-msg.err{ display:block; background:rgba(216,18,34,.1); color:var(--blood); border:1px solid rgba(216,18,34,.3); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#B4B1BC; padding-block:60px 30px; }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.footer__brand .brand__name{ color:#fff; }
.footer__brand p{ font-size:14px; color:#8A8790; margin:16px 0 0; max-width:320px; }
.footer__col h4{ font-family:var(--font-display); font-size:14px; color:#fff; text-transform:uppercase; letter-spacing:.1em; margin-bottom:16px; }
.footer__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer__col a,.footer__col span{ font-size:14px; color:#9C99A5; }
.footer__col a:hover{ color:var(--crimson-2); }
.footer__bottom{ border-top:1px solid var(--line-d); margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:13px; color:#7A7882; }

/* ---------- whatsapp float ---------- */
.wa-float{ position:fixed; right:20px; bottom:22px; z-index:80; width:60px; height:60px; border-radius:50%;
  background:#25D366; display:grid; place-items:center; box-shadow:0 14px 34px -10px rgba(37,211,102,.7); transition:transform .2s; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:32px; height:32px; }
.wa-float::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #25D366; animation:pulse 2.4s ease-out infinite; }
@keyframes pulse{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(1.7); opacity:0; } }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .services__grid{ grid-template-columns:repeat(2,1fr); }
  .svc--wide{ grid-column:span 1; }
  .stats__grid{ grid-template-columns:repeat(3,1fr); row-gap:32px; }
  .why__grid{ grid-template-columns:repeat(2,1fr); }
  .markets__grid{ grid-template-columns:repeat(2,1fr); }
  .footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .nav__links,.nav__cta .btn--ghost{ display:none; }
  .nav__toggle{ display:inline-flex; }
  .site-header.open .nav__links{
    display:flex; position:absolute; top:76px; left:0; right:0; flex-direction:column; gap:0;
    background:var(--paper-2); border-bottom:1px solid var(--line); padding:8px var(--pad) 18px;
  }
  .site-header.open .nav__links li{ width:100%; border-bottom:1px solid var(--line); }
  .site-header.open .nav__links a{ display:block; padding:15px 0; opacity:1; }
  .hero__grid{ grid-template-columns:1fr; gap:36px; }
  .about__grid{ grid-template-columns:1fr; gap:36px; }
  .contact__grid{ grid-template-columns:1fr; gap:34px; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .services__grid{ grid-template-columns:1fr; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); }
  .why__grid{ grid-template-columns:1fr; }
  .markets__grid{ grid-template-columns:1fr; }
  .hero__stats{ grid-template-columns:1fr 1fr; }
  .field--row{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; }
  .quote{ width:300px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
  .marquee__track{ animation:none; }
}

/* =====================================================================
   Inner pages: blog, single, archive, search, 404, services detail
   ===================================================================== */

/* ---------- page hero ---------- */
.pagehero{ position:relative; overflow:hidden; padding-block:clamp(56px,8vw,104px); }
.pagehero__glow{
  position:absolute; inset:0;
  background:
    radial-gradient(60% 120% at 15% 0%, rgba(216,18,34,.28), transparent 60%),
    radial-gradient(50% 120% at 100% 100%, rgba(142,5,18,.35), transparent 55%);
  pointer-events:none;
}
.pagehero .wrap{ position:relative; z-index:1; }
.crumbs{ font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; color:#B4B1BC; margin-bottom:20px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.crumbs a{ color:#B4B1BC; transition:color .15s; }
.crumbs a:hover{ color:#fff; }
.crumbs span[aria-hidden]{ color:var(--crimson-2); }
.pagehero__title{ font-size:clamp(30px,5vw,58px); color:#fff; max-width:20ch; }
.pagehero__sub{ color:#B4B1BC; font-size:1.1rem; margin:18px 0 0; max-width:60ch; }
.pagehero--post .pagehero__title{ max-width:26ch; }
.postmeta{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:20px; color:#B4B1BC; font-size:14.5px; font-family:var(--font-mono); }

/* ---------- blog grid + cards ---------- */
.pgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.pcard{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease; }
.pcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-s); }
.pcard__media{ aspect-ratio:16/10; background:linear-gradient(120deg,var(--ink-2),var(--maroon)); overflow:hidden; display:flex; align-items:center; justify-content:center; }
.pcard__media img{ width:100%; height:100%; object-fit:cover; }
.pcard__ph{ font-family:var(--font-display); font-weight:700; color:rgba(255,255,255,.6); font-size:18px; letter-spacing:.02em; }
.pcard__body{ padding:22px 22px 26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.pcard__meta{ display:flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--muted-2); text-transform:uppercase; }
.pcard__cat{ color:var(--crimson); font-weight:700; }
.pcard__title{ font-size:20px; line-height:1.2; }
.pcard__title a{ transition:color .15s; }
.pcard__title a:hover{ color:var(--crimson); }
.pcard__excerpt{ color:var(--muted); font-size:15px; margin:0; flex:1; }
.pcard__more{ font-family:var(--font-display); font-weight:600; font-size:14.5px; color:var(--crimson); display:inline-flex; gap:8px; align-items:center; }
.pcard__more:hover span{ transform:translateX(3px); }
.pcard__more span{ transition:transform .15s ease; }

/* ---------- pagination ---------- */
.pagination{ margin-top:44px; }
.pagination .nav-links{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:center; }
.pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px;
  border:1px solid var(--line); border-radius:100px; font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--text); transition:all .15s;
}
.pagination .page-numbers:hover{ border-color:var(--crimson); color:var(--crimson); }
.pagination .page-numbers.current{ background:linear-gradient(120deg,var(--crimson),var(--blood)); color:#fff; border-color:transparent; }
.pagination .page-numbers.dots{ border:none; }

/* ---------- empty state ---------- */
.emptybox{ text-align:center; max-width:520px; margin:0 auto; padding:40px 0; }
.emptybox h2{ font-size:clamp(26px,4vw,38px); margin-bottom:14px; }
.emptybox p{ color:var(--muted); margin-bottom:24px; }

/* ---------- article / prose ---------- */
.article-wrap{ max-width:800px; }
.article__feature{ margin:0 0 36px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-s); }
.prose{ font-size:1.075rem; color:#2A2830; line-height:1.75; }
.prose > *{ margin:0 0 1.15em; }
.prose h2{ font-size:clamp(24px,3.4vw,34px); margin:1.7em 0 .5em; }
.prose h3{ font-size:clamp(20px,2.6vw,26px); margin:1.5em 0 .4em; }
.prose a{ color:var(--crimson); text-decoration:underline; text-underline-offset:3px; }
.prose a:hover{ color:var(--blood); }
.prose ul,.prose ol{ padding-left:1.3em; }
.prose li{ margin:0 0 .5em; }
.prose blockquote{
  margin:1.5em 0; padding:18px 26px; border-left:4px solid var(--crimson);
  background:var(--paper); border-radius:0 var(--radius-s) var(--radius-s) 0; font-size:1.15rem; color:var(--text);
}
.prose img{ border-radius:var(--radius-s); }
.prose code{ background:var(--ink); color:#fff; padding:2px 8px; border-radius:6px; font-family:var(--font-mono); font-size:.9em; }
.prose pre{ background:var(--ink); color:#EDEBEF; padding:20px; border-radius:var(--radius-s); overflow:auto; }
.prose pre code{ background:none; padding:0; }
.article__tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.article__tags a{ font-size:13px; padding:7px 15px; border:1px solid var(--line); border-radius:100px; color:var(--muted); transition:all .15s; }
.article__tags a:hover{ border-color:var(--crimson); color:var(--crimson); }
.page-links{ margin-top:24px; font-family:var(--font-display); font-weight:600; display:flex; gap:8px; }

/* ---------- author box ---------- */
.authorbox{ display:flex; gap:20px; align-items:flex-start; margin:44px 0 0; padding:26px; background:var(--paper); border-radius:var(--radius); border:1px solid var(--line); }
.authorbox__avatar img{ border-radius:50%; width:64px; height:64px; }
.authorbox__label{ font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--crimson); }
.authorbox__name{ display:block; font-family:var(--font-display); font-size:19px; margin:2px 0 6px; }
.authorbox p{ margin:0; color:var(--muted); font-size:15px; }

/* ---------- post navigation ---------- */
.postnav{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }
.postnav__link{ padding:20px 22px; border:1px solid var(--line); border-radius:var(--radius); transition:all .18s; display:flex; flex-direction:column; gap:6px; }
.postnav__link:hover{ border-color:var(--crimson); transform:translateY(-2px); box-shadow:var(--shadow-s); }
.postnav__link span{ font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted-2); }
.postnav__link strong{ font-family:var(--font-display); font-size:16px; line-height:1.25; }
.postnav__link--next{ text-align:right; }

/* ---------- comments ---------- */
.comments{ margin-top:52px; padding-top:40px; border-top:1px solid var(--line); }
.comments__title{ font-size:24px; margin-bottom:24px; }
.commentlist{ list-style:none; margin:0 0 30px; padding:0; }
.commentlist ol.children{ list-style:none; margin:0; padding-left:28px; }
.commentlist li{ margin:0 0 22px; }
.commentlist .comment-body{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-s); padding:20px; }
.comments__reply{ font-size:22px; margin-bottom:10px; }
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%; padding:14px 16px; border:1.5px solid var(--line); border-radius:var(--radius-s); font-family:inherit; font-size:15px; margin-top:6px; background:var(--white);
}
.comment-form textarea:focus,.comment-form input:focus{ outline:none; border-color:var(--crimson); }
.comment-form p{ margin-bottom:16px; }

/* ---------- search ---------- */
.searchbar{ margin-bottom:36px; max-width:560px; }
.searchform{ display:flex; gap:10px; }
.searchform input[type=search]{ flex:1; padding:14px 18px; border:1.5px solid var(--line); border-radius:100px; font-family:inherit; font-size:15px; background:var(--white); }
.searchform input[type=search]:focus{ outline:none; border-color:var(--crimson); }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

/* ---------- 404 ---------- */
.section--404{ padding-block:clamp(70px,10vw,130px); }
.notfound{ text-align:center; max-width:600px; margin:0 auto; }
.notfound__code{ font-family:var(--font-display); font-weight:700; font-size:clamp(80px,16vw,150px); line-height:1; background:linear-gradient(120deg,var(--crimson),var(--blood)); -webkit-background-clip:text; background-clip:text; color:transparent; display:block; }
.notfound h1{ font-size:clamp(26px,4.4vw,42px); margin:8px 0 14px; }
.notfound p{ color:var(--muted); margin-bottom:26px; }
.notfound__actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:30px; }
.notfound__search{ max-width:420px; margin:0 auto; }

/* ---------- reusable cta band ---------- */
.ctaband{ position:relative; overflow:hidden; background:var(--ink); color:#fff; padding-block:clamp(56px,8vw,96px); }
.ctaband__glow{ position:absolute; inset:0; background:radial-gradient(60% 130% at 100% 0%, rgba(216,18,34,.32), transparent 55%); pointer-events:none; }
.ctaband__inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.3fr .9fr; gap:36px; align-items:center; }
.ctaband h2{ font-size:clamp(28px,4vw,44px); color:#fff; margin:6px 0 14px; }
.ctaband p{ color:#B4B1BC; margin:0; max-width:52ch; }
.ctaband__actions{ display:flex; gap:14px; flex-wrap:wrap; justify-content:flex-end; }

/* ---------- services detail ---------- */
.services-detail{ padding-block:clamp(56px,8vw,110px); }
.sdrow{ display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; padding:44px 0; border-bottom:1px solid var(--line); }
.sdrow:last-child{ border-bottom:none; }
.sdrow--flip .sdrow__text{ order:2; }
.sdrow--flip .sdrow__side{ order:1; }
.sdtag{ display:inline-block; font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.14em; color:#fff; background:linear-gradient(120deg,var(--crimson),var(--blood)); padding:5px 12px; border-radius:100px; margin-bottom:14px; }
.sdrow__text h2{ font-size:clamp(26px,3.6vw,38px); margin-bottom:14px; }
.sdrow__lead{ color:var(--muted); font-size:1.08rem; margin:0 0 22px; }
.sdlist{ list-style:none; padding:0; margin:0 0 26px; display:grid; gap:12px; }
.sdlist li{ position:relative; padding-left:32px; color:var(--text); font-size:15.5px; }
.sdlist li::before{
  content:""; position:absolute; left:0; top:2px; width:20px; height:20px; border-radius:50%;
  background:linear-gradient(120deg,var(--crimson),var(--blood));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/14px no-repeat;
}
.sdrow__side{ display:flex; justify-content:center; }
.sdcard{
  width:100%; aspect-ratio:4/3; border-radius:var(--radius); position:relative; overflow:hidden;
  background:linear-gradient(150deg,var(--ink-2),var(--maroon));
  display:flex; flex-direction:column; justify-content:flex-end; padding:28px; box-shadow:var(--shadow);
}
.sdcard::before{ content:""; position:absolute; inset:0; background:radial-gradient(70% 90% at 80% 10%, rgba(242,51,74,.4), transparent 60%); }
.sdcard__num{ position:relative; font-family:var(--font-display); font-weight:700; font-size:64px; color:rgba(255,255,255,.16); line-height:1; }
.sdcard__label{ position:relative; font-family:var(--font-display); font-weight:600; font-size:19px; color:#fff; margin-top:6px; }

/* ---------- process ---------- */
.process__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:44px; }
.pstep{ padding:26px; border:1px solid var(--line-d); border-radius:var(--radius); background:rgba(255,255,255,.03); }
.pstep__num{ font-family:var(--font-mono); font-size:14px; color:var(--crimson-2); font-weight:700; }
.pstep h3{ font-size:20px; color:#fff; margin:12px 0 8px; }
.pstep p{ color:#B4B1BC; font-size:15px; margin:0; }

/* ---------- inner page responsive ---------- */
@media (max-width:900px){
  .pgrid{ grid-template-columns:repeat(2,1fr); }
  .ctaband__inner{ grid-template-columns:1fr; }
  .ctaband__actions{ justify-content:flex-start; }
  .sdrow{ grid-template-columns:1fr; gap:28px; }
  .sdrow--flip .sdrow__text,.sdrow--flip .sdrow__side{ order:initial; }
  .sdrow__side{ max-width:360px; }
  .process__grid{ grid-template-columns:repeat(2,1fr); }
  .postnav{ grid-template-columns:1fr; }
  .postnav__link--next{ text-align:left; }
}
@media (max-width:640px){
  .pgrid{ grid-template-columns:1fr; }
  .process__grid{ grid-template-columns:1fr; }
  .authorbox{ flex-direction:column; }
  .searchform{ flex-direction:column; }
  .searchform .btn{ width:100%; justify-content:center; }
}
