/* ===========================================================
   RED GIANT MEDIA — shared design system
   Tokens, layout primitives, and components used across every
   page (home, work, and all service landing pages).
   =========================================================== */

:root{
  --crimson:#C00000;
  --crimson-dark:#910000;
  --ember:#7A1F0A;
  --dark:#161210;
  --dark-2:#1F1815;
  --cream:#FBF6F0;
  --gold:#D4A017;
  --paper:#F2EAE0;
  --green:#3ddc84;
  --line: rgba(251,246,240,0.14);
  --line-dark: rgba(26,26,26,0.12);
  --maxw:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--dark);
  font-family:'Poppins', sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}
.display{ font-family:'Anton', sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:0.01em; }
.mono{ font-family:'JetBrains Mono', monospace; letter-spacing:0.02em; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding-left:24px; padding-right:24px; }
@media (min-width:768px){ .wrap{ padding-left:48px; padding-right:48px; } }
.section{ padding:88px 0; }
.section-tight{ padding:56px 0; }
.section-head{ max-width:680px; margin-bottom:52px; }
.section-eyebrow{
  font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--crimson); margin-bottom:16px; display:block;
}
.section-eyebrow.on-dark{ color:var(--gold); }
.section h2{ font-family:'Anton', sans-serif; font-size:clamp(2rem,4.4vw,3.1rem); line-height:1.04; text-transform:uppercase; }
.section-sub{ margin-top:18px; font-size:16px; line-height:1.7; color:rgba(26,26,26,0.66); font-weight:300; max-width:560px; }
.section-sub.on-dark{ color:rgba(251,246,240,0.68); }

/* ---------- TOPBAR (utility strip, conversion) ---------- */
.topbar{
  background:var(--dark); color:rgba(251,246,240,0.85);
  font-family:'JetBrains Mono', monospace; font-size:11.5px;
  border-bottom:1px solid var(--line);
}
.topbar .wrap{
  display:flex; align-items:center; justify-content:space-between; height:34px; gap:16px;
  overflow:hidden;
}
.topbar-msg{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:rgba(251,246,240,0.6); }
.topbar-contacts{ display:flex; gap:18px; white-space:nowrap; }
.topbar-contacts a{ text-decoration:none; color:rgba(251,246,240,0.85); transition:color .2s; }
.topbar-contacts a:hover{ color:var(--gold); }

/* ---------- NAV ---------- */
header.site-header{
  position:sticky; top:0; left:0; right:0; z-index:100;
  background:rgba(22,18,16,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:64px; max-width:var(--maxw); margin:0 auto; padding:0 24px;
}
@media (min-width:768px){ .nav{ padding:0 48px; } }
.nav-mark{ display:flex; align-items:center; gap:10px; color:var(--cream); text-decoration:none; flex:none; }
.nav-mark .dot{ width:11px; height:11px; border-radius:50%; background:var(--crimson); box-shadow:0 0 14px 2px rgba(192,0,0,0.65); }
.nav-mark .wordmark{ font-family:'Anton', sans-serif; font-size:17px; letter-spacing:0.04em; }
.nav-links{ display:none; gap:28px; font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(251,246,240,0.75); position:relative; }
@media (min-width:880px){ .nav-links{ display:flex; align-items:center; } }
.nav-links > a{ text-decoration:none; transition:color .2s; padding:8px 0; }
.nav-links > a:hover, .nav-links > a.active{ color:var(--gold); }
.nav-dropdown{ position:relative; }
.nav-dropdown > button{
  background:none; border:none; color:inherit; font:inherit; letter-spacing:inherit; text-transform:inherit;
  cursor:pointer; display:flex; align-items:center; gap:6px; padding:8px 0;
}
.nav-dropdown > button:hover{ color:var(--gold); }
.nav-dropdown-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  background:var(--dark-2); border:1px solid var(--line); border-radius:4px; padding:8px;
  min-width:230px; display:none; flex-direction:column; box-shadow:0 18px 40px rgba(0,0,0,0.45);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{ display:flex; }
.nav-dropdown-menu a{
  text-decoration:none; padding:10px 12px; border-radius:3px; font-size:12.5px; letter-spacing:0.02em;
  text-transform:none; color:rgba(251,246,240,0.8); transition:background .15s, color .15s;
}
.nav-dropdown-menu a:hover{ background:rgba(192,0,0,0.18); color:var(--cream); }
.nav-dropdown-menu.mega{
  position:fixed; top:98px; left:50%; transform:translateX(-50%); right:auto;
  flex-direction:row; flex-wrap:wrap; width:min(880px, 94vw); max-height:78vh; overflow-y:auto;
  padding:24px; gap:0;
}
.mega-col{ flex:1 1 200px; min-width:170px; max-width:240px; display:flex; flex-direction:column; padding:10px 14px; border-right:1px solid var(--line); }
.mega-col:nth-child(4n){ border-right:none; }
.mega-col-head{
  font-family:'JetBrains Mono', monospace; font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--gold); margin-bottom:8px; padding:0 12px;
}
.nav-cta{
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase; text-decoration:none;
  color:var(--dark); background:var(--gold); padding:10px 18px; border-radius:2px; font-weight:600;
  transition:transform .15s ease, box-shadow .15s ease; white-space:nowrap; flex:none;
}
.nav-cta:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(212,160,23,0.35); }
.nav-toggle{ display:flex; background:none; border:1px solid var(--line); color:var(--cream); border-radius:3px; padding:8px 10px; cursor:pointer; }
@media (min-width:880px){ .nav-toggle{ display:none; } }
.nav-mobile{ display:none; flex-direction:column; gap:2px; padding:8px 24px 18px; background:var(--dark-2); border-bottom:1px solid var(--line); max-height:70vh; overflow-y:auto; }
.nav-mobile.open{ display:flex; }
.nav-mobile a{ text-decoration:none; color:rgba(251,246,240,0.82); font-size:14px; padding:11px 4px; border-bottom:1px solid var(--line); }
.nav-mobile a:last-child{ border-bottom:none; }
.nav-mobile-head{
  font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--gold); padding:14px 4px 4px;
}

