@font-face{font-family:Archivo;src:url(/assets/archivo.woff2) format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}

:root{
  --mesh:#F3D33B;      /* screen mesh yellow */
  --ink:#000;
  --paper:#fff;
  --grey:#6b6b6b;
  --line:#000;
  --measure:68ch;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Archivo,system-ui,sans-serif;font-variation-settings:"wdth" 100;font-size:1.0625rem;line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--paper);padding:.5rem 1rem;z-index:10}

/* type */
.display{font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;line-height:.86;letter-spacing:-.01em;margin:0}
h1.display{font-size:clamp(3.6rem,13vw,11rem)}
h1.page{font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(3rem,9vw,6.5rem);line-height:.9;margin:0}
h2{font-weight:800;font-variation-settings:"wdth" 75;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05;margin:0 0 .75rem}
h3{font-weight:800;font-variation-settings:"wdth" 85;font-size:1.3rem;line-height:1.2;margin:0 0 .35rem}
p{margin:0 0 1rem;max-width:var(--measure)}
.lede{font-size:clamp(1.15rem,2vw,1.4rem);font-variation-settings:"wdth" 90;line-height:1.4}

/* header */
.site-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem clamp(1rem,4vw,2.5rem);border-bottom:2px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}
.logo{display:inline-block;text-decoration:none;border:3px solid var(--ink);padding:.15rem .5rem .1rem;font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:1.35rem;line-height:1;letter-spacing:.02em}
.logo img{height:40px;width:auto}
.nav{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;align-items:center}
.nav a{text-decoration:none;font-weight:600;font-variation-settings:"wdth" 85}
.nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}
.nav a.btn{padding:.5rem .9rem}
.menu-toggle{display:none;background:none;border:2px solid var(--ink);font:inherit;font-weight:700;padding:.35rem .7rem;cursor:pointer}
@media (max-width:980px){
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:2px solid var(--line);flex-direction:column;align-items:flex-start;padding:1rem clamp(1rem,4vw,2.5rem) 1.25rem;gap:.85rem}
  .nav.open{display:flex}
}

/* buttons */
.btn{display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:800;font-variation-settings:"wdth" 85;padding:.85rem 1.4rem;border:2px solid var(--ink);cursor:pointer;font-size:1rem;font-family:inherit}
.btn:hover{background:var(--mesh);color:var(--ink);border-color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}

/* hero: the printed sheet */
.hero{background:var(--mesh);position:relative;padding:clamp(3rem,8vw,6rem) clamp(1.25rem,5vw,3.5rem) 0;border-bottom:2px solid var(--line);overflow:hidden}
.reg{position:absolute;width:34px;height:34px;color:var(--ink)}
.reg.tl{top:14px;left:14px}.reg.tr{top:14px;right:14px}
.hero-inner{max-width:1200px;margin:0 auto}
.hero .lede{margin-top:1.75rem;max-width:40ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 clamp(2.5rem,6vw,4rem)}
.hero .btn.ghost{border-color:var(--ink)}

