:root{
  --bg:#F8F6F1;
  --bg-raised:#F1EEE4;
  --surface:#FFFFFF;
  --surface-2:#F1EEE4;
  --border:rgba(14,14,14,0.10);
  --border-strong:rgba(14,14,14,0.20);
  --text:#0E0E0E;
  --text-muted:#53524C;
  --text-faint:#8C8A82;
  --accent:#FF6A00;
  --accent-strong:#D65A00;
  --accent-soft:rgba(255,106,0,0.12);
  --accent-soft-2:rgba(255,106,0,0.24);
  --jade:#7B3DFF;
  --jade-soft:rgba(123,61,255,0.14);
  --lime:#D9FF5B;
  --lime-soft:rgba(190,222,42,0.35);
  --pink:#FF4D8D;
  --pink-soft:rgba(255,77,141,0.16);
  --on-accent:#0E0E0E;
  --danger:#E04438;
  --shadow:0 1px 2px rgba(14,14,14,0.06);
  --shadow-lg:0 18px 46px -24px rgba(14,14,14,0.26);
}

*{box-sizing:border-box;}
html{background:var(--bg); scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* ---------- SCROLL REVEAL (progressive enhancement, added via JS) ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ transition:none; opacity:1; transform:none; } }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:16px; line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
.display{
  font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:800; letter-spacing:-0.02em; text-wrap:balance;
}
.mono{ font-family:ui-monospace,"SF Mono",Consolas,"Roboto Mono",monospace; font-variant-numeric:tabular-nums; }
.eyebrow{
  font-family:ui-monospace,"SF Mono",Consolas,monospace; font-size:0.72rem;
  letter-spacing:0.16em; text-transform:uppercase; color:var(--accent-strong); font-weight:600;
}
a{color:inherit;}
img{max-width:100%;display:block;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.wrap{ max-width:1180px; margin:0 auto; padding-left:clamp(20px,4vw,48px); padding-right:clamp(20px,4vw,48px); }
.wrap-narrow{ max-width:860px; }
.scroller{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ---------- NAV ---------- */
header.site{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.88); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); box-shadow:0 1px 0 rgba(0,0,0,0); transition:box-shadow .25s ease; }
header.site.scrolled{ box-shadow:0 10px 30px -22px rgba(18,20,16,0.28); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:16px clamp(20px,4vw,48px); gap:24px; position:relative; }
.wordmark{ display:inline-flex; align-items:center; gap:9px; font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:800; font-size:1.25rem; letter-spacing:-0.02em; text-decoration:none; color:var(--text); white-space:nowrap; }
.logo-mark{flex-shrink:0;display:block;}
nav.links{display:flex;gap:28px;align-items:center;}
nav.links a{ text-decoration:none; color:var(--text-muted); font-size:0.92rem; font-weight:500; transition:color .15s ease; position:relative; padding:4px 0; }
nav.links a:hover{color:var(--text);}
nav.links a.active{color:var(--text);}
nav.links a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--accent); border-radius:2px; }
.btn{ display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:3px; font-size:0.88rem; font-weight:600; text-decoration:none; cursor:pointer; border:1px solid transparent; transition:transform .15s ease, background .15s ease, border-color .15s ease; white-space:nowrap; }
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--accent);color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-strong);}
.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text);}
.btn-ghost:hover{border-color:var(--accent);}
.btn-block{width:100%;justify-content:center;}
.nav-right{display:flex;align-items:center;gap:12px;}
.nav-links-wrap{display:none;}
@media (min-width:900px){ .nav-links-wrap{display:flex;align-items:center;gap:28px;} }
.nav-cta{display:none;}
@media (min-width:900px){ .nav-cta{display:inline-flex;} }
.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px;height:40px;border-radius:3px;border:1px solid var(--border-strong);
  background:transparent; cursor:pointer; flex-direction:column; gap:4px;
}
@media (min-width:900px){ .nav-toggle{display:none;} }
.nav-toggle span{display:block;width:17px;height:2px;background:var(--text);transition:transform .2s ease, opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.mobile-menu{
  display:flex; flex-direction:column; gap:2px;
  border-top:1px solid transparent; background:var(--bg);
  padding:0 clamp(20px,4vw,48px);
  max-height:0; overflow:hidden; opacity:0;
  transition:max-height .35s cubic-bezier(.22,1,.36,1), opacity .25s ease, padding .35s ease, border-color .35s ease;
}
.mobile-menu.open{ max-height:520px; opacity:1; padding:10px clamp(20px,4vw,48px) 20px; border-top-color:var(--border); }
@media (min-width:900px){ .mobile-menu{display:none !important;} }
@media (prefers-reduced-motion: reduce){ .mobile-menu{transition:none;} }
.mobile-menu a{ text-decoration:none; color:var(--text); font-size:1rem; font-weight:500; padding:13px 2px; border-bottom:1px solid var(--border); }
.mobile-menu a.active{color:var(--accent);}
.mobile-menu .btn{margin-top:14px;}

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{ padding:clamp(48px,8vw,80px) 0 clamp(36px,5vw,56px); border-bottom:1px solid var(--border); }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.4rem); line-height:1.04; margin:12px 0 16px; }
.page-hero p{ color:var(--text-muted); font-size:1.05rem; max-width:56ch; margin:0; }
.page-hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;}
@media (min-width:960px){ .page-hero-grid{grid-template-columns:1.15fr 0.85fr;gap:40px;} }
.page-hero-grid .page-hero-copy{min-width:0;}