/* breadcrumb */
.crumb{
  font-family:'JetBrains Mono', monospace; font-size:11.5px; color:rgba(26,26,26,0.5);
  padding:18px 0 0; letter-spacing:0.02em;
}
.crumb a{ text-decoration:none; color:rgba(26,26,26,0.5); }
.crumb a:hover{ color:var(--crimson); }
.crumb.on-dark, .crumb.on-dark a{ color:rgba(251,246,240,0.5); }
.crumb.on-dark a:hover{ color:var(--gold); }

/* ---------- HERO (generic, reused per page) ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(ellipse 120% 80% at 18% -10%, rgba(192,0,0,0.55), transparent 60%),
    radial-gradient(ellipse 90% 60% at 100% 0%, rgba(122,31,10,0.5), transparent 55%),
    var(--dark);
  color:var(--cream);
  padding:64px 0 0 0;
  overflow:hidden;
}
.hero-grain{
  position:absolute; inset:0; pointer-events:none; opacity:0.06; mix-blend-mode:overlay; z-index:2;
  background-image: repeating-linear-gradient(0deg, #fff 0 1px, transparent 1px 3px);
}
.hero-inner{ padding:70px 0 0; }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold); padding-bottom:22px;
}
.eyebrow::before{ content:''; width:26px; height:1px; background:var(--gold); display:inline-block; }
.hero h1{ font-size:clamp(2.4rem, 7.4vw, 5.2rem); line-height:0.98; color:var(--cream); }
.hero h1.xl{ font-size:clamp(2.6rem, 9.5vw, 6.4rem); line-height:0.94; }
.hero h1 em{ font-style:normal; color:var(--crimson); -webkit-text-stroke: 1.5px rgba(251,246,240,0.9); }
.hero-sub{ max-width:560px; margin-top:24px; font-size:17px; line-height:1.65; color:rgba(251,246,240,0.78); font-weight:300; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; margin-top:34px; align-items:center; }
.btn-primary{
  background:var(--crimson); color:#fff; text-decoration:none; font-weight:600; font-size:14px;
  letter-spacing:0.04em; padding:16px 30px; border-radius:2px; display:inline-flex; align-items:center; gap:10px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease; border:none; cursor:pointer;
  box-shadow:0 0 0 1px rgba(255,255,255,0.06) inset; font-family:inherit;
}
.btn-primary:hover{ background:var(--crimson-dark); transform:translateY(-2px); box-shadow:0 10px 24px rgba(192,0,0,0.4); }
.btn-secondary{
  background:transparent; color:var(--cream); text-decoration:none; font-weight:600; font-size:14px;
  letter-spacing:0.04em; padding:15px 28px; border-radius:2px; display:inline-flex; align-items:center; gap:10px;
  border:1px solid rgba(251,246,240,0.35); transition:border-color .2s, background .2s;
}
.btn-secondary:hover{ border-color:var(--gold); background:rgba(212,160,23,0.08); }
.btn-ghost{
  color:var(--cream); text-decoration:none; font-weight:500; font-size:14px; letter-spacing:0.04em;
  padding:16px 6px; border-bottom:1px solid rgba(251,246,240,0.35);
  transition:border-color .2s, color .2s;
}
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

.hero-stats{ margin-top:64px; border-top:1px solid var(--line); display:grid; grid-template-columns: repeat(2,1fr); gap:0; }
@media (min-width:700px){ .hero-stats{ grid-template-columns:repeat(4,1fr); } }
.hero-stats .stat{ padding:22px 20px 26px 0; border-right:1px solid var(--line); }
.hero-stats .stat:nth-child(2n){ border-right:none; }
@media (min-width:700px){ .hero-stats .stat:nth-child(2n){ border-right:1px solid var(--line); } .hero-stats .stat:last-child{ border-right:none; } }
.stat .num{ font-family:'Anton', sans-serif; font-size:clamp(1.7rem,3.4vw,2.4rem); color:var(--gold); }
.stat .label{ font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(251,246,240,0.55); margin-top:6px; }

/* ---------- TRUST BAR ---------- */
.trustbar{ background:var(--dark-2); border-top:1px solid var(--line); }
.trustbar .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 38px; padding:22px 24px; }
@media (min-width:768px){ .trustbar .wrap{ padding:22px 48px; } }
.trustbar-label{ font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:rgba(251,246,240,0.45); flex:none; }
.trustbar-logos{ display:flex; flex-wrap:wrap; gap:10px 30px; }
.trustbar-logos span{ font-family:'Anton', sans-serif; font-size:15px; text-transform:uppercase; color:rgba(251,246,240,0.65); letter-spacing:0.01em; }

