:root{
  --bg:#FAFAF8;
  --bg-alt:#F2F1EC;
  --ink:#241A1D;
  --ink-2:#5B4F51;
  --indigo:#2C4570;
  --indigo-deep:#1B2A4A;
  --indigo-tint:#E4E9F2;
  --on-indigo:#F5F3EE;
  --orange:#E8871E;
  --orange-deep:#C96E10;
  --on-indigo-muted:rgba(247,237,233,.72);
  --line:#DFDDD6;
  --font-display:'Fraunces',serif;
  --font-body:'Public Sans',sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0 0 .5em;line-height:1.15;}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* Header */
header{position:sticky;top:0;background:rgba(250,250,248,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);z-index:10;}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:16px;flex-wrap:wrap;}
.brand{font-family:var(--font-display);font-weight:600;font-size:1.1rem;text-decoration:none;color:var(--ink);}
.breadcrumb{font-size:.8rem;color:var(--ink-2);}
.breadcrumb a{text-decoration:none;color:var(--ink-2);}
.breadcrumb a:hover{color:var(--indigo);}

/* Hero (drenched, matches homepage) */
.hero{background:var(--indigo-deep);color:var(--on-indigo);padding:64px 0 56px;}
.hero .eyebrow{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--indigo-tint);margin-bottom:16px;}
.hero h1{font-size:clamp(2rem,5vw,3rem);max-width:17ch;color:var(--on-indigo);text-wrap:balance;}
.hero p{font-size:1.1rem;color:var(--on-indigo-muted);max-width:56ch;margin:20px 0 28px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;}

/* Buttons */
.btn{display:inline-block;padding:13px 24px;border-radius:8px;font-weight:600;font-size:.95rem;text-decoration:none;transition:transform .15s ease,background .2s ease,border-color .2s ease;}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--orange);color:var(--indigo-deep);}
.btn-primary:hover{background:var(--orange-deep);}
.btn-outline{background:transparent;color:var(--on-indigo);border:1px solid rgba(245,243,238,.45);}
.btn-outline:hover{background:rgba(245,243,238,.12);}
.section .btn-primary{background:var(--orange);color:var(--indigo-deep);}
.section .btn-primary:hover{background:var(--orange-deep);}

/* Sections */
.section{padding:56px 0;}
.section-alt{background:var(--bg-alt);}
.section-head{max-width:640px;margin-bottom:8px;}
.section h2{font-size:clamp(1.5rem,3vw,2rem);max-width:28ch;text-wrap:balance;}
.section .lead{color:var(--ink-2);font-size:1.05rem;max-width:60ch;}

/* Service list (not a 3-equal-card grid: asymmetric two-column list) */
.list-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:28px;}
@media(min-width:700px){.list-grid{grid-template-columns:repeat(2,1fr);}}
.list-item{border:1px solid var(--line);border-radius:10px;padding:20px 22px;background:var(--bg);}
.list-item h3{font-size:1rem;margin-bottom:6px;}
.list-item p{color:var(--ink-2);font-size:.92rem;margin:0;}

/* Case study */
.case-study{border-left:3px solid var(--indigo);padding:22px 0 22px 24px;margin-top:30px;}
.case-photo{border-radius:10px;overflow:hidden;max-width:420px;margin-top:28px;}
.case-photo img{width:100%;display:block;}
.case-video{border-radius:10px;overflow:hidden;max-width:340px;margin-top:20px;background:#000;}
.case-video video{width:100%;display:block;}
.case-video-caption{margin-top:10px;font-size:.82rem;color:var(--ink-2);}
.case-study .tag{font-size:.78rem;font-weight:600;color:var(--indigo);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;display:block;}
.case-study p{font-family:var(--font-display);font-style:italic;font-size:1.08rem;color:var(--ink);max-width:62ch;}
.case-study .who{margin-top:10px;font-size:.85rem;color:var(--ink-2);font-style:normal;font-family:var(--font-body);}

/* Cross-links between segment pages */
.cross-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.cross-links a{font-size:.85rem;padding:8px 14px;border:1px solid var(--line);border-radius:20px;text-decoration:none;color:var(--ink-2);transition:border-color .2s,color .2s;}
.cross-links a:hover{border-color:var(--indigo);color:var(--indigo);}

/* Footer */
footer{border-top:3px solid var(--indigo);background:var(--indigo-tint);padding:32px 0;font-size:.85rem;color:var(--ink-2);}
footer a{text-decoration:none;color:var(--ink-2);}
footer a:hover{color:var(--indigo);}
.footer-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;align-items:center;}

/* Reveal-on-scroll (CSS only, no JS library needed) */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.23,1,.32,1),transform .6s cubic-bezier(.23,1,.32,1);}
.reveal.is-visible{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}
