/* PlastiMind — plastimind.ai
   Palette and type are fixed by the brand sheet; see BRIEF.md.
   One stylesheet for the whole site. No build step, no framework. */

:root{
  --charcoal:#23262B;
  --charcoal-deep:#16181C;
  --charcoal-soft:#2E3238;
  --ember:#D9481F;
  --ember-light:#E8712D;
  --steel:#3E7CA6;
  /* Steel at brand value is 4.0:1 on the ash background -- under AA for body
     text. This darker cut is only ever used for text; #3E7CA6 stays for rules,
     borders and anything large. */
  --steel-ink:#2F6389;
  --amber:#F2A65A;
  --ash:#F4F1EC;
  --white:#FFFFFF;
  --muted:#5F6672;
  --border:#E0DCD4;
  --border-soft:#EBE7E0;

  --wrap:1060px;
  --wrap-narrow:760px;
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:17px;
  line-height:1.6;
  color:var(--charcoal);
  background:var(--ash);
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Oswald',Impact,'Arial Narrow',sans-serif;
  font-weight:600;
  line-height:1.15;
  letter-spacing:0.2px;
  margin:0 0 .5em;
}
h1{font-size:clamp(32px,5.2vw,52px);}
h2{font-size:clamp(25px,3.4vw,34px);}
h3{font-size:clamp(19px,2.2vw,22px);}
h4{font-size:17px;letter-spacing:.4px;}

p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}

a{color:var(--steel-ink);text-decoration-thickness:1px;text-underline-offset:2px;}
a:hover{color:var(--ember);}

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

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
.wrap-narrow{max-width:var(--wrap-narrow);margin:0 auto;padding:0 24px;}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--ember);color:var(--white);
  padding:12px 18px;z-index:200;font-weight:600;
}
.skip:focus{left:0;}

/* ---------- header ---------- */

.site-header{
  background:var(--charcoal);
  border-bottom:1px solid var(--charcoal-deep);
  position:sticky;top:0;z-index:50;
}
.header-inner{
  max-width:var(--wrap);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
}
.brand{
  display:flex;align-items:center;gap:11px;
  text-decoration:none;flex-shrink:0;
}
.brand svg{width:36px;height:36px;display:block;}
.brand-text{display:flex;flex-direction:column;gap:1px;}
.brand-name{
  font-family:'Oswald',sans-serif;font-weight:600;font-size:21px;
  color:var(--ash);letter-spacing:1.2px;line-height:1;
}
.brand-tag{
  font-size:10px;color:var(--ember-light);font-weight:600;
  letter-spacing:1.6px;text-transform:uppercase;line-height:1;
}

.site-nav{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.site-nav a{
  color:#B9BEC7;text-decoration:none;font-size:15px;font-weight:500;
  padding:8px 13px;border-radius:6px;
  transition:color .15s ease,background .15s ease;
}
.site-nav a:hover{color:var(--white);background:var(--charcoal-soft);}
.site-nav a[aria-current="page"]{color:var(--white);box-shadow:inset 0 -2px 0 var(--ember);}
.site-nav a.nav-cta{
  background:var(--ember);color:var(--white);font-weight:600;margin-left:6px;
}
.site-nav a.nav-cta:hover{background:var(--ember-light);color:var(--white);}

/* ---------- buttons ---------- */

.btn{
  display:inline-block;
  font-family:'Inter',sans-serif;
  /* 19/700 keeps white-on-ember inside AA as large text; the brand ember is
     4.3:1, which would fail at body size. */
  font-size:19px;font-weight:700;
  padding:15px 30px;border-radius:8px;
  text-decoration:none;border:2px solid transparent;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.btn-primary{background:var(--ember);color:var(--white);}
.btn-primary:hover{background:var(--ember-light);color:var(--white);}
.btn-secondary{
  background:transparent;color:var(--charcoal);border-color:var(--charcoal);
}
.btn-secondary:hover{background:var(--charcoal);color:var(--ash);}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}

/* ---------- sections ---------- */

.section{padding:72px 0;}
.section-tight{padding:52px 0;}
.section-dark{background:var(--charcoal);color:var(--ash);}
.section-dark h2,.section-dark h3{color:var(--white);}
.section-dark a{color:var(--amber);}
.section-dark a:hover{color:var(--ember-light);}
.section-alt{background:var(--white);}

.eyebrow{
  font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--ember);margin:0 0 14px;
}
.section-dark .eyebrow{color:var(--amber);}