/* ---------- FIELD LOG TICKER ---------- */
.fieldlog{ background:var(--ember); color:var(--cream); overflow:hidden; position:relative; border-top:1px solid rgba(251,246,240,0.15); border-bottom:1px solid rgba(251,246,240,0.15); }
.fieldlog::before, .fieldlog::after{ content:''; position:absolute; top:0; bottom:0; width:60px; z-index:2; pointer-events:none; }
.fieldlog::before{ left:0; background:linear-gradient(90deg, var(--ember), transparent); }
.fieldlog::after{ right:0; background:linear-gradient(270deg, var(--ember), transparent); }
.fieldlog-track{ display:flex; width:max-content; animation: scroll-left 42s linear infinite; }
.fieldlog-track:hover{ animation-play-state:paused; }
@keyframes scroll-left{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.log-entry{ font-family:'JetBrains Mono', monospace; font-size:12.5px; letter-spacing:0.03em; white-space:nowrap; padding:13px 28px; border-right:1px solid rgba(251,246,240,0.18); display:flex; align-items:center; gap:10px; }
.log-entry .led{ width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 8px 1px var(--green); flex:none; }
.log-entry .field{ color:var(--gold); }

/* ---------- PAIN / VALUE GRID ---------- */
.pain-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); }
@media (min-width:700px){ .pain-grid{ grid-template-columns:repeat(3,1fr); } }
.pain-card{ background:var(--cream); padding:30px 26px; }
.pain-card .mark{ font-family:'Anton', sans-serif; font-size:1.6rem; color:var(--crimson); }
.pain-card h4{ font-size:15.5px; font-weight:600; margin-top:12px; }
.pain-card p{ font-size:13.5px; line-height:1.65; color:rgba(26,26,26,0.6); font-weight:300; margin-top:8px; }

/* ---------- SERVICES GRID (home) ---------- */
.services{ background:var(--cream); }
.service-grid{ display:grid; grid-template-columns:1fr; border-top:1px solid var(--line-dark); }
@media (min-width:760px){ .service-grid{ grid-template-columns:repeat(2,1fr); } }
.service-card{ padding:34px 32px 34px 0; border-bottom:1px solid var(--line-dark); position:relative; text-decoration:none; color:inherit; display:block; transition:background .2s; }
@media (min-width:760px){
  .service-card{ padding-right:48px; }
  .service-card:nth-child(odd){ border-right:1px solid var(--line-dark); padding-right:40px; }
  .service-card:nth-child(even){ padding-left:40px; }
}
.service-card:hover{ background:rgba(192,0,0,0.04); }
.service-card .tag{ font-family:'JetBrains Mono', monospace; font-size:11px; color:var(--crimson); letter-spacing:0.08em; }
.service-card h3{ font-family:'Anton', sans-serif; font-size:1.45rem; text-transform:uppercase; margin-top:10px; letter-spacing:0.01em; }
.service-card p{ margin-top:12px; font-size:14px; line-height:1.7; color:rgba(26,26,26,0.64); font-weight:300; max-width:420px; }
.service-card .go{ margin-top:16px; font-family:'JetBrains Mono', monospace; font-size:11.5px; color:var(--crimson); display:inline-flex; align-items:center; gap:6px; }
.service-card:hover .go{ text-decoration:underline; }