/* service icon badge on deliverable cards */
.sd-item{position:relative;}
.sd-icon{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--text);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.sd-icon svg{width:19px;height:19px;}
.sd-grid .sd-item:nth-child(4n+1) .sd-icon, .value-grid .value-card:nth-child(4n+1) .sd-icon, .service-card:nth-child(4n+1) .sd-icon, .contact-info .info-card:nth-child(4n+1) .sd-icon{background:var(--accent-soft);}
.sd-grid .sd-item:nth-child(4n+2) .sd-icon, .value-grid .value-card:nth-child(4n+2) .sd-icon, .service-card:nth-child(4n+2) .sd-icon, .contact-info .info-card:nth-child(4n+2) .sd-icon{background:var(--jade-soft);}
.sd-grid .sd-item:nth-child(4n+3) .sd-icon, .value-grid .value-card:nth-child(4n+3) .sd-icon, .service-card:nth-child(4n+3) .sd-icon, .contact-info .info-card:nth-child(4n+3) .sd-icon{background:var(--lime-soft);}
.sd-grid .sd-item:nth-child(4n+4) .sd-icon, .value-grid .value-card:nth-child(4n+4) .sd-icon, .service-card:nth-child(4n+4) .sd-icon, .contact-info .info-card:nth-child(4n+4) .sd-icon{background:var(--pink-soft);}

/* connected timeline treatment for mini-steps */
.mini-steps{position:relative;}
@media (min-width:640px){
  .mini-steps::before{ content:""; position:absolute; top:24px; left:calc(16.666% ); right:calc(16.666%); height:2px; background:var(--border); z-index:0; }
}
.mini-step{position:relative;z-index:1;}
.mini-step .n{
  font-family:ui-monospace,monospace; font-weight:700; color:var(--on-accent); background:var(--accent);
  font-size:0.95rem; width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.swatch-row{display:flex;gap:9px;margin:4px 0 16px;}
.swatch{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);flex-shrink:0;}
.wordmark-preview{font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;font-size:2.4rem;line-height:1;margin-bottom:16px;color:var(--text);}
.breadcrumb{ font-size:0.82rem; color:var(--text-faint); margin-bottom:14px; }
.breadcrumb a{text-decoration:none;color:var(--text-faint);}
.breadcrumb a:hover{color:var(--accent);}

/* ---------- HERO (home) ---------- */
.hero{ padding:clamp(56px,9vw,104px) 0 clamp(40px,6vw,64px); position:relative; }
.hero-grid{ display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media (min-width:960px){ .hero-grid{grid-template-columns:1.15fr 0.85fr;gap:40px;} }
.hero-badge{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border-strong); border-radius:999px; padding:6px 14px 6px 8px; margin-bottom:22px; background:var(--surface); }
.hero-badge .swatch{width:16px;height:16px;border-radius:50%;background:conic-gradient(from 180deg, var(--accent), var(--jade), var(--accent));}
.hero-badge span{font-size:0.82rem;color:var(--text-muted);}
h1.hero-head{ font-size:clamp(2.6rem,6vw,4.6rem); line-height:0.98; margin:0 0 22px; }
h1.hero-head .accent{color:var(--accent);}
.hero-sub{ font-size:clamp(1.02rem,1.6vw,1.2rem); color:var(--text-muted); max-width:46ch; margin:0 0 30px; }
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:38px;}
.hero-stats{display:flex;gap:clamp(20px,4vw,40px);flex-wrap:wrap;}
.hero-stat .num{font-size:1.7rem;font-weight:700;}
.hero-stat .label{font-size:0.78rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.08em;}

