@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/space-grotesk-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jetbrains-mono-normal.woff2) format('woff2')}
/* templates_v2 shared base — keep small */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(100% - 40px,var(--max,1240px));margin-inline:auto}
/* WhatsApp / call buttons */
.wa-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:52px;padding:0 26px;border-radius:var(--btn-radius,999px);background:var(--btn-bg,var(--accent));color:var(--btn-ink,#fff);font:600 16px/1 var(--f-btn,var(--f-body));text-decoration:none;letter-spacing:.01em;white-space:nowrap;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background .25s}
.wa-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
.wa-btn svg{width:20px;height:20px;flex:none}
.ghost-btn{display:inline-flex;align-items:center;gap:.5em;min-height:48px;padding:0 20px;border-radius:var(--btn-radius,999px);border:1px solid currentColor;text-decoration:none;font:500 15px/1 var(--f-body)}
/* sticky mobile bar */
.bar{display:none}
@media (max-width:760px){
 .bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px 14px calc(12px + env(safe-area-inset-bottom));transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .35s;pointer-events:none}
 .bar .wa-btn{pointer-events:auto;display:flex;width:100%;max-width:520px;margin:0 auto;min-height:54px;box-shadow:0 12px 32px -8px rgba(0,0,0,.5)}
 .bar.off{transform:translateY(120%);opacity:0}
 body{padding-bottom:84px}
}
/* reveal on scroll (only with JS) */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
/* marquee */
.marquee{overflow:hidden;white-space:nowrap;user-select:none}
.marquee .track{display:inline-flex;animation:mq var(--mq,38s) linear infinite}
.marquee .track>*{flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee .track{animation:none}.js .rv{opacity:1;transform:none;transition:none}*{scroll-behavior:auto!important}}
.credits{font-size:11px;line-height:1.5;opacity:.6}
.credits a{text-decoration:underline}