/* ---------- OFFERING INDEX (homepage "full offering" — editorial list, not cards) ---------- */
.offering-index{ border-top:1px solid var(--line-dark); margin-top:4px; }
.offering-cat-label{
  font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.13em; text-transform:uppercase;
  color:var(--crimson); padding:32px 0 6px; display:block;
}
.offering-index > .offering-cat-label:first-child{ padding-top:24px; }
.offering-row{
  display:grid; grid-template-columns:34px 38px 1fr auto; align-items:center; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--line-dark); text-decoration:none; color:inherit;
  transition:padding-left .2s ease, background .2s ease;
}
.offering-row:hover{ background:rgba(192,0,0,0.035); padding-left:10px; }
.offering-row .o-idx{ font-family:'Anton', sans-serif; font-size:1rem; color:rgba(192,0,0,0.32); transition:color .2s; }
.offering-row:hover .o-idx{ color:var(--crimson); }
.offering-row .o-icon{ width:34px; height:34px; border-radius:8px; background:rgba(192,0,0,0.07); display:flex; align-items:center; justify-content:center; flex:none; }
.offering-row .o-icon svg{ width:16px; height:16px; stroke:var(--crimson); fill:none; stroke-width:1.6; }
.offering-row .o-body{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.offering-row h3{ font-family:'Anton', sans-serif; font-size:1rem; text-transform:uppercase; letter-spacing:0.01em; }
@media (min-width:640px){ .offering-row h3{ font-size:1.15rem; } .offering-row .o-desc{ display:block; } }
.offering-row .o-desc{ display:none; font-size:12.5px; color:rgba(26,26,26,0.55); font-weight:300; max-width:480px; }
.offering-row .o-arrow{
  font-family:'JetBrains Mono', monospace; font-size:13px; color:var(--crimson); opacity:0; transform:translateX(-8px);
  transition:all .2s ease; flex:none;
}
@media (min-width:880px){ .offering-row .o-arrow{ opacity:0; } .offering-row:hover .o-arrow{ opacity:1; transform:translateX(0); } }
@media (max-width:879px){ .offering-row .o-arrow{ opacity:0.4; } }

/* ---------- APPROACH / PROCESS ---------- */
.approach{ background:var(--dark); color:var(--cream); }
.approach-grid{ display:grid; grid-template-columns:1fr; gap:0; margin-top:10px; }
@media (min-width:760px){ .approach-grid{ grid-template-columns: 1.1fr 0.9fr; gap:60px; align-items:start; } }
.approach-list{ list-style:none; }
.approach-list li{ padding:24px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:54px 1fr; gap:18px; align-items:start; }
.approach-list li:first-child{ border-top:1px solid var(--line); }
.approach-list .ph{ font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--gold); padding-top:3px; }
.approach-list h4{ font-family:'Poppins', sans-serif; font-weight:600; font-size:16.5px; }
.approach-list p{ margin-top:8px; font-size:14px; line-height:1.7; color:rgba(251,246,240,0.6); font-weight:300; }
.panel{ background:var(--dark-2); border:1px solid var(--line); border-radius:3px; padding:32px; margin-top:48px; }
@media (min-width:760px){ .panel{ margin-top:0; } }
.panel .mono-label{ font-family:'JetBrains Mono', monospace; font-size:11px; color:var(--gold); letter-spacing:0.1em; text-transform:uppercase; }
.panel-quote{ font-size:19px; line-height:1.55; margin-top:18px; font-weight:300; color:var(--cream); }
.panel-quote strong{ font-weight:600; color:var(--gold); }
.panel-foot{ margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:13px; color:rgba(251,246,240,0.55); }

/* ---------- DELIVERABLES CHECKLIST ---------- */
.deliverables{ list-style:none; display:grid; grid-template-columns:1fr; gap:0; margin-top:8px; }
@media (min-width:640px){ .deliverables{ grid-template-columns:1fr 1fr; } }
.deliverables li{ display:flex; gap:12px; padding:14px 16px 14px 0; border-bottom:1px solid var(--line-dark); font-size:14.5px; line-height:1.55; }
.deliverables li .check{ flex:none; width:20px; height:20px; border-radius:50%; background:var(--crimson); color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center; margin-top:1px; }