.bench{ position:relative; background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:22px; box-shadow:var(--shadow-lg); }
.bench-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.bench-head .eyebrow{color:var(--text-faint);}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 3px var(--jade-soft);}
.bench-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-top:1px solid var(--border);}
.bench-row:first-of-type{border-top:none;}
.bench-row .k{font-size:0.84rem;color:var(--text-muted);}
.bench-row .v{font-weight:700;font-size:1.05rem;}
.bench-row .v.up{color:var(--jade);}
.chart{height:74px;margin:14px 0 4px;display:flex;align-items:flex-end;gap:4px;}
.chart i{flex:1;background:linear-gradient(180deg,var(--accent),var(--accent-soft-2));border-radius:2px 2px 0 0;display:block;}
.bench-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.chip{ font-size:0.74rem; padding:5px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent-strong); font-weight:600; }
.chip.jade{background:var(--jade-soft);color:var(--jade);}

/* ---------- MARQUEE ---------- */
.marquee-wrap{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:22px 0;background:var(--bg-raised);}
.marquee-track{display:flex;gap:56px;white-space:nowrap;width:max-content;animation:scroll 32s linear infinite;}
@media (prefers-reduced-motion:reduce){ .marquee-track{animation:none;overflow-x:auto;} }
.marquee-track span{font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;font-size:1.05rem;color:var(--text-faint);letter-spacing:0.01em;}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- SECTION SHELL ---------- */
section{padding:clamp(60px,9vw,104px) 0;}
.section-tight{padding-top:0;}
.section-band{background:var(--bg-raised);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section-head{max-width:640px;margin-bottom:clamp(36px,5vw,56px);}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.7rem);margin:10px 0 14px;line-height:1.08;}
.section-head p{color:var(--text-muted);font-size:1.02rem;max-width:56ch;}
.section-head.center p{margin-left:auto;margin-right:auto;}
.section-foot{margin-top:40px;display:flex;justify-content:center;}

/* ---------- SERVICES ---------- */
.services-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden;}
@media (min-width:700px){ .services-grid{grid-template-columns:1fr 1fr;} }
@media (min-width:1040px){ .services-grid{grid-template-columns:1fr 1fr 1fr 1fr;} }
.service-card{background:var(--surface);padding:28px 24px;min-height:188px;display:flex;flex-direction:column;}
.service-card .num{font-family:ui-monospace,monospace;font-size:0.76rem;color:var(--text-faint);margin-bottom:14px;}
.service-card h3{font-size:1.12rem;margin:0 0 10px;font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.service-card p{font-size:0.9rem;color:var(--text-muted);margin:0;flex:1;}
.service-card .tag{margin-top:14px;font-size:0.76rem;color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:gap .2s ease;}
.service-card a.tag{text-decoration:none;}
.service-card a.tag:hover{gap:8px;}
.service-card{transition:transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease;}
a.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);position:relative;z-index:1;}

/* full service detail blocks (services.html) */
.service-detail{ display:grid; grid-template-columns:1fr; gap:28px; padding:40px 0; border-top:1px solid var(--border); }
.service-detail:last-child{border-bottom:1px solid var(--border);}
@media (min-width:860px){ .service-detail{grid-template-columns:0.9fr 1.1fr;gap:48px;align-items:start;} }
.service-detail .sd-head .idx{font-family:ui-monospace,monospace;font-size:0.8rem;color:var(--text-faint);display:block;margin-bottom:10px;}
.service-detail h2{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 12px;}
.service-detail .sd-head p{color:var(--text-muted);margin:0;max-width:44ch;}
.sd-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media (min-width:560px){ .sd-grid{grid-template-columns:1fr 1fr;} }
.sd-item{border:1px solid var(--border);border-radius:6px;padding:16px 18px;background:var(--surface);}
.sd-item .t{font-weight:600;font-size:0.92rem;margin-bottom:4px;}
.sd-item .d{font-size:0.84rem;color:var(--text-muted);}

/* performance marketing: starter-plan block */
.ads-block{margin-top:32px;padding-top:28px;border-top:1px dashed var(--border);}
.mini-steps{display:grid;grid-template-columns:1fr;gap:16px;margin:18px 0 28px;}
@media (min-width:640px){ .mini-steps{grid-template-columns:repeat(3,1fr);} }
.mini-step{border:1px solid var(--border);border-radius:6px;padding:18px;background:var(--surface);}
.mini-step h4{margin:0 0 6px;font-size:0.96rem;}
.mini-step p{margin:0;font-size:0.84rem;color:var(--text-muted);}
.plan-card{border:1px solid var(--border-strong);border-radius:6px;padding:24px;background:linear-gradient(135deg,var(--accent-soft),transparent 60%),var(--surface);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;margin-bottom:28px;}
.plan-card .pc-label{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);margin-bottom:6px;}
.plan-card .pc-price{font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.5rem;font-weight:700;}
.plan-card .pc-price .per{font-size:0.86rem;font-weight:500;color:var(--text-muted);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;}
.plan-card .pc-note{font-size:0.82rem;color:var(--text-muted);margin-top:6px;max-width:42ch;}