/* ink strip = services index */
.inkstrip{display:grid;grid-template-columns:repeat(7,1fr);border-top:2px solid var(--line);margin:0 calc(-1 * clamp(1.25rem,5vw,3.5rem))}
.inkstrip a{display:flex;flex-direction:column;justify-content:flex-end;min-height:7.5rem;padding:.7rem .8rem;text-decoration:none;border-right:2px solid var(--line);font-weight:700;font-variation-settings:"wdth" 80;line-height:1.15}
.inkstrip a:last-child{border-right:0}
.inkstrip a:hover{outline:3px solid var(--ink);outline-offset:-5px}
.ink-water{background:#9FC9E6}
.ink-plastisol{background:var(--ink);color:var(--paper)}
.ink-puff{background:#F2F2F2;text-shadow:0 1px 0 #fff,0 2px 0 #c9c9c9,0 3px 0 #b0b0b0}
.ink-metallic{background:linear-gradient(135deg,#d9d9d9,#8f8f8f 45%,#f4f4f4 60%,#9c9c9c)}
.ink-glow{background:#C9F2A8}
.ink-gel{background:var(--paper);box-shadow:inset 0 0 0 6px rgba(0,0,0,.06)}
.ink-dtf{background:linear-gradient(90deg,#00A3E0 0 25%,#E5007E 25% 50%,#FFE500 50% 75%,#000 75%);color:var(--paper)}
.ink-dtf span{background:var(--ink);padding:0 .25rem;align-self:flex-start}
@media (max-width:860px){.inkstrip{grid-template-columns:repeat(2,1fr)}.inkstrip a{border-bottom:2px solid var(--line);min-height:5.5rem}.inkstrip a:nth-child(2n){border-right:0}}

/* sections */
.wrap{max-width:1200px;margin:0 auto;padding:clamp(3rem,7vw,5rem) clamp(1.25rem,5vw,3.5rem)}
.page-head{border-bottom:2px solid var(--line)}
.page-head .wrap{padding-bottom:clamp(2rem,4vw,3rem)}
.page-head p{margin-top:1.25rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.band{border-top:2px solid var(--line)}
.band.cta{background:var(--paper)}
.band.cta .btn:hover{background:var(--mesh)}

/* process steps (a real sequence) */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--line)}
.steps li{counter-increment:s;padding:1.25rem 1.1rem 1.5rem;border-right:2px solid var(--line)}
.steps li:last-child{border-right:0}
.steps li::before{content:counter(s);display:block;font-weight:900;font-variation-settings:"wdth" 62;font-size:3.2rem;line-height:1;margin-bottom:.6rem}
.steps p{font-size:.98rem;margin:0}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}.steps li{border-bottom:2px solid var(--line)}.steps li:nth-child(2n){border-right:0}}
@media (max-width:520px){.steps{grid-template-columns:1fr}.steps li{border-right:0}}

/* services list */
.inks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));border-top:2px solid var(--line);border-left:2px solid var(--line)}
.inks article{border-right:2px solid var(--line);border-bottom:2px solid var(--line);display:grid;grid-template-rows:auto 1fr}
.inks .chip{height:5.5rem;border-bottom:2px solid var(--line)}
.inks .body{padding:1.1rem 1.1rem 1.4rem}
.inks p{margin:0;font-size:1rem}
.inks .best{margin-top:.6rem;color:var(--grey);font-size:.92rem}

/* blanks */
.brands{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));border-top:2px solid var(--line);border-left:2px solid var(--line)}
.brands li{border-right:2px solid var(--line);border-bottom:2px solid var(--line)}
.brands a{display:block;padding:1.4rem 1.1rem;text-decoration:none;font-weight:800;font-variation-settings:"wdth" 75;font-size:1.5rem;line-height:1.1}
.brands a:hover{background:var(--mesh)}
.picks{margin-top:2.5rem}
.picks dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1.5rem;margin:0}
.picks dt{font-weight:800}
.picks dd{margin:0}
@media (max-width:520px){.picks dl{grid-template-columns:1fr}.picks dd{margin-bottom:.6rem}}

/* faq */
.faq details{border-top:2px solid var(--line)}
.faq details:last-child{border-bottom:2px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.1rem 2.5rem 1.1rem 0;font-weight:800;font-variation-settings:"wdth" 85;font-size:1.2rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:.7rem;font-size:1.8rem;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 0 1.25rem}
.faq-group{margin-bottom:3rem}
.faq-group h2{margin-bottom:1rem}

