:root{
  --ink:#17130f; --paper:#faf5ea; --violet:#6d28d9; --violet2:#5b21b6; --yellow:#ffd21e;
  --line:#17130f; --muted:#5c534a; --card:#fffdf7;
  --sh:5px 5px 0 var(--ink); --sh-sm:3px 3px 0 var(--ink);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;font-size:17px}
a{color:inherit;text-decoration:none}
h1,h2,h3,.display{font-family:'Archivo Black','Arial Black',sans-serif;letter-spacing:-.5px;line-height:1.02;text-transform:uppercase}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--violet);color:#fff;font-weight:800;
  padding:14px 26px;border:2.5px solid var(--ink);box-shadow:var(--sh);font-size:1rem;cursor:pointer;transition:.12s}
.btn:hover{transform:translate(2px,2px);box-shadow:var(--sh-sm)}
.btn.y{background:var(--yellow);color:var(--ink)}
.btn.w{background:#fff;color:var(--ink)}

/* header */
header{background:var(--paper);border-bottom:3px solid var(--ink);position:sticky;top:0;z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1160px;margin:0 auto;padding:12px 22px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{height:44px;width:auto;display:block}
.brand b{font-family:'Archivo Black',sans-serif;font-size:1.05rem;text-transform:uppercase;line-height:1}
.brand small{display:block;font-size:.6rem;letter-spacing:1.5px;color:var(--muted);font-weight:700;text-transform:uppercase}
.menu{display:flex;gap:20px}
.menu a{font-weight:700;font-size:.93rem;padding:4px 2px;border-bottom:2px solid transparent}
.menu a:hover{border-color:var(--violet)}
.hcall{background:var(--violet);color:#fff;font-weight:800;padding:9px 16px;border:2.5px solid var(--ink);box-shadow:var(--sh-sm);font-size:.9rem}

/* hero */
.hero{padding:56px 0 60px;border-bottom:3px solid var(--ink)}
.hgrid{display:grid;grid-template-columns:1.35fr .9fr;gap:34px;align-items:center}
.tagbox{display:inline-block;background:var(--yellow);border:2.5px solid var(--ink);box-shadow:var(--sh-sm);padding:5px 13px;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:22px}
.hero h1{font-size:3.7rem}
.hero h1 mark{background:var(--violet);color:#fff;padding:0 8px}
.hero p{font-size:1.15rem;color:#382f27;max-width:480px;margin:22px 0 28px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}
.sos{background:var(--card);border:3px solid var(--ink);box-shadow:var(--sh);padding:26px}
.sos .t{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:.85rem;letter-spacing:1px;background:var(--ink);color:var(--yellow);display:inline-block;padding:4px 10px;margin-bottom:16px}
.sos .ph{font-family:'Archivo Black',sans-serif;font-size:2.1rem;color:var(--violet)}
.sos ul{list-style:none;margin:14px 0 18px}
.sos li{padding:7px 0;border-bottom:2px solid #ece3d3;font-weight:600;display:flex;gap:9px}
.sos li:last-child{border:0}
.sos li::before{content:"■";color:var(--violet)}

/* ticker band */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;border-bottom:3px solid var(--ink)}
.ticker .run{display:flex;gap:0;white-space:nowrap;font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:1rem;padding:12px 0;animation:slide 22s linear infinite}
.ticker span{padding:0 24px}
.ticker span::after{content:"◆";margin-left:24px;color:var(--yellow)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

section{padding:66px 0;border-bottom:3px solid var(--ink)}
.head{margin-bottom:40px;max-width:680px}
.head .eye{display:inline-block;background:var(--violet);color:#fff;font-weight:800;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;border:2px solid var(--ink)}
.head h2{font-size:2.5rem;margin-top:16px}
.head p{color:var(--muted);margin-top:10px}

/* servicios grid brutalist */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scard{background:var(--card);border:3px solid var(--ink);box-shadow:var(--sh);padding:24px}
.scard .n{font-family:'Archivo Black',sans-serif;font-size:1.4rem;background:var(--yellow);border:2.5px solid var(--ink);width:46px;height:46px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.scard h3{font-size:1.15rem;margin-bottom:8px}
.scard p{color:var(--muted);font-size:.96rem}

/* town hub */
.towns{background:var(--violet);color:#fff}
.towns .head .eye{background:var(--yellow);color:var(--ink)}
.towns .head h2,.towns .head p{color:#fff}
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tbox{background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:5px 5px 0 #2a1466;padding:22px;transition:.12s}
.tbox:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 #2a1466}
.tbox b{font-family:'Archivo Black',sans-serif;font-size:1.2rem;text-transform:uppercase;display:block}
.tbox span{color:var(--muted);font-size:.88rem}
.tbox .go{margin-top:12px;font-weight:800;color:var(--violet);display:inline-block}

/* stats band */
.stats{background:var(--ink);color:var(--paper)}
.stats .g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats .g4 b{font-family:'Archivo Black',sans-serif;font-size:2.3rem;color:var(--yellow);display:block}
.stats .g4 p{color:#cbbfae;font-size:.9rem;margin-top:4px}

/* reviews */
.rg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rbox{background:var(--card);border:3px solid var(--ink);box-shadow:var(--sh);padding:22px}
.rbox .st{color:var(--violet);font-weight:800;letter-spacing:2px;margin-bottom:10px}
.rbox p{font-weight:500}
.rbox .w{margin-top:12px;font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:.82rem}

/* contact */
.contact .cw{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch;margin:0 auto}
.cbox{background:var(--card);border:3px solid var(--ink);box-shadow:var(--sh);padding:26px}
.cbox .r{padding:13px 0;border-bottom:2px solid #ece3d3}
.cbox .r:last-of-type{border:0}
.cbox .r b{display:block;font-family:'Archivo Black',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px}
.cbox .r a{color:var(--violet);font-weight:700}
.map{width:100%;height:100%;min-height:320px;border:3px solid var(--ink);box-shadow:var(--sh);display:block}

/* town page intro */
.thero{padding:44px 0 8px}
.crumbs{font-weight:700;font-size:.85rem;color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--violet)}
.thero h1{font-size:2.9rem}
.thero h1 mark{background:var(--violet);color:#fff;padding:0 8px}
.thero .sub{color:#382f27;max-width:620px;margin:18px 0 24px;font-size:1.08rem}
.intro{max-width:760px}
.intro p{margin-bottom:14px;color:#382f27}

/* footer */
footer{background:var(--ink);color:#c9bda c;color:#c9bdac;padding:46px 0 24px}
.fg{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap}
.fg img{height:42px;margin-bottom:12px;display:block}
.fg b{color:#fff;font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:1rem}
.fg a{color:#c9bdac}
.fcol h4{color:var(--yellow);font-family:'Archivo Black',sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}
.fcol a{display:block;padding:3px 0;font-weight:600}
.fcol a:hover{color:#fff}
.flinks{text-align:right}
.fbot{border-top:2px solid #372c22;margin-top:28px;padding-top:16px;font-size:.8rem;color:#8a7d6d;text-align:center}

.fab{display:none}
@media(max-width:900px){
  .hgrid{grid-template-columns:1fr}
  .sgrid,.tg,.rg{grid-template-columns:1fr 1fr}
  .stats .g4{grid-template-columns:1fr 1fr}
  .contact .cw{grid-template-columns:1fr}
  .map{min-height:280px}
}
@media(max-width:600px){
  .menu{display:none}
  .hero h1{font-size:2.5rem}.thero h1{font-size:2.1rem}.head h2{font-size:2rem}
  .sgrid,.tg,.rg,.stats .g4{grid-template-columns:1fr}
  .fg{flex-direction:column}.flinks{text-align:left}
  .fab{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--violet);color:#fff;font-weight:800;
    justify-content:center;gap:10px;padding:15px;border-top:3px solid var(--ink)}
  body{padding-bottom:58px}
}
