
/* ===== IGNIVIO — styles.v16.css (production) ===== */

/* Font */
@font-face{
  font-family:"Futura";
  src:url("../fonts/Futura-Book.ttf") format("truetype");
  font-weight:400; font-style:normal; font-display:swap;
}

/* Tokens */
:root{
  --bg:#0a0a0a;
  --text:#efece6;
  --muted:#c9c5bd;
  --accent:#ff751f;
  --accent-2:#ff9b57;
  --panel:#0f0f0f;
  --border:#1b1b1b;
  --maxw:1180px;
  --radius:18px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:"Futura", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:18px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
@media (min-width:1400px){ body{ font-size:19px } }
@media (max-width:520px){ body{ font-size:17.5px } }

a{ color:var(--text); text-decoration:none } a:hover{ color:var(--accent) }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 22px }
.section{ padding:72px 0 }
.kicker{ letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-size:.92rem; margin-bottom:14px }

/* Header */
.header{ position:sticky; top:0; z-index:50; backdrop-filter:blur(8px) saturate(1.1); background:rgba(10,10,10,.6); border-bottom:1px solid var(--border) }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0 }
.brand{ display:flex; align-items:center; gap:12px }
.brand img{ width:64px; height:64px; filter:drop-shadow(0 8px 20px rgba(255,117,31,.28)) }
.wordmark{ letter-spacing:.16em; text-transform:uppercase; font-weight:800; font-size:1.05rem }
.menu{ display:flex; gap:14px; align-items:center; flex-wrap:wrap }
.menu a{ padding:8px 12px; border-radius:999px; transition:background .15s ease, color .15s ease }
.menu a:hover{ background:#121212; color:var(--accent) }
.cta{ padding:10px 14px; border-radius:999px; background:var(--accent); color:#111; font-weight:900; letter-spacing:.02em }

/* HERO (Option A: center-center) */
.hero{ position:relative; min-height:100vh; display:grid; place-items:center; overflow:hidden }
.hero .hero-bg{ position:absolute; inset:0; z-index:-3; background:#000 }
.hero .hero-bg video{ width:100%; height:100%; object-fit:cover; filter:saturate(1.08) contrast(1.06) }
.hero .hero-overlays{ position:absolute; inset:0; z-index:-2; pointer-events:none }
.hero .hero-grain{ position:absolute; inset:0; background:url("../img/"); opacity:.22; mix-blend:overlay }
.hero .hero-haze{ position:absolute; inset:-10% -10% -10% -10%;
  background:radial-gradient(50% 60% at 50% 40%, rgba(255,117,31,.18), transparent 60%);
}
.hero .hero-inner{ text-align:center; padding:0 22px; }
.hero .badge{ display:inline-flex; gap:8px; align-items:center; padding:9px 12px; border:1px solid rgba(255,255,255,.10); background:rgba(10,10,10,.55); border-radius:999px; font-size:1rem; margin-bottom:14px }
.hero h1{
  font-weight:700;
  letter-spacing:-0.02em;
  font-size:clamp(3.2rem, 6vw, 5.2rem); /* bigger overall */
  line-height:1.08;
  text-shadow:0 3px 22px rgba(0,0,0,0.5);
  margin-bottom:1.1rem;
}
.hero p{
  opacity:0.995;
  font-size:clamp(1.05rem, 1.4vw, 1.25rem);
  line-height:1.55;
  max-width:900px;
  margin:0 auto;
  text-shadow:0 1px 16px rgba(0,0,0,0.42);
}
.hero .hero-btns .button{ padding:14px 18px; font-weight:900 }

/* Buttons */
.button{ display:inline-block; background:linear-gradient(180deg, var(--accent), var(--accent-2)); color:#111; border:0; border-radius:999px; padding:12px 16px; font-weight:900; box-shadow:0 8px 22px rgba(255,117,31,.28); transition:transform .12s ease, filter .2s ease }
.button:hover{ transform:translateY(-1px); filter:brightness(1.05) }
.button.secondary{ background:#171717; color:#fff; border:1px solid #2a2a2a; box-shadow:none }
.button.secondary:hover{ border-color:#3a3a3a }

/* TRUSTED BY — single row */
.trusted{ padding-top:48px }
.logos{ display:grid; grid-template-columns:repeat(5, 1fr); gap:14px; align-items:center }
.logo-box{ height:80px; display:flex; align-items:center; justify-content:center; background:#0f0f0f; border:1px solid var(--border); border-radius:14px; color:#d0cdc6; letter-spacing:.06em; white-space:nowrap }
@media (max-width: 980px){ .logos{ grid-template-columns:repeat(3, 1fr) } }
@media (max-width: 640px){ .logos{ grid-template-columns:repeat(2, 1fr) } }

/* OUTCOMES — orange highlight cards */
.metrics{ display:grid; grid-template-columns:repeat(4, 1fr); gap:18px }
.metric{ text-align:center; padding:22px; border-radius:16px;
  background:linear-gradient(180deg, #1c0e03, #120902);
  border:1px solid rgba(255,117,31,.35);
  box-shadow:0 10px 24px rgba(255,117,31,.15), inset 0 1px 0 rgba(255,255,255,.04);
}
.metric .num{ font-size:34px; font-weight:1000; color:#fff }
.metric small, .metric div{ color:#f2d8c3 }
@media (max-width: 980px){ .metrics{ grid-template-columns:repeat(2, 1fr) } }

/* ROLES & SERVICES cards */
.roles, .services .grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px }
.card{ background:linear-gradient(180deg, #101010, #0a0a0a); border:1px solid #1f1f1f; border-radius:18px; padding:24px; position:relative }
.card::after{ content:""; position:absolute; inset:0; border-radius:18px; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.02) }
.card h3{ font-size:20px; margin:.2em 0 .5em; letter-spacing:.01em }

/* Services emoji headings */
.services .card h3, #services .card h3, .services h3.card-title{ position:relative; padding-left:2.1em }
.services .card:nth-of-type(1) h3::before{ content:"🔥"; position:absolute; left:0; top:0; font-size:1.15em }
.services .card:nth-of-type(2) h3::before{ content:"🚀"; position:absolute; left:0; top:0; font-size:1.15em }
.services .card:nth-of-type(3) h3::before{ content:"🛠️"; position:absolute; left:0; top:0; font-size:1.15em }
.services .card:nth-of-type(4) h3::before{ content:"📈"; position:absolute; left:0; top:0; font-size:1.15em }
.services .card:nth-of-type(5) h3::before{ content:"🎯"; position:absolute; left:0; top:0; font-size:1.15em }
.services .card:nth-of-type(6) h3::before{ content:"🌍"; position:absolute; left:0; top:0; font-size:1.15em }

/* Universal panel style for inner pages */
.panel{ background:linear-gradient(180deg, #0f0f0f, #0a0a0a); border:1px solid #1c1c1c; border-radius:18px; padding:22px }
.panel + .panel{ margin-top:12px }

/* CTA band */
.cta-band{ padding:64px 24px; text-align:center; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:linear-gradient(180deg, rgba(255,117,31,.10), rgba(255,117,31,.03)) }
.cta-band h2{ font-size:clamp(26px, 4.6vw, 44px) }
.cta-band .subtle{ color:var(--muted); font-size:1.02rem }

/* Footer */
footer{ border-top:1px solid var(--border); background:#0b0b0b; margin-top:72px }
.foot{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; padding:34px 24px }
.foot .tagline{ color:var(--muted) }

/* Responsive */
@media (max-width: 720px){
  .container{ padding:0 18px }
  .section{ padding:56px 0 }
  .roles, .services .grid{ grid-template-columns:1fr }
  .brand img{ width:56px; height:56px }
  .hero{ min-height:88vh }
}

/* v16 tweaks */
.trusted .logos{grid-auto-flow:column; grid-auto-columns:1fr}
.trusted .logo-box{min-width:0}


/* --- v17 overrides --- */

/* Full-bleed hero, keep center-center text */
.hero{ min-height:100vh; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw }
.hero .hero-bg video{ object-fit:cover; width:100%; height:100% }

/* Trusted by: single row on desktop (home + clients) */
.logos{ display:flex; flex-wrap:nowrap; gap:14px; justify-content:space-between; align-items:center }
.logo-box{ flex:1 1 0; height:80px; display:flex; align-items:center; justify-content:center; white-space:nowrap }
@media (max-width: 980px){
  .logos{ display:grid; grid-template-columns:repeat(3,1fr) }
}
@media (max-width: 640px){
  .logos{ grid-template-columns:repeat(2,1fr) }
}

/* Outcomes: slightly stronger orange highlight */
.metric{
  background:linear-gradient(180deg, #2a1506, #140a04);
  border:1px solid rgba(255,117,31,.45);
  box-shadow:0 16px 36px rgba(255,117,31,.16), inset 0 1px 0 rgba(255,255,255,.05);
}

/* Redesigned subpage panels */
.panel, .card{
  background:linear-gradient(180deg, #101010, #0a0a0a);
  border:1px solid #1f1f1f;
  border-left:4px solid var(--accent);
  border-radius:14px;
  padding:22px 24px;
  box-shadow:0 10px 24px rgba(0,0,0,.35);
}
.panel h3, .panel h4, .card h3{ margin-top:0; letter-spacing:.01em }
.panel small, .panel p{ color:var(--muted) }

/* Services emoji titles kept as in v16 */

/* Tweak container spacing after full-bleed hero */
.section:first-of-type{ padding-top:48px }

.hero .hero-bg video{
  filter:none !important;
  image-rendering:crisp-edges !important;
  image-rendering:-webkit-optimize-contrast !important;
  transform:translateZ(0) !important;
}


/* === v19 readability & footer polish === */

/* Subtle overlay for hero to boost text contrast */
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(0,0,0,0.28), rgba(0,0,0,0.16));
  pointer-events:none;
  z-index:1;
}
/* Ensure hero text sits above overlay (target .hero-inner which exists) */
.hero .hero-inner{ position:relative; z-index:2 }
/* Strengthen headline/paragraph clarity */
.hero h1{
  font-weight:700;
  letter-spacing:-0.02em;
  font-size:clamp(3.2rem, 6vw, 5.2rem); /* bigger overall */
  line-height:1.08;
  text-shadow:0 3px 22px rgba(0,0,0,0.5);
  margin-bottom:1.1rem;
}
.hero p{
  opacity:0.995;
  font-size:clamp(1.05rem, 1.4vw, 1.25rem);
  line-height:1.55;
  max-width:900px;
  margin:0 auto;
  text-shadow:0 1px 16px rgba(0,0,0,0.42);
}

/* Ultra-thin footer (Apple-style) */
footer{
  padding:36px 0;
  background:#0f0f0f;
  border-top:1px solid rgba(255,255,255,0.06);
}
footer .footer-inner{max-width:1200px; margin:0 auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:56px;}
footer .footer-logo{display:flex; align-items:center; gap:10px; color:rgba(255,255,255,0.75); font-size:14px;}
footer .footer-logo img{height:22px; width:auto; display:block; image-rendering:auto; filter:none;}
footer .footer-col{ display:flex; flex-direction:column; gap:6px }
footer .footer-col strong{ font-size:13px; color:rgba(255,255,255,0.6); letter-spacing:.08em; text-transform:uppercase }
footer a{ color:rgba(255,255,255,0.78); font-size:14px; text-decoration:none; transition:.2s }
footer a:hover{ color:#ff751f; text-shadow:0 0 8px rgba(255,117,31,0.35) }
@media (max-width: 700px){
  footer .footer-inner{max-width:1200px; margin:0 auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:56px;}
}

footer .footer-logo .brand-wordmark{letter-spacing:.12em; text-transform:uppercase; font-weight:700; font-size:12px; color:rgba(255,255,255,0.7);}

.hero .button{ margin-top:10px }

.hero .hero-btns{ margin-top:14px }

/* === v23 Founder Quote page polish === */
.quote-wrap{
  margin: 28px auto 40px;
  max-width: 980px;
  padding: 28px 28px 34px;
  background: radial-gradient(120% 100% at 50% 0%, rgba(255,117,31,0.08), rgba(255,117,31,0.02) 60%), #0f0f0f;
  border: 1px solid #1e1e1e;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.35);
}
.founder-quote{
  font-size: clamp(2rem, 4.6vw, 3.6rem);
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: center;
  margin: 0;
  color: #fff;
  text-shadow: 0 5px 28px rgba(0,0,0,0.45);
}
.founder-quote::before{
  content: "“";
  font-size: 1.1em;
  opacity: 0.25;
  margin-right: 6px;
}
.founder-quote::after{
  content: "”";
  font-size: 1.1em;
  opacity: 0.25;
  margin-left: 6px;
}

/* Make page header spacing a touch tighter above the quote */
.page .section:first-of-type{ padding-bottom: 12px }

/* === v24 Contact polish + orange accents === */
.contact-intro{ margin-top:6px; color:var(--muted) }
.contact-toggle{ display:flex; gap:10px; margin:18px 0 14px }
.pill{
  appearance:none; border:1px solid #2a2a2a; background:#111; color:#eee;
  padding:10px 14px; border-radius:999px; cursor:pointer; font-weight:700; letter-spacing:.01em;
}
.pill.active{ border-color:rgba(255,117,31,.6); box-shadow:0 6px 18px rgba(255,117,31,.15); background:linear-gradient(180deg, #20150d, #140d08) }
.contact-card{ display:none; background:linear-gradient(180deg,#0f0f0f,#0a0a0a); border:1px solid #1d1d1d; border-left:4px solid var(--accent); border-radius:16px; padding:18px; margin:6px 0 10px }
.contact-card.active{ display:block }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
@media (max-width:700px){ .grid-2{ grid-template-columns:1fr } }
label{ display:flex; flex-direction:column; gap:6px; font-size:.95rem; color:#dcd7cf }
input[type="text"], input[type="email"], input[type="url"], textarea{
  background:#0b0b0b; color:#fff; border:1px solid #252525; border-radius:12px; padding:12px 12px; outline:none;
}
input:focus, textarea:focus{ border-color:rgba(255,117,31,.7); box-shadow:0 0 0 3px rgba(255,117,31,.18) }
.actions{ margin-top:12px }
.actions .button{ font-weight:900 }

/* === v27 Mobile tidy header & footer === */
@media (max-width: 700px){
  /* Header: single-line, horizontally scrollable if needed */
  header nav, .site-nav, .topnav, .main-nav, .navbar {
    display: flex;
    align-items: center;
    gap: 12px;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  header nav::-webkit-scrollbar{ display:none }

  header nav a, .site-nav a, .topnav a, .main-nav a, .navbar a {
    display: inline-block;
    padding: 10px 6px;
    font-size: 13px;
    letter-spacing: .02em;
    border-radius: 999px;
    white-space: nowrap;
  }

  /* Footer: collapse to a single line with inline links */
  footer .footer-inner {
    display: block;
    padding: 10px 12px;
    white-space: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  footer .footer-logo, footer .footer-col strong { display:none }
  footer .footer-col { display:inline }
  footer .footer-col a {
    display: inline;
    margin-right: 14px;
    white-space: nowrap;
    font-size: 13px;
  }
}

/* === v28 Strong single-row mobile nav fix === */
@media (max-width: 700px){
  .header .nav,
  nav,
  .menu,
  .main-nav,
  .site-nav,
  .navbar {
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    white-space:nowrap !important;
    gap:12px;
    -webkit-overflow-scrolling:touch;
  }
  .menu a,
  nav a,
  .navbar a {
    display:inline-block;
    padding:10px 8px;
    font-size:14px;
    white-space:nowrap;
  }
}

/* === v29.1 Slim footer polish (desktop + mobile) === */
footer{ border-top:1px solid #1b1b1b; background:#0b0b0b; }
footer .footer-inner{
  max-width:1200px; margin:0 auto;
  padding:10px 18px; /* slimmer */
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
footer .footer-logo img{ height:18px; width:auto; display:block; }
footer .footer-col{ display:flex; align-items:center; gap:12px; }
footer .footer-col strong{ display:none; }
footer .footer-col a{
  color:rgba(235,235,235,.8); text-decoration:none; font-size:13px; letter-spacing:.01em;
  padding:6px 4px; border-radius:8px;
}
footer .footer-col a:hover{ color:#fff; background:rgba(255,117,31,.08) }
footer .copyright{ color:#9e9e9e; font-size:12px }

/* separators */
footer .footer-col a + a{ position:relative; }
footer .footer-col a + a::before{
  content:"•"; opacity:.35; margin:0 6px 0 2px; color:#aaa;
}

/* Mobile retains single-line from previous versions */
@media (max-width:700px){
  footer .footer-inner{ padding:8px 10px }
  footer .footer-col a{ font-size:12px }
}

/* === v29.2 TRUE single-line footer (desktop + mobile) === */
footer{ border-top:1px solid #1b1b1b; background:#0b0b0b; }
footer .footer-inner{
  max-width:1200px; margin:0 auto;
  padding:8px 18px; /* slimmer */
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:nowrap; white-space:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
}
footer .footer-logo{ display:flex; align-items:center; gap:8px }
footer .footer-logo img{ height:18px; width:auto; display:block }
footer .footer-col{ display:flex; align-items:center; gap:10px; }
footer .footer-col strong{ display:none }
footer .footer-col a{
  color:rgba(235,235,235,.8); text-decoration:none; font-size:13px; letter-spacing:.01em;
  padding:4px 2px; border-radius:8px; display:inline-block;
}
footer .footer-col a:hover{ color:#fff; background:rgba(255,117,31,.08) }
footer .copyright{ color:#a8a8a8; font-size:12px }

/* Minimal separators between links */
footer .footer-col a + a{ position:relative }
footer .footer-col a + a::before{ content:"•"; opacity:.35; margin:0 6px 0 2px; color:#aaa }

/* Tighten on very small screens */
@media (max-width:700px){
  footer .footer-inner{ padding:8px 10px; gap:12px }
  footer .footer-col a{ font-size:12px }
}

/* === v29.4 Robust Single-Line Footer Bar (site-wide) === */
footer{
  background:#0b0b0b !important;
  border-top:1px solid #1a1a1a !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
footer .footer-inner,
footer > .container,
footer > .wrap,
footer > div:first-child{
  max-width:1200px;
  margin:0 auto;
  padding:8px 12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch;
}
footer .footer-col,
footer .footer-columns,
footer .footer-grid,
footer nav,
footer ul{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin:0 !important;
  padding:0 !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}
footer li{ list-style:none; display:inline; }
footer li + li::before,
footer a + a::before{ content:"•"; opacity:.35; margin:0 8px 0 6px; color:#aaa }
footer a{
  color:rgba(235,235,235,.8) !important;
  text-decoration:none !important;
  font-size:13px;
  letter-spacing:.02em;
  padding:4px 2px;
  border-radius:6px;
  display:inline-block;
}
footer a:hover{ color:#fff !important; background:rgba(255,117,31,.08) }
footer .footer-logo img{ height:18px; width:auto; display:block }
footer .copyright{ color:#a8a8a8; font-size:12px }
@media (max-width:700px){
  footer .footer-inner,
  footer > .container,
  footer > .wrap,
  footer > div:first-child{ padding:8px 10px !important; gap:12px !important; }
  footer a{ font-size:12px }
}


/* === Clean Single-Line Footer (desktop & mobile) === */
.footer-bar{
  background:#0b0b0b;
  border-top:1px solid rgba(255,255,255,.10);
  padding:12px 0;
}
.footer-line{
  max-width:1200px;
  margin:0 auto;
  padding:0 16px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  white-space:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  font-size:13px;
  opacity:.85;
}
.footer-line a{
  color:rgba(255,255,255,.78);
  text-decoration:none;
  transition:color .18s ease;
}
.footer-line a:hover{ color:#ff751f; }
@media (max-width:700px){
  .footer-line{ gap:14px; font-size:12px; }
}