/* ---------- PROCESS ---------- */
.process{position:relative;display:grid;grid-template-columns:1fr;gap:24px;}
@media (min-width:860px){
  .process{grid-template-columns:repeat(var(--process-cols,5),1fr);gap:0;}
  .process::before{ content:""; position:absolute; top:22px; left:calc(50% / var(--process-cols,5)); right:calc(50% / var(--process-cols,5)); height:2px; background:var(--border); z-index:0; }
}
.step{position:relative;z-index:1;padding:4px 18px 4px 0;}
@media (min-width:860px){ .step{padding:4px 20px;} .step:first-child{padding-left:0;} .step:last-child{padding-right:0;} }
.step .idx{
  font-family:ui-monospace,monospace; font-weight:700; color:var(--on-accent); background:var(--accent);
  font-size:0.9rem; width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.step h4{margin:0 0 8px;font-size:1.02rem;}
.step p{margin:0;font-size:0.88rem;color:var(--text-muted);}

/* ---------- WORK (legacy card type, still used by About/CTA areas) ---------- */
.work-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media (min-width:760px){ .work-grid{grid-template-columns:1fr 1fr;} }
.work-card{ border:1px solid var(--border); border-radius:6px; overflow:hidden; background:var(--surface); display:flex; flex-direction:column; transition:border-color .15s ease, transform .15s ease; }
.work-visual{ height:168px; position:relative; background:radial-gradient(120% 140% at 10% 0%, var(--accent-soft) 0%, transparent 55%), radial-gradient(120% 140% at 90% 100%, var(--jade-soft) 0%, transparent 55%), var(--surface-2); display:flex; align-items:flex-end; padding:16px; }
.work-visual .wm{font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;font-size:1.3rem;}
.work-body{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column;}
.work-body .sector{font-size:0.76rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:8px;}
.work-body h3{margin:0 0 10px;font-size:1.18rem;font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.work-body p{margin:0 0 16px;color:var(--text-muted);font-size:0.92rem;flex:1;}
.work-results{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px;}
.work-results .r .num{font-weight:700;color:var(--jade);font-size:1.05rem;}
.work-results .r .lab{font-size:0.72rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em;}

/* poster portfolio grid (work page) */
.poster-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
@media (min-width:640px){ .poster-grid{grid-template-columns:repeat(3,1fr);} }
@media (min-width:980px){ .poster-grid{grid-template-columns:repeat(4,1fr);} }
.poster-card{ border:1px solid var(--border); border-radius:6px; overflow:hidden; background:var(--surface); display:flex; flex-direction:column; transition:border-color .15s ease, transform .15s ease; }
.poster-card:hover{border-color:var(--border-strong);transform:translateY(-2px);}
.poster-img{aspect-ratio:9/16;overflow:hidden;background:var(--surface-2);}
.poster-img{position:relative;}
.poster-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.poster-card:hover .poster-img img{transform:scale(1.045);}
.poster-body{padding:14px 16px 18px;}
.poster-body .sector{font-size:0.72rem;color:var(--accent-strong);text-transform:uppercase;letter-spacing:0.06em;font-weight:600;margin-bottom:6px;display:block;}
.poster-body h3{margin:0 0 6px;font-size:0.96rem;font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.25;}
.poster-body p{margin:0;font-size:0.8rem;color:var(--text-muted);line-height:1.4;}
.poster-card[hidden]{display:none;}

/* clients section header (homepage) */
.ch-grid{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;margin-bottom:48px;}
@media (min-width:960px){ .ch-grid{grid-template-columns:1fr 0.9fr;gap:48px;} }
.ch-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.ch-eyebrow span:first-child{font-size:0.78rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-muted);}
.ch-line{flex:1;max-width:60px;height:1px;background:var(--border-strong);}
.ch-headline{
  font-family:Georgia,"Iowan Old Style","Times New Roman",serif;
  font-weight:400; font-size:clamp(2.1rem,4.5vw,3.2rem); line-height:1.05; letter-spacing:-0.01em;
  margin:0 0 18px; color:var(--text);
}
.ch-headline .hl{color:var(--accent-strong);font-style:italic;}
.ch-copy{color:var(--text-muted);font-size:1rem;max-width:42ch;margin:0 0 28px;}
.ch-stats{display:flex;gap:clamp(20px,4vw,40px);}
.ch-stat{display:flex;flex-direction:column;gap:2px;padding-left:18px;border-left:1px solid var(--border-strong);}
.ch-stat strong{font-family:Georgia,serif;font-size:1.7rem;font-weight:700;color:var(--text);}
.ch-stat span{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);}
.ch-photo{position:relative;aspect-ratio:4/3;border-radius:28px 12px 28px 12px;overflow:hidden;}
.ch-photo img{width:100%;height:100%;object-fit:cover;}
.ch-photo-tint{position:absolute;inset:0;background:linear-gradient(135deg, var(--jade) 0%, transparent 38%);mix-blend-mode:multiply;opacity:0.35;}

