:root{--asphalt:#15171a;--asphalt2:#202328;--hi:#ffd21f;--hi-d:#c79a00;--blue:#2447c8;--bone:#f4f1ea;--line:#d9d4c7;--txt:#23262b}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:'Barlow',system-ui,sans-serif;font-size:1.08rem;line-height:1.6;color:var(--txt);background:var(--bone);overflow-x:clip}
h1,h2,h3,h4,.display{font-family:'Big Shoulders Display',Impact,sans-serif;font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:.01em}
h2{font-size:clamp(2.4rem,6vw,4.2rem)}
.eyebrow{font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.9rem;color:var(--hi-d);margin-bottom:.5rem}
.dark .eyebrow{color:var(--hi)}
a{color:var(--blue)}
.hazard{height:14px;background:repeating-linear-gradient(-45deg,var(--hi) 0 18px,var(--asphalt) 18px 36px)}
/* nav */
.bar{background:var(--asphalt);position:sticky;top:0;z-index:1030;border-bottom:3px solid var(--hi)}
.bar .wrap{display:flex;align-items:center;gap:1rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.7rem;color:#fff;text-decoration:none;margin-right:auto}
.brand img{height:36px;width:auto;background:#fff;border-radius:4px;padding:2px 5px}
.brand span{font-family:'Big Shoulders Display',sans-serif;font-weight:800;font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em;line-height:1}
.bar-call{background:var(--hi);color:var(--asphalt);font-weight:800;text-decoration:none;padding:.45rem 1rem;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;letter-spacing:.04em;white-space:nowrap}
.bar-call:hover{background:#fff;color:var(--asphalt)}
.menu-btn{background:none;border:2px solid #fff;color:#fff;border-radius:4px;padding:.35rem .7rem;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.menu-btn:hover{background:#fff;color:var(--asphalt)}
.offcanvas.menu{background:var(--asphalt);color:#fff;width:100%!important;height:100%}
.menu .offcanvas-body{display:flex;flex-direction:column;justify-content:center;padding:2rem 8vw}
.menu a.m{font-family:'Big Shoulders Display',sans-serif;font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,9vw,5rem);line-height:1.05;color:#fff;text-decoration:none;display:block}
.menu a.m:hover{color:var(--hi)}
.menu .btn-close{filter:invert(1);opacity:1;font-size:1.4rem}
.menu small{font-family:'Barlow Condensed',sans-serif;letter-spacing:.2em;color:var(--hi);text-transform:uppercase}
/* hero */
.hero{background:var(--asphalt);color:#fff}
.hero .row{min-height:calc(100vh - 80px)}
.hero-text{padding:3rem 0 3rem;display:flex;flex-direction:column;justify-content:center}
.hero .big{font-size:clamp(7rem,22vw,15rem);color:var(--hi);line-height:.8;display:block;margin-bottom:.5rem}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:1rem}
.hero p.lead{color:#d6d8db;max-width:34rem}
.hero-photo{background:url('img/hero.webp') 40% center/cover no-repeat;min-height:320px;position:relative}
.btn-hi{background:var(--hi);color:var(--asphalt);border:0;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.35rem;letter-spacing:.05em;text-transform:uppercase;padding:.7rem 1.5rem;box-shadow:4px 4px 0 #fff}
.btn-hi:hover{background:#fff;color:var(--asphalt);box-shadow:4px 4px 0 var(--hi)}
.btn-ol{border:2px solid #fff;color:#fff;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.25rem;letter-spacing:.05em;text-transform:uppercase;padding:.65rem 1.4rem}
.btn-ol:hover{background:#fff;color:var(--asphalt)}
.btn-dk{background:var(--asphalt);color:#fff;border-radius:4px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.2rem;letter-spacing:.05em;text-transform:uppercase;padding:.6rem 1.4rem}
.btn-dk:hover{background:var(--blue);color:#fff}
/* ticket (signature) */
.ticket{background:#fff;color:var(--asphalt);border-radius:6px;position:relative;padding:1.4rem 1.6rem 1.4rem 2.2rem;box-shadow:8px 8px 0 var(--hi);border-left:14px dotted var(--asphalt)}
.ticket .tk{font-family:'Barlow Condensed',sans-serif;letter-spacing:.2em;text-transform:uppercase;font-weight:700;font-size:.85rem;color:#666}
.ticket .num{font-family:'Big Shoulders Display',sans-serif;font-weight:900;font-size:clamp(2.6rem,6vw,3.8rem);line-height:1;color:var(--asphalt);text-decoration:none;display:block}
.ticket .num:hover{color:var(--blue)}
.ticket hr{border-top:2px dashed #aaa;opacity:1;margin:.9rem 0}
.ticket ul{list-style:none;padding:0;margin:0;font-weight:600}
/* sections */
section{padding:5rem 0}
.dark{background:var(--asphalt);color:#e8e9ea}
.dark h2,.dark h3{color:#fff}
.tow-card{background:#fff;border:2px solid var(--asphalt);border-radius:6px;padding:1.4rem;height:100%;position:relative}
.tow-card h3{font-size:2rem;margin-bottom:.5rem}
.tow-card::before{content:"";position:absolute;left:0;top:0;right:0;height:8px;background:repeating-linear-gradient(-45deg,var(--hi) 0 10px,var(--asphalt) 10px 20px)}
.tow-card{padding-top:1.9rem}
.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}
.tags li{background:var(--asphalt2);color:#fff;border-left:4px solid var(--hi);padding:.3rem .8rem;font-weight:600;font-size:1rem;border-radius:2px}
.light-tags li{background:#fff;color:var(--asphalt);border:1px solid var(--line);border-left:4px solid var(--hi)}
.svc-cat{font-size:2rem;color:var(--hi);margin:2rem 0 .8rem}
.pill-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}
.pill{background:var(--hi);color:var(--asphalt);padding:1.2rem 1.4rem;border-radius:6px}
.pill b{font-family:'Big Shoulders Display',sans-serif;font-size:1.8rem;text-transform:uppercase;display:block;line-height:1}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:.7rem}
.gallery figure{margin:0;overflow:hidden;border-radius:4px;background:#ddd}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.gallery figure:hover img{transform:scale(1.05)}
.gallery .w2{grid-column:span 2}.gallery .h2{grid-row:span 2}
.quote{background:#fff;border-radius:6px;padding:1.5rem;height:100%;border-top:6px solid var(--hi);display:flex;flex-direction:column}
.quote p{font-size:1.05rem}
.quote cite{font-style:normal;font-weight:700;margin-top:auto;font-family:'Barlow Condensed',sans-serif;letter-spacing:.06em;text-transform:uppercase}
.stars{color:var(--hi-d);letter-spacing:.15em;font-size:1.2rem}
.loc{background:#fff;border:2px solid var(--asphalt);border-radius:6px;padding:1.4rem;height:100%}
.loc h3{font-size:1.8rem}
.loc a.tel{font-family:'Big Shoulders Display',sans-serif;font-weight:800;font-size:1.8rem;color:var(--asphalt);text-decoration:none}
.map iframe{width:100%;height:300px;border:0;border-radius:4px}
.about-img{width:100%;border-radius:6px;border:3px solid var(--hi)}
footer{background:#0c0d0f;color:#bfc2c6;padding:3rem 0 2rem;font-size:.97rem}
footer a{color:#fff}
footer .logo-f{height:46px;width:auto;background:#fff;border-radius:4px;padding:3px 6px}
.powered{border-top:1px solid #2a2d31;margin-top:2rem;padding-top:1.2rem;text-align:center;font-size:.9rem}
.powered a{color:var(--hi);font-weight:700;text-decoration:none}
@media(max-width:991px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.hero .row{min-height:0}.hero-photo{min-height:300px;order:-1}section{padding:3.5rem 0}.hero-text{padding:2.2rem 0}}
@media(max-width:480px){.brand span{font-size:1.15rem}.bar-call{padding:.4rem .6rem;font-size:1rem}.brand img{height:30px}}
