/*
Theme Name:   GLP Life Sciences
Template:     generatepress
Author:       GLP Life Sciences
Description:  Child theme carrying the GLP Life Sciences design system — self-hosted brand
              fonts, design tokens and component styles. Built to the approved design canvas.
Version:      1.0.0
*/

/* ---------------------------------------------------------------- fonts
   Self-hosted and subset to Latin: 230 KB for ten faces, versus render-blocking
   requests to fonts.googleapis.com. font-display:swap on every face. */
@font-face{font-family:'Inter Tight';src:url('assets/fonts/InterTight-Regular.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter Tight';src:url('assets/fonts/InterTight-SemiBold.woff2')format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter Tight';src:url('assets/fonts/InterTight-Bold.woff2')format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter Tight';src:url('assets/fonts/InterTight-ExtraBold.woff2')format('woff2');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('assets/fonts/Inter-Regular.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('assets/fonts/Inter-Medium.woff2')format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Source Serif 4';src:url('assets/fonts/SourceSerif4-Regular.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Source Serif 4';src:url('assets/fonts/SourceSerif4-SemiBold.woff2')format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/IBMPlexMono-Regular.woff2')format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/IBMPlexMono-SemiBold.woff2')format('woff2');font-weight:600;font-style:normal;font-display:swap;}

/* ---------------------------------------------------------------- tokens
   Single source of truth. Hexes lifted verbatim from brand/tokens.css —
   never hard-code a colour in a block or a snippet. */
:root {
  --glp-ink-900:#0B0F12; --glp-ink-800:#10161A; --glp-ink-700:#1C252B;
  --glp-ink-600:#2E3A42; --glp-ink-500:#48565F; --glp-ink-400:#64737C;
  --glp-ink-300:#94A3AB; --glp-ink-200:#C7D0D4; --glp-ink-100:#E3E8EA;
  --glp-ink-050:#F4F6F6; --glp-paper:#FFFFFF;

  --glp-assay-800:#064437; --glp-assay-700:#095C48; --glp-assay-600:#0D7C63;
  --glp-assay-500:#12A183; --glp-assay-400:#2ED3A7; --glp-assay-100:#C7E9DF;
  --glp-assay-050:#E8F5F1;

  --glp-caution-600:#B57A18; --glp-caution-050:#FBF3E2;
  --glp-flag-600:#B4442E;    --glp-flag-050:#FBEDEA;

  --glp-font-display:'Inter Tight',system-ui,sans-serif;
  --glp-font-body:'Inter',system-ui,sans-serif;
  --glp-font-editorial:'Source Serif 4',Georgia,serif;
  --glp-font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;

  --glp-radius-sm:4px; --glp-radius-md:8px; --glp-radius-lg:12px;
  --glp-container:1200px;
}

/* ---------------------------------------------------------------- base */
body{font-family:var(--glp-font-body);color:var(--glp-ink-900);background:var(--glp-paper);
  -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,.glp-display{font-family:var(--glp-font-display);font-weight:700;
  letter-spacing:-.022em;line-height:1.14;text-wrap:balance;}
.glp-mono{font-family:var(--glp-font-mono);font-variant-numeric:tabular-nums;}
.glp-editorial{font-family:var(--glp-font-editorial);font-size:1.0625rem;line-height:1.72;}
.glp-eyebrow{font-family:var(--glp-font-display);font-size:.6875rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--glp-ink-400);}
.glp-tabular{font-variant-numeric:tabular-nums;}
a{color:var(--glp-assay-600);} a:hover{color:var(--glp-assay-700);}

/* ------------------------------------------------- signature components
   The four that carry the brand. Markup lives in block patterns; the
   styling lives here so a pattern edit can never drift from the system. */

/* Lot chip — the one element no competitor's grid has. */
.glp-lot{display:inline-flex;align-items:center;gap:.375rem;background:var(--glp-assay-050);
  color:var(--glp-assay-600);border-radius:var(--glp-radius-sm);padding:.3125rem .5625rem;
  font-family:var(--glp-font-mono);font-size:.71875rem;font-weight:500;white-space:nowrap;}
.glp-lot svg{flex:none;}

/* RUO band — one string, one component, under every H1 that sells or describes. */
.glp-ruo{background:var(--glp-caution-050);border-left:3px solid var(--glp-caution-600);
  padding:.8125rem 1rem;font-size:.84375rem;line-height:1.55;color:var(--glp-ink-500);}
.glp-ruo strong{color:var(--glp-ink-900);font-weight:600;}

/* Spec table */
.glp-spec{width:100%;border-collapse:collapse;}
.glp-spec th{text-align:left;font-family:var(--glp-font-display);font-size:.6875rem;
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--glp-ink-400);
  padding:.6875rem 0;border-bottom:1px solid var(--glp-ink-100);}
.glp-spec td{text-align:right;font-family:var(--glp-font-mono);font-size:.84375rem;
  color:var(--glp-ink-900);padding:.6875rem 0;border-bottom:1px solid var(--glp-ink-100);}

/* Buttons — 44px minimum target, visible focus ring. */
.glp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:0 1.375rem;border-radius:var(--glp-radius-md);font-family:var(--glp-font-display);
  font-size:.9375rem;font-weight:600;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:background-color .12s cubic-bezier(.2,0,.13,1);}
.glp-btn--primary{background:var(--glp-assay-600);color:var(--glp-paper);}
.glp-btn--primary:hover{background:var(--glp-assay-700);color:var(--glp-paper);}
.glp-btn--secondary{background:var(--glp-paper);color:var(--glp-ink-900);
  border-color:var(--glp-ink-200);}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--glp-assay-500);
  outline-offset:2px;}

/* Dark sections — footer and the quality band only. Never a global theme. */
[data-surface='dark']{background:var(--glp-ink-900);color:var(--glp-paper);}
[data-surface='dark'] a{color:var(--glp-assay-400);}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
