/* ALX Locksmith — papercraft & collage.
   Layout: kraft-board backdrop; content sits on cut paper sheets, taped labels and torn bands. */
:root{
  --kraft:#c8a273;
  --kraft-dk:#a98257;
  --paper:#fbf6ea;
  --paper-2:#f3ead6;
  --ink:#1d2330;
  --ink-soft:#4a4f5c;
  --red:#d2412c;
  --red-dk:#9e2c1c;
  --blue:#2d5b9a;
  --blue-dk:#1d3f6e;
  --yellow:#f3c54f;
  --green:#5f8f5a;
  --tape:rgba(246,236,198,.78);
  --shadow:rgba(58,36,12,.38);
  --f-display:"Bagel Fat One","Arial Black","Helvetica Neue",Impact,sans-serif;
  --f-body:"Atkinson Hyperlegible","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-type:"Courier Prime","Courier New",Courier,monospace;
  --f-hand:"Caveat","Comic Sans MS","Segoe Print",cursive;
  --noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .3 0 0 0 0 .2 0 0 0 0 .08 0 0 0 .16 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  --fibre:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='.012 .35' numOctaves='2'/><feColorMatrix values='0 0 0 0 .35 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--kraft) var(--fibre);background-blend-mode:multiply;color:var(--ink);font:400 1.0625rem/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
body::after{content:"";position:fixed;inset:0;background-image:var(--noise);pointer-events:none;z-index:0;opacity:.55}
body>*{position:relative;z-index:1}
img,svg{max-width:100%}
a{color:var(--blue-dk);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--red-dk)}
:focus-visible{outline:3px dashed var(--blue);outline-offset:3px}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.08;text-wrap:balance;margin:0 0 .5em;letter-spacing:.005em}
h1{font-size:clamp(2.1rem,5.4vw,3.9rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
ul{margin:0 0 1em;padding-left:1.2em}
li{margin:.25em 0}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.prose{max-width:68ch}
.skip{position:absolute;left:-999px;top:8px;background:var(--yellow);padding:8px 12px;z-index:50}
.skip:focus{left:12px}

/* ---------- paper primitives ---------- */
.sheet{background:var(--paper) var(--noise);border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.06),2px 3px 0 var(--paper-2),5px 8px 14px -6px var(--shadow);padding:clamp(20px,3vw,34px);position:relative;transform:rotate(var(--r,0deg))}
.tape::before{content:"";position:absolute;top:-13px;left:50%;width:96px;height:26px;margin-left:-48px;background:var(--tape);transform:rotate(var(--tr,-3deg));box-shadow:0 1px 2px rgba(0,0,0,.12);clip-path:polygon(3% 0,97% 4%,100% 22%,96% 48%,100% 76%,97% 100%,2% 96%,0 70%,4% 45%,0 18%)}
.tape-l::before{left:18px;margin-left:0;--tr:-8deg}
.cut{display:inline-block;padding:.04em .28em .1em;margin:.06em .02em;background:var(--c,var(--paper));color:var(--t,var(--ink));box-shadow:2px 3px 0 rgba(0,0,0,.18);transform:rotate(var(--r,-1deg))}
.label{display:inline-block;font:700 .82rem/1 var(--f-type);letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:.55em .8em .5em;box-shadow:1px 2px 0 rgba(0,0,0,.25);clip-path:polygon(0 0,100% 0,98.5% 50%,100% 100%,0 100%,1.5% 50%)}
.label.y{background:var(--yellow);color:var(--ink)}
.label.r{background:var(--red);color:#fff}
.hand{font-family:var(--f-hand);font-size:1.5rem;line-height:1.1;color:var(--blue-dk)}
.stamp{display:inline-grid;place-items:center;width:118px;height:118px;border-radius:50%;border:4px double var(--red);color:var(--red);font:700 .8rem/1.15 var(--f-type);text-transform:uppercase;letter-spacing:.08em;text-align:center;transform:rotate(-14deg);mix-blend-mode:multiply;opacity:.88;padding:10px}
.stamp b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.9rem;letter-spacing:0;line-height:1}

/* torn bands */
.band{position:relative;filter:drop-shadow(0 6px 6px var(--shadow))}
.band>.paper{background:var(--paper) var(--noise);padding-block:clamp(44px,6vw,80px)}
.band.blue>.paper{background:var(--blue) var(--noise);color:#f6f1e4}
.band.blue h2,.band.blue h3{color:#fff}
.band.blue a{color:var(--yellow)}
.band.yellow>.paper{background:var(--yellow) var(--noise)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;font:400 1.1rem/1 var(--f-display);text-decoration:none;padding:.8em 1.1em .85em;background:var(--paper);color:var(--ink);border:0;cursor:pointer;box-shadow:3px 4px 0 var(--ink);transform:rotate(-.6deg);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:rotate(0) translate(-1px,-1px);box-shadow:5px 6px 0 var(--ink);color:var(--ink)}
.btn:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.call{background:var(--red);color:#fff}
.btn.call:hover{color:#fff}
.btn svg{width:1.1em;height:1.1em;flex:none}

/* ---------- header ---------- */
.top{background:var(--ink);color:var(--paper);font:700 .8rem/1.3 var(--f-type);letter-spacing:.06em}
.top .wrap{display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:space-between;padding-block:8px}
.top a{color:var(--yellow);text-decoration:none}
header.site{padding-block:18px 8px}
header.site .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand svg{width:58px;height:58px;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.2))}
.brand .wm{display:flex;flex-direction:column;line-height:1}
.brand .wm b{font:400 1.75rem/1 var(--f-display);letter-spacing:.01em}
.brand .wm small{font:700 .72rem/1.2 var(--f-type);letter-spacing:.2em;text-transform:uppercase;margin-top:4px}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;flex-wrap:wrap}
nav.main a{display:block;padding:.55em .8em;text-decoration:none;color:var(--ink);font-weight:700;font-size:.95rem;background:var(--paper-2);box-shadow:1px 2px 0 rgba(0,0,0,.18);transform:rotate(var(--r,0deg))}
nav.main li:nth-child(odd) a{--r:-1deg}
nav.main li:nth-child(even) a{--r:.8deg}
nav.main a[aria-current]{background:var(--yellow)}
nav.main a:hover{background:#fff}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;font:400 1rem/1 var(--f-display);padding:.7em 1em;background:var(--paper);box-shadow:2px 3px 0 var(--ink)}
.menu summary::-webkit-details-marker{display:none}
@media (max-width:900px){
  nav.main.desk{display:none}
  .menu{display:block;position:relative}
  .menu[open] nav.main{position:absolute;right:0;top:calc(100% + 8px);z-index:20;background:var(--paper) var(--noise);padding:12px;width:min(280px,86vw);box-shadow:4px 6px 14px -4px var(--shadow)}
  .menu nav.main ul{flex-direction:column}
  header .btn.call{display:none}
}

/* breadcrumbs */
.crumbs{font:700 .8rem/1.4 var(--f-type);letter-spacing:.04em;padding-block:6px 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"/";margin-right:4px;color:var(--ink-soft)}
.crumbs a{color:var(--ink)}

/* ---------- hero ---------- */
.hero{padding-block:28px 64px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:center}
.hero h1 .cut:nth-child(4n+1){--c:var(--paper);--r:-1.4deg}
.hero h1 .cut:nth-child(4n+2){--c:var(--yellow);--r:1.2deg}
.hero h1 .cut:nth-child(4n+3){--c:var(--red);--t:#fff;--r:-.6deg}
.hero h1 .cut:nth-child(4n+4){--c:var(--blue);--t:#fff;--r:1.6deg}
.hero .lede{font-size:1.2rem;max-width:56ch;background:var(--paper);padding:16px 18px;box-shadow:3px 4px 0 rgba(0,0,0,.15);transform:rotate(-.4deg)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px}
.hero .art{position:relative}
.hero .art svg{width:100%;height:auto;display:block}
.hero .art .stamp{position:absolute;right:2%;bottom:4%}
.page-hero{padding-block:22px 46px}
.page-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end}
.page-hero h1{background:var(--paper);display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:.05em .3em;box-shadow:3px 4px 0 rgba(0,0,0,.18);line-height:1.35}
.page-hero .lede{margin-top:22px;font-size:1.15rem;max-width:62ch}
@media (max-width:820px){.hero .wrap,.page-hero .wrap{grid-template-columns:1fr}.hero .art{max-width:420px}.page-hero .stamp{display:none}}

/* strip of labels */
.strip{display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:center}

/* ---------- grids ---------- */
.grid{display:grid;gap:30px 24px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);min-width:0}
.card:nth-child(3n+1){--r:-.8deg}.card:nth-child(3n+2){--r:.6deg}.card:nth-child(3n){--r:-.3deg}
.card:hover{--r:0deg;color:var(--ink)}
.card .ico{width:54px;height:54px;margin-bottom:6px}
.card h3{margin:0}
.card p{margin:0;color:var(--ink-soft);font-size:.98rem}
.card .more{margin-top:auto;padding-top:8px;font:700 .82rem/1 var(--f-type);letter-spacing:.08em;text-transform:uppercase;color:var(--red-dk)}

.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.steps li{counter-increment:s;background:var(--paper) var(--noise);color:var(--ink);padding:44px 20px 20px;position:relative;box-shadow:3px 5px 0 rgba(0,0,0,.25);margin:0}
.steps li:nth-child(odd){transform:rotate(-1deg)}.steps li:nth-child(even){transform:rotate(.8deg)}
.steps li::before{content:counter(s);position:absolute;top:-18px;left:16px;width:48px;height:48px;display:grid;place-items:center;background:var(--red);color:#fff;font:400 1.5rem/1 var(--f-display);border-radius:50%;box-shadow:2px 3px 0 rgba(0,0,0,.25)}
.steps h3{font-size:1.15rem}
.steps p{margin:0;font-size:.98rem}

.tags{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}
.tags a{display:inline-flex;align-items:center;gap:.5em;padding:.5em .85em .5em 1.4em;background:var(--paper);color:var(--ink);text-decoration:none;font-weight:700;position:relative;box-shadow:2px 3px 0 rgba(0,0,0,.2);clip-path:polygon(12px 0,100% 0,100% 100%,12px 100%,0 50%)}
.tags a::before{content:"";position:absolute;left:10px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--kraft-dk)}
.tags a small{font:700 .75rem/1 var(--f-type);color:var(--ink-soft)}
.tags a:hover{background:var(--yellow)}
.tags li:nth-child(3n) a{transform:rotate(-1.2deg)}.tags li:nth-child(3n+1) a{transform:rotate(.8deg)}

/* two-column content */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;align-items:start}
@media (max-width:900px){.cols{grid-template-columns:1fr}}
.aside{display:grid;gap:30px;position:sticky;top:16px}
@media (max-width:900px){.aside{position:static}}
.note{background:var(--yellow) var(--noise);padding:24px 20px 20px;box-shadow:3px 5px 10px -4px var(--shadow);transform:rotate(1.2deg);position:relative}
.note h3{font-size:1.2rem}
.content h2{margin-top:1.4em}
.content h2:first-child{margin-top:0}
.content ul li::marker{color:var(--red)}

/* NAP card */
.nap{font-style:normal;display:grid;gap:10px}
.nap .row{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start}
.nap svg{width:20px;height:20px;margin-top:3px;color:var(--red)}
.nap b{display:block;font:700 .75rem/1.2 var(--f-type);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.nap .big{font:400 1.45rem/1.2 var(--f-display)}

/* FAQ */
.faq details{background:var(--paper) var(--noise);margin:0 0 14px;box-shadow:2px 3px 0 rgba(0,0,0,.18)}
.faq summary{cursor:pointer;padding:16px 46px 16px 18px;font-weight:700;position:relative;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font:400 1.6rem/1 var(--f-display);color:var(--red)}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 18px 16px}

/* form */
form.paper-form{display:grid;gap:14px}
.paper-form label{font:700 .8rem/1.2 var(--f-type);letter-spacing:.1em;text-transform:uppercase}
.paper-form input,.paper-form textarea,.paper-form select{width:100%;font:inherit;padding:12px;border:0;border-bottom:2px solid var(--ink);background:repeating-linear-gradient(transparent 0 30px,rgba(45,91,154,.18) 30px 31px),#fffdf6;color:var(--ink);border-radius:0}
.paper-form textarea{min-height:130px;line-height:31px;padding-top:4px}
.form-msg{font-weight:700;color:var(--green)}

/* footer */
footer.site{margin-top:0}
footer.site .paper{background:var(--ink) var(--noise);color:#e9e3d3;padding-block:56px 110px}
footer.site a{color:#f6eedb}
footer.site .fgrid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:30px}
footer.site h3{font-size:1.1rem;color:var(--yellow)}
footer.site ul{list-style:none;padding:0;margin:0;font-size:.95rem}
footer.site .legal{margin-top:36px;padding-top:18px;border-top:1px dashed rgba(255,255,255,.25);font:700 .78rem/1.5 var(--f-type);letter-spacing:.04em;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
footer.site .nap svg{color:var(--yellow)}
footer.site .nap b{color:#bdb6a5}
@media (max-width:820px){footer.site .fgrid{grid-template-columns:1fr 1fr}footer.site .fgrid>:first-child{grid-column:1/-1}}

/* mobile call bar */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:10px;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:var(--ink)}
  .callbar a{flex:1;justify-content:center;transform:none;box-shadow:2px 3px 0 #000}
  .callbar a.call{flex:2}
}

/* torn edges (generated) */
.tear-b{clip-path:var(--tear-b)}
.tear-t{clip-path:var(--tear-t)}
.tear-tb{clip-path:var(--tear-tb)}

section{scroll-margin-top:20px}
.sec-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px;margin-bottom:30px}
.sec-head h2{margin:0}
.sec-head p{margin:0;max-width:52ch}
.mt{margin-top:56px}
.center{text-align:center}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.callbar,nav,.menu{display:none}body::after{display:none}}

@media (max-width:600px){.top .wrap span:last-child{display:none}.hero .art{max-width:300px;margin:0 auto}.callbar .lg{display:none}}
@media (min-width:601px){.callbar .sm{display:none}}
/* TEARS */
:root{--tear-b:polygon(0 0,100% 0,100.0% calc(100% - 0.2px),98.0% calc(100% - 6.4px),95.3% calc(100% - 4.2px),94.0% calc(100% - 5.7px),92.7% calc(100% - 5.2px),91.5% calc(100% - 4.9px),88.2% calc(100% - 2.7px),85.4% calc(100% - 3.9px),82.1% calc(100% - 5.6px),79.6% calc(100% - 5.8px),77.4% calc(100% - 3.4px),74.1% calc(100% - 2.8px),72.8% calc(100% - 1.4px),70.7% calc(100% - 1.8px),68.2% calc(100% - 0.7px),64.8% calc(100% - 4.5px),61.6% calc(100% - 3.0px),60.3% calc(100% - 5.5px),57.2% calc(100% - 6.9px),55.7% calc(100% - 3.7px),54.3% calc(100% - 8.9px),52.9% calc(100% - 2.6px),49.9% calc(100% - 1.9px),47.5% calc(100% - 8.1px),44.4% calc(100% - 1.5px),41.0% calc(100% - 7.7px),38.3% calc(100% - 8.1px),35.8% calc(100% - 3.2px),33.5% calc(100% - 2.7px),31.3% calc(100% - 8.7px),29.8% calc(100% - 0.9px),26.6% calc(100% - 4.0px),24.5% calc(100% - 8.3px),21.4% calc(100% - 6.5px),18.3% calc(100% - 0.3px),15.8% calc(100% - 6.8px),13.1% calc(100% - 6.7px),10.0% calc(100% - 5.7px),7.4% calc(100% - 4.3px),5.1% calc(100% - 9.0px),3.4% calc(100% - 7.5px),2.0% calc(100% - 5.6px),0.0% calc(100% - 4.9px));--tear-t:polygon(0.0% 1.4px,2.6% 4.8px,4.6% 4.6px,5.9% 0.6px,7.3% 7.4px,8.8% 5.6px,12.1% 3.6px,15.4% 7.7px,17.3% 1.1px,19.1% 1.6px,21.6% 3.4px,24.0% 0.5px,25.7% 3.8px,27.6% 4.1px,29.4% 6.3px,31.2% 4.7px,34.3% 2.6px,37.6% 3.8px,40.5% 4.4px,41.8% 6.9px,44.3% 2.8px,47.0% 5.2px,49.2% 8.5px,51.4% 0.5px,54.2% 8.9px,57.2% 3.5px,59.9% 4.2px,61.4% 0.5px,64.3% 2.2px,66.4% 0.7px,68.6% 8.0px,71.6% 2.5px,73.7% 8.0px,77.0% 1.6px,78.7% 4.4px,81.2% 0.0px,83.3% 5.1px,86.6% 4.6px,89.2% 0.5px,92.4% 7.9px,95.3% 3.6px,96.7% 0.6px,98.1% 1.5px,100.0% 0.4px,100% 100%,0 100%);--tear-tb:polygon(0.0% 5.0px,3.2% 4.6px,5.7% 4.6px,8.3% 0.8px,10.2% 7.3px,12.9% 8.8px,16.2% 5.5px,17.8% 4.8px,19.1% 2.2px,20.4% 4.0px,23.4% 5.8px,25.7% 4.1px,27.5% 9.0px,30.6% 2.8px,32.3% 0.6px,35.2% 7.6px,37.2% 7.6px,38.4% 8.2px,40.7% 3.6px,42.0% 7.0px,43.8% 3.0px,47.1% 1.1px,48.9% 0.5px,51.8% 5.0px,54.0% 6.6px,55.5% 1.0px,57.6% 2.4px,61.0% 2.7px,64.1% 3.5px,67.2% 0.9px,70.6% 2.3px,73.5% 2.7px,74.8% 5.2px,76.6% 3.3px,78.8% 4.4px,81.2% 1.6px,82.8% 7.4px,84.5% 6.7px,87.8% 8.6px,90.9% 3.8px,92.4% 8.7px,94.1% 2.3px,97.1% 2.6px,98.7% 0.6px,100.0% 4.5px,100.0% calc(100% - 3.6px),98.9% calc(100% - 0.4px),97.2% calc(100% - 7.5px),95.0% calc(100% - 1.2px),92.0% calc(100% - 2.8px),89.3% calc(100% - 0.4px),88.0% calc(100% - 0.7px),84.7% calc(100% - 7.6px),82.4% calc(100% - 5.6px),80.7% calc(100% - 2.5px),79.1% calc(100% - 2.5px),76.4% calc(100% - 7.6px),74.1% calc(100% - 1.2px),71.6% calc(100% - 3.5px),68.4% calc(100% - 7.3px),66.7% calc(100% - 6.0px),63.6% calc(100% - 4.0px),60.4% calc(100% - 1.5px),57.7% calc(100% - 2.7px),55.9% calc(100% - 8.3px),53.6% calc(100% - 6.3px),51.4% calc(100% - 5.4px),48.5% calc(100% - 0.8px),46.4% calc(100% - 5.2px),44.3% calc(100% - 6.6px),40.9% calc(100% - 5.8px),38.4% calc(100% - 5.2px),35.8% calc(100% - 5.2px),32.9% calc(100% - 3.8px),29.7% calc(100% - 6.2px),26.5% calc(100% - 7.1px),23.6% calc(100% - 8.1px),21.2% calc(100% - 0.7px),19.3% calc(100% - 6.6px),16.7% calc(100% - 0.2px),14.0% calc(100% - 8.2px),12.7% calc(100% - 1.3px),10.0% calc(100% - 5.9px),6.8% calc(100% - 3.3px),4.4% calc(100% - 3.3px),3.1% calc(100% - 4.0px),1.8% calc(100% - 1.8px),0.0% calc(100% - 5.5px))}