/* client category cards (homepage) */
.cc-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:48px;}
@media (min-width:700px){ .cc-grid{grid-template-columns:1fr 1fr;} }
@media (min-width:1100px){ .cc-grid{grid-template-columns:repeat(4,1fr);} }
.cc-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;}
.cc-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.cc-num{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:ui-monospace,monospace;font-size:0.72rem;font-weight:700;color:var(--text-muted);
}
.cc-icon{color:var(--accent-strong);flex-shrink:0;margin-top:4px;}
.cc-icon svg{width:20px;height:20px;}
.cc-title{font-weight:800;font-size:0.92rem;letter-spacing:0.01em;}
.cc-sub{font-size:0.68rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-faint);margin-top:2px;}
.cc-names{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;}
.cc-names span{display:block;color:var(--text);line-height:1.25;}
.cc-names span:nth-child(odd){
  font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:700;text-transform:uppercase;font-size:0.76rem;letter-spacing:0.01em;
}
.cc-names span:nth-child(even){
  font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;font-size:0.9rem;
}

/* wide banner strip (homepage) */
.banner-stack{display:flex;flex-direction:column;gap:18px;}
.wide-banner{
  position:relative; border-radius:18px; overflow:hidden;
  padding:clamp(28px,5vw,52px); min-height:220px;
  display:flex; flex-direction:column; justify-content:center; gap:14px;
}
.wide-banner h3{
  font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:clamp(1.7rem,4.5vw,2.9rem); font-weight:800; line-height:1.02; letter-spacing:-0.015em;
  position:relative; z-index:2; max-width:16ch;
}
.wide-banner p{font-size:1rem;opacity:0.88;max-width:48ch;position:relative;z-index:2;margin:0;}
.wide-banner-divider{width:84px;height:4px;border-radius:2px;position:relative;z-index:2;}
.wide-banner-tag{font-size:0.78rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;position:relative;z-index:2;}
.wide-banner .promo-blob{z-index:1;}
.wide-banner .promo-brand{position:relative;z-index:2;}