.lede{font-size:clamp(18px,2.1vw,21px);line-height:1.55;color:var(--muted);}
.section-dark .lede{color:#C6CBD3;}

/* ---------- hero ---------- */

.hero{
  background:var(--charcoal);
  color:var(--ash);
  padding:84px 0 76px;
  border-bottom:4px solid var(--ember);
}
.hero h1{color:var(--white);max-width:15ch;}
.hero .lede{color:#C6CBD3;max-width:58ch;margin-bottom:32px;}
.hero-note{
  margin-top:26px;font-size:14.5px;color:#9AA1AC;max-width:56ch;
}

/* ---------- grid + cards ---------- */

.grid{display:grid;gap:22px;}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}

.card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:12px;
  padding:26px 24px;
}
.card h3{margin-bottom:.45em;}
.card p{font-size:16px;color:var(--muted);}
.card p strong{color:var(--charcoal);}
.section-alt .card{background:var(--ash);}
.section-dark .card{
  background:var(--charcoal-soft);border-color:#3A3E45;
}
.section-dark .card p{color:#C6CBD3;}
.section-dark .card p strong{color:var(--white);}

.card-accent{border-top:4px solid var(--ember);}
.card-accent-steel{border-top:4px solid var(--steel);}

/* ---------- quoted shop-floor questions ---------- */

.asks{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;}
.asks li{
  background:var(--white);
  border:1px solid var(--border);
  border-left:3px solid var(--amber);
  border-radius:8px;
  padding:11px 15px;
  font-size:15.5px;
  color:var(--charcoal);
}
.section-dark .asks li{
  background:var(--charcoal-soft);border-color:#3A3E45;border-left-color:var(--amber);
  color:#E6E3DE;
}

/* ---------- plain feature list ---------- */

.ticks{list-style:none;margin:0;padding:0;}
.ticks li{
  position:relative;padding-left:30px;margin-bottom:13px;font-size:16.5px;
}
.ticks li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:11px;height:11px;border-radius:2px;
  background:var(--ember);
}
.ticks li:last-child{margin-bottom:0;}
.ticks-steel li::before{background:var(--steel);}

/* ---------- tier cards ---------- */