/* ---------- PORTFOLIO / CASE STUDY CARDS ---------- */
.work-toolbar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; }
.filter-pill{
  font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.04em; text-transform:uppercase;
  padding:9px 16px; border-radius:30px; border:1px solid var(--line-dark); background:transparent; color:rgba(26,26,26,0.6);
  cursor:pointer; transition:all .15s;
}
.filter-pill:hover{ border-color:var(--crimson); color:var(--crimson); }
.filter-pill.active{ background:var(--dark); color:var(--cream); border-color:var(--dark); }
.portfolio-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media (min-width:700px){ .portfolio-grid{ grid-template-columns:repeat(2,1fr); } }
.case-card{
  position:relative; border-radius:4px; overflow:hidden; padding:30px 26px; min-height:260px;
  display:flex; flex-direction:column; justify-content:space-between; color:#fff;
  text-decoration:none; isolation:isolate; transition:transform .2s ease, box-shadow .2s ease;
}
.case-card:hover{ transform:translateY(-4px); box-shadow:0 18px 34px rgba(0,0,0,0.22); }
.case-card::before{ content:''; position:absolute; inset:0; z-index:-2; }
.case-card::after{ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.55)); }
.case-card[data-bg="crimson"]::before{ background:linear-gradient(135deg, var(--crimson), var(--ember)); }
.case-card[data-bg="dark"]::before{ background:linear-gradient(135deg, #2a2420, var(--dark)); }
.case-card[data-bg="gold"]::before{ background:linear-gradient(135deg, #b9871a, #7a1f0a); }
.case-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.case-tags span{ font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; padding:5px 10px; border:1px solid rgba(255,255,255,0.35); border-radius:30px; }
.case-card h3{ font-family:'Anton', sans-serif; font-size:1.7rem; text-transform:uppercase; line-height:1.05; margin-top:18px; }
.case-card .case-meta{ display:flex; gap:18px; margin-top:18px; flex-wrap:wrap; }
.case-meta .m-num{ font-family:'Anton', sans-serif; font-size:1.2rem; }
.case-meta .m-label{ font-family:'JetBrains Mono', monospace; font-size:9.5px; letter-spacing:0.06em; text-transform:uppercase; opacity:0.7; }
.case-status{ font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px; }
.case-status .led{ width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 6px 1px var(--green); }
.case-card.full-bleed{ grid-column:1 / -1; min-height:320px; }
.case-card.placeholder{
  background:var(--cream); border:1.5px dashed rgba(26,26,26,0.18); color:rgba(26,26,26,0.55);
  align-items:flex-start; justify-content:center; min-height:160px;
}
.case-card.placeholder::before, .case-card.placeholder::after{ display:none; content:none; }
.case-card.placeholder:hover{ transform:none; box-shadow:none; }
.case-card.placeholder h4{ font-family:'Anton', sans-serif; font-size:1.05rem; text-transform:uppercase; color:rgba(26,26,26,0.5); }
.case-card.placeholder p{ font-size:12.5px; line-height:1.6; margin-top:8px; max-width:380px; }
.case-card.placeholder p a{ color:var(--crimson); text-decoration:underline; }

.offering-cat-label + .portfolio-grid{ margin-bottom:8px; }

.partner-strip{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:18px; }
@media (min-width:700px){ .partner-strip{ grid-template-columns:repeat(4,1fr); } }
.partner-tile{ background:var(--paper); padding:22px 18px; }
.partner-tile .pname{ font-family:'Anton', sans-serif; font-size:1.1rem; text-transform:uppercase; }
.partner-tile .ptag{ font-family:'JetBrains Mono', monospace; font-size:10px; color:rgba(26,26,26,0.5); margin-top:6px; text-transform:uppercase; letter-spacing:0.06em; }

/* ---------- TESTIMONIALS ---------- */
.testimonial-grid{ display:grid; grid-template-columns:1fr; gap:20px; }
@media (min-width:760px){ .testimonial-grid{ grid-template-columns:repeat(3,1fr); } }
.testimonial-card{ background:var(--paper); border:1px solid var(--line-dark); border-radius:4px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; }
.testimonial-card .stars{ color:var(--gold); font-size:14px; letter-spacing:2px; }
.testimonial-card p.quote{ font-size:14.5px; line-height:1.7; margin-top:14px; font-weight:300; color:rgba(26,26,26,0.78); }
.testimonial-card .who{ margin-top:20px; font-size:12.5px; }
.testimonial-card .who strong{ display:block; font-weight:600; }
.testimonial-card .who span{ color:rgba(26,26,26,0.5); font-family:'JetBrains Mono', monospace; font-size:11px; }

/* ---------- FAQ ---------- */
.faq-list{ border-top:1px solid var(--line-dark); }
.faq-list details{ border-bottom:1px solid var(--line-dark); padding:20px 0; }
.faq-list summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; font-weight:500; font-size:15.5px; }
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{ content:'+'; font-family:'Anton', sans-serif; font-size:20px; color:var(--crimson); flex:none; transition:transform .2s; }
.faq-list details[open] summary::after{ content:'–'; }
.faq-list .faq-a{ font-size:14.5px; line-height:1.7; color:rgba(26,26,26,0.62); font-weight:300; margin-top:14px; max-width:620px; }
.faq-list.on-dark{ border-top-color:var(--line); }
.faq-list.on-dark details{ border-bottom-color:var(--line); }
.faq-list.on-dark summary{ color:var(--cream); }
.faq-list.on-dark .faq-a{ color:rgba(251,246,240,0.62); }

/* ---------- RELATED SERVICES STRIP ---------- */
.related{ background:var(--paper); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
.related-row{ display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; }
.related-chip{
  flex:none; text-decoration:none; color:var(--dark); background:var(--cream); border:1px solid var(--line-dark);
  border-radius:30px; padding:11px 20px; font-size:13px; font-weight:500; transition:all .15s;
}
.related-chip:hover{ background:var(--dark); color:var(--cream); border-color:var(--dark); }

/* ---------- LEAD FORM ---------- */
.lead-section{ background:var(--dark); color:var(--cream); position:relative; overflow:hidden; }
.lead-section::before{ content:''; position:absolute; right:-10%; top:-20%; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(192,0,0,0.35), transparent 70%); }
.lead-grid{ display:grid; grid-template-columns:1fr; gap:48px; position:relative; z-index:1; }
@media (min-width:860px){ .lead-grid{ grid-template-columns: 1fr 1fr; align-items:start; } }
.lead-copy h2{ font-family:'Anton', sans-serif; font-size:clamp(2rem,4.6vw,3rem); text-transform:uppercase; line-height:1.05; }
.lead-copy p{ margin-top:18px; font-size:15.5px; line-height:1.7; color:rgba(251,246,240,0.68); font-weight:300; max-width:420px; }
.lead-channels{ display:flex; flex-direction:column; gap:14px; margin-top:32px; }
.lead-channel{ display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--cream); }
.lead-channel .ic{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex:none; font-family:'JetBrains Mono', monospace; font-size:13px; }
.lead-channel .tx strong{ display:block; font-size:14px; font-weight:600; }
.lead-channel .tx span{ font-size:12.5px; color:rgba(251,246,240,0.55); font-family:'JetBrains Mono', monospace; }

.lead-form{ background:var(--dark-2); border:1px solid var(--line); border-radius:6px; padding:30px; }
.form-row{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:16px; }
@media (min-width:480px){ .form-row.two{ grid-template-columns:1fr 1fr; } }
.field label{ display:block; font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(251,246,240,0.55); margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; background:var(--dark); border:1px solid var(--line); color:var(--cream);
  padding:13px 14px; border-radius:3px; font-family:'Poppins', sans-serif; font-size:14px;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:90px; }
.form-submit{ width:100%; justify-content:center; margin-top:6px; }
.form-note{ font-size:11.5px; color:rgba(251,246,240,0.4); margin-top:14px; font-family:'JetBrains Mono', monospace; line-height:1.6; }
.form-success{ display:none; text-align:center; padding:30px 10px; }
.form-success.show{ display:block; }
.form-success .big{ font-family:'Anton', sans-serif; font-size:1.6rem; color:var(--gold); text-transform:uppercase; }
.form-success p{ margin-top:12px; font-size:13.5px; color:rgba(251,246,240,0.65); line-height:1.7; }

/* ---------- FINAL CTA (simple band, used on service pages) ---------- */
.cta-band{ background:var(--crimson); color:#fff; position:relative; overflow:hidden; }
.cta-band::before{ content:''; position:absolute; right:-8%; top:-30%; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,0.14), transparent 70%); }
.cta-inner{ display:flex; flex-direction:column; gap:30px; padding:70px 0; position:relative; z-index:1; }
@media (min-width:760px){ .cta-inner{ flex-direction:row; align-items:flex-end; justify-content:space-between; } }
.cta-inner h2{ font-family:'Anton', sans-serif; font-size:clamp(1.9rem,4.6vw,3rem); text-transform:uppercase; line-height:1.02; max-width:560px; }
.cta-actions{ display:flex; flex-direction:column; gap:14px; }
.cta-band .btn-primary{ background:#fff; color:var(--crimson); }
.cta-band .btn-primary:hover{ background:var(--cream); box-shadow:0 10px 24px rgba(0,0,0,0.25); }
.cta-note{ font-size:13px; color:rgba(255,255,255,0.78); font-family:'JetBrains Mono', monospace; }

/* ---------- DATA VIZ: animated counters ---------- */
.num.count-anim{ transition:none; }

/* ---------- DATA VIZ: progress ring ---------- */
.stat-ring{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.ring{ position:relative; width:76px; height:76px; flex:none; }
.ring svg{ transform:rotate(-90deg); width:100%; height:100%; }
.ring circle{ fill:none; stroke-width:7; }
.ring .track{ stroke:rgba(251,246,240,0.15); }
.ring .progress{ stroke:var(--gold); stroke-linecap:round; transition: stroke-dashoffset 1.4s cubic-bezier(.22,.9,.32,1); }
.ring-label{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Anton', sans-serif; font-size:1rem; color:var(--cream); }

/* ---------- DATA VIZ: visual process stepper ---------- */
.approach-list{ position:relative; }
.approach-list::before{ content:''; position:absolute; left:19px; top:6px; bottom:6px; width:2px; background:var(--line); z-index:0; }
.approach-list .ph{
  width:40px; height:40px; border-radius:50%; background:var(--crimson); color:#fff;
  font-family:'Anton', sans-serif; font-size:14px; display:flex; align-items:center; justify-content:center;
  position:relative; z-index:1; flex:none;
}
.step-eyebrow{ font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:5px; }

/* ---------- DATA VIZ: regional coverage grid ---------- */
.coverage-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin-top:8px; }
.coverage-grid.on-dark{ background:var(--line); border-color:var(--line); }
.coverage-tile{ background:var(--cream); padding:20px 18px; display:flex; flex-direction:column; gap:9px; transition:background .2s; }
.coverage-grid.on-dark .coverage-tile{ background:var(--dark-2); }
.coverage-tile.core{ background:linear-gradient(135deg, rgba(192,0,0,0.07), rgba(192,0,0,0.015)); }
.coverage-grid.on-dark .coverage-tile.core{ background:linear-gradient(135deg, rgba(192,0,0,0.22), rgba(192,0,0,0.04)); }
.coverage-tile .dot{ width:9px; height:9px; border-radius:50%; background:rgba(26,26,26,0.22); }
.coverage-grid.on-dark .coverage-tile .dot{ background:rgba(251,246,240,0.25); }
.coverage-tile.core .dot{ background:var(--crimson); box-shadow:0 0 8px rgba(192,0,0,0.5); }
.coverage-tile .rname{ font-weight:600; font-size:14px; }
.coverage-grid.on-dark .coverage-tile .rname{ color:var(--cream); }
.coverage-tile .rstatus{ font-family:'JetBrains Mono', monospace; font-size:9.5px; text-transform:uppercase; letter-spacing:0.07em; color:rgba(26,26,26,0.5); }
.coverage-grid.on-dark .coverage-tile .rstatus{ color:rgba(251,246,240,0.45); }
.coverage-legend{ display:flex; gap:22px; margin-top:16px; flex-wrap:wrap; }
.coverage-legend span{ display:flex; align-items:center; gap:8px; font-family:'JetBrains Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:rgba(26,26,26,0.5); }
.coverage-legend .dot{ width:8px; height:8px; border-radius:50%; }
.coverage-legend .dot.core{ background:var(--crimson); }
.coverage-legend .dot.reach{ background:rgba(26,26,26,0.22); }

/* ---------- DATA VIZ: channel split bar ---------- */
.channel-bar{ display:flex; height:54px; border-radius:4px; overflow:hidden; margin-top:26px; border:1px solid var(--line-dark); }
.channel-seg{ display:flex; align-items:center; justify-content:center; flex-direction:column; gap:2px; color:#fff; font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.04em; text-transform:uppercase; }
.channel-seg.gt{ background:var(--crimson); flex:1.1; }
.channel-seg.mt{ background:var(--ember); flex:1; }
.channel-seg small{ font-size:9.5px; opacity:0.75; text-transform:none; letter-spacing:0; }
.channel-caption{ margin-top:14px; font-size:13px; color:rgba(26,26,26,0.5); font-family:'JetBrains Mono', monospace; max-width:480px; line-height:1.7; }

/* ---------- HERO SIGNATURE: red giant glow ---------- */
.hero-orb{
  position:absolute; z-index:0; pointer-events:none; border-radius:50%;
  width:560px; height:560px; right:-160px; top:-120px;
  background:radial-gradient(circle, rgba(192,0,0,0.55) 0%, rgba(192,0,0,0.22) 35%, rgba(212,160,23,0.08) 60%, transparent 72%);
  filter:blur(6px);
  animation: orb-pulse 7s ease-in-out infinite;
}
@media (min-width:760px){ .hero-orb{ width:760px; height:760px; right:-220px; top:-200px; } }
@keyframes orb-pulse{ 0%,100%{ transform:scale(1); opacity:0.9; } 50%{ transform:scale(1.08); opacity:1; } }
.hero-inner{ position:relative; z-index:1; }

/* ---------- SERVICE ICON BADGES ---------- */
.svc-icon{
  width:46px; height:46px; border-radius:10px; background:rgba(192,0,0,0.1); border:1px solid rgba(192,0,0,0.25);
  display:flex; align-items:center; justify-content:center; flex:none;
}
.svc-icon svg{ width:22px; height:22px; stroke:var(--crimson); fill:none; stroke-width:1.6; }
.service-card .svc-icon{ margin-bottom:14px; }
.eyebrow-icon{
  width:40px; height:40px; border-radius:10px; background:rgba(212,160,23,0.12); border:1px solid rgba(212,160,23,0.3);
  display:inline-flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.eyebrow-icon svg{ width:20px; height:20px; stroke:var(--gold); fill:none; stroke-width:1.6; }

/* ---------- TRUST BAR: badge style ---------- */
.trustbar-logos span{
  border:1px solid rgba(251,246,240,0.18); border-radius:6px; padding:8px 16px;
  background:rgba(251,246,240,0.03); transition:border-color .2s, background .2s;
}
.trustbar-logos span:hover{ border-color:rgba(212,160,23,0.5); background:rgba(212,160,23,0.06); }

/* ---------- TESTIMONIAL AVATARS ---------- */
.who-row{ display:flex; align-items:center; gap:12px; margin-top:20px; }
.avatar{
  width:42px; height:42px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center;
  font-family:'Anton', sans-serif; font-size:14px; color:#fff; background:linear-gradient(135deg, var(--crimson), var(--ember));
}

/* ---------- PORTFOLIO: region-dot indicator ---------- */
.case-dots{ display:flex; gap:5px; margin-top:14px; align-items:center; }
.case-dots .d{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,0.25); }
.case-dots .d.on{ background:#fff; }
.case-dots-label{ font-family:'JetBrains Mono', monospace; font-size:9px; letter-spacing:0.06em; text-transform:uppercase; opacity:0.6; margin-left:6px; }

/* ---------- PORTFOLIO LINK BANNER (used on service pages) ---------- */
.portfolio-banner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;
  background:var(--paper); border:1px solid var(--line-dark); border-radius:6px; padding:26px 28px;
}
.portfolio-banner h4{ font-family:'Anton', sans-serif; font-size:1.2rem; text-transform:uppercase; }
.portfolio-banner p{ font-size:13.5px; color:rgba(26,26,26,0.6); margin-top:6px; font-weight:300; max-width:420px; }

/* ---------- IMAGE SLIDER (reusable — works with any number/set of images) ----------
   Markup: .slider > .slider-track > .slider-slide* , then arrows + dots.
   Slides can hold a real <img> (object-fit:cover) and/or a gradient
   placeholder background — both are styled below, so swapping a
   placeholder for a real photo later is a one-line change.
------------------------------------------------------------------------ */
.slider{ position:relative; border-radius:6px; overflow:hidden; background:var(--dark); }
.slider:focus-within{ outline:2px solid var(--gold); outline-offset:2px; }
.slider-track{ display:flex; transition:transform .55s cubic-bezier(.65,0,.35,1); touch-action:pan-y; }
.slider-slide{
  flex:0 0 100%; min-height:300px; position:relative; display:flex; align-items:flex-end;
  padding:26px; background-size:cover; background-position:center;
}
@media (min-width:760px){ .slider-slide{ min-height:420px; padding:36px; } }
.slider-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.slider-slide::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 35%, rgba(0,0,0,0.7)); z-index:1; }
.slider-caption{ position:relative; z-index:2; color:#fff; }
.slider-caption .s-tag{
  font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--gold); display:block; margin-bottom:8px;
}
.slider-caption h4{ font-family:'Anton', sans-serif; font-size:1.3rem; text-transform:uppercase; line-height:1.1; }
@media (min-width:760px){ .slider-caption h4{ font-size:1.7rem; } }
.slider-arrow{
  position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%;
  background:rgba(0,0,0,0.45); border:1px solid rgba(255,255,255,0.3); color:#fff; font-size:18px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:3; transition:background .2s;
}
.slider-arrow:hover{ background:rgba(192,0,0,0.7); }
.slider-arrow.prev{ left:14px; }
.slider-arrow.next{ right:14px; }
.slider-dots{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:7px; z-index:3; }
.slider-dots button{
  width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,0.4); border:none; cursor:pointer; padding:0;
  transition:all .2s;
}
.slider-dots button.active{ background:#fff; width:20px; border-radius:4px; }
.slider-note{ margin-top:10px; font-size:11px; color:rgba(26,26,26,0.4); font-family:'JetBrains Mono', monospace; }
.slider-note.on-dark{ color:rgba(251,246,240,0.4); }

/* Placeholder gradient "photos" — distinct combos using brand colors,
   used until real campaign photography is dropped in. */
.ph-1{ background-image:linear-gradient(135deg, #C00000, #7A1F0A); }
.ph-2{ background-image:linear-gradient(135deg, #1F1815, #C00000); }
.ph-3{ background-image:linear-gradient(135deg, #7A1F0A, #D4A017); }
.ph-4{ background-image:linear-gradient(135deg, #161210, #2a2420); }
.ph-5{ background-image:linear-gradient(135deg, #C00000, #1A1A1A); }
.ph-6{ background-image:linear-gradient(135deg, #D4A017, #7A1F0A); }

/* ---------- BLOG ---------- */
.blog-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media (min-width:700px){ .blog-grid{ grid-template-columns:repeat(3,1fr); } }
.blog-card{
  display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit;
  background:var(--paper); border:1px solid var(--line-dark); border-radius:6px; padding:24px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.blog-card:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,0.1); }
.blog-cat{ font-family:'JetBrains Mono', monospace; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--crimson); }
.blog-card h3{ font-family:'Anton', sans-serif; font-size:1.05rem; text-transform:uppercase; line-height:1.2; }
.blog-card p{ font-size:13px; line-height:1.6; color:rgba(26,26,26,0.6); font-weight:300; flex:1; }
.blog-meta{ font-family:'JetBrains Mono', monospace; font-size:10.5px; color:rgba(26,26,26,0.4); }

.blog-body h2{
  font-family:'Anton', sans-serif; font-size:1.4rem; text-transform:uppercase; letter-spacing:0.01em;
  margin-top:42px; margin-bottom:14px;
}
.blog-body h2:first-child{ margin-top:0; }
.blog-body p{ font-size:16px; line-height:1.8; color:rgba(26,26,26,0.78); font-weight:300; margin-bottom:8px; }

/* ---------- STICKY MOBILE CTA ---------- */
.sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:90; display:flex; background:var(--dark);
  border-top:1px solid var(--line); padding:10px; gap:8px; transform:translateY(110%); transition:transform .25s ease;
}
.sticky-cta.show{ transform:translateY(0); }
@media (min-width:880px){ .sticky-cta{ display:none; } }
.sticky-cta a{
  flex:1; text-align:center; text-decoration:none; padding:13px 10px; border-radius:3px; font-size:13px; font-weight:600;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.sticky-cta .call{ background:transparent; border:1px solid var(--line); color:var(--cream); }
.sticky-cta .wa{ background:#25D366; color:#06301a; }

/* ---------- FOOTER ---------- */
footer.site-footer{ background:var(--dark); color:rgba(251,246,240,0.6); }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:40px; padding:56px 0 32px; }
@media (min-width:700px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; } }
.footer-brand .wordmark{ font-family:'Anton', sans-serif; color:var(--cream); font-size:20px; letter-spacing:0.04em; }
.footer-brand p{ margin-top:14px; font-size:13.5px; line-height:1.7; max-width:280px; font-weight:300; }
.footer-col h5{ font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col a{ text-decoration:none; font-size:13.5px; color:rgba(251,246,240,0.6); transition:color .2s; }
.footer-col a:hover{ color:var(--cream); }
.footer-bottom{ border-top:1px solid var(--line); padding:22px 0 90px; font-size:12px; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; color:rgba(251,246,240,0.4); font-family:'JetBrains Mono', monospace; }
@media (min-width:880px){ .footer-bottom{ padding-bottom:22px; } }