/* GRID — phone/computer shops & repair, electronics, opticians, pharmacies, printers, hardware. Refs: Nothing, Teenage Engineering, Opal */
:root{--bg:#ECECE8;--card:#F8F8F5;--ink:#0F0F0F;--muted:#6B6B66;--accent:#F26B1D;--line:rgba(15,15,15,.12);--f-disp:'Space Grotesk',system-ui,sans-serif;--f-body:'Space Grotesk',system-ui,sans-serif;--f-mono:'JetBrains Mono',ui-monospace,monospace;--btn-bg:var(--ink);--btn-ink:#fff;--btn-radius:14px;--r:22px;--max:1320px}
.mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.top{display:flex;align-items:center;gap:12px;height:72px}
.logo{font:700 22px/1 var(--f-disp);text-decoration:none;letter-spacing:-.02em;margin-right:auto}
.logo sup{font:500 10px var(--f-mono);margin-left:4px;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:99px;padding:9px 13px}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:#bbb}
.pill.is-open::before{background:#1DB954;box-shadow:0 0 0 4px rgba(29,185,84,.18)}
.top-cta{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--accent);color:#fff}
.top-cta svg{width:20px;height:20px}
.bento{display:grid;grid-template-columns:1.25fr .9fr 1fr;grid-template-areas:"head head photo" "status cta photo" "wide wide map";gap:12px;margin-top:4px}
.t{background:var(--card);border-radius:var(--r);padding:clamp(18px,2.2vw,30px);position:relative;overflow:hidden;margin:0;text-decoration:none;animation:tin .9s cubic-bezier(.2,.8,.2,1) both}
.t:nth-child(2){animation-delay:.08s}.t:nth-child(3){animation-delay:.16s}.t:nth-child(4){animation-delay:.24s}.t:nth-child(5){animation-delay:.32s}.t:nth-child(6){animation-delay:.4s}
@keyframes tin{from{opacity:0;transform:translateY(24px) scale(.98)}}
.lbl{color:var(--muted);margin:0 0 14px}
.t-head{grid-area:head;display:flex;flex-direction:column;align-items:flex-start;background-image:radial-gradient(rgba(15,15,15,.13) 1px,transparent 1.3px);background-size:12px 12px;background-color:var(--card)}
h1{font:700 clamp(46px,6.2vw,96px)/.92 var(--f-disp);letter-spacing:-.045em;margin:0 0 18px}
h1 .ln{display:block;overflow:hidden}h1 .ln>span{display:block;animation:gup .9s cubic-bezier(.2,.9,.1,1) both;animation-delay:calc(var(--d) + .2s)}
h1 em{font-style:normal;color:var(--accent)}
@keyframes gup{from{transform:translateY(100%)}}
.sub{font-size:17px;color:var(--muted);max-width:40ch;margin:0 0 22px}
.t-photo{grid-area:photo;padding:0;min-height:520px}
.t-photo img,.t-wide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t figcaption{position:absolute;left:14px;bottom:14px;background:rgba(15,15,15,.72);color:#fff;padding:7px 10px;border-radius:8px;backdrop-filter:blur(6px)}
.t-status{grid-area:status}
.t-status .big{font:700 clamp(22px,2vw,30px)/1.1 var(--f-disp);letter-spacing:-.02em;margin:0 0 16px}
.mini{list-style:none;margin:0;padding:0;color:var(--muted)}
.mini li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.t-cta{grid-area:cta;background:var(--accent);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:200px;transition:transform .3s}
.t-cta .lbl{color:rgba(255,255,255,.8)}
.t-cta .big{font:700 clamp(28px,2.6vw,40px)/1 var(--f-disp);letter-spacing:-.03em;max-width:9ch}
.t-cta .arrow{position:absolute;right:22px;bottom:16px;font-size:44px;transition:transform .3s}
.t-cta:hover .arrow{transform:translateX(8px)}
.t-wide{grid-area:wide;padding:0;min-height:300px}
.t-map{grid-area:map;display:flex;flex-direction:column;justify-content:space-between;background:var(--ink);color:#fff}
.t-map .lbl{color:#9a9a94}.t-map .addr{font:500 22px/1.25 var(--f-disp);letter-spacing:-.01em;margin:10px 0 20px}
.t-map .go{display:inline-flex;align-items:center;gap:8px;color:var(--accent)}.t-map .go svg{width:16px;height:16px}
.tick{margin:44px 0 0;border-block:1px solid var(--ink);padding:14px 0;font-size:15px}
.tick span{padding:0 18px}.tick i{font-style:normal;color:var(--accent)}
.svc{padding:clamp(60px,8vw,120px) 0 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
h2{font:700 clamp(42px,5.4vw,80px)/.95 var(--f-disp);letter-spacing:-.04em;margin:0}
.sec-head p{margin:0;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.card{background:var(--card);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px;min-height:190px;text-decoration:none;position:relative;transition:background .3s,color .3s,transform .3s}
.card:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
.card .n{color:var(--accent)}
.card .nm{font:700 28px/1.05 var(--f-disp);letter-spacing:-.03em;margin-top:auto}
.card .nt{color:var(--muted);font-size:15px}.card:hover .nt{color:#bdbdb7}
.card .ask{color:var(--accent);margin-top:6px}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:clamp(60px,8vw,120px)}
.gal figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden}
.gal img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.gal figure:hover img{transform:scale(1.04)}
.gal figcaption{position:absolute;left:12px;bottom:12px;background:rgba(15,15,15,.72);color:#fff;padding:6px 9px;border-radius:7px}
.end{padding:clamp(70px,10vw,150px) 0 clamp(40px,6vw,80px);display:flex;flex-direction:column;gap:24px}
.huge{font:700 clamp(54px,9vw,150px)/.88 var(--f-disp);letter-spacing:-.055em;margin:0}
.huge em{font-style:normal;color:var(--accent)}
.btns{display:flex;flex-wrap:wrap;gap:10px}.ghost-btn{border-radius:14px}.ghost-btn svg{width:18px;height:18px}
.foot{display:flex;flex-wrap:wrap;gap:10px 30px;padding:26px 0;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.foot .credits{text-transform:none;letter-spacing:0}
@media (max-width:980px){.bento{grid-template-columns:1fr 1fr;grid-template-areas:"head head" "photo photo" "status cta" "wide wide" "map map"}.t-photo{min-height:440px}.cards{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
 .top{height:62px}.logo{font-size:20px}.logo sup{display:none}.top .pill{display:none}
 .t-cta .arrow{display:none}
 .bento{grid-template-columns:1fr 1fr;gap:10px}
 h1{font-size:clamp(42px,12.5vw,64px)}
 .sub{font-size:16px}
 .t-photo{min-height:380px}
 .t-status .big{font-size:20px}.mini{display:none}
 .t-cta{min-height:150px}.t-cta .big{font-size:24px}
 .t-wide{min-height:230px}
 .sec-head{flex-direction:column;align-items:start;gap:6px}
 .cards{grid-template-columns:1fr}.card{min-height:0}
 .gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-20px;padding-inline:20px}.gal::-webkit-scrollbar{display:none}
 .gal figure{flex:0 0 76%;scroll-snap-align:start}
}
