/* PPC Theme 2.0 — clean HDBuilder integration, 2026-11-04.
   No layout rules for HDBuilder banner media, video, or section heights.
   The CMS controls section layout, spacing and hero height. */
@import url("assets/styles.css");
:root {--ppc-ink:#151b20;--ppc-blue:#075bff;--ppc-steel:#405665;}
/* PPC v0.3: theme-only HDBuilder visual cleanup. No CMS core changes. */
:root{--ppc-blue:#075bff;--ppc-ink:#15191e}
/* HDBuilder services use .service-card, NOT the standalone .card selector. */
.hdb-theme-services-grid:not(.hdb-process){display:grid!important;grid-template-columns:repeat(var(--hdb-service-cols,3),minmax(0,1fr))!important;gap:26px!important;align-items:stretch!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card{display:flex!important;flex-direction:column!important;min-width:0!important;height:100%!important;min-height:0!important;padding:0 0 26px!important;text-align:left!important;border:1px solid #e0e4e9!important;border-top:1px solid #e0e4e9!important;border-radius:10px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 7px 24px rgba(0,0,0,.035)!important;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card:hover{transform:translateY(-6px)!important;box-shadow:0 20px 40px rgba(0,0,0,.13)!important;border-color:#b9d0fa!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card>.service-icon{display:block!important;width:100%!important;height:220px!important;min-height:220px!important;margin:0 0 23px!important;padding:0!important;border:0!important;border-radius:0!important;background:#eef0f2!important;overflow:hidden!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card>.service-icon img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important;border-radius:0!important;transition:transform .4s ease!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card:hover>.service-icon img{transform:scale(1.055)!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card>h3{margin:0 23px 10px!important;color:var(--ppc-ink)!important;font-size:20px!important;line-height:1.3!important;letter-spacing:-.015em!important;text-transform:none!important;text-align:left!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card>.service-details{margin:0 23px 20px!important;color:#4c5966!important;font-size:15px!important;line-height:1.65!important;text-align:left!important;flex:1 1 auto!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card>.service-link{align-self:flex-start!important;margin:0 23px!important;color:#075bff!important;font-size:13px!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.045em!important}
.hdb-theme-services-grid:not(.hdb-process)>.service-card:hover>h3{color:#075bff!important}
/* Project cards: accommodate HDBuilder project galleries and theme gallery cards. */
.hdb-project-grid{gap:26px!important}
.hdb-project-grid img,.hdb-project-grid .project-card img{width:100%!important;max-width:none!important;min-height:200px;max-height:320px;object-fit:cover!important}
/* Dark sections: force readable copy without modifying stored builder content. */
.areas,.cta{color:#fff!important}
.areas h1,.areas h2,.areas h3,.areas p,.areas .lead,.areas .section-heading h2,.areas .section-heading p,.cta h1,.cta h2,.cta h3,.cta p,.cta .lead,.cta .section-heading h2,.cta .section-heading p{color:#fff!important}
.areas p,.cta p{opacity:.86}
/* Do not let the sticky header obscure section anchors. */
[id]{scroll-margin-top:95px}
@media(max-width:900px){.hdb-theme-services-grid:not(.hdb-process){grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){.hdb-theme-services-grid:not(.hdb-process){grid-template-columns:1fr!important;gap:20px!important}.hdb-theme-services-grid:not(.hdb-process)>.service-card>.service-icon{height:210px!important;min-height:210px!important}.hero h1{font-size:clamp(34px,9vw,52px)!important}}
@media(prefers-reduced-motion:reduce){.hdb-theme-services-grid>.service-card,.hdb-theme-services-grid>.service-card img{transition:none!important}}


/* PPC v0.4 — MyHDAdmin generated menu list layout. CSS-only safe patch. */
@media (min-width:901px) {
  #ppc-header .nav-inner { flex-wrap:nowrap; }
  #ppc-header #main-navigation { display:flex; flex:1 1 auto; justify-content:flex-end; align-items:center; flex-wrap:nowrap; gap:20px; }
  #ppc-header #main-navigation > ul,
  #ppc-header #main-navigation > .menu > ul,
  #ppc-header #main-navigation > div > ul { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px 22px; margin:0; padding:0; list-style:none; }
  #ppc-header #main-navigation li { position:relative; list-style:none; margin:0; padding:0; }
  #ppc-header #main-navigation li::marker { content:''; }
  #ppc-header #main-navigation li > a { display:block; padding:10px 0; color:#fff; font-weight:700; font-size:13px; white-space:nowrap; }
  #ppc-header #main-navigation li > ul { display:none; position:absolute; top:100%; left:0; z-index:40; min-width:210px; padding:8px 16px; margin:0; background:#08090b; border-radius:3px; box-shadow:0 12px 30px rgba(0,0,0,.25); list-style:none; }
  #ppc-header #main-navigation li:hover > ul,
  #ppc-header #main-navigation li:focus-within > ul { display:block; }
  #ppc-header #main-navigation .nav-quote { flex:0 0 auto; }
}
@media (max-width:900px) {
  #ppc-header #main-navigation > ul,
  #ppc-header #main-navigation > .menu > ul,
  #ppc-header #main-navigation > div > ul { display:block; width:100%; list-style:none; margin:0; padding:0; }
  #ppc-header #main-navigation li { display:block; list-style:none; margin:0; padding:0; }
  #ppc-header #main-navigation li::marker { content:''; }
  #ppc-header #main-navigation li > a { display:block; padding:13px 4px; color:#fff; font-weight:700; border-bottom:1px solid rgba(255,255,255,.14); }
  #ppc-header #main-navigation li > ul { display:block; position:static; list-style:none; margin:0; padding:0 0 0 18px; }
  #ppc-header #main-navigation .nav-quote { display:block; width:100%; margin-top:12px; }
}


/* PPC v0.5: HDBuilder services card alignment and full-width images.
   Scoped to the real .hdb-theme-services-grid markup. */
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card {
  align-items: stretch !important;
  text-align: left !important;
}
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > .service-icon {
  flex: 0 0 220px !important;
  align-self: stretch !important;
  width: 100% !important;
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  margin: 0 0 23px !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
}
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > .service-icon > img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
}
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > h3 {
  align-self: stretch !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 23px 10px !important;
  text-align: left !important;
}
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > .service-details {
  align-self: stretch !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 23px 20px !important;
  text-align: left !important;
}
.service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > .service-details p {
  max-width: none !important;
  text-align: left !important;
}
@media (max-width:650px) {
  .service-grid.hdb-theme-services-grid:not(.hdb-process) > .service-card > .service-icon {
    flex-basis: 210px !important;
    height: 210px !important;
    min-height: 210px !important;
    max-height: 210px !important;
  }
}



/* HEADER: real server-header.asp markup; JS toggles is-scrolled. */
#ppc-header.site-header {position:fixed!important;inset:0 0 auto!important;width:100%!important;z-index:9999!important;background:linear-gradient(180deg,rgba(5,8,11,.65),rgba(5,8,11,.05))!important;border:0!important;box-shadow:none!important;transition:background-color .22s,box-shadow .22s!important;}
#ppc-header.site-header.is-scrolled,#ppc-header.site-header.menu-open {background:#050505!important;box-shadow:0 8px 24px rgba(0,0,0,.23)!important;}
#ppc-header .header-utility:has(.social-links:empty) {display:none!important;}
#ppc-header .nav-inner {min-height:104px!important;padding:9px 0!important;transition:min-height .25s,padding .25s!important;}
#ppc-header.is-scrolled .nav-inner {min-height:68px!important;padding:5px 0!important;}
#ppc-header .ppc-brand {width:180px!important;flex:0 0 180px!important;transition:width .25s,flex-basis .25s!important;}
#ppc-header .ppc-brand img {display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:90px!important;object-fit:contain!important;transition:max-height .25s!important;}
#ppc-header.is-scrolled .ppc-brand {width:124px!important;flex-basis:124px!important;}
#ppc-header.is-scrolled .ppc-brand img {max-height:56px!important;}
#ppc-header .menu-toggle {display:none;}
@media(max-width:900px) {
 #ppc-header .nav-inner {min-height:76px!important;flex-wrap:wrap!important;}
 #ppc-header.is-scrolled .nav-inner {min-height:60px!important;}
 #ppc-header .ppc-brand {width:145px!important;flex-basis:145px!important;}
 #ppc-header.is-scrolled .ppc-brand {width:116px!important;flex-basis:116px!important;}
 #ppc-header .menu-toggle {display:flex!important;}
 #ppc-header #main-navigation {display:none!important;flex:0 0 100%!important;width:100%!important;background:#050505!important;}
 #ppc-header.menu-open #main-navigation {display:flex!important;}
}
/* HDBuilder banner: never change media, inner grid, section display or height.
   Add only a dark video tint; leave video position and builder settings intact. */
#main-content > section.hd-managed-banner > .hdb-banner-overlay {background:linear-gradient(90deg,rgba(6,11,16,.63),rgba(6,11,16,.28) 65%,rgba(6,11,16,.22))!important;}
/* Builder content is positioned by the CMS. Do not move its inner container. */

/* Industrial finish via inset box-shadow: works with inline !important backgrounds,
   does not create pseudo-elements or alter HDBuilder flex/grid children. */
#main-content section.hd-theme-section--services {box-shadow:inset 0 95px 100px -105px rgba(65,91,107,.28),inset 0 -90px 100px -105px rgba(65,91,107,.24)!important;}
#main-content section.hd-theme-section--image-content {box-shadow:inset 0 90px 110px -105px rgba(73,95,110,.19)!important;}
#main-content section:has(.hdb-project-grid),#main-content section:has(.project-card) {box-shadow:inset 0 110px 110px -120px rgba(70,95,111,.26)!important;}
/* Exact dark sections seen in the HDBuilder DOM, including CTA data-id=11. */
#main-content section.hd-builder-section[style*="#161c22"],
#main-content section.hd-builder-section[style*="#242424"],
#main-content section.hd-builder-section[data-id="11"] {
 color:#fff!important;
 background-image:radial-gradient(ellipse at 88% 8%,rgba(74,112,139,.45),transparent 63%),linear-gradient(120deg,rgba(6,12,18,.15),rgba(21,39,51,.35))!important;
}
#main-content section.hd-builder-section[style*="#161c22"] :is(h1,h2,h3,h4,p,.lead,.section-heading,.section-heading *),
#main-content section.hd-builder-section[style*="#242424"] :is(h1,h2,h3,h4,p,.lead,.section-heading,.section-heading *),
#main-content section.hd-builder-section[data-id="11"] :is(h1,h2,h3,h4,p,.lead,.section-heading,.section-heading *) {color:#fff!important;}
/* Standalone index.html preview sections (not the CMS rendering). */
.section.light {background-image:linear-gradient(125deg,#e9ecee,#fafbfb 48%,#e1e7ea)!important;}
.section.areas {background-image:radial-gradient(ellipse at 88% 10%,#344d5d,transparent 60%),linear-gradient(120deg,#121a21,#202c35)!important;}
.cta {background-image:linear-gradient(115deg,#11191f,#253846)!important;}
@media(prefers-reduced-motion:reduce){#ppc-header,#ppc-header *{transition:none!important;}}


/* PPC 2.1 — visible industrial surface treatments for real HDBuilder sections.
   Background layers do not alter HDBuilder's layout, video, or content dimensions. */
#main-content > section.ppc-surface {
  position:relative !important; isolation:isolate;
}
#main-content > section.ppc-surface::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  opacity:1;
}
#main-content > section.ppc-surface > * { position:relative; z-index:1; }
/* Light cement wash: intentionally more visible than v2.0 inset shadows. */
#main-content > section.ppc-surface--services::before {
  background:linear-gradient(115deg,rgba(174,188,196,.48) 0%,rgba(244,246,247,.22) 45%,rgba(177,194,205,.52) 100%);
}
#main-content > section.ppc-surface--content::before {
  background:linear-gradient(145deg,rgba(204,214,218,.40),rgba(255,255,255,.04) 48%,rgba(180,196,205,.30));
}
#main-content > section.ppc-surface--projects::before {
  background:linear-gradient(180deg,rgba(181,196,204,.42) 0%,rgba(245,247,248,.08) 55%,rgba(215,223,226,.34) 100%);
}
/* Dark sections receive an opaque, layered graphite surface so inline
   HDBuilder background-color !important cannot flatten the visual treatment. */
#main-content > section.ppc-surface--dark::before {
  background:radial-gradient(ellipse at 85% 5%,rgba(65,106,135,.72),transparent 57%),
    linear-gradient(112deg,#121a21 0%,#202c35 53%,#17232d 100%);
}
#main-content > section.ppc-surface--cta::before {
  background:radial-gradient(ellipse at 92% 0%,rgba(24,85,128,.72),transparent 55%),
    linear-gradient(110deg,#10161c,#253542 72%,#182c3b);
}
#main-content > section.ppc-surface--dark,
#main-content > section.ppc-surface--cta {color:#f7f9fa !important;}
#main-content > section.ppc-surface--dark :is(h1,h2,h3,h4,h5,h6,p,.lead,.section-heading,.section-heading *),
#main-content > section.ppc-surface--cta :is(h1,h2,h3,h4,h5,h6,p,.lead,.section-heading,.section-heading *) {color:#f7f9fa !important;}
/* Preserve white card surfaces above the cement-gray section backdrop. */
#main-content > section.ppc-surface--services .service-card {background:#fff !important;}
@media(prefers-reduced-motion:reduce){#main-content > section.ppc-surface::before{transition:none!important;}}