.tier{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:12px;
  padding:0;
  overflow:hidden;
  display:flex;flex-direction:column;
}
.tier-head{
  background:var(--charcoal);color:var(--white);
  padding:22px 24px 20px;
}
.tier-head h3{color:var(--white);margin-bottom:4px;}
.tier-head .tier-sub{font-size:14.5px;color:var(--amber);margin:0;font-weight:500;}
.tier-body{padding:24px;flex:1;}
.tier-body p{font-size:16px;}
.tier-steel .tier-head{background:var(--steel);}
.tier-steel .tier-head .tier-sub{color:#E8F1F7;}

/* ---------- callout ---------- */

.callout{
  background:#FDF3E5;
  border:1px solid #F0DCBC;
  border-left:4px solid var(--amber);
  border-radius:10px;
  padding:20px 22px;
  font-size:16px;
}
.callout p{margin-bottom:.7em;}
.callout strong{color:#7A4E0C;}

.callout-steel{
  background:#EAF2F7;border-color:#D3E3EC;border-left-color:var(--steel);
}
.callout-steel strong{color:#255273;}

/* ---------- resource rows ---------- */

.res{
  display:flex;gap:20px;align-items:flex-start;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:12px;
  padding:24px;
  margin-bottom:16px;
}
.res-icon{
  flex-shrink:0;width:44px;height:44px;border-radius:9px;
  background:var(--ash);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--steel-ink);
}
.res-main{flex:1;min-width:0;}
.res-main h3{margin-bottom:.3em;}
.res-main p{font-size:16px;color:var(--muted);margin-bottom:.8em;}
.res-link{font-weight:600;text-decoration:none;font-size:16px;}
.res-link::after{content:" \2192";}
.res-pending{
  display:inline-block;font-size:13px;font-weight:600;
  color:#7A4E0C;background:#FDF3E5;border:1px solid #F0DCBC;
  padding:5px 11px;border-radius:20px;
}

/* ---------- prose (data-handling page) ---------- */

.prose{font-size:17px;}
.prose h2{
  margin-top:1.8em;padding-top:.6em;
  border-top:1px solid var(--border);
}
.prose h2:first-of-type{margin-top:1em;}
.prose h3{margin-top:1.5em;color:var(--charcoal);}
.prose ul,.prose ol{padding-left:22px;margin:0 0 1.1em;}
.prose li{margin-bottom:.5em;}
.prose strong{font-weight:600;}
.prose code{
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:.88em;background:#EDE9E2;border:1px solid var(--border);
  padding:1px 5px;border-radius:4px;
}
.prose hr{border:0;border-top:1px solid var(--border);margin:2.4em 0;}

.table-scroll{overflow-x:auto;margin:0 0 1.4em;-webkit-overflow-scrolling:touch;}
.prose table{
  border-collapse:collapse;width:100%;min-width:520px;
  font-size:15.5px;background:var(--white);
}
.prose th,.prose td{
  border:1px solid var(--border);padding:10px 13px;text-align:left;
  vertical-align:top;
}
.prose th{background:var(--charcoal);color:var(--white);font-weight:600;}
.prose tbody tr:nth-child(even){background:#FAF8F5;}

.doc-meta{
  font-size:14.5px;color:var(--muted);
  border-left:3px solid var(--steel);padding-left:14px;margin-bottom:2em;
}

/* ---------- contact ---------- */

.mail-cta{
  display:inline-block;
  font-family:'Oswald',sans-serif;
  font-size:clamp(21px,3.4vw,30px);
  font-weight:600;letter-spacing:.4px;
  color:var(--charcoal);text-decoration:none;
  background:var(--white);border:2px solid var(--charcoal);
  border-radius:10px;padding:16px 26px;
  transition:background .15s ease,color .15s ease;
  word-break:break-word;
}
.mail-cta:hover{background:var(--ember);border-color:var(--ember);color:var(--white);}

/* ---------- footer ---------- */

.site-footer{
  background:var(--charcoal-deep);color:#9AA1AC;
  padding:44px 0 36px;font-size:15px;
}
.footer-inner{
  max-width:var(--wrap);margin:0 auto;padding:0 24px;
  display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:flex-start;
}
.footer-brand .brand-name{font-size:18px;}
.footer-links{display:flex;flex-wrap:wrap;gap:20px;}
.site-footer a{color:#B9BEC7;text-decoration:none;}
.site-footer a:hover{color:var(--amber);}
.footer-legal{
  max-width:var(--wrap);margin:30px auto 0;padding:20px 24px 0;
  border-top:1px solid #2A2E35;font-size:13.5px;color:#7C838F;
}
.footer-legal p{margin-bottom:.5em;}

/* ---------- small screens ---------- */

@media (max-width:720px){
  body{font-size:16.5px;}
  .header-inner{padding:10px 18px;gap:8px;}
  .brand svg{width:32px;height:32px;}
  .brand-name{font-size:19px;}
  /* The tagline is in the hero and the footer already; dropping it here buys
     back the height the bigger tap targets below need. */
  .brand-tag{display:none;}
  .site-nav{
    margin-left:0;width:100%;
    gap:2px;
    /* Must override the base rule's flex-wrap:wrap -- with it the links stack
       onto a second row instead of scrolling, doubling the sticky header. */
    flex-wrap:nowrap;
    overflow-x:auto;
    /* All four links fit a 375px phone; scrolling is the fallback for narrower
       screens and larger text settings. A JS drawer would be the only other
       option and this site does not need one. */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .site-nav::-webkit-scrollbar{display:none;}
  /* 12px vertical keeps these at ~45px tall -- these get tapped on a plant
     floor, sometimes with gloves on. */
  .site-nav a{padding:12px 12px;font-size:14.5px;white-space:nowrap;}
  .site-nav a.nav-cta{margin-left:2px;}
  .wrap,.wrap-narrow{padding:0 18px;}
  .hero{padding:56px 0 52px;}
  .section{padding:52px 0;}
  .section-tight{padding:40px 0;}
  .btn{display:block;text-align:center;width:100%;font-size:18px;padding:15px 22px;}
  .btn-row{gap:11px;}
  .res{flex-direction:column;gap:14px;padding:20px;}
  .footer-inner{flex-direction:column;gap:20px;}
}