/* 5-colour rotation for the "how we work" process circles, matching brand deck */
.process .step:nth-child(5n+1) .idx{background:var(--accent);color:#0E0E0E;}
.process .step:nth-child(5n+2) .idx{background:var(--jade);color:#F8F6F1;}
.process .step:nth-child(5n+3) .idx{background:var(--lime);color:#0E0E0E;}
.process .step:nth-child(5n+4) .idx{background:var(--pink);color:#F8F6F1;}
.process .step:nth-child(5n+5) .idx{background:#0E0E0E;color:#F8F6F1;}

/* brand-in-action poster grid (homepage) */
.promo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
@media (min-width:700px){ .promo-grid{grid-template-columns:repeat(4,1fr);} }
.promo-card{
  position:relative; aspect-ratio:4/5; border-radius:16px; background:#0E0E0E;
  overflow:hidden; padding:18px; display:flex; flex-direction:column; justify-content:space-between;
  color:#F8F6F1; transition:transform .25s cubic-bezier(.22,1,.36,1);
}
.promo-card:hover{transform:translateY(-3px);}
.promo-brand{display:flex;align-items:center;gap:6px;font-size:0.76rem;font-weight:800;position:relative;z-index:2;}
.promo-brand svg{flex-shrink:0;}
.promo-tag{font-size:0.68rem;font-weight:800;letter-spacing:0.04em;text-transform:uppercase;position:relative;z-index:2;opacity:0.85;}
.promo-headline{font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(1.15rem,2.3vw,1.45rem);font-weight:800;line-height:1.04;letter-spacing:-0.01em;position:relative;z-index:2;}
.promo-headline .hl-orange{color:#FF6A00;}
.promo-headline .hl-lime{color:#D9FF5B;}
.promo-headline .hl-purple{color:#B794FF;}
.promo-blob{position:absolute;border-radius:50%;z-index:1;}
.promo-badges{display:flex;gap:7px;flex-wrap:wrap;position:relative;z-index:2;}
.promo-badge{font-size:0.64rem;font-weight:700;padding:6px 11px;border-radius:999px;white-space:nowrap;}
.promo-sparkle{position:absolute;z-index:2;}

/* homepage design-pedigree teaser */
.pedigree-band{ border:1px solid var(--border); border-radius:8px; padding:clamp(28px,4vw,40px); background:var(--bg-raised); display:grid; grid-template-columns:1fr; gap:24px; align-items:center; }
@media (min-width:860px){ .pedigree-band{grid-template-columns:0.9fr 1.1fr;gap:40px;} }
.pedigree-text p{ color:var(--text-muted); margin:10px 0 14px; font-size:0.95rem; max-width:42ch; }
.pedigree-text .tag{font-weight:600;color:var(--accent);font-size:0.85rem;}
.logo-strip{display:flex;flex-wrap:wrap;align-items:center;gap:28px;}
.logo-strip img{height:24px;width:auto;max-width:110px;object-fit:contain;filter:grayscale(1) opacity(0.6);transition:filter .25s ease;}
.logo-strip img:hover{filter:grayscale(0) opacity(1);}

/* prior-experience logo grid (about page) */
.logo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:4px;}
@media (min-width:600px){ .logo-grid{grid-template-columns:repeat(3,1fr);} }
@media (min-width:900px){ .logo-grid{grid-template-columns:repeat(5,1fr);} }
.logo-tile{ border:1px solid var(--border); border-radius:6px; background:var(--surface); padding:18px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:104px; transition:border-color .2s ease, transform .2s ease; }
.logo-tile:hover{border-color:var(--border-strong);transform:translateY(-2px);}
.logo-tile img{max-width:100%;max-height:30px;width:auto;object-fit:contain;filter:grayscale(1) opacity(0.72);transition:filter .25s ease;}
.logo-tile:hover img{filter:grayscale(0) opacity(1);}
.logo-tile .lt-name{font-size:0.7rem;color:var(--text-faint);text-align:center;}

/* prior-experience gallery (about page) */
.experience-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media (min-width:700px){ .experience-grid{grid-template-columns:1fr 1fr;} }
@media (min-width:1080px){ .experience-grid{grid-template-columns:1fr 1fr 1fr;} }
.experience-card{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface);transition:border-color .15s ease, transform .15s ease;}
.experience-card:hover{border-color:var(--border-strong);transform:translateY(-2px);}
.experience-img{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2);}
.experience-img{overflow:hidden;}
.experience-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.experience-card:hover .experience-img img{transform:scale(1.045);}
.experience-body{padding:16px 18px 20px;}
.experience-body .sector{font-size:0.72rem;color:var(--accent-strong);text-transform:uppercase;letter-spacing:0.06em;font-weight:600;margin-bottom:6px;display:block;}
.experience-body h3{margin:0;font-size:1rem;font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.3;}

/* filter chips (work page) */
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px;}
.filter-chip{ font-size:0.84rem; font-weight:600; padding:9px 16px; border-radius:999px; border:1px solid var(--border-strong); background:var(--surface); color:var(--text-muted); cursor:pointer; transition:all .15s ease; }
.filter-chip:hover{border-color:var(--accent);color:var(--text);}
.filter-chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}

/* ---------- ABOUT / STATS ---------- */
.about{display:grid;grid-template-columns:1fr;gap:48px;}
@media (min-width:920px){ .about{grid-template-columns:1fr 1fr;align-items:center;} }
.about-copy h2{font-size:clamp(1.9rem,4vw,2.5rem);margin:10px 0 18px;line-height:1.1;}
.about-copy p{color:var(--text-muted);margin:0 0 22px;max-width:52ch;}
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-bottom:0;padding:0;list-style:none;}
.checklist li{display:flex;gap:10px;align-items:flex-start;font-size:0.92rem;color:var(--text);}
.checklist li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:7px;flex-shrink:0;}
.stat-panel{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.stat-box{background:var(--surface);padding:30px 24px;}
.stat-box .num{font-size:2.3rem;font-weight:700;font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.stat-box .num .u{color:var(--accent);}
.stat-box .lab{font-size:0.82rem;color:var(--text-muted);margin-top:6px;}

/* value cards (about page) */
.value-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden;}
@media (min-width:700px){ .value-grid{grid-template-columns:1fr 1fr;} }
.value-card{background:var(--surface);padding:28px;}
.value-card h3{margin:0 0 10px;font-size:1.05rem;}
.value-card p{margin:0;color:var(--text-muted);font-size:0.9rem;}

/* team cards */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (min-width:640px){ .team-grid{grid-template-columns:repeat(3,1fr);} }
@media (min-width:960px){ .team-grid{grid-template-columns:repeat(4,1fr);} }
.team-card{text-align:left;}
.team-avatar{ width:100%; aspect-ratio:1; border-radius:6px; background:linear-gradient(145deg, var(--accent-soft), var(--jade-soft)); display:flex; align-items:center; justify-content:center; font-family:"Avenir Next","Century Gothic",Futura,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-weight:700; font-size:1.6rem; color:var(--accent-strong); margin-bottom:12px; border:1px solid var(--border); }
.team-card .name{font-weight:600;font-size:0.96rem;}
.team-card .role{font-size:0.82rem;color:var(--text-faint);}

/* ---------- TESTIMONIALS ---------- */
.testi-row{display:grid;grid-template-columns:1fr;gap:18px;}
@media (min-width:720px){ .testi-row{grid-template-columns:1fr 1fr;} }
@media (min-width:1080px){ .testi-row{grid-template-columns:1fr 1fr 1fr;} }
.testi-card{border:1px solid var(--border);border-radius:6px;padding:26px;background:var(--surface);display:flex;flex-direction:column;}
.testi-card .quote{font-size:0.96rem;color:var(--text);margin:0 0 20px;flex:1;}
.testi-who{display:flex;align-items:center;gap:12px;}
.avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.84rem;color:var(--on-accent);background:var(--accent);}
.testi-who .name{font-weight:600;font-size:0.9rem;}
.testi-who .role{font-size:0.78rem;color:var(--text-faint);}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--border);}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 2px; font-weight:600; font-size:1.02rem; }
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{font-size:1.3rem;color:var(--accent);flex-shrink:0;transition:transform .2s ease;}
.faq-item[open] summary .plus{transform:rotate(45deg);}
.faq-item .a{padding:0 2px 22px;color:var(--text-muted);max-width:68ch;font-size:0.94rem;}

