/* minimal reset */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ol,ul{margin:0;}
ol,ul{list-style:none;padding:0;}
button,input,select,textarea{font:inherit;}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* ============ TOKENS ============ */
  :root{
    --ground:#EFF1EC;
    --surface:#FFFFFF;
    --surface-2:#E6EAE3;
    --ink:#10261F;
    --muted:#5C6B63;
    --accent:#1F5A45;
    --accent-soft:#DCE7E1;
    --signal:#B47F14;
    --signal-plate:#D9A227;
    --rule:#D2D9D1;
    --rule-strong:#B3BFB6;

    /* the hero band is committed dark in both themes */
    --hero-bg:#0F241D;
    --hero-ink:#F1F5F0;
    --hero-muted:#A8BCB1;
    --hero-rule:#2C4A3E;

    --display:Optima,Candara,"Gill Sans MT","Gill Sans",Avenir,"Trebuchet MS",sans-serif;
    --body:Optima,Candara,"Gill Sans MT","Gill Sans",Avenir,"Segoe UI",sans-serif;
    --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
    --serif:"Iowan Old Style",Charter,"Palatino Linotype",Palatino,Georgia,serif;

    --s-1:0.8125rem;
    --s0:1.0625rem;
    --s1:1.3rem;
    --s2:1.6rem;
    --s3:2rem;
    --s4:2.6rem;

    --pad:clamp(1.25rem,5vw,4.5rem);
    --max:74rem;
  }

  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --ground:#0C1512;
      --surface:#13201B;
      --surface-2:#182A23;
      --ink:#E7EDE7;
      --muted:#9BAAA1;
      --accent:#6FB79A;
      --accent-soft:#1B2E27;
      --signal:#E8B84B;
      --signal-plate:#E8B84B;
      --rule:#24352D;
      --rule-strong:#33493E;
    }
  }
  :root[data-theme="dark"]{
    --ground:#0C1512;
    --surface:#13201B;
    --surface-2:#182A23;
    --ink:#E7EDE7;
    --muted:#9BAAA1;
    --accent:#6FB79A;
    --accent-soft:#1B2E27;
    --signal:#E8B84B;
    --signal-plate:#E8B84B;
    --rule:#24352D;
    --rule-strong:#33493E;
  }

  /* ============ BASE ============ */
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--ground);
    color:var(--ink);
    font-family:var(--body);
    font-size:var(--s0);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.1;text-wrap:balance;margin:0;}
  p{margin:0;}
  a{color:inherit;}
  img,svg{max-width:100%;}
  :focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px;}

  .wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);}
  .band{padding-block:clamp(3.5rem,8vw,6rem);}
  .stack{display:flex;flex-direction:column;}

  .eyebrow{
    font-family:var(--mono);
    font-size:0.7rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0;
  }
  .lede{font-size:var(--s1);line-height:1.5;color:var(--muted);max-width:min(34ch,100%);}
  .prose{max-width:min(62ch,100%);}

  /* ============ HEADER ============ */
  .site-head{
    position:sticky;top:0;z-index:20;
    background:var(--hero-bg);
    color:var(--hero-ink);
    border-bottom:1px solid var(--hero-rule);
  }
  .site-head .wrap{
    display:flex;align-items:center;gap:1.5rem;
    justify-content:space-between;
    padding-block:0.85rem;
  }
  .brand{display:flex;align-items:center;gap:0.7rem;text-decoration:none;color:inherit;}
  .brand-name{font-family:var(--display);font-size:0.98rem;font-weight:600;letter-spacing:0.01em;line-height:1.15;}
  .brand-name span{display:block;font-family:var(--mono);font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--hero-muted);font-weight:400;}
  .site-nav{display:flex;gap:1.25rem;flex-wrap:wrap;}
  .site-nav a{
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
    text-decoration:none;color:var(--hero-muted);padding-block:0.3rem;
    border-bottom:1px solid transparent;
  }
  .site-nav a:hover{color:var(--hero-ink);border-bottom-color:var(--signal-plate);}
  @media(max-width:56rem){ .site-nav{display:none;} }

  /* ============ HERO ============ */
  .hero{background:var(--hero-bg);color:var(--hero-ink);position:relative;overflow:hidden;}
  .hero .wrap{position:relative;z-index:2;padding-block:clamp(3.5rem,9vw,6.5rem) clamp(2.5rem,6vw,4rem);}
  .hero-eyebrow{color:var(--hero-muted);}
  .hero h1{
    font-size:clamp(2.7rem,8vw,5.1rem);
    letter-spacing:-0.02em;
    margin-block:1.1rem 0;
    max-width:min(16ch,100%);
  }
  .hero-thesis{
    font-family:var(--serif);
    font-size:clamp(1.15rem,2.4vw,1.5rem);
    line-height:1.5;
    color:var(--hero-ink);
    max-width:min(48ch,100%);
    margin-top:1.6rem;
    padding-left:1.1rem;
    border-left:2px solid var(--signal-plate);
  }
  .hero-meta{
    margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:0.6rem 2rem;
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.08em;color:var(--hero-muted);
  }
  .hero-rules{position:absolute;inset:0;z-index:1;opacity:0.5;}
  .hero-rules line{stroke:var(--hero-rule);stroke-width:1;}

  /* ============ DIRECTIONAL PLATES ============ */
  .plates{
    background:var(--hero-bg);
    border-top:1px solid var(--hero-rule);
  }
  .plates .wrap{padding-block:0;}
  .plate-row{display:grid;grid-template-columns:repeat(4,1fr);}
  @media(max-width:70rem){ .plate-row{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:40rem){ .plate-row{grid-template-columns:1fr;} }
  .plate{
    display:block;text-decoration:none;color:var(--hero-ink);
    padding:1.7rem 1.4rem 1.9rem;
    border-right:1px solid var(--hero-rule);
    border-bottom:1px solid transparent;
    transition:background 140ms ease;
  }
  .plate:last-child{border-right:0;}
  @media(max-width:70rem){
    .plate{border-bottom:1px solid var(--hero-rule);}
    .plate:nth-child(2n){border-right:0;}
    .plate:nth-last-child(-n+2){border-bottom:0;}
  }
  @media(max-width:40rem){
    .plate{border-right:0;border-bottom:1px solid var(--hero-rule);}
    .plate:last-child{border-bottom:0;}
  }
  .plate:hover,.plate:focus-visible{background:#152F26;}
  .plate-key{
    font-family:var(--mono);font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;
    color:var(--signal-plate);display:block;
  }
  .plate-title{
    font-family:var(--display);font-size:var(--s1);font-weight:600;
    margin-top:0.55rem;display:flex;align-items:baseline;gap:0.5rem;
  }
  .plate-arrow{color:var(--signal-plate);transition:transform 160ms ease;display:inline-block;}
  .plate:hover .plate-arrow{transform:translateX(0.3rem);}
  .plate-note{color:var(--hero-muted);font-size:0.9rem;margin-top:0.5rem;max-width:min(30ch,100%);}

  /* ============ SECTION HEADS ============ */
  .sec-head{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
    gap:clamp(1.5rem,4vw,3.5rem);align-items:end;
    padding-bottom:1.8rem;border-bottom:1px solid var(--rule-strong);
  }
  @media(max-width:52rem){ .sec-head{grid-template-columns:1fr;align-items:start;} }
  .sec-head h2{font-size:clamp(1.9rem,4.4vw,var(--s4));letter-spacing:-0.015em;margin-top:0.7rem;}

  /* ============ SERVICE LIST ============ */
  .services{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
    gap:0;margin-top:2.5rem;
  }
  .service{
    padding:1.5rem 1.4rem 1.7rem 0;
    border-bottom:1px solid var(--rule);
    border-right:1px solid var(--rule);
  }
  .service:last-child{border-right:0;}
  .service h3{font-size:var(--s1);margin-bottom:0.45rem;}
  .service p{color:var(--muted);font-size:0.97rem;}
  @media(max-width:52rem){ .service{border-right:0;padding-right:0;} }

  /* ============ SOURCING (two channels) ============ */
  .channels{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));
    gap:0;margin-top:2.5rem;
  }
  .channel{
    padding:1.6rem 1.6rem 1.8rem 0;
    border-bottom:1px solid var(--rule);
    border-right:1px solid var(--rule);
  }
  .channel:last-child{border-right:0;}
  @media(max-width:52rem){ .channel{border-right:0;padding-right:0;} }
  .channel-tag{
    font-family:var(--mono);font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;
    color:var(--signal);display:inline-block;margin-bottom:0.55rem;
  }
  .channel h3{font-size:var(--s2);margin-bottom:0.5rem;}
  .channel p{color:var(--muted);font-size:0.97rem;}

  /* ============ DISCIPLINES ============ */
  .disciplines{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));
    gap:0;margin-top:2.5rem;
  }
  .discipline{
    padding:1.5rem 1.4rem 1.7rem 0;
    border-bottom:1px solid var(--rule);
    border-right:1px solid var(--rule);
  }
  .discipline:last-child{border-right:0;}
  @media(max-width:52rem){ .discipline{border-right:0;padding-right:0;} }
  .discipline h3{
    font-size:var(--s1);display:flex;align-items:center;gap:0.6rem;margin-bottom:0.5rem;
  }
  .discipline h3::before{
    content:"";width:0.62rem;height:0.62rem;background:var(--signal-plate);flex:0 0 auto;
  }
  .discipline p{color:var(--muted);font-size:0.93rem;}

  /* ============ ROUTE MAP ============ */
  .route{margin-top:3rem;}
  .route-label{
    display:flex;align-items:baseline;gap:0.8rem;flex-wrap:wrap;
    margin-bottom:1.4rem;
  }
  .route-scroll{overflow-x:auto;padding-bottom:0.6rem;}
  .route-track{
    display:grid;grid-auto-flow:column;grid-auto-columns:minmax(7.5rem,1fr);
    position:relative;
  }
  /* below the desktop breakpoint the route becomes a horizontal scroll */
  @media(max-width:64rem){
    .route-track{min-width:46rem;grid-auto-columns:minmax(9rem,1fr);}
  }
  .route-track::before{
    content:"";position:absolute;left:0;right:0;top:0.53rem;height:2px;
    background:var(--rule-strong);
  }
  .stop{position:relative;padding-top:1.9rem;padding-right:1rem;}
  .stop::before{
    content:"";position:absolute;left:0;top:0;width:1.1rem;height:1.1rem;
    border-radius:50%;background:var(--ground);border:2px solid var(--accent);
  }
  .stop:first-child::before{background:var(--accent);}
  .stop:last-child::before{background:var(--signal-plate);border-color:var(--signal);}
  .band-alt .stop::before{background:var(--surface);}
  .band-alt .stop:first-child::before{background:var(--accent);}
  .band-alt .stop:last-child::before{background:var(--signal-plate);}
  .stop-n{
    font-family:var(--mono);font-size:0.66rem;letter-spacing:0.12em;
    color:var(--muted);font-variant-numeric:tabular-nums;
  }
  .stop-t{font-family:var(--display);font-size:1.02rem;font-weight:600;margin-top:0.15rem;line-height:1.25;}
  .stop-d{font-size:0.88rem;color:var(--muted);margin-top:0.3rem;line-height:1.45;}

  /* ============ NOTE / CAUTION BLOCK ============ */
  .note{
    margin-top:2.6rem;padding:1.3rem 1.5rem;
    background:var(--accent-soft);
    border-left:3px solid var(--accent);
    max-width:min(62ch,100%);
  }
  .note p{font-size:0.97rem;}
  .note p + p{margin-top:0.8rem;}
  .note .eyebrow{margin-bottom:0.4rem;color:var(--accent);}

  /* ============ ALT BAND ============ */
  .band-alt{background:var(--surface);border-block:1px solid var(--rule);}

  /* ============ FACTS ============ */
  .facts{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
    gap:0;margin-top:2.5rem;border-top:1px solid var(--rule-strong);
  }
  .fact{padding:1.4rem 1.4rem 1.5rem 0;border-bottom:1px solid var(--rule);}
  .fact dt{font-family:var(--mono);font-size:0.68rem;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted);}
  .fact dd{margin:0.45rem 0 0;font-family:var(--display);font-size:var(--s1);font-variant-numeric:tabular-nums;}

  /* ============ CONTACT ============ */
  .contact-grid{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
    gap:clamp(2rem,5vw,4rem);margin-top:2.5rem;align-items:start;
  }
  @media(max-width:52rem){ .contact-grid{grid-template-columns:1fr;} }
  .contact-lines{display:flex;flex-direction:column;gap:1.2rem;}
  .cline dt{font-family:var(--mono);font-size:0.68rem;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted);}
  .cline dd{margin:0.25rem 0 0;font-size:var(--s1);font-family:var(--display);}
  .cline a{text-decoration:none;border-bottom:1px solid var(--rule-strong);}
  .cline a:hover{border-bottom-color:var(--accent);color:var(--accent);}

  form{display:flex;flex-direction:column;gap:1rem;}
  .field{display:flex;flex-direction:column;gap:0.35rem;}
  label{font-family:var(--mono);font-size:0.68rem;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted);}
  input,select,textarea{
    font-family:var(--body);font-size:1rem;color:var(--ink);
    background:var(--surface);border:1px solid var(--rule-strong);
    padding:0.7rem 0.8rem;border-radius:0;
  }
  textarea{min-height:7rem;resize:vertical;}
  input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-soft);}
  .btn{
    align-self:flex-start;
    font-family:var(--mono);font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;
    background:var(--accent);color:var(--ground);
    border:0;padding:0.9rem 1.6rem;cursor:pointer;
    display:inline-flex;align-items:center;gap:0.6rem;
  }
  .btn:hover{background:var(--ink);}
  .form-note{font-size:0.85rem;color:var(--muted);}

  /* ============ FOOTER ============ */
  .site-foot{
    background:var(--hero-bg);color:var(--hero-muted);
    padding-block:clamp(2.5rem,6vw,4rem);
    font-size:0.88rem;
  }
  .site-foot .wrap{display:grid;gap:2rem;}
  .foot-top{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;justify-content:space-between;align-items:flex-start;}
  .foot-legal{display:grid;gap:0.9rem;max-width:min(70ch,100%);padding-top:1.5rem;border-top:1px solid var(--hero-rule);}
  .foot-legal strong{color:var(--hero-ink);font-weight:600;}
  .foot-legal a{color:var(--hero-ink);}

  @media(prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important;}
  }
