  :root{
    --cream:#FFF4E7;
    --peach:#FFD8A6;
    --blush:#F9C0D6;
    --ink:#2A1B3D;
    --indigo:#2C1866;
    --violet:#6B2FE0;
    --violet-soft:#8B57E8;
    --line: rgba(42,27,61,0.14);
    --max: 1160px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Manrope', sans-serif;
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:500;
    letter-spacing:-0.01em;
    margin:0;
  }
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  /* subtle grain-free gradient wash used sparingly */
  .bg-wash{
    background: linear-gradient(160deg, var(--peach) 0%, var(--cream) 42%, var(--blush) 100%);
  }

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

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,244,231,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 32px;
    max-width:var(--max); margin:0 auto;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-family:'Fraunces', serif; font-weight:600; font-size:1.28rem;
    color:var(--indigo);
  }
  .brand .mark{width:30px;height:30px;flex:none;}
  .navlinks{display:flex; gap:34px; font-size:0.96rem; font-weight:600;}
  .navlinks a{ color:var(--ink); opacity:0.75; transition:opacity .18s; }
  .navlinks a:hover{opacity:1;}
  .nav-cta{
    font-weight:700; font-size:0.9rem;
    background:var(--indigo); color:var(--cream);
    padding:11px 22px; border-radius:2px;
  }
  .nav-cta:hover{background:var(--violet);}
  .menu-btn{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-btn span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0;}
  @media (max-width:860px){
    .navlinks{display:none;}
    .nav-cta{display:none;}
    .menu-btn{display:block;}
  }
  .mobile-panel{
    display:none; flex-direction:column; gap:2px;
    border-bottom:1px solid var(--line); background:var(--cream);
  }
  .mobile-panel.open{display:flex;}
  .mobile-panel a{
    padding:16px 32px; border-top:1px solid var(--line); font-weight:600;
  }

  /* ---------- HERO ---------- */
  .hero{position:relative; overflow:hidden;}
  .hero-inner{
    max-width:var(--max); margin:0 auto; padding:96px 32px 120px;
    display:grid; grid-template-columns:1.1fr 0.8fr; gap:40px; align-items:center;
  }
  @media (max-width:900px){ .hero-inner{grid-template-columns:1fr; padding:56px 24px 72px;} }

  .kicker{
    font-style:italic; font-family:'Fraunces', serif; font-size:1.02rem;
    color:var(--violet); margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(2.5rem, 5.4vw, 4.3rem);
    line-height:1.04;
    color:var(--indigo);
  }
  .hero p.lede{
    margin-top:26px; font-size:1.16rem; line-height:1.6; max-width:46ch;
    color:rgba(42,27,61,0.82);
  }
  .hero-actions{ display:flex; gap:16px; margin-top:38px; flex-wrap:wrap; }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 28px; font-weight:700; font-size:0.98rem; border-radius:2px;
    border:1.5px solid var(--indigo);
  }
  .btn-solid{ background:var(--indigo); color:var(--cream); }
  .btn-solid:hover{ background:var(--violet); border-color:var(--violet); }
  .btn-ghost{ color:var(--indigo); }
  .btn-ghost:hover{ background:rgba(44,24,102,0.06); }  

  .hero-mark{
    position:relative; aspect-ratio:1/1; width:100%;
    transform: translateX(160px);
  }

  .est-row{
    display:flex; gap:28px; margin-top:56px; padding-top:28px;
    border-top:1px solid var(--line); flex-wrap:wrap;
  }
  .est-row div{font-size:0.92rem; color:rgba(42,27,61,0.7);}
  .est-row strong{display:block; font-family:'Fraunces',serif; font-size:1.5rem; color:var(--indigo); font-weight:600;}

  /* ---------- SECTION HEADERS ---------- */
  .section{ padding:104px 0; }
  @media (max-width:640px){ .section{padding:68px 0;} }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head h2{ font-size:clamp(1.9rem, 3.4vw, 2.7rem); color:var(--indigo); }
  .section-head p{ margin-top:16px; font-size:1.06rem; line-height:1.6; color:rgba(42,27,61,0.75); }
  .section-alt{ background:linear-gradient(180deg, var(--cream), #FFEFDD 50%, var(--cream)); }

  /* ---------- CAPABILITIES (structured list, not cards) ---------- */
  .cap-list{ border-top:1px solid var(--line); }
  .cap-row{
    display:grid; grid-template-columns:280px 1fr; gap:36px;
    padding:30px 0; border-bottom:1px solid var(--line);
  }
  @media (max-width:760px){ .cap-row{grid-template-columns:1fr; gap:10px;} }
  .cap-row .cap-name{
    font-family:'Fraunces', serif; font-weight:500; font-size:1.28rem; color:var(--indigo);
  }
  .cap-row .cap-desc{ font-size:1rem; line-height:1.65; color:rgba(42,27,61,0.8); max-width:56ch; }
  .cap-row .cap-num{
    font-family:'Fraunces', serif; font-style:italic; font-size:0.92rem; color:var(--violet-soft);
    display:block; margin-bottom:6px;
  }

  /* ---------- INDUSTRIES — diagonal ribbon ---------- */
  .ribbon-wrap{
    transform:rotate(-2.2deg);
    background:linear-gradient(90deg, var(--indigo), var(--violet));
    margin:8px 0; padding:22px 0; overflow:hidden;
  }
  .ribbon-track{
    display:flex; gap:14px; white-space:nowrap;
    animation:scroll-left 32s linear infinite;
    width:max-content;
  }
  @media (prefers-reduced-motion: reduce){ .ribbon-track{animation:none;} }
  .ribbon-track span{
    font-family:'Fraunces', serif; font-style:italic; font-size:1.4rem;
    color:var(--cream); padding:0 18px; position:relative;
  }
  .ribbon-track span:after{
    content:"·"; position:absolute; right:-9px; color:var(--peach); font-style:normal;
  }
  @keyframes scroll-left{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
  }
  .industries-note{ margin-top:34px; font-size:1rem; color:rgba(42,27,61,0.75); max-width:60ch; }

  /* ---------- PROCESS — real sequence ---------- */
  .process{ position:relative; }
  .process-track{
    display:grid; grid-template-columns:repeat(6,1fr); gap:0;
    position:relative;
  }
  .process-track:before{
    content:""; position:absolute; top:19px; left:0; right:0; height:1px;
    background:var(--line);
  }
  @media (max-width:900px){
    .process-track{ grid-template-columns:1fr; gap:0; }
    .process-track:before{ display:none; }
  }
  .step{ position:relative; padding:0 20px 0 0; }
  @media (max-width:900px){
    .step{ padding:0 0 32px 34px; border-left:1px solid var(--line); margin-left:19px; }
    .step:last-child{ border-left:1px solid transparent; padding-bottom:0; }
  }
  .step-num{
    width:40px; height:40px; border-radius:50%;
    background:var(--cream); border:1.5px solid var(--indigo);
    display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces', serif; font-weight:600; color:var(--indigo);
    font-size:0.95rem; position:relative; z-index:1;
  }
  @media (max-width:900px){ .step-num{ position:absolute; left:-20px; top:-2px; background:var(--cream);} }
  .step h3{ margin-top:18px; font-size:1.14rem; color:var(--indigo); font-weight:600; }
  .step p{ margin-top:10px; font-size:0.94rem; line-height:1.55; color:rgba(42,27,61,0.75); padding-right:12px; }

  /* ---------- PRICING NOTE ---------- */
  .pricing-band{
    border:1.5px solid var(--indigo); padding:52px 48px;
    display:grid; grid-template-columns:1.3fr 0.7fr; gap:32px; align-items:center;
  }
  @media (max-width:760px){ .pricing-band{grid-template-columns:1fr; padding:36px 24px;} }
  .pricing-band h3{ font-size:1.7rem; color:var(--indigo); }
  .pricing-band p{ margin-top:14px; font-size:1rem; line-height:1.6; color:rgba(42,27,61,0.8); max-width:52ch; }

  /* ---------- CONTACT ---------- */
  .contact-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:640px){ .contact-grid{grid-template-columns:1fr;} }
  .contact-cell{
    background:var(--cream); padding:34px 32px; transition:background .18s;
  }
  .contact-cell:hover{ background:#FFEFDD; }
  .contact-cell .label{
    font-family:'Fraunces', serif; font-style:italic; color:var(--violet); font-size:0.98rem;
  }
  .contact-cell .value{
    display:block; margin-top:10px; font-size:1.2rem; font-weight:700; color:var(--indigo);
  }
  .contact-cell .sub{ margin-top:6px; font-size:0.88rem; color:rgba(42,27,61,0.6); }

  .form-card{
    margin-top:28px; border:1.5px solid var(--indigo); padding:40px;
  }
  @media (max-width:640px){ .form-card{padding:26px;} }
  .form-card h3{ font-size:1.3rem; color:var(--indigo); margin-bottom:22px; }
  .field{ margin-bottom:20px; }
  .field label{ display:block; font-size:0.86rem; font-weight:700; color:var(--indigo); margin-bottom:7px; }
  .field input, .field select, .field textarea{
    width:100%; border:1px solid var(--line); background:#fff;
    padding:13px 14px; font-family:'Manrope', sans-serif; font-size:0.98rem; color:var(--ink);
    border-radius:2px;
  }
  .field textarea{resize:vertical; min-height:110px;}
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--violet); }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  @media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
  .submit-btn{
    background:var(--indigo); color:var(--cream); border:none; padding:15px 30px;
    font-weight:700; font-size:0.98rem; cursor:pointer; border-radius:2px;
  }
  .submit-btn:hover{ background:var(--violet); }
  .form-note{ margin-top:14px; font-size:0.84rem; color:rgba(42,27,61,0.6); }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--indigo); color:var(--cream); padding:64px 0 32px; }
  .footer-top{
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:44px;
    border-bottom:1px solid rgba(255,244,231,0.18);
  }
  @media (max-width:760px){ .footer-top{grid-template-columns:1fr; gap:32px;} }
  .footer-brand{ font-family:'Fraunces', serif; font-size:1.4rem; font-weight:600; }
  .footer-brand p{ margin-top:14px; font-size:0.92rem; line-height:1.6; color:rgba(255,244,231,0.72); max-width:36ch; }
  .footer-col h4{ font-size:0.84rem; font-weight:700; margin-bottom:16px; color:var(--peach); }
  .footer-col a{ display:block; font-size:0.94rem; padding:6px 0; color:rgba(255,244,231,0.82); }
  .footer-col a:hover{ color:var(--cream); }
  .footer-bottom{
    display:flex; justify-content:space-between; padding-top:26px; font-size:0.82rem;
    color:rgba(255,244,231,0.55); flex-wrap:wrap; gap:10px;
  }
