:root{
  /* light theme (default) */
  --bg: #FCFCFB;
  --panel: #F2F4F5;
  --panel-2: #E9EDEF;
  --line: #D8DEE2;
  --text: #10161B;
  --muted: #55636C;
  --accent: #C77D1A;        /* warmer, more saturated amber */
  --accent-2: #0E8C86;      /* teal counterpart */
  --accent-glow: rgba(199,125,26,0.16);
  --btn-text: #FFFFFF;
  --steel: #2F6E86;
  --danger: #C24A32;
  --grad: linear-gradient(100deg, #0E8C86 0%, #1F9C7E 30%, #C77D1A 100%);
  --fitted: #B5772A;
  --maxw: 1080px;
}
:root[data-theme="dark"]{
  --bg: #0D1418;
  --panel: #141E24;
  --panel-2: #1B272E;
  --line: #26343C;
  --text: #EAEEF0;
  --muted: #94A6B0;
  --accent: #E8A93C;        /* brighter amber pops on dark */
  --accent-2: #2BC0B4;
  --accent-glow: rgba(232,169,60,0.20);
  --btn-text: #10161B;
  --steel: #5EA6C0;
  --danger: #E0705A;
  --grad: linear-gradient(100deg, #2BC0B4 0%, #3FD0A0 30%, #E8A93C 100%);
  --fitted: #D69A4A;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'IBM Plex Sans', system-ui, sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background 0.25s ease, color 0.25s ease;
}
a{color:inherit;}
.mono{font-family:'IBM Plex Mono', monospace;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* NAV */
header{
  position:sticky; top:0; z-index:20;
  background:color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; padding:18px 28px;}
.logo{font-family:'IBM Plex Mono', monospace; font-size:1.55rem; letter-spacing:0.01em; font-weight:600; text-decoration:none;}
.logo span{color:var(--accent);}
.nav-links{display:flex; align-items:center; gap:26px;}
.nav-links a{font-size:0.92rem; color:var(--muted); text-decoration:none; padding-bottom:3px; border-bottom:1px solid transparent; transition:color 0.15s ease;}
.nav-links a:hover{color:var(--text);}
.nav-links a.active{color:var(--text); border-bottom-color:var(--accent);}
.lang-toggle{display:flex; border:1px solid var(--line); border-radius:3px; overflow:hidden;}
.lang-btn{background:transparent; border:none; color:var(--muted); font-family:'IBM Plex Mono', monospace; font-size:0.78rem; padding:5px 10px; cursor:pointer;}
.lang-btn.active{background:var(--panel); color:var(--accent);}
.theme-btn{
  background:transparent; border:1px solid var(--line); border-radius:3px;
  width:32px; height:30px; cursor:pointer; color:var(--muted);
  display:inline-flex; align-items:center; justify-content:center; padding:0;
  transition:color 0.15s ease, border-color 0.15s ease;
}
.theme-btn:hover{color:var(--accent); border-color:var(--accent);}
.theme-btn svg{width:16px; height:16px;}
.theme-btn .icon-moon{display:none;}
:root[data-theme="dark"] .theme-btn .icon-sun{display:none;}
:root[data-theme="dark"] .theme-btn .icon-moon{display:block;}
.cta-btn{
  background:var(--accent); color:var(--btn-text); border:none;
  font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:0.88rem;
  padding:9px 16px; border-radius:3px; cursor:pointer; text-decoration:none; display:inline-block;
  transition:transform 0.14s ease, box-shadow 0.14s ease, background 0.14s ease;
}
.cta-btn:hover{transform:translateY(-1px); box-shadow:0 6px 18px var(--accent-glow);}
.cta-btn.ghost{background:transparent; color:var(--text); border:1px solid var(--line); box-shadow:none;}
.cta-btn.ghost:hover{border-color:var(--accent); color:var(--accent); box-shadow:none;}
@media (max-width:860px){ .nav-links{display:none;} }

/* HERO (home page) */
.hero{padding:76px 0 60px;}
.hero-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
h1{font-size:2.5rem; line-height:1.14; letter-spacing:-0.01em; margin:0 0 20px; font-weight:600; max-width:16ch;}
.slogan{font-size:3rem; line-height:1.08; letter-spacing:-0.015em; margin:0 0 22px; font-weight:600; max-width:14ch;}
.slogan em{
  font-style:normal;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.subhead{color:var(--muted); font-size:1.05rem; max-width:48ch; margin:0 0 30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* "what we do" bullet list in hero */
.do-list{list-style:none; padding:0; margin:0 0 30px;}
.do-list li{position:relative; padding-left:26px; margin-bottom:14px; font-size:1rem; color:var(--text);}
.do-list li::before{content:""; position:absolute; left:0; top:8px; width:10px; height:10px; background:var(--grad); border-radius:2px; transform:rotate(45deg);}
.do-list li b{font-weight:600; color:var(--text);}
.do-list li span{color:var(--muted);}
@media (max-width:820px){ .slogan{font-size:2.2rem; max-width:none;} }
.diagram-box{background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:22px 22px 18px;}
.diagram-caption{display:flex; justify-content:space-between; font-size:0.75rem; color:var(--muted); margin-top:10px;}
.diagram-note{font-size:0.75rem; color:var(--muted); margin-top:6px; font-style:italic;}
svg .bar-a{fill:var(--steel);}
svg .bar-b{fill:var(--accent);}
svg .guide{stroke:var(--line); stroke-dasharray:3 4;}
svg .flag{stroke:var(--danger); fill:none; stroke-width:1.6;}
svg text{font-family:'IBM Plex Mono', monospace; fill:var(--muted); font-size:9px;}
@media (prefers-reduced-motion:no-preference){
  svg .bar-a, svg .bar-b{transform-origin:bottom; animation:grow 0.9s cubic-bezier(.2,.8,.2,1) both;}
}
@keyframes grow{ from{transform:scaleY(0);} to{transform:scaleY(1);} }
@media (max-width:820px){ .hero-grid{grid-template-columns:1fr;} h1{font-size:2rem; max-width:none;} }

/* PAGE HERO (sub-pages) */
.page-hero{padding:56px 0 40px; border-bottom:1px solid var(--line);}
.page-title{font-size:2rem; margin:0 0 14px; font-weight:600; letter-spacing:-0.01em; max-width:22ch;}

/* NAV BANNERS (home page section links) */
.banner-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:640px){ .banner-grid{grid-template-columns:1fr;} }
.banner{
  position:relative; display:block; text-decoration:none; overflow:hidden;
  border:1px solid var(--line); border-radius:8px; min-height:210px;
  background-color:var(--panel); background-size:cover; background-position:center;
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
.banner:hover{transform:translateY(-4px); box-shadow:0 14px 34px rgba(0,0,0,0.16);}
.banner:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.banner-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,16,20,0.10) 0%, rgba(10,16,20,0.80) 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:24px 26px;
}
.banner-overlay h3{margin:0 0 6px; font-size:1.4rem; font-weight:600; color:#fff;}
.banner-overlay p{margin:0; font-size:0.92rem; color:rgba(255,255,255,0.88); max-width:34ch;}
.banner-overlay .go{margin-top:14px; font-size:0.85rem; font-weight:600; color:#fff; display:inline-flex; align-items:center; gap:6px; opacity:0.9;}

/* refined no-photo state: unified dark base + subtle single-color glow */
.banner.no-photo::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(120% 90% at 85% 15%, var(--b-glow, rgba(199,125,26,0.28)) 0%, transparent 55%),
    linear-gradient(160deg, #16212B 0%, #0F1820 100%);
}
.banner.no-photo::after{
  content:""; position:absolute; right:-30px; bottom:-30px;
  width:150px; height:150px; opacity:0.12;
  background:var(--b-icon) center/contain no-repeat;
}
.banner.no-photo .banner-overlay{
  background:linear-gradient(180deg, rgba(6,12,16,0) 0%, rgba(6,12,16,0.35) 100%);
}
.banner.no-photo .banner-overlay .go{color:var(--b-accent, var(--accent));}
/* per-banner: one restrained accent glow + a large faint line icon */
.banner.b-solutions{
  --b-glow:rgba(43,192,180,0.30); --b-accent:#4FD6C9;
  --b-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M7 15l4-5 3 3 4-6'/%3E%3C/svg%3E");
}
.banner.b-industries{
  --b-glow:rgba(95,166,192,0.30); --b-accent:#8FCBE0;
  --b-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M2 20h20M4 20V10l6 4V10l6 4V6l4 3v11'/%3E%3C/svg%3E");
}
.banner.b-about{
  --b-glow:rgba(212,162,60,0.30); --b-accent:#E8B24C;
  --b-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='17' cy='9' r='2.5'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6M15 20c0-2.5 1.5-4.5 4-4.5'/%3E%3C/svg%3E");
}
.banner.b-contact{
  --b-glow:rgba(150,120,200,0.28); --b-accent:#B79BE0;
  --b-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");
}

/* SECTIONS */
section{padding:64px 0; border-top:1px solid var(--line);}
.page-hero + section, header + section{border-top:none;}
.section-head{max-width:56ch; margin-bottom:36px;}
h2{font-size:1.55rem; font-weight:600; margin:0 0 14px; letter-spacing:-0.005em;}
.section-body{color:var(--muted); font-size:1rem; max-width:60ch;}

/* LIST ROWS (industries, problem points, principles) */
.list-row{display:grid; grid-template-columns:1fr 2fr; gap:24px; padding:20px 0; border-top:1px solid var(--line);}
.list-row:last-child{border-bottom:1px solid var(--line);}
.list-row .label{font-weight:600; font-size:1rem;}
.list-row .desc{color:var(--muted); font-size:0.95rem;}
.list-row .label a{color:var(--accent); text-decoration:none; font-size:0.85rem; display:block; margin-top:6px;}
@media (max-width:640px){ .list-row{grid-template-columns:1fr;} }

/* INDUSTRY ROWS (with generic photo) */
.industry-row{display:grid; grid-template-columns:220px 1fr; gap:28px; padding:24px; border:1px solid var(--line); border-radius:8px; margin-bottom:16px; align-items:center; text-decoration:none; color:inherit; transition:transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;}
.industry-row:hover{transform:translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,0.12); border-color:var(--accent);}
.industry-row:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.industry-photo{width:100%; aspect-ratio:4/3; background-color:var(--panel); background-size:cover; background-position:center; border-radius:6px;}
.industry-text .label{font-weight:600; font-size:1.15rem; margin-bottom:6px;}
.industry-text .desc{color:var(--muted); font-size:0.95rem; margin:0 0 10px;}
.industry-more{font-size:0.85rem; font-weight:600; color:var(--accent);}
@media (max-width:640px){ .industry-row{grid-template-columns:1fr;} .industry-photo{aspect-ratio:16/9;} }

/* PROCESS STEPS */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:8px;}
.step{padding:22px 22px 22px 0; position:relative;}
.step:not(:last-child){border-right:1px solid var(--line); padding-right:26px;}
.step:not(:first-child){padding-left:26px;}
.step-num{font-family:'IBM Plex Mono', monospace; color:var(--accent); font-size:0.85rem; margin-bottom:10px; display:block;}
.step h3{font-size:1.05rem; margin:0 0 8px; font-weight:600;}
.step p{color:var(--muted); font-size:0.92rem; margin:0;}
@media (max-width:820px){
  .steps{grid-template-columns:1fr;}
  .step{border-right:none !important; padding:22px 0 !important; border-bottom:1px solid var(--line);}
  .step:last-child{border-bottom:none;}
}

/* PRODUCT BLOCKS (products page) */
.product-block{display:grid; grid-template-columns:120px 1fr; gap:32px; padding:40px 0; border-top:1px solid var(--line); align-items:start;}
.product-block:last-child{border-bottom:1px solid var(--line);}
.product-icon svg{width:100%; height:auto;}
.product-block h3{font-size:1.2rem; margin:0 0 10px; font-weight:600;}
.product-block p{color:var(--muted); font-size:0.96rem; max-width:62ch; margin:0;}
@media (max-width:700px){
  .product-block{grid-template-columns:1fr;}
  .product-icon{width:64px;}
}

/* CONTACT */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
form{display:grid; gap:14px;}
label{font-size:0.82rem; color:var(--muted); display:block; margin-bottom:6px;}
input, textarea{width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text); border-radius:3px; padding:10px 12px; font-family:'IBM Plex Sans', sans-serif; font-size:0.95rem;}
input:focus, textarea:focus{outline:2px solid var(--accent); outline-offset:1px;}
textarea{min-height:110px; resize:vertical;}
.submit-btn{justify-self:start; margin-top:4px;}
@media (max-width:820px){ .contact-grid{grid-template-columns:1fr;} }

/* CTA BANNER */
.cta-banner{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.cta-banner h2{margin:0;}

footer{border-top:1px solid var(--line); padding:32px 0;}
.footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.footer-tag{color:var(--muted); font-size:0.85rem;}
.footer-meta{color:var(--muted); font-size:0.8rem; font-family:'IBM Plex Mono', monospace;}

:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

/* INDUSTRY DETAIL PAGE */
.detail-hero-photo{width:100%; aspect-ratio:21/9; background-color:var(--panel); background-size:cover; background-position:center; border-radius:10px; margin-bottom:32px; border:1px solid var(--line);}
.detail-body{max-width:64ch;}
.detail-body p{font-size:1.05rem; color:var(--text); margin:0 0 20px; line-height:1.65;}
.detail-benefits{list-style:none; padding:0; margin:32px 0 0;}
.detail-benefits li{position:relative; padding:16px 16px 16px 44px; border:1px solid var(--line); border-radius:8px; margin-bottom:12px; font-size:1rem; background:var(--panel);}
.detail-benefits li::before{content:""; position:absolute; left:16px; top:20px; width:11px; height:11px; background:var(--grad); border-radius:2px; transform:rotate(45deg);}
.detail-subsection{margin-top:52px; padding-top:42px; border-top:1px solid var(--line);}
.detail-subsection h2{font-size:1.45rem; margin-bottom:14px;}
.source-note{margin-top:38px; padding-top:22px; border-top:1px solid var(--line); color:var(--muted);}
.source-note h3{font-size:.82rem; margin:0 0 10px; color:var(--text); font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.04em;}
.source-note ul{margin:0; padding-left:18px;}
.source-note li{font-size:.8rem; margin-bottom:5px;}
.back-link{display:inline-block; font-size:0.88rem; color:var(--muted); text-decoration:none; margin-bottom:20px;}
.back-link:hover{color:var(--accent);}

/* CONTACT FORM STATUS */
.form-status{font-size:0.88rem; margin-top:12px; min-height:1.2em;}
.form-status.sending{color:var(--muted);}
.form-status.success{color:#2E7D52;}
.form-status.error{color:var(--danger);}

/* CSV HELP (demo page) */
.csv-help{background:var(--panel); border:1px solid var(--line); border-radius:6px; margin-bottom:26px; padding:0;}
.csv-help summary{cursor:pointer; padding:14px 20px; font-size:0.92rem; font-weight:600; color:var(--text); list-style:none;}
.csv-help summary::-webkit-details-marker{display:none;}
.csv-help summary::before{content:"+ "; color:var(--accent); font-weight:700;}
.csv-help[open] summary::before{content:"− ";}
.csv-help-body{padding:0 20px 20px; font-size:0.9rem; color:var(--muted);}
.csv-help-body ul{margin:8px 0; padding-left:20px;}
.csv-help-body li{margin-bottom:5px;}
.csv-example{background:var(--bg); border:1px solid var(--line); border-radius:4px; padding:12px 14px; font-family:'IBM Plex Mono',monospace; font-size:0.82rem; color:var(--text); overflow-x:auto; margin:8px 0;}
.csv-help-note{font-size:0.82rem; margin-top:10px;}