/* form */
form.quote{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem 1.5rem}
form.quote .full{grid-column:1/-1}
@media (max-width:640px){form.quote{grid-template-columns:1fr}}
label{display:block;font-weight:700;font-variation-settings:"wdth" 90;margin-bottom:.35rem}
.hint{display:block;font-weight:400;color:var(--grey);font-size:.9rem;margin-top:.1rem}
input,select,textarea{width:100%;font:inherit;padding:.75rem .8rem;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink)}
textarea{min-height:8rem;resize:vertical}
fieldset{border:0;padding:0;margin:0}
legend{font-weight:700;font-variation-settings:"wdth" 90;margin-bottom:.5rem;padding:0}
.checks{display:flex;flex-wrap:wrap;gap:.5rem}
.checks label{display:flex;align-items:center;gap:.45rem;border:2px solid var(--ink);padding:.5rem .8rem;font-weight:600;margin:0;cursor:pointer}
.checks input{width:auto;margin:0;accent-color:var(--ink)}
.checks label:has(input:checked){background:var(--mesh)}
.hp{position:absolute;left:-5000px}
.form-status{padding:1rem 1.1rem;border:2px solid var(--ink);display:none}
.form-status.show{display:block}
.form-status.ok{background:var(--mesh)}
.form-status.err{background:#fff;border-color:#B00020}
.aside-box{border:2px solid var(--ink);padding:1.25rem}
.aside-box h3{margin-bottom:.75rem}
.aside-box ul{margin:0;padding-left:1.1rem}
.aside-box li{margin-bottom:.4rem}

/* mockup */
.mockup-frame{width:100%;height:calc(100vh - 70px);min-height:720px;border:0;border-top:2px solid var(--line);display:block}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);padding:clamp(2.5rem,6vw,4rem) clamp(1.25rem,5vw,3.5rem) 2rem}
.foot-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.site-foot .logo{border-color:var(--paper)}
.site-foot h3{font-size:1rem;margin-bottom:.6rem}
.site-foot ul{list-style:none;padding:0;margin:0}
.site-foot li{margin-bottom:.35rem}
.site-foot a{text-decoration:none}.site-foot a:hover{text-decoration:underline}
.foot-small{max-width:1200px;margin:2.5rem auto 0;color:#a9a9a9;font-size:.85rem}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.quote-split{grid-template-columns:2fr 1fr}
@media (max-width:860px){.quote-split{grid-template-columns:1fr}.quote-split aside{order:-1}}
@media (max-width:860px){.inkstrip a:last-child{grid-column:1/-1}}
/* services list */
.svc-list{border-bottom:2px solid var(--line)}
.svc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:1rem 3rem;padding:2rem 0;border-top:2px solid var(--line);scroll-margin-top:90px}
.svc h2{font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:clamp(2.4rem,5vw,4rem);line-height:.9;margin:0}
.svc p{margin:0}
.svc .best{margin-top:.75rem;font-weight:700;font-variation-settings:"wdth" 90}
.svc:target{background:var(--mesh);box-shadow:0 0 0 1rem var(--mesh)}
@media (max-width:760px){.svc{grid-template-columns:1fr;padding:1.5rem 0}}
/* form alignment: inputs in the same row line up at the bottom, all one height */
form.quote>div{display:flex;flex-direction:column}
form.quote>div>input,form.quote>div>select,form.quote>div>textarea{margin-top:auto}
form.quote input:not([type=radio]):not([type=checkbox]),form.quote select{height:3.25rem;line-height:1.2}
form.quote select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right .9rem center/12px 8px}
form.quote .full>button{align-self:flex-start}
form.quote>.form-status{display:none}
form.quote>.form-status.show{display:block}
/* menu button: explicit colors so no browser/dark mode blanks it out */
.menu-toggle{align-items:center;gap:.6rem;color:var(--ink);background:var(--paper);border:2px solid var(--ink);padding:.5rem .8rem;font-weight:800;font-variation-settings:"wdth" 85;font-size:1rem;line-height:1;-webkit-appearance:none;appearance:none}
.menu-toggle .bars{display:inline-flex;flex-direction:column;justify-content:space-between;width:20px;height:14px}
.menu-toggle .bars i{display:block;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
.menu-toggle[aria-expanded=true]{background:var(--mesh)}
.menu-toggle[aria-expanded=true] .bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .bars i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] .bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media (max-width:980px){.menu-toggle{display:inline-flex}}
/* logo lockup: mark + wordmark */
.lockup{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:900;font-variation-settings:"wdth" 62;text-transform:uppercase;font-size:1.6rem;line-height:1;letter-spacing:.01em}
.lockup img{display:block;width:44px;height:44px}
.site-foot .lockup{font-size:2rem;color:var(--paper)}
.site-foot .lockup img{width:56px;height:56px}
@media (max-width:420px){.site-head .lockup{font-size:1.3rem}.site-head .lockup img{width:38px;height:38px}}
/* keep the header above embedded widgets (Calconic) */
.site-head{z-index:1000}
.estimator{position:relative;z-index:0;isolation:isolate}
