/* ============================================================
   PRESSRUN
   Print shop meets pit lane. White paper, black ink,
   process magenta, registration marks.
   ============================================================ */

:root{
  --bg:#ffffff;
  --fg:#000000;
  --dim:#66666c;
  --dimmer:#9a9aa0;
  --line:rgba(0,0,0,.14);
  --line2:rgba(0,0,0,.07);
  --mag:#EC008C;
  --cyan:#00AEEF;
  --cyan-text:#0077a8;
  --field:#f4f4f6;
  --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--sans);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit}
img{max-width:100%}

.wrap{width:min(1080px,calc(100% - 40px));margin-inline:auto}
.narrow{width:min(720px,calc(100% - 40px));margin-inline:auto}

.label{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--dim);
}

/* registration marks, the printer's alignment crosshairs */
.reg{position:fixed;width:26px;height:26px;pointer-events:none;opacity:.6;z-index:2}
.reg::before,.reg::after{content:"";position:absolute;background:var(--cyan)}
.reg::before{left:12px;top:0;width:1px;height:26px}
.reg::after{top:12px;left:0;height:1px;width:26px}
.reg span{position:absolute;inset:6px;border:1px solid var(--mag);border-radius:50%}
.reg.tl{top:22px;left:22px}.reg.tr{top:22px;right:22px}
.reg.bl{bottom:22px;left:22px}.reg.br{bottom:22px;right:22px}
@media(max-width:700px){.reg{display:none}}

/* ---------- top bar (inner pages) ---------- */
.top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0 10px}
.top .home img{height:20px;width:auto;display:block}
.top nav{display:flex;gap:22px;align-items:center}
.top nav a{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--fg)}
.top nav a:hover{color:var(--mag)}

/* ---------- buttons ---------- */
.btn,button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  cursor:pointer;border:1px solid var(--mag);border-radius:2px;
  font-family:var(--mono);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
  background:var(--mag);color:#fff;padding:0 26px;min-height:52px;
  transition:filter .18s ease,transform .18s ease,background .18s ease,color .18s ease;
}
.btn.ghost,button.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.ghost:hover,button.ghost:hover:not(:disabled){border-color:var(--fg)}
.btn:hover,button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}
button:disabled{opacity:.45;cursor:default;transform:none}
.btn.sm,button.sm{min-height:40px;padding:0 16px;font-size:11px}
:where(input,select,textarea,button,a):focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

/* ---------- fields ---------- */
input,select,textarea{
  width:100%;font-family:var(--sans);font-size:16px;color:var(--fg);
  background:var(--field);border:1px solid var(--line);border-radius:2px;
  padding:14px 16px;outline:none;transition:border-color .18s ease,background .18s ease;
}
textarea{min-height:110px;resize:vertical;line-height:1.5}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
input::placeholder,textarea::placeholder{color:var(--dimmer)}
input:focus,select:focus,textarea:focus{border-color:var(--mag);background:#fff}
input:user-invalid,textarea:user-invalid{border-color:#e02424}
input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}
input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--mag);cursor:pointer}

.f{margin:0 0 18px}
.f label,.f .lab{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.f .hint{font-size:13px;color:var(--dim);margin-top:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
@media(max-width:620px){.grid2{grid-template-columns:1fr}}

.msg{margin:16px 0 0;font-family:var(--mono);font-size:13px;letter-spacing:.03em;min-height:20px}
.msg.ok{color:var(--cyan-text)}
.msg.err{color:#c81e1e}
.msg.note{color:var(--dim)}

/* ---------- page heads ---------- */
.head{padding:56px 0 34px}
.head h1{margin:0 0 10px;font-size:clamp(34px,6vw,58px);font-weight:900;line-height:1;letter-spacing:-.03em;font-variation-settings:"wdth" 112}
.head p{margin:0;color:var(--dim);max-width:56ch;font-size:17px}

section{padding:72px 0;border-top:1px solid var(--line2)}
.sec-label{margin-bottom:34px;text-align:center}

footer{padding:40px 0 56px;border-top:1px solid var(--line2);display:flex;gap:20px;flex-wrap:wrap;align-items:center}
footer .label{color:var(--dimmer)}
footer .right{margin-left:auto;display:flex;gap:22px}
footer a{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--dim);text-decoration:none}
footer a:hover{color:var(--mag)}

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