/* ---------- WEBSITE OFFER PAGE (premium) ---------- */
.offer-hero{
  position:relative; overflow:hidden; border-radius:0 0 32px 32px;
  background:
    radial-gradient(50% 60% at 88% 10%, var(--jade-soft), transparent 70%),
    radial-gradient(45% 50% at 8% 90%, var(--lime-soft), transparent 70%),
    radial-gradient(60% 55% at 50% -10%, var(--accent-soft), transparent 65%),
    var(--bg);
}
.offer-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--text); color:var(--lime); font-weight:700; font-size:0.76rem; letter-spacing:0.04em; text-transform:uppercase; padding:8px 16px; border-radius:999px; margin-bottom:20px; }
.offer-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(217,255,91,0.28);}

.bench-premium{
  border:1px solid transparent; border-radius:14px;
  background:linear-gradient(var(--surface),var(--surface)) padding-box,
             linear-gradient(135deg,var(--accent),var(--jade) 55%,var(--lime)) border-box;
  box-shadow:0 30px 70px -30px rgba(123,61,255,0.4);
}

.offer-trust{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(18px,4vw,36px); padding:30px 0; }
.offer-trust-label{ font-size:0.78rem; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.06em; font-weight:700; white-space:nowrap; }
.offer-trust-logos{ display:flex; flex-wrap:wrap; align-items:center; gap:26px; flex:1; }
.offer-trust-logos img{height:22px;width:auto;max-width:96px;object-fit:contain;filter:grayscale(1) opacity(0.55);transition:filter .2s ease;}
.offer-trust-logos img:hover{filter:grayscale(0) opacity(1);}

