:root{
  --di-red:#EE0606;
  --di-ink:#111111;
  --di-muted:#5A5A5A;
  --di-wash:#F4F4F4;
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;}

/* ---- header ---- */
.di-header{background:#fff;border-bottom:3px solid var(--di-red);position:sticky;top:0;z-index:99;}
.di-header-inner{max-width:1140px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;
  gap:28px;flex-wrap:wrap;}
.di-brand{text-decoration:none;line-height:0;display:block;margin-right:auto;}
.di-brand img{height:54px;width:auto;display:block;}
.di-nav{display:flex;gap:26px;}
.di-nav a{color:var(--di-ink);text-decoration:none;font-weight:600;font-size:15px;
  text-transform:uppercase;letter-spacing:.5px;padding:6px 0;border-bottom:2px solid transparent;}
.di-nav a:hover{color:var(--di-red);border-bottom-color:var(--di-red);}
.di-header-phone{background:var(--di-red);color:#fff;text-decoration:none;font-weight:700;
  padding:11px 20px;border-radius:4px;font-size:15px;white-space:nowrap;}
.di-header-phone:hover{background:var(--di-ink);color:#fff;}

/* ---- horizontal bands ----
   Elementor sets width:var(--width) (100%) on child containers, which makes them
   each claim a full line inside a flex row. Size them from here instead. */
.di-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;}
.di-row > *{flex:1 1 0 !important;width:auto !important;min-width:0;max-width:none !important;}
.di-row img{width:100%;height:auto;display:block;}
@media(max-width:1024px){
  .di-row{flex-wrap:wrap;}
  .di-row > *{flex:1 1 100% !important;}
}

/* ---- work gallery: uniform tiles rather than ragged natural heights ----
   WP emits <br style="clear:both"> row separators inside .gallery; as elements
   they become grid items and swallow cells, so they are hidden here. */
.elementor-image-gallery .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  margin:0 !important;}
.elementor-image-gallery .gallery > br{display:none !important;}
.elementor-image-gallery .gallery-item{width:auto !important;max-width:none !important;
  margin:0 !important;padding:0 !important;float:none !important;}
.elementor-image-gallery .gallery-item .gallery-icon{width:100%;margin:0;}
.elementor-image-gallery .gallery-item .gallery-icon a{display:block;}
.elementor-image-gallery .gallery-item img{width:100% !important;height:230px !important;
  object-fit:cover;display:block;border:none !important;border-radius:6px;
  transition:transform .3s ease;}
.elementor-image-gallery .gallery-item img:hover{transform:scale(1.03);}
@media(max-width:1024px){.elementor-image-gallery .gallery{grid-template-columns:repeat(3,1fr);}}
@media(max-width:782px){
  .elementor-image-gallery .gallery{grid-template-columns:repeat(2,1fr);}
  .elementor-image-gallery .gallery-item img{height:170px !important;}
}

/* ---- contact blocks ---- */
.di-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;
  text-align:left;}
.di-contact-item span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:2px;
  color:var(--di-red);font-weight:700;margin-bottom:8px;}
.di-contact-item p{margin:0;color:var(--di-ink);font-size:16px;line-height:1.7;}
.di-contact-item a{color:var(--di-ink);text-decoration:none;}
.di-contact-item a:hover{color:var(--di-red);}

/* ---- footer ---- */
.di-footer{background:var(--di-ink);color:#CFCFCF;}
.di-footer-logo{text-align:center;padding:48px 20px 0;}
.di-footer-logo img{height:64px;width:auto;opacity:.92;}
.di-footer-inner{max-width:1140px;margin:0 auto;padding:36px 20px 40px;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;}
.di-footer-col h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:2px;
  margin:0 0 12px;font-weight:700;}
.di-footer-col p{margin:0;font-size:15px;line-height:1.8;}
.di-footer-col a{color:#CFCFCF;text-decoration:none;}
.di-footer-col a:hover{color:var(--di-red);}
.di-footer-base{border-top:1px solid #2A2A2A;padding:20px;text-align:center;font-size:13px;
  color:#8A8A8A;}

@media(max-width:782px){
  .di-header-inner{gap:14px;}
  .di-brand img{height:44px;}
  .di-brand{margin-right:0;width:100%;}
  .di-nav{gap:18px;}
  .di-nav a{font-size:14px;}
}