:root{--red:#c8102e;--red2:#E90303;--bg:#030000;--ink:#222;--muted:#6b6b6b}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:#fff;font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:1.6}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
/* header (sister-site pattern: centered oval logo, nav beneath) */
.top{text-align:center;padding:18px 0 6px}
.top .logo{width:150px;margin:0 auto}
.nav{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 26px;padding:10px 0 14px;font-weight:600;font-size:14px}
.nav a{text-decoration:none;opacity:.92}.nav a:hover,.nav a.on{color:var(--red2);opacity:1}
.bar{background:#c8102e;color:#fff;text-align:center;font-size:13px;font-weight:600;padding:7px 10px}
.bar a{text-decoration:none}
/* buttons */
.btn{display:inline-block;padding:15px 30px;border-radius:50px;font-weight:700;font-size:14px;letter-spacing:.4px;text-transform:uppercase;text-decoration:none;transition:.2s}
.btn-red{background:var(--red);color:#fff;box-shadow:0 8px 15px rgba(200,16,46,.4)}
.btn-red:hover{transform:translateY(-2px)}
.btn-line{border:2px solid #fff;color:#fff;background:transparent}
/* hero: split layout (sisters use a centered stack) */
.hero{position:relative;background-size:cover;background-position:center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.75) 45%,rgba(0,0,0,.35) 100%)}
.hero .wrap{position:relative;padding:96px 24px 88px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.eyebrow{font-family:"Roboto Slab",serif;color:#ff4a5f;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;margin:0 0 10px}
h1,h2,h3{font-family:Roboto,Arial,sans-serif;font-weight:600;line-height:1.2;margin:0 0 14px}
.hero h1{font-size:50px}.hero p.lead{font-size:18px;color:#e9e9e9;max-width:560px}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 18px}
.towns{font-size:13px;color:#cfcfcf}
.hero-card{background:rgba(255,255,255,.96);color:var(--ink);border-radius:12px;border-top:5px solid var(--red);box-shadow:0 5px 15px rgba(0,0,0,.08);padding:26px}
.hero-card h3{color:var(--red);font-size:20px}
.hero-card ul{list-style:none;padding:0;margin:0}.hero-card li{padding:7px 0;border-bottom:1px solid #eee;font-size:15px}.hero-card li:last-child{border:0}
/* sections */
.sec{padding:72px 0}.sec-white{background:#fff;color:var(--ink)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.sec-head h2{font-size:34px;margin:0}.sec-head p{margin:6px 0 0;color:#bbb}.sec-white .sec-head p{color:var(--muted)}
.link-red{color:var(--red2);font-weight:700;text-decoration:none;white-space:nowrap}
/* project gallery grid */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:14px}
.tile{position:relative;border-radius:12px;overflow:hidden;text-decoration:none;background:#111}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.tile:hover img{transform:scale(1.05)}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.tile .cap b{display:block;font-size:18px}.tile .cap span{font-size:12px;color:#ff6b7d;text-transform:uppercase;letter-spacing:1px;font-weight:700}
.t-big{grid-column:span 4;grid-row:span 3}.t-tall{grid-column:span 2;grid-row:span 3}.t-sq{grid-column:span 2;grid-row:span 2}
/* cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:#fff;color:var(--ink);border-radius:12px;border-top:4px solid var(--red);box-shadow:0 5px 15px rgba(0,0,0,.08);padding:24px}
.card h3{color:var(--red);font-size:19px}.card p{margin:0;font-size:15px;color:#444}
/* services rows */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc .item{border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;background:#0d0d0d}
.svc .item img{height:210px;width:100%;object-fit:cover}
.svc .item div{padding:20px}.svc h3{font-size:21px}.svc p{color:#cfcfcf;font-size:15px;margin:0 0 12px}
/* process strip */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:s}
.step{padding:22px 18px;border-left:1px solid #e3e3e3;position:relative}
.step:first-child{border-left:0}
.step::before{counter-increment:s;content:counter(s);display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;font-weight:700;margin-bottom:12px;box-shadow:0 6px 12px rgba(200,16,46,.35)}
.step h3{font-size:17px;margin-bottom:6px}.step p{font-size:14px;color:#555;margin:0}
/* areas */
.areas{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{border:2px solid var(--red);border-radius:50px;padding:10px 20px;font-weight:600;text-decoration:none}
.chip.solid{background:var(--red)}
/* CTA band */
.cta{background:linear-gradient(rgba(0,0,0,.75),rgba(0,0,0,.75)),var(--cta) center/cover;text-align:center;padding:80px 24px}
.cta h2{font-size:38px}.cta p{color:#ddd}
/* footer */
footer{padding:40px 0 30px;text-align:center;font-size:14px;color:#ddd}
.fbars{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:26px}
.fbars a{background:#c8102e;color:#fff;text-decoration:none;font-weight:700;padding:11px;border-radius:2px}
.fcols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left;margin:0 0 26px;border-top:1px solid #222;padding-top:26px}
.fcols h4{color:#fff;margin:0 0 8px;font-size:15px}.fcols a{display:block;text-decoration:none;color:#ccc}
.sister{font-size:13px;color:#aaa}.sister a{color:#fff}
.copy{margin-top:14px;color:#bbb;font-size:13px}
/* project page */
.crumb{font-size:13px;color:#bbb;padding:18px 0 0}.crumb a{text-decoration:none;color:#ff6b7d}
.p-hero{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:28px 0 56px}
.p-hero h1{font-size:44px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}
.fact{background:#111;border:1px solid #262626;border-left:4px solid var(--red);border-radius:8px;padding:12px 14px}
.fact small{display:block;color:#999;text-transform:uppercase;font-size:11px;letter-spacing:1px}.fact b{font-size:15px}
.p-main img.lead{border-radius:12px;box-shadow:0 20px 40px rgba(0,0,0,.6);width:100%;max-height:620px;object-fit:cover}
.p-body{display:grid;grid-template-columns:1.5fr 1fr;gap:44px}
.p-body h2{font-size:26px;color:var(--red)}.p-body ul{padding-left:20px}.p-body li{margin:6px 0}
.p-body .note{background:#fff7f8;border-left:4px solid var(--red);padding:16px 20px;border-radius:8px}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.thumbs img{border-radius:10px;height:230px;width:100%;object-fit:cover}
.side .card{margin-bottom:18px}
.related{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.related .tile{height:260px}
.related.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:820px){
 .hero .wrap{grid-template-columns:1fr;padding:56px 20px}.hero h1{font-size:34px}.hero-card{display:none}
 .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.t-big{grid-column:span 2;grid-row:span 2}.t-tall,.t-sq{grid-column:span 1;grid-row:span 1}
 .cards{grid-template-columns:1fr}.svc{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.step{border-left:0;border-top:1px solid #e3e3e3;display:grid;grid-template-columns:52px 1fr;column-gap:8px}.step::before{grid-row:span 2;margin:0}
 .areas{grid-template-columns:1fr}.sec{padding:52px 0}.sec-head{display:block}.sec-head h2{font-size:28px}
 .fbars{grid-template-columns:1fr}.fcols{grid-template-columns:1fr}.nav{gap:4px 16px;font-size:13px}
 .p-hero{grid-template-columns:1fr}.p-hero h1{font-size:32px}.p-body{grid-template-columns:1fr}.thumbs{grid-template-columns:1fr 1fr}.thumbs img{height:150px}.related{grid-template-columns:1fr}
 .cta h2{font-size:28px}
}

@media (max-width:820px){.related.three{grid-template-columns:1fr}}
.tile img[src*="adesso-pizza"]{object-position:center 8%}
.tile.contain{background:#fff}.tile.contain img{object-fit:contain;padding:18px 12px 70px}

/* ---- WordPress / Elementor integration ---- */
body{background:var(--bg)}
.qsz-wrap.e-con,.qsz-wrap.e-con>.e-con-inner{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--content-width:100%;--width:100%;max-width:100%;padding:0}
.qsz-wrap .elementor-widget-html,.qsz-wrap .elementor-widget{width:100%;margin:0!important}
.elementor-widget-html section{width:100%}
.site-main,.page-content{margin:0;padding:0;max-width:none}
body .sec-white h1,body .sec-white h2,body .sec-white h3,body .sec-white h4{color:var(--ink)}
body .sec-white .card h3,body .sec-white .p-body h2,body .card h3,body .hero-card h3{color:var(--red)}
body .sec-white a:not(.btn):not(.tile){color:var(--red)}
body .card,body .hero-card{color:var(--ink)}
body .card a:not(.btn){color:var(--red)}
body .btn,body .btn:hover{color:#fff}
body .tile,body .tile .cap b{color:#fff}
body .nav a:hover,body .nav a[aria-current]{color:var(--red2)}
/* generic pages */
.hero-plain{background:#0b0b0b;border-bottom:1px solid #1d1d1d}.hero-plain::before{display:none}
.hero-plain .wrap,.hero-plain.hero .wrap{grid-template-columns:1fr}
.hero .lead p{font-size:18px;color:#e9e9e9;max-width:760px}
.prose{max-width:900px}.prose h2{font-size:30px;color:var(--red2)}.sec-white .prose h2{color:var(--red)}
.prose ul,.prose ol{padding-left:22px}.prose li{margin:6px 0}
.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{border:1px solid #ddd;padding:8px;text-align:left}
.lede{font-size:17px}.capt{font-size:13px;color:#aaa;margin-top:8px}
.thumbs figure{margin:0}.thumbs figcaption{font-size:13px;color:#666;margin-top:6px}
.see{margin-top:20px;font-size:15px}.small{font-size:14px;color:#666}
.p-top{padding-bottom:10px}
/* projects grid */
.pfilter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.pfilter a{border:2px solid var(--red);border-radius:50px;padding:8px 18px;font-weight:600;font-size:14px;text-decoration:none;color:#fff}
.pfilter a[aria-current]{background:var(--red)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ptile{display:block;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;text-decoration:none;color:#fff}
.ptile .pimg{display:block;height:220px;background:#111}.ptile img{width:100%;height:100%;object-fit:cover}
.ptile.contain .pimg{background:#fff}.ptile.contain img{object-fit:contain;padding:12px}
.ptile .pcap{display:block;padding:16px 18px 20px}.ptile small{display:block;color:#ff6b7d;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700}
.ptile b{display:block;font-size:19px;margin:4px 0 6px}.ptile .pcap span{color:#cfcfcf;font-size:14px}
/* contact form 7 */
.wpcf7 form{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.wpcf7 form p{margin:0}.wpcf7 .full{grid-column:1/-1}
.wpcf7 label{font-weight:600;font-size:14px;display:block}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 select,.wpcf7 textarea{width:100%;padding:12px 14px;border:1px solid #ccc;border-radius:8px;font:inherit;margin-top:4px;background:#fff;color:#222}
.wpcf7 textarea{height:140px}
.wpcf7 .wpcf7-list-item{margin:4px 14px 0 0}
.wpcf7 input[type=submit]{background:var(--red);color:#fff;border:0;border-radius:50px;padding:15px 34px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 15px rgba(200,16,46,.4)}
@media (max-width:820px){.pgrid{grid-template-columns:1fr}.wpcf7 form{grid-template-columns:1fr}.prose h2{font-size:25px}}
@media (min-width:821px) and (max-width:1100px){.pgrid{grid-template-columns:1fr 1fr}}

.thumbs figure:only-child{grid-column:1/-1}.thumbs figure:only-child img{height:380px}
@media (max-width:820px){.thumbs figure:only-child img{height:240px}}
.fcols .fh{color:#fff;margin:0 0 8px;font-size:15px;font-weight:700}
.fcols a{padding:7px 0}.chip,.pfilter a{min-height:44px;display:inline-flex;align-items:center}
.crumb a,.prose p a,.p-body p a,.lede a,.see a{text-decoration:underline}
.hero{background-image:var(--hero)}@media (max-width:820px){.hero{background-image:var(--hero-m)}}
body .hero-card h2.hc{color:var(--red);font-size:20px}
.prose p a.btn,.prose a.btn{text-decoration:none}

/* footer: 4 columns incl. Services (2026-10-21) */
@media (min-width:821px){.fcols{grid-template-columns:repeat(4,1fr)}}
@media (min-width:821px) and (max-width:1100px){.fcols{grid-template-columns:1fr 1fr}}