.plan-card-premium{
  position:relative; border:1px solid transparent; border-radius:14px;
  background:linear-gradient(135deg,var(--accent-soft),var(--jade-soft) 75%), linear-gradient(var(--surface),var(--surface));
  box-shadow:0 28px 64px -28px rgba(255,106,0,0.32);
}
.pc-ribbon{ position:absolute; top:-13px; left:24px; background:var(--jade); color:#fff; font-size:0.7rem; font-weight:800; letter-spacing:0.05em; text-transform:uppercase; padding:6px 14px; border-radius:999px; box-shadow:0 8px 18px -6px rgba(123,61,255,0.5); }

/* ---------- OFFER STRIP ---------- */
.offer-strip{
  position:relative; overflow:hidden;
  background:linear-gradient(100deg,#0E0E0E 0%,#1A1225 55%,#0E0E0E 100%);
  color:var(--bg); padding:13px 0;
}
.offer-strip::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--accent),var(--jade),var(--lime));
}
.offer-strip a{ color:inherit; text-decoration:none; }
.offer-strip-inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px 18px; text-align:center; font-size:0.88rem; transition:opacity .4s ease; }
.offer-strip-inner.is-hidden{ display:none; }
.offer-strip-tag{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(217,255,91,0.12); color:var(--lime);
  font-size:0.66rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase;
  padding:4px 10px; border-radius:999px; white-space:nowrap;
}
.offer-strip-tag .dot{ width:5px; height:5px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 3px rgba(217,255,91,0.25); }
.offer-strip strong{ color:var(--lime); }
.offer-strip .offer-cta{ display:inline-flex; align-items:center; gap:6px; background:var(--accent); color:var(--on-accent); font-weight:700; padding:7px 15px; border-radius:999px; font-size:0.8rem; white-space:nowrap; box-shadow:0 6px 16px -6px rgba(255,106,0,0.6); transition:transform .15s ease, box-shadow .15s ease; }
.offer-strip .offer-cta:hover{ background:var(--accent-strong); transform:translateY(-1px); box-shadow:0 8px 20px -6px rgba(255,106,0,0.7); }
.offer-strip .offer-cta:hover{ background:var(--accent-strong); }

/* ---------- CTA BAND ---------- */
.cta-band{ border:1px solid var(--border-strong); border-radius:8px; padding:clamp(40px,6vw,64px); background:linear-gradient(135deg, var(--accent-soft), transparent 60%), var(--surface); display:grid; grid-template-columns:1fr; gap:28px; }
@media (min-width:860px){ .cta-band{grid-template-columns:1.3fr 0.7fr;align-items:center;} }
.cta-band h2{font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 14px;line-height:1.1;}
.cta-band p{color:var(--text-muted);margin:0;max-width:48ch;}
.cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
@media (min-width:860px){ .cta-actions{align-items:flex-end;} }
.cta-actions .btn{width:100%;justify-content:center;}
@media (min-width:860px){ .cta-actions .btn{width:auto;} }
.cta-contact{font-size:0.88rem;color:var(--text-muted);}
.cta-contact a{color:var(--text);font-weight:600;text-decoration:none;border-bottom:1px solid var(--accent);}

/* ---------- CONTACT PAGE ---------- */
.contact-grid{display:grid;grid-template-columns:1fr;gap:48px;}
@media (min-width:920px){ .contact-grid{grid-template-columns:1fr 1fr;} }
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
.field label{font-size:0.86rem;font-weight:600;}
.field .opt{font-weight:400;color:var(--text-faint);}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:0.95rem;padding:12px 14px;border-radius:4px;
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);
  width:100%;transition:border-color .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);}
.field textarea{resize:vertical;min-height:120px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:480px){ .field-row{grid-template-columns:1fr;} }
.form-note{font-size:0.8rem;color:var(--text-faint);margin-top:4px;}
.contact-info{display:flex;flex-direction:column;gap:22px;}
.info-card{border:1px solid var(--border);border-radius:6px;padding:22px;background:var(--surface);}
.info-card .k{font-size:0.76rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);margin-bottom:8px;}
.info-card .v{font-size:1.05rem;font-weight:600;}
.info-card a{text-decoration:none;color:var(--text);}
.info-card a:hover{color:var(--accent);}
.form-success{ display:none; border:1px solid var(--jade); background:var(--jade-soft); border-radius:6px; padding:18px 20px; margin-bottom:20px; font-size:0.92rem; }
.form-success.show{display:block;}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--border);padding:48px 0 32px;margin-top:20px;}
.foot-grid{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:36px;}
@media (min-width:760px){ .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;} }
.foot-brand .wordmark{margin-bottom:12px;}
.foot-brand p{color:var(--text-muted);font-size:0.88rem;max-width:34ch;}
.foot-col h5{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-faint);margin:0 0 14px;}
.foot-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.foot-col a{text-decoration:none;color:var(--text-muted);font-size:0.9rem;}
.foot-col a:hover{color:var(--text);}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding-top:22px;font-size:0.8rem;color:var(--text-faint);}
