.public-page{background:var(--enerinno-surface);color:var(--enerinno-ink)}.public-wrap{max-width:1180px;margin:auto;padding:0 24px}.public-hero{padding:80px 0;background:var(--enerinno-background)}.public-hero h1{font-size:clamp(32px,4vw,52px);color:var(--enerinno-heading)}.public-hero em{font-style:normal;color:var(--enerinno-orange)}.public-lead{max-width:820px;line-height:1.8;color:var(--enerinno-gray)}.public-section{padding:60px 0;border-bottom:1px solid var(--enerinno-border)}.public-section h2{color:var(--enerinno-heading)}.public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.public-card{border:1px solid var(--enerinno-border);border-radius:10px;padding:24px}.public-card h3{color:var(--enerinno-heading)}.public-card p,.public-section p{color:var(--enerinno-gray);line-height:1.75}.public-eyebrow{color:var(--enerinno-orange);font-size:13px;letter-spacing:.1em;font-weight:700;text-transform:uppercase}
/* Photo placeholders: reserved spaces, no synthetic or stock imagery */
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.photo-slot{margin:0;min-width:0}
.photo-slot-frame{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;text-align:center;padding:24px;border:2px dashed var(--enerinno-border);border-radius:10px;background:var(--enerinno-background);color:var(--enerinno-gray)}
.photo-slot-frame.photo-wide{aspect-ratio:16/9}
.photo-slot-frame.photo-standard{aspect-ratio:4/3}
.photo-slot-frame strong{font-size:16px;color:var(--enerinno-heading)}
.photo-slot-frame small{color:var(--enerinno-orange);font-weight:600}
.photo-slot-icon{font-size:30px;line-height:1;color:var(--enerinno-orange)}
.photo-slot figcaption{font-size:13px;line-height:1.65;color:var(--enerinno-gray);margin-top:10px}
@media(max-width:700px){.photo-grid{grid-template-columns:1fr}}

/* 2026 public-page refinement: tighter, responsive hero and varied visual treatments */
.public-page .public-hero{height:auto;min-height:0;padding:clamp(48px,5vw,76px) 0 clamp(52px,5vw,76px);position:relative;overflow:hidden;background:linear-gradient(110deg,#f8fafc 0%,#f4f7fa 54%,#e6edf3 100%)}
.public-page .public-hero .public-wrap{position:relative;z-index:1}
.public-page .public-hero h1{font-size:clamp(34px,3.7vw,60px);line-height:1.12;letter-spacing:-.035em;margin:24px 0 24px;max-width:1120px}
.public-page .public-hero .public-lead{margin:0;max-width:820px;line-height:1.65}
.public-page .public-section{padding-top:clamp(40px,4vw,60px);padding-bottom:clamp(40px,4vw,60px)}
.public-page .public-hero:before{content:"";position:absolute;inset:0 0 0 42%;background:radial-gradient(circle at 70% 30%,rgba(255,92,36,.10),transparent 34%),repeating-linear-gradient(125deg,transparent 0 34px,rgba(32,59,88,.025) 35px 36px);pointer-events:none}
@media(max-width:700px){.public-page .public-hero{padding:44px 0 48px}.public-page .public-hero h1{margin:18px 0;font-size:clamp(32px,8vw,44px)}.public-page .public-hero:before{inset:0;opacity:.4}}

/* Interior public-page titles only; homepage hero remains untouched. */
.public-page .public-hero h1 {
  font-size: clamp(30px, 2.6vw, 44px);
  line-height: 1.2;
  letter-spacing: -0.025em;
  max-width: 1050px;
}
@media (max-width: 700px) {
  .public-page .public-hero h1 {
    font-size: clamp(28px, 6.5vw, 36px);
  }
}

/* Compact two-line interior-page headings; does not affect the homepage. */
.public-page .public-hero h1 {
  font-size: clamp(27px, 2.15vw, 36px);
  line-height: 1.24;
  max-width: 740px;
  margin: 18px 0 20px;
  letter-spacing: -0.018em;
  text-wrap: balance;
}
@media (max-width: 700px) {
  .public-page .public-hero h1 {
    font-size: clamp(25px, 5.8vw, 31px);
    max-width: 100%;
  }
}

/* About Us only: authentic field photograph, with readable left-hand gradient. */
.public-page .public-hero.about-photo-hero {
  background-image: linear-gradient(90deg, #f8fafc 0%, rgba(248,250,252,.98) 31%, rgba(248,250,252,.88) 49%, rgba(248,250,252,.24) 75%, rgba(248,250,252,.04) 100%), url("../../images/about-hero-condenser-water.webp");
  background-position: center, right 42%;
  background-size: cover, cover;
  background-repeat: no-repeat;
}
.public-page .public-hero.about-photo-hero::before { display:none; }
.public-page .public-hero.about-photo-hero .public-wrap { max-width:1180px; }
.public-page .public-hero.about-photo-hero h1 { max-width:690px; }
.public-page .public-hero.about-photo-hero .public-lead { max-width:690px; }
@media(max-width:760px) {
  .public-page .public-hero.about-photo-hero {
    background-image:linear-gradient(90deg,rgba(248,250,252,.97),rgba(248,250,252,.87)),url("../../images/about-hero-condenser-water.webp");
    background-position:center,right center;
  }
}

/* About Us image banner. Image contains designed headline, so avoid duplicate visible text. */
.about-visual-hero{background:#f8fafc;width:100%;overflow:hidden}
.about-visual-hero-image{display:block;width:100%;height:auto;max-height:780px;object-fit:cover}
.about-visual-hero-mobile{display:none}
@media(max-width:700px){
 .about-visual-hero-image{display:none}
 .about-visual-hero-mobile{display:block;padding:52px 24px 58px;background:linear-gradient(110deg,#f8fafc,#e9eff3)}
 .about-visual-hero-mobile h1{font-size:clamp(28px,7vw,36px);line-height:1.2;letter-spacing:-.02em;color:#19212e;margin:22px 0}
 .about-visual-hero-mobile h1 em{font-style:normal;color:#ff4b19}
 .about-visual-hero-mobile p{max-width:550px;line-height:1.7;color:#63718a}
}

/* About Us hero only: compact 450px desktop banner; homepage unaffected. */
@media (min-width: 701px) {
  .about-visual-hero { height: 450px; }
  .about-visual-hero-image {
    display: block;
    width: 100%;
    height: 450px;
    max-height: none;
    object-fit: cover;
    object-position: center center;
  }
}

/* About Us: editable HTML copy over separate blueprint/HVAC background. */
.public-page .about-visual-hero.about-hero-background{box-sizing:border-box;position:relative;display:flex;align-items:center;min-height:450px;height:450px;overflow:hidden;background:#f5f9fc url("../../images/enerinno-about-background.webp") center center/cover no-repeat}
.public-page .about-hero-content{box-sizing:border-box;position:relative;z-index:1;width:min(100%,1280px);margin:0 auto;padding:32px clamp(24px,6vw,96px)}
.public-page .about-hero-content h1{font-size:clamp(28px,2.45vw,39px);line-height:1.18;letter-spacing:-.025em;color:#172640;margin:22px 0 16px;font-weight:750;max-width:650px}
.public-page .about-hero-content h1 em{font-style:normal;color:#f45b22}
.public-page .about-hero-content .about-hero-rule{width:58px;height:3px;background:#f45b22;margin:0 0 18px}
.public-page .about-hero-content p{max-width:560px;font-size:clamp(15px,1.1vw,17px);line-height:1.65;color:#62738b;margin:0}
@media(max-width:700px){.public-page .about-visual-hero.about-hero-background{height:auto;min-height:400px;background-position:62% center}.public-page .about-visual-hero.about-hero-background:before{content:"";position:absolute;inset:0;background:rgba(247,250,252,.82)}.public-page .about-hero-content{padding:56px 24px}.public-page .about-hero-content h1{font-size:clamp(28px,6vw,34px)}}

/* Data Acquisition only: preserve the complete supplied 1900x450 composition. */
.public-page .about-visual-hero.about-hero-background.data-collection-hero {
  height:450px;
  min-height:450px;
  background-image:url("../../images/enerinno-data-acquisition-final.webp");
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.public-page .data-collection-hero .about-hero-content p { max-width:500px; }
@media(max-width:700px) {
  .public-page .about-visual-hero.about-hero-background.data-collection-hero {
    height:auto;
    min-height:400px;
    background-size:cover;
    background-position:70% center;
  }
}

/* Data Transmission & Visualization: dedicated dashboard image and compact hero typography. */
.public-page .public-hero.transmission-dashboard-hero {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  min-height:450px;
  height:450px;
  padding:32px 0;
  background:#f3f9fd url("../../images/enerinno-visualization-dashboard-hero.webp") center center/cover no-repeat;
}
.public-page .public-hero.transmission-dashboard-hero::before { display:none; }
.public-page .public-hero.transmission-dashboard-hero .public-wrap { width:100%;max-width:1280px; }
.public-page .public-hero.transmission-dashboard-hero h1 {
  font-size:clamp(28px,2.45vw,39px);
  line-height:1.2;
  max-width:680px;
  margin:22px 0 18px;
  letter-spacing:-.025em;
}
.public-page .public-hero.transmission-dashboard-hero .public-lead { max-width:560px;font-size:clamp(15px,1.1vw,17px);line-height:1.65; }
@media(max-width:700px) {
  .public-page .public-hero.transmission-dashboard-hero {
    height:auto;
    min-height:400px;
    padding:56px 0;
    background-image:linear-gradient(90deg,rgba(248,252,255,.96),rgba(248,252,255,.84)),url("../../images/enerinno-visualization-dashboard-hero.webp");
    background-position:70% center;
  }
  .public-page .public-hero.transmission-dashboard-hero h1 { font-size:clamp(27px,6vw,34px); }
}

/* About Us: moved engineering-led overview from homepage. */
.public-page .about-overview-section {background:#f7fafc;color:#172640;border-bottom:1px solid #e1e8ef;padding:64px 0}
.public-page .about-overview-section .public-wrap {max-width:1280px;margin:0 auto;padding:0 24px}
.public-page .about-overview-section .public-eyebrow {color:#f45b22}
.public-page .about-overview-section h2 {color:#172640;font-size:clamp(25px,2.15vw,34px);line-height:1.25}
.public-page .about-overview-section p {color:#566981;line-height:1.7}
.public-page .about-overview-section .public-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}
.public-page .about-overview-section .public-card {background:#fff;border:1px solid #dce5ed;border-radius:12px;padding:30px}
.public-page .about-overview-section .public-card h3 {color:#172640;font-size:21px}
.public-page .about-overview-section .public-card a {color:#e95320;text-decoration:underline;text-underline-offset:3px;font-weight:600}
@media(max-width:800px){.public-page .about-overview-section .public-grid{grid-template-columns:1fr}.public-page .about-overview-section{padding:48px 0}}

/* About Us: structured mechanical-balancing explanation and field image. */
.public-page .about-balancing-section .public-wrap{max-width:1280px}
.public-page .about-balancing-section h2{color:#172640;margin:0 0 28px;font-size:clamp(26px,2.1vw,34px)}
.public-page .about-balancing-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:44px;align-items:start}
.public-page .about-balancing-points{display:grid;gap:14px}
.public-page .about-balancing-point{display:flex;align-items:flex-start;gap:16px;padding:0 0 15px;border-bottom:1px solid #e5edf3}
.public-page .about-balancing-point:last-child{border-bottom:0}
.public-page .about-balancing-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#fff0e9;color:#f45b22;font-size:22px;font-weight:700}
.public-page .about-balancing-point h3{margin:0 0 5px;font-size:18px;color:#172640}
.public-page .about-balancing-point p{margin:0;font-size:15px;line-height:1.6;color:#62738b}
.public-page .about-balancing-visual{margin:0;position:relative;border-radius:14px;overflow:hidden;background:#edf4f8;min-height:440px;box-shadow:0 12px 32px rgba(21,41,62,.08)}
.public-page .about-balancing-visual img{display:block;width:100%;height:480px;object-fit:cover;object-position:88% center}
.public-page .about-balancing-visual figcaption{padding:14px 18px;font-size:13px;line-height:1.5;color:#62738b;background:#f6f9fc}
@media(max-width:900px){.public-page .about-balancing-layout{grid-template-columns:1fr;gap:26px}.public-page .about-balancing-visual{min-height:0}.public-page .about-balancing-visual img{height:320px}}

/* About Us balancing: compact left-column list with empty right photo frame. */
.public-page section.about-balancing-section .about-balancing-intro{max-width:940px;margin:0 0 30px;color:#62738b;font-size:17px;line-height:1.7}
.public-page section.about-balancing-section .about-balancing-layout{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)!important;align-items:start!important;gap:40px!important;width:100%}
.public-page section.about-balancing-section .about-balancing-points{display:flex!important;flex-direction:column!important;gap:16px!important;min-width:0}
.public-page section.about-balancing-section .about-balancing-point{display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;align-items:start!important;gap:15px!important;padding:0 0 16px!important}
.public-page section.about-balancing-section .about-balancing-point>div{min-width:0}
.public-page section.about-balancing-section .about-balancing-point h3{margin:0 0 6px!important;font-size:17px!important;line-height:1.35}
.public-page section.about-balancing-section .about-balancing-point p{margin:0!important;font-size:15px!important;line-height:1.6}
.public-page section.about-balancing-section .about-balancing-photo-placeholder{min-height:510px;border:2px dashed #c8d6e2;border-radius:14px;background:#f6f9fc;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;box-sizing:border-box}
.public-page section.about-balancing-section .about-balancing-placeholder-inner{display:flex;flex-direction:column;align-items:center;gap:9px;color:#73859b;font-size:14px}
.public-page section.about-balancing-section .about-balancing-placeholder-inner strong{color:#344760;font-size:18px}
.public-page section.about-balancing-section .about-balancing-placeholder-icon{font-size:38px;color:#9bb0c3}
.public-page section.about-balancing-section .about-balancing-placeholder-inner small{font-size:12px}
@media(max-width:900px){.public-page section.about-balancing-section .about-balancing-layout{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}.public-page section.about-balancing-section .about-balancing-photo-placeholder{min-height:280px}}

/* About Us overview heading: second line uses Enerinno orange. */
.public-page .about-overview-section h2 .about-overview-highlight{font-style:normal;color:#287c87}

/* About Us four-stage workflow: consistent empty image frames above each card. */
.public-page .about-process-section .public-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.public-page .about-process-section .about-process-card{padding:0!important;overflow:hidden;border:1px solid #dce5ed;border-radius:12px;background:#fff}
.public-page .about-process-section .about-process-photo{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:4/3;background:#f2f6fa;border-bottom:1px dashed #c9d6e2;color:#9aadc0}
.public-page .about-process-section .about-process-photo>span{font-size:34px;line-height:1}
.public-page .about-process-section .about-process-photo small{font-size:13px;color:#8092a6}
.public-page .about-process-section .about-process-card-body{padding:22px 24px 26px}
.public-page .about-process-section .about-process-card-body h3{margin:0 0 12px;color:#172640}
.public-page .about-process-section .about-process-card-body p{margin:0;color:#62738b;line-height:1.65}
@media(max-width:950px){.public-page .about-process-section .public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.public-page .about-process-section .public-grid{grid-template-columns:1fr}}

/* Projects: eight equal-height application cards with photo placeholders. */
.public-page .project-applications-section .project-applications-intro{max-width:1060px;color:#62738b;font-size:17px;line-height:1.75;margin:0 0 28px}
.public-page .project-applications-section .project-applications-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.public-page .project-applications-section .project-application-card{padding:0!important;overflow:hidden;display:flex;flex-direction:column;border:1px solid #dce5ed;border-radius:12px;background:#fff;min-width:0}
.public-page .project-applications-section .project-application-photo{aspect-ratio:4/3;background:#f2f6fa;border-bottom:1px dashed #c9d6e2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#9aadc0}
.public-page .project-applications-section .project-application-photo-icon{font-size:32px;line-height:1}
.public-page .project-applications-section .project-application-photo small{font-size:13px;color:#8092a6}
.public-page .project-applications-section .project-application-body{padding:24px 26px 28px}
.public-page .project-applications-section .project-application-body h3{margin:0 0 14px;font-size:20px;line-height:1.35;color:#172640}
.public-page .project-applications-section .project-application-body p{margin:0;font-size:15px;line-height:1.65;color:#62738b}
@media(max-width:1000px){.public-page .project-applications-section .project-applications-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.public-page .project-applications-section .project-applications-grid{grid-template-columns:1fr}}

/* Project Applications title: two lines, title case, teal second line. */
.public-page .project-applications-section .project-applications-heading{color:#172640;line-height:1.2;margin-bottom:24px}
.public-page .project-applications-section .project-applications-heading span{color:#287c87}

/* Data Acquisition: responsive gateway edge-processing diagram. */
.public-page .acquisition-edge-section{background:#fff}
.public-page .acquisition-edge-section .acquisition-edge-heading{border-bottom:1px solid #d8e2eb;padding-bottom:22px;margin-bottom:30px}
.public-page .acquisition-edge-section .acquisition-edge-heading h2{font-size:clamp(27px,2.6vw,38px);line-height:1.2;color:#172640;margin:12px 0}
.public-page .acquisition-edge-section .acquisition-edge-heading h2 span{color:#287c87}
.public-page .acquisition-edge-section .acquisition-edge-heading p{color:#62738b;margin:0}
.public-page .acquisition-edge-flow{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,.9fr) 56px minmax(0,1fr);align-items:center;gap:12px}
.public-page .acquisition-edge-stage{min-width:0;text-align:center}
.public-page .acquisition-edge-stage>h3{color:#287c87;text-transform:uppercase;letter-spacing:.08em;font-size:16px;margin:0 0 14px}
.public-page .acquisition-edge-panel{border:1px solid #b8cbd9;border-radius:14px;background:#f7fafc;padding:22px 24px;text-align:left;min-height:215px;box-sizing:border-box}
.public-page .acquisition-edge-panel h4{font-size:17px;color:#172640;margin:0 0 10px}
.public-page .acquisition-edge-panel p{font-size:14px;line-height:1.5;color:#62738b;margin:0}
.public-page .acquisition-edge-panel hr{border:0;border-top:1px solid #dce5ec;margin:18px 0}
.public-page .acquisition-flow-arrow{font-size:45px;color:#287c87;text-align:center}
.public-page .acquisition-gateway-stage>strong{display:block;color:#e95320;font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin-top:10px}
.public-page .acquisition-gateway-device{position:relative;width:165px;height:205px;margin:0 auto;display:flex;align-items:center;justify-content:center}
.public-page .acquisition-gateway-device img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain}
.public-page .acquisition-gateway-fallback{position:absolute;inset:12px;border:1px solid #b8cbd9;background:#f2f6f9;display:grid;place-content:center;color:#172640;font-weight:700;border-radius:9px}
.public-page .acquisition-functions{background:#eaf3f4;border-radius:12px;margin-top:32px;padding:22px 24px}
.public-page .acquisition-functions h3,.public-page .acquisition-actions h3{font-size:17px;text-transform:uppercase;letter-spacing:.04em;color:#172640;margin:0 0 17px}
.public-page .acquisition-functions-grid,.public-page .acquisition-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.public-page .acquisition-functions-grid>div{display:flex;align-items:center;gap:12px;color:#172640;font-size:14px;font-weight:600}
.public-page .acquisition-functions-grid b{flex:none;display:grid;place-items:center;width:34px;height:34px;background:#287c87;color:white;border-radius:50%}
.public-page .acquisition-actions{padding:28px 0 10px}
.public-page .acquisition-actions-grid>div{display:flex;align-items:center;gap:12px;font-weight:600;font-size:15px;color:#172640}
.public-page .acquisition-actions-grid>div>span{font-size:29px;color:#287c87}
.public-page .acquisition-edge-note{font-size:13px;color:#62738b;margin:24px 0 0;line-height:1.5}
@media(max-width:1000px){.public-page .acquisition-edge-flow{grid-template-columns:1fr;gap:15px}.public-page .acquisition-flow-arrow{transform:rotate(90deg);font-size:35px}.public-page .acquisition-edge-panel{min-height:0}.public-page .acquisition-functions-grid,.public-page .acquisition-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.public-page .acquisition-functions-grid,.public-page .acquisition-actions-grid{grid-template-columns:1fr}}

/* Refine edge-computer headline and use the supplied engineering action illustrations. */
.public-page .acquisition-edge-section .acquisition-edge-heading h2{font-size:clamp(24px,2.05vw,31px)!important;line-height:1.24!important}
.public-page .acquisition-actions-image-wrap{width:100%;overflow:hidden;background:#fff}
.public-page .acquisition-actions-image{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:650px){.public-page .acquisition-actions-image-wrap{overflow-x:auto}.public-page .acquisition-actions-image{width:950px;max-width:none}}

/* Data Acquisition: three photo cards and two-line title-case heading. */
.public-page .acquisition-methods-section .acquisition-methods-heading{color:#172640;font-size:clamp(27px,2.4vw,36px);line-height:1.22;margin:0 0 28px}
.public-page .acquisition-methods-section .acquisition-methods-heading span{color:#287c87}
.public-page .acquisition-methods-section .acquisition-methods-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.public-page .acquisition-methods-section .acquisition-method-card{padding:0!important;overflow:hidden;border:1px solid #dce5ed;border-radius:12px;background:#fff}
.public-page .acquisition-methods-section .acquisition-method-card img{display:block;width:100%;height:205px;object-fit:cover;object-position:center}
.public-page .acquisition-methods-section .acquisition-method-card-body{padding:24px 26px 30px}
.public-page .acquisition-methods-section .acquisition-method-card-body h3{margin:0 0 14px;color:#172640;font-size:20px;line-height:1.35}
.public-page .acquisition-methods-section .acquisition-method-card-body p{margin:0;color:#62738b;font-size:16px;line-height:1.65}
@media(max-width:850px){.public-page .acquisition-methods-section .acquisition-methods-grid{grid-template-columns:1fr}.public-page .acquisition-methods-section .acquisition-method-card img{height:250px}}

/* Consistent compact headings for Data Acquisition sections. */
.public-page .acquisition-methods-section .acquisition-methods-heading{font-size:clamp(23px,1.8vw,28px)!important;line-height:1.25!important;margin-bottom:24px}
.public-page .acquisition-methods-section .acquisition-method-card img{object-fit:cover;object-position:center}

.public-page .acquisition-methods-section .acquisition-methods-heading{margin-bottom:12px!important}
.public-page .acquisition-methods-section .acquisition-methods-intro{max-width:950px;margin:0 0 26px;color:#62738b;font-size:16px;line-height:1.7}

/* Approved data acquisition card styling: compact orange icons, teal subtitles and photo composition. */
.public-page .acquisition-methods-section .acquisition-method-card img{height:205px;object-fit:cover;object-position:center}
.public-page .acquisition-methods-section .acquisition-method-title{display:flex;align-items:center;gap:12px;margin-bottom:9px}
.public-page .acquisition-methods-section .acquisition-method-title h3{margin:0;font-size:19px;line-height:1.35}
.public-page .acquisition-methods-section .acquisition-method-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:26px;height:26px;font-size:23px;font-weight:600;line-height:1;color:#f45b22}
.public-page .acquisition-methods-section .acquisition-method-subtitle{color:#2296a0;font-size:16px;font-weight:700;line-height:1.4;margin:0 0 14px}
.public-page .acquisition-methods-section .acquisition-method-divider{border-top:1px solid #dce5ed;margin-bottom:16px}
@media(max-width:850px){.public-page .acquisition-methods-section .acquisition-method-card img{height:235px}}

/* Edge gateway section: centered heading and restrained technical sketch background. */
.public-page .acquisition-edge-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(180deg,#f8fbfd 0%,#fff 65%);
}
.public-page .acquisition-edge-section::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 0 auto;
  height:430px;
  pointer-events:none;
  opacity:.55;
  background-image:
    repeating-linear-gradient(120deg,transparent 0 68px,rgba(84,153,173,.075) 69px,transparent 70px 135px),
    radial-gradient(ellipse at 12% 12%,rgba(178,218,229,.26),transparent 44%),
    radial-gradient(ellipse at 88% 18%,rgba(183,218,227,.24),transparent 45%);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,transparent 100%);
}
.public-page .acquisition-edge-section .acquisition-edge-heading{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:0 auto 32px;
  max-width:920px;
  padding:0 16px 24px;
}
.public-page .acquisition-edge-section .acquisition-edge-heading h2{
  font-size:clamp(24px,2.05vw,31px)!important;
  line-height:1.24!important;
  margin:12px auto!important;
  text-align:center;
}
.public-page .acquisition-edge-section .acquisition-edge-heading p{
  text-align:center;
  max-width:680px;
}
@media(max-width:600px){
  .public-page .acquisition-edge-section .acquisition-edge-heading{padding:0 0 22px;margin-bottom:24px}
  .public-page .acquisition-edge-section::before{height:320px}
}

/* Actual downloadable background image for the edge-gateway section. */
.public-page .acquisition-edge-section{
  background:#fbfdfe url("../../images/enerinno-edge-sketch-background-1920x900.webp") center top / cover no-repeat;
}
.public-page .acquisition-edge-section::before{display:none}
@media(max-width:700px){
  .public-page .acquisition-edge-section{background-position:center top;background-size:auto 100%}
}

/* Layer One matches the orange Layer Two eyebrow; wireless sensor pulses subtly. */
.public-page .acquisition-methods-section .acquisition-layer-label{margin:0 0 12px;color:#f45b22;font-size:13px;font-weight:750;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}
.public-page .acquisition-methods-section .acquisition-wireless-pulse{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border:2px solid #f45b22;border-radius:50%;font-size:0;overflow:visible}
.public-page .acquisition-methods-section .acquisition-wireless-pulse-core{width:8px;height:8px;background:#f45b22;border-radius:50%;display:block}
.public-page .acquisition-methods-section .acquisition-wireless-pulse::after{content:"";position:absolute;inset:-2px;border:2px solid #f45b22;border-radius:50%;animation:enerinno-wireless-pulse 2.2s ease-out infinite;pointer-events:none}
@keyframes enerinno-wireless-pulse{0%{transform:scale(1);opacity:.65}75%,100%{transform:scale(1.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.public-page .acquisition-methods-section .acquisition-wireless-pulse::after{animation:none;opacity:0}}

/* Fix wireless icon: avoid stacked target-like rings. */
.public-page .acquisition-methods-section .acquisition-wireless-pulse{border:0;background:transparent;width:20px;height:20px;flex-basis:20px}
.public-page .acquisition-methods-section .acquisition-wireless-pulse-core{width:8px;height:8px;position:relative;z-index:1}
.public-page .acquisition-methods-section .acquisition-wireless-pulse::before{content:"";position:absolute;inset:2px;border:1.5px solid #f45b22;border-radius:50%}
.public-page .acquisition-methods-section .acquisition-wireless-pulse::after{inset:2px;border:1.5px solid #f45b22;animation:enerinno-wireless-pulse-clean 2.5s ease-out infinite}
@keyframes enerinno-wireless-pulse-clean{0%,20%{transform:scale(1);opacity:0}35%{opacity:.45}85%,100%{transform:scale(1.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.public-page .acquisition-methods-section .acquisition-wireless-pulse::after{animation:none;display:none}}

/* Edge Processing: two-column editorial layout. */
.public-page .acquisition-processing-section{background:#f8fbfd}
.public-page .acquisition-processing-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,76px);align-items:start}
.public-page .acquisition-processing-grid h2{font-size:clamp(24px,2vw,30px);line-height:1.2;margin:12px 0 20px;color:#172640}
.public-page .acquisition-processing-grid h2 span{color:#287c87}
.public-page .acquisition-processing-grid h3{font-size:20px;color:#172640;margin:0 0 16px}
.public-page .acquisition-processing-grid p{font-size:16px;line-height:1.7;color:#62738b}
.public-page .acquisition-processing-grid ul{list-style:none;margin:20px 0 0;padding:0}
.public-page .acquisition-processing-grid li{position:relative;padding:0 0 16px 25px;margin-bottom:14px;border-bottom:1px solid #e0e9ef;color:#62738b;font-size:15px;line-height:1.6}
.public-page .acquisition-processing-grid li::before{content:"";position:absolute;left:1px;top:8px;width:9px;height:9px;border-radius:50%;background:#287c87}
.public-page .acquisition-processing-grid li strong{color:#172640}
.public-page .acquisition-processing-photo{min-height:190px;margin:24px 0;border:1px dashed #b8ced7;border-radius:12px;background:linear-gradient(135deg,#edf6f8,#fff);display:flex;align-items:center;justify-content:center;color:#668390;font-size:14px}
@media(max-width:760px){.public-page .acquisition-processing-grid{grid-template-columns:1fr;gap:28px}.public-page .acquisition-processing-photo{min-height:170px}}

/* Edge Processing advantages: gently flashing green check-circle indicators. */
.public-page .acquisition-processing-grid > div:nth-child(2) > ul > li{padding-left:31px}
.public-page .acquisition-processing-grid > div:nth-child(2) > ul > li::before{
  content:"✓";box-sizing:border-box;left:0;top:3px;width:17px;height:17px;
  display:flex;align-items:center;justify-content:center;border:1.5px solid #159447;
  border-radius:50%;background:transparent;color:#159447;
  font-size:11px;font-weight:800;line-height:1;
  animation:enerinno-advantage-check-flash 2.8s ease-in-out infinite;
}
.public-page .acquisition-processing-grid > div:nth-child(2) > ul > li:nth-child(2)::before{animation-delay:.45s}
.public-page .acquisition-processing-grid > div:nth-child(2) > ul > li:nth-child(3)::before{animation-delay:.9s}
.public-page .acquisition-processing-grid > div:nth-child(2) > ul > li:nth-child(4)::before{animation-delay:1.35s}
@keyframes enerinno-advantage-check-flash{
  0%,65%,100%{opacity:1;box-shadow:0 0 0 0 rgba(21,148,71,0)}
  28%{opacity:.48;box-shadow:0 0 0 5px rgba(21,148,71,.13)}
  45%{opacity:1;box-shadow:0 0 0 0 rgba(21,148,71,0)}
}
@media(prefers-reduced-motion:reduce){
  .public-page .acquisition-processing-grid > div:nth-child(2) > ul > li::before{animation:none}
}

/* Formula graphic in Edge Processing section */
.public-page .acquisition-processing-photo.acquisition-processing-formulas{display:block;min-height:0;padding:0;margin:24px 0;overflow:hidden;border:1px solid #dbe9f1;border-radius:12px;background:#e4f3ff}
.public-page .acquisition-processing-formulas img{display:block;width:100%;height:auto;object-fit:contain}

/* Edge Processing combined layout: compact centered heading and full-width applications. */
.public-page .acquisition-processing-header{text-align:center;max-width:790px;margin:0 auto 34px}
.public-page .acquisition-processing-header .public-eyebrow{display:block;margin-bottom:10px}
.public-page .acquisition-processing-header h2{font-size:clamp(25px,2vw,30px);line-height:1.25;margin:0 0 12px;color:#172640}
.public-page .acquisition-processing-header h2 span{color:#287c87}
.public-page .acquisition-processing-header p{font-size:16px;line-height:1.6;color:#62738b;margin:0}
.public-page .acquisition-processing-grid{gap:clamp(28px,4vw,64px)}
.public-page .acquisition-processing-grid h3{margin:0 0 16px}
.public-page .acquisition-processing-grid ul{margin-top:0}
.public-page .acquisition-processing-formulas{margin:18px 0 0}
.public-page .acquisition-processing-applications{margin-top:30px;padding:22px 26px;border:1px solid #dbe9f1;border-radius:12px;background:#edf6f8}
.public-page .acquisition-processing-applications h3{font-size:19px;color:#172640;margin:0 0 10px}
.public-page .acquisition-processing-applications p{color:#62738b;font-size:16px;line-height:1.65;margin:0}
@media(max-width:760px){.public-page .acquisition-processing-header{margin-bottom:26px}.public-page .acquisition-processing-applications{margin-top:24px;padding:20px}}

/* Edge Processing final spacing refinements. */
.public-page .acquisition-processing-formulas{
  border:0;
  padding:0;
  background:#e2f1fc;
  margin-top:18px;
}
.public-page .acquisition-processing-formulas img{
  display:block;
  width:100%;
  height:auto;
  border-radius:10px;
}
.public-page .acquisition-processing-applications{margin-top:18px}
.public-page .acquisition-processing-how h3{margin-bottom:22px}
@media(max-width:760px){
  .public-page .acquisition-processing-applications{margin-top:16px}
}

/* Edge Processing: soft cyan cards matching approved visual design. */
.public-page .acquisition-processing-section{background:#fff}
.public-page .acquisition-processing-grid{gap:12px;align-items:stretch}
.public-page .acquisition-processing-how,
.public-page .acquisition-processing-benefits{
  background:#edf8fc;
  border-radius:14px;
  padding:26px 28px;
  min-width:0;
}
.public-page .acquisition-processing-applications{
  background:#edf8fc;
  border:0;
  border-radius:14px;
  margin-top:12px;
  padding:24px 28px;
}
.public-page .acquisition-processing-formulas{
  background:#dfeffd;
  border:0;
  border-radius:12px;
  overflow:hidden;
  margin-top:18px;
}
.public-page .acquisition-processing-formulas img{width:100%;height:auto;display:block}
@media(max-width:760px){
 .public-page .acquisition-processing-how,
 .public-page .acquisition-processing-benefits,
 .public-page .acquisition-processing-applications{padding:22px 20px}
}

/* Fix formula image's white surround against the cyan Edge Processing panel. */
.public-page .acquisition-processing-photo.acquisition-processing-formulas{
  background:#edf8fc;
  border:0;
  border-radius:12px;
  box-shadow:none;
  padding:0;
  margin:18px 0 0;
  min-height:0;
  display:block;
  overflow:hidden;
}
.public-page .acquisition-processing-photo.acquisition-processing-formulas img{
  display:block;
  width:100%;
  height:auto;
  mix-blend-mode:multiply;
}

/* About Us: modular heat pump balancing example */
.public-page .about-balancing-example{min-width:0;align-self:start}
.public-page .about-balancing-example>img{display:block;width:100%;height:auto;aspect-ratio:1.88;object-fit:cover;border-radius:12px}
.public-page .about-balancing-example-copy{margin-top:16px;padding:22px 24px;background:#edf8fc;border-radius:12px;border:1px solid #dbeaf0}
.public-page .about-balancing-example-copy h3{font-size:clamp(17px,1.25vw,20px);line-height:1.4;margin:0 0 12px;color:#172640}
.public-page .about-balancing-example-copy p{font-size:15px;line-height:1.65;color:#62738b;margin:0 0 14px}
.public-page .about-balancing-example-copy .about-balancing-benefits-label{font-weight:700;color:#172640;margin:12px 0 8px}
.public-page .about-balancing-example-copy ul{margin:0;padding-left:21px;color:#62738b}
.public-page .about-balancing-example-copy li{font-size:15px;line-height:1.55;margin-bottom:7px}
.public-page .about-balancing-example-copy li::marker{color:#287c87}
@media(max-width:760px){.public-page .about-balancing-example-copy{padding:18px}}

/* About Us: align balancing introduction and example photo at same top edge. */
.public-page section.about-balancing-section .about-balancing-layout{align-items:start!important}
.public-page section.about-balancing-section .about-balancing-points>h2{margin:0 0 16px!important;font-size:clamp(25px,2.1vw,32px);line-height:1.25}
.public-page section.about-balancing-section .about-balancing-points>.about-balancing-intro{max-width:none;margin:0 0 18px!important;font-size:15px;line-height:1.7}
.public-page section.about-balancing-section .about-balancing-example{margin:0;align-self:start}

/* About Us: subtle staggered pulse for the five flow-balancing bullet markers. */
@keyframes enerinno-balancing-bullet-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  45%{opacity:.3;transform:scale(.72)}
  70%{opacity:1;transform:scale(1.12)}
}
.public-page .about-balancing-example-copy li::marker{color:#287c87}
.public-page .about-balancing-example-copy li{
  list-style:none;
  position:relative;
  padding-left:0;
}
.public-page .about-balancing-example-copy li::before{
  content:"";
  position:absolute;
  width:7px;height:7px;
  border-radius:50%;
  background:#287c87;
  left:-18px;top:.58em;
  animation:enerinno-balancing-bullet-pulse 2.4s ease-in-out infinite;
  transform-origin:center;
}
.public-page .about-balancing-example-copy li:nth-child(2)::before{animation-delay:.3s}
.public-page .about-balancing-example-copy li:nth-child(3)::before{animation-delay:.6s}
.public-page .about-balancing-example-copy li:nth-child(4)::before{animation-delay:.9s}
.public-page .about-balancing-example-copy li:nth-child(5)::before{animation-delay:1.2s}
@media(prefers-reduced-motion:reduce){
 .public-page .about-balancing-example-copy li::before{animation:none}
}

/* Contact hero: Toronto skyline photo at full height, without cropping the photograph. */
.public-page .public-hero.contact-toronto-hero{
 box-sizing:border-box;display:flex;align-items:center;
 min-height:620px;padding:64px 0;
 background:#10243b url("../../images/enerinno-contact-toronto-hero.webp") center center/cover no-repeat;
}
.public-page .contact-toronto-hero .public-wrap{width:min(100%,1280px)}
.public-page .contact-toronto-hero h1{color:#fff;max-width:700px;font-size:clamp(30px,3vw,43px);line-height:1.18}
.public-page .contact-toronto-hero h1 em{color:#7cc4c9}
.public-page .contact-toronto-hero .public-eyebrow{color:#ff8d65}
.public-page .contact-toronto-hero .public-lead{color:#e5edf5;max-width:690px;font-size:clamp(16px,1.2vw,18px);line-height:1.7;margin:18px 0 0}
@media(max-width:760px){
 .public-page .public-hero.contact-toronto-hero{min-height:600px;padding:65px 0;background-position:64% center}
 .public-page .contact-toronto-hero .public-wrap{padding-left:24px;padding-right:24px}
 .public-page .contact-toronto-hero h1{font-size:30px}
 .public-page .contact-toronto-hero .public-lead{font-size:15px}
}

/* Contact: seamless Toronto photo transition and compact readable hero. */
.public-page .public-hero.contact-toronto-hero{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:560px;height:auto;padding:62px 0;
  background:#12273f url("../../images/site-assets/Town.jpg") center center/cover no-repeat!important;
}
.public-page .public-hero.contact-toronto-hero::before,
.public-page .public-hero.contact-toronto-hero::after{content:none!important;display:none!important}
.public-page .contact-toronto-hero .public-wrap{position:relative;z-index:1}
.public-page .contact-toronto-hero h1{font-size:clamp(29px,2.5vw,38px);max-width:650px}
.public-page .contact-toronto-hero .public-lead{font-size:clamp(15px,1.05vw,17px);max-width:650px;line-height:1.65}
@media(max-width:760px){
 .public-page .public-hero.contact-toronto-hero{
   min-height:540px;height:auto;padding:60px 0;
   background-position:62% center!important;
   background-image:linear-gradient(90deg,rgba(18,39,63,.94),rgba(18,39,63,.72)),url("../../images/site-assets/Town.jpg")!important;
 }
}

/* Contact: white brand mark in upper-right cloud area. */
.public-page .contact-toronto-hero .contact-toronto-logo{
 position:absolute;z-index:2;top:34px;right:clamp(28px,5vw,90px);
 width:clamp(125px,11vw,190px);height:auto;max-height:72px;
 object-fit:contain;filter:brightness(0) invert(1);
 opacity:.94;pointer-events:none;
}
.public-page .contact-toronto-hero .public-wrap{padding-right:clamp(24px,5vw,90px)}
.public-page .contact-toronto-hero .public-lead{max-width:710px}
@media(max-width:760px){
 .public-page .contact-toronto-hero .contact-toronto-logo{top:16px;right:20px;width:110px;max-height:46px}
 .public-page .contact-toronto-hero .public-wrap{padding-top:28px;padding-right:24px}
}

/* Contact hero: restrained technical drafting lines on the navy half. */
.public-page .public-hero.contact-toronto-hero{
 min-height:600px;
 background-image:
   linear-gradient(90deg,rgba(18,39,63,.02),rgba(18,39,63,0)),
   url("../../images/site-assets/Town.jpg")!important;
}
.public-page .public-hero.contact-toronto-hero::before{
 content:""!important;display:block!important;position:absolute;inset:0 auto 0 0;
 width:min(60%,1050px);z-index:0;pointer-events:none;
 opacity:.065;
 background-image:
   linear-gradient(30deg,transparent 49.7%,#9fc9d4 50%,transparent 50.3%),
   linear-gradient(150deg,transparent 49.7%,#9fc9d4 50%,transparent 50.3%),
   repeating-linear-gradient(90deg,transparent 0 138px,#9fc9d4 139px,transparent 140px),
   repeating-linear-gradient(0deg,transparent 0 138px,#9fc9d4 139px,transparent 140px);
 background-size:360px 360px,360px 360px,280px 280px,280px 280px;
 mask-image:linear-gradient(90deg,#000 0%,#000 52%,transparent 100%);
}
.public-page .contact-toronto-hero .public-wrap{position:relative;z-index:1}
.public-page .contact-toronto-hero .contact-toronto-logo{
 position:static;display:block;width:160px;max-height:58px;
 margin:0 0 22px;filter:brightness(0) invert(1);
}
.public-page .contact-toronto-hero h1{font-size:clamp(28px,2.3vw,36px)}
.public-page .contact-toronto-hero .public-lead{font-size:clamp(14px,1vw,16px);line-height:1.65;max-width:695px}
.public-page .contact-hero-capabilities{max-width:710px;margin-top:18px;color:#e5edf5}
.public-page .contact-capabilities-intro{font-size:15px;font-weight:700;color:#fff;margin:0 0 10px}
.public-page .contact-hero-capabilities ul{margin:0;padding:0;list-style:none}
.public-page .contact-hero-capabilities li{position:relative;padding:7px 0 7px 19px;font-size:14px;line-height:1.48}
.public-page .contact-hero-capabilities li::before{content:"";position:absolute;left:0;top:15px;width:6px;height:6px;border-radius:50%;background:#7cc4c9}
.public-page .contact-hero-capabilities strong{color:#fff}
@media(max-width:760px){
 .public-page .public-hero.contact-toronto-hero{min-height:0;padding:42px 0 50px}
 .public-page .public-hero.contact-toronto-hero::before{width:100%;opacity:.035}
 .public-page .contact-toronto-hero .contact-toronto-logo{width:132px;max-height:48px;margin-bottom:18px}
 .public-page .contact-toronto-hero .public-wrap{padding-top:0}
 .public-page .contact-hero-capabilities li{font-size:13px}
}

/* Contact: global network map and accessible enquiry form. */
.public-page .contact-locations{background:#fff;text-align:center}
.public-page .contact-locations h2{font-size:clamp(25px,2.1vw,32px);color:#12273f;margin-bottom:8px}
.public-page .contact-locations p{color:#62738b;margin:0 0 20px}
.public-page .contact-world-map{display:block;width:100%;max-width:1250px;height:auto;margin:0 auto;border-radius:12px}
.public-page .contact-request{background:#f5f9fc}
.public-page .contact-request .public-wrap{max-width:1050px}
.public-page .contact-request-head h2{font-size:clamp(25px,2.1vw,32px);margin:8px 0;color:#12273f}
.public-page .contact-request-head p{color:#62738b;margin-bottom:25px}
.public-page .contact-request-form{background:#fff;border:1px solid #dce6ed;border-radius:14px;padding:clamp(20px,3vw,36px)}
.public-page .contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.public-page .contact-request-form label{display:block;font-weight:650;color:#142943;font-size:14px;margin-bottom:18px}
.public-page .contact-request-form label span{color:#f45b22}
.public-page .contact-request-form input,.public-page .contact-request-form select,.public-page .contact-request-form textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:12px 14px;border:1px solid #cbd8e4;border-radius:7px;background:#fff;color:#142943;font:inherit;font-weight:400}
.public-page .contact-request-form input:focus,.public-page .contact-request-form select:focus,.public-page .contact-request-form textarea:focus{outline:2px solid #2b8490;outline-offset:1px}
.public-page .contact-request-form button{border:0;background:#217f8a;color:white;font-weight:700;padding:13px 28px;border-radius:7px;cursor:pointer}
.public-page .contact-request-form button:hover{background:#166774}
.public-page .contact-form-note{color:#667b90;font-size:13px;margin:13px 0 0}
.public-page .contact-form-success,.public-page .contact-form-error{padding:13px 17px;border-radius:8px;margin-bottom:18px}
.public-page .contact-form-success{background:#e7f6ee;color:#17623b}
.public-page .contact-form-error{background:#fff0ec;color:#923d29}
.public-page .contact-form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:700px){.public-page .contact-form-grid{grid-template-columns:1fr;gap:0}}

/* Data Analysis: live-text Project Canvas showcase */
.public-page .canvas-showcase-section{background:#fff}
.public-page .canvas-showcase-section .public-wrap{max-width:1320px}
.public-page .canvas-showcase-heading{text-align:center;margin:0 auto 26px}
.public-page .canvas-showcase-heading h2{font-size:clamp(24px,2.25vw,34px);line-height:1.22;margin:10px 0;color:#172640}
.public-page .canvas-showcase-heading h2 em{font-style:normal;color:#257f8b}
.public-page .canvas-showcase-heading p{margin:0 auto;max-width:750px;font-size:15px}
.public-page .canvas-showcase{border:1px solid #dae4ed;border-radius:12px;overflow:hidden;background:#fff}
.public-page .canvas-demo-toolbar{display:flex;align-items:center;gap:9px;padding:12px 18px;border-bottom:1px solid #dce6ef;background:#fff;flex-wrap:wrap}
.public-page .canvas-demo-brand{margin-right:auto}
.public-page .canvas-demo-brand img{display:block;width:125px;max-height:36px;object-fit:contain;object-position:left center}
.public-page .canvas-demo-tab,.public-page .canvas-demo-tool,.public-page .canvas-demo-save{padding:7px 12px;border:1px solid #dbe4ec;border-radius:7px;color:#172640;font-size:12px;font-weight:700}
.public-page .canvas-demo-tab{border-color:#f45b22}
.public-page .canvas-demo-save{background:#f45b22;color:#fff;border-color:#f45b22}
.public-page .canvas-demo-workspace{display:grid;grid-template-columns:195px minmax(0,1fr);min-height:375px}
.public-page .canvas-demo-sidebar{padding:20px 14px;background:#f6f9fc;border-right:1px solid #dce6ef}
.public-page .canvas-demo-sidebar>strong{display:block;font-size:14px;margin-bottom:18px;color:#172640}
.public-page .canvas-demo-equipment{display:flex;gap:9px;align-items:center;background:white;border:1px solid #e1e8ee;border-radius:7px;padding:10px 8px;margin-bottom:8px;font-size:12px;color:#172640}
.public-page .canvas-demo-equipment:first-letter{color:#2d8090}
.public-page .canvas-demo-sidebar p{font-size:12px;line-height:1.5;margin-top:18px}
.public-page .canvas-demo-stage{position:relative;min-height:375px;background-color:#fff;background-image:radial-gradient(#d7e1ea .85px,transparent .85px);background-size:17px 17px;overflow:hidden}
.public-page .canvas-demo-pipes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.public-page .canvas-demo-pipes path{fill:none;stroke:#c93831;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.public-page .canvas-demo-pipes .canvas-demo-flow{stroke:#ef5546;stroke-width:2;stroke-dasharray:9 15;animation:enerinno-flow 4s linear infinite}
@keyframes enerinno-flow{to{stroke-dashoffset:-96}}
.public-page .canvas-demo-node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;width:140px;transform:translate(-50%,-50%);text-align:center;font-size:12px;color:#142943}
.public-page .canvas-demo-graphic{display:flex;align-items:center;justify-content:center;width:82px;height:66px;border:1px solid #aec4d5;border-radius:9px;background:linear-gradient(135deg,#f6f9fb,#dce9f0);font-size:39px;color:#2b7993;box-shadow:0 4px 14px #1c3c5b14}
.public-page .canvas-demo-chiller{left:20%;top:70%}
.public-page .canvas-demo-pump{left:50%;top:38%}
.public-page .canvas-demo-ahu{left:81%;top:70%}
.public-page .canvas-demo-reading{position:absolute;border-left:4px solid #23a566;border-radius:5px;padding:7px 10px;background:#ffffffee;box-shadow:0 2px 12px #14365710;color:#172640}
.public-page .canvas-demo-reading span{display:block;font-size:11px;margin-bottom:3px}
.public-page .canvas-demo-reading strong{font-size:14px}
.public-page .canvas-demo-current{left:25%;top:8%}
.public-page .canvas-demo-energy{left:32%;bottom:6%}
.public-page .canvas-demo-status{right:3%;top:42%}
.public-page .canvas-demo-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;background:#f9fbfd}
.public-page .canvas-demo-benefits article{border:1px solid #e3e8ed;border-left:4px solid #2e8c72;border-radius:9px;background:#fff;padding:18px}
.public-page .canvas-demo-benefits article:nth-child(2){border-left-color:#2b7993}
.public-page .canvas-demo-benefits article:nth-child(3){border-left-color:#f45b22}
.public-page .canvas-demo-benefits h3{font-size:16px;margin:0 0 10px;color:#172640}
.public-page .canvas-demo-benefits p{font-size:13px;line-height:1.55;margin:0}
.public-page .canvas-demo-disclaimer{font-size:12px;text-align:center;margin:12px 0 0}
@media(prefers-reduced-motion:reduce){.public-page .canvas-demo-pipes .canvas-demo-flow{animation:none}}
@media(max-width:800px){.public-page .canvas-demo-workspace{grid-template-columns:1fr}.public-page .canvas-demo-sidebar{display:none}.public-page .canvas-demo-benefits{grid-template-columns:1fr}.public-page .canvas-demo-stage{min-height:330px}.public-page .canvas-demo-node{width:90px;font-size:10px}.public-page .canvas-demo-graphic{width:56px;height:52px;font-size:29px}.public-page .canvas-demo-reading{padding:5px;font-size:10px}.public-page .canvas-demo-reading strong{font-size:11px}}

/* Project Canvas: reference equipment imagery and two-column equipment library */
.public-page .canvas-demo-sidebar{padding:14px 10px;overflow:hidden}
.public-page .canvas-demo-sidebar>strong{color:#f45b22;font-size:13px;margin:0 0 5px}
.public-page .canvas-demo-sidebar>p{font-size:11px;margin:0 0 12px}
.public-page .canvas-demo-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.public-page .canvas-demo-equipment{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:5px;margin:0;padding:6px 3px;min-height:90px;border-radius:9px;background:#fff}
.public-page .canvas-demo-equipment img{width:100%;height:56px;object-fit:contain}
.public-page .canvas-demo-equipment span{font-size:9px;line-height:1.25;font-weight:650}
.public-page .canvas-demo-equipment-image{display:block;width:120px;height:95px;object-fit:contain}
.public-page .canvas-demo-chiller .canvas-demo-equipment-image{width:130px;height:105px}
.public-page .canvas-demo-ahu .canvas-demo-equipment-image{width:160px;height:100px}
.public-page .canvas-demo-pump .canvas-demo-equipment-image{width:120px;height:85px}
.public-page .canvas-demo-node{gap:0}
.public-page .canvas-demo-node strong{font-size:12px;line-height:1.35}
@media(min-width:801px){.public-page .canvas-demo-workspace{grid-template-columns:235px minmax(0,1fr)}.public-page .canvas-demo-stage{min-height:450px}}
@media(max-width:800px){.public-page .canvas-demo-equipment-image{max-width:90px;max-height:72px}.public-page .canvas-demo-ahu .canvas-demo-equipment-image{max-width:105px}.public-page .canvas-demo-node strong{font-size:10px}}

/* Keep Project Canvas equipment aligned to pipe geometry, independent of library length. */
@media(min-width:801px){
.public-page .canvas-demo-workspace{height:450px;min-height:0;grid-template-columns:235px minmax(0,1fr)}
.public-page .canvas-demo-sidebar{height:450px;max-height:450px;min-height:0;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.public-page .canvas-demo-stage{height:450px;min-height:0}
}
.public-page .canvas-demo-pipes{z-index:0}
.public-page .canvas-demo-node{z-index:2}
.public-page .canvas-demo-reading{z-index:3}
.public-page .canvas-demo-pipes .canvas-demo-pipe{stroke:#c93831;stroke-width:2.7;stroke-dasharray:none}
.public-page .canvas-demo-pipes .canvas-demo-arrow{stroke:#c93831;stroke-width:2.4;stroke-dasharray:none}
.public-page .canvas-demo-pipes marker path{stroke:none}
@media(max-width:800px){
.public-page .canvas-demo-stage{height:330px;min-height:330px}
}

/* Hide red source-image crop marks and stray pipe ends around equipment. */
.public-page .canvas-demo-node{isolation:isolate}
.public-page .canvas-demo-node .canvas-demo-equipment-image{position:relative;z-index:1}
.public-page .canvas-demo-pump:before{content:"";position:absolute;z-index:0;top:0;left:0;right:0;height:92px;background:#fff}
.public-page .canvas-demo-chiller:before{content:"";position:absolute;z-index:2;top:0;left:calc(50% - 5px);width:10px;height:9px;background:#fff;pointer-events:none}

/* Mask red artifacts baked into the left/right edges of cropped pump artwork. */
.public-page .canvas-demo-pump .canvas-demo-equipment-image{
  -webkit-mask-image:linear-gradient(to right,transparent 0%,transparent 11%,#000 26%,#000 84%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,transparent 11%,#000 26%,#000 84%,transparent 100%);
}

/* Data Analysis: match the subtle engineering wave used on the gateway section.
   CSS-embedded vector: no external image upload required. */
.public-page .canvas-showcase-heading{position:relative;isolation:isolate;padding:52px 18px 42px;margin:-28px auto 12px;max-width:none}
.public-page .canvas-showcase-heading::before{content:"";position:absolute;z-index:-1;inset:0;left:50%;width:100vw;transform:translateX(-50%);background:#f9fcfd url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201440%20290%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23b4dbe5%22%20stroke-width%3D%221%22%20opacity%3D%22.28%22%3E%3Cpath%20d%3D%22M0%20125%20C190%2040%20320%2055%20490%20125%20S780%20205%20965%20128%20S1250%2052%201440%20130%22%2F%3E%3Cpath%20d%3D%22M0%20137%20C190%2052%20320%2067%20490%20137%20S780%20217%20965%20140%20S1250%2064%201440%20142%22%2F%3E%3Cpath%20d%3D%22M0%20149%20C190%2064%20320%2079%20490%20149%20S780%20229%20965%20152%20S1250%2076%201440%20154%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%239ccbd9%22%20opacity%3D%22.20%22%3E%3Cpath%20d%3D%22M180%2043%20Q184%2071%20211%2075%20Q184%2079%20180%20107%20Q176%2079%20149%2075%20Q176%2071%20180%2043Z%22%2F%3E%3Cpath%20d%3D%22M255%2090%20Q257%20105%20272%20107%20Q257%20109%20255%20124%20Q253%20109%20238%20107%20Q253%20105%20255%2090Z%22%2F%3E%3Cpath%20d%3D%22M1260%2035%20Q1264%2063%201291%2067%20Q1264%2071%201260%2099%20Q1256%2071%201229%2067%20Q1256%2063%201260%2035Z%22%2F%3E%3Cpath%20d%3D%22M1335%20110%20Q1337%20125%201352%20127%20Q1337%20129%201335%20144%20Q1333%20129%201318%20127%20Q1333%20125%201335%20110Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center center/cover no-repeat;pointer-events:none}
.public-page .canvas-showcase-heading h2{font-size:clamp(23px,2.1vw,32px);line-height:1.24}
.public-page .canvas-showcase-heading p{max-width:760px}
.public-page .canvas-demo-node strong{display:block;white-space:normal;overflow:visible;max-width:100%;padding:3px 2px;line-height:1.45;min-height:24px}
.public-page .canvas-demo-pump{width:160px}
.public-page .canvas-demo-pump .canvas-demo-equipment-image{flex-shrink:0}
@media(max-width:800px){.public-page .canvas-showcase-heading{padding:38px 10px 32px;margin:-15px auto 10px}.public-page .canvas-demo-pump{width:110px}.public-page .canvas-demo-node strong{font-size:10px;line-height:1.35}}

/* Data Analysis: Heat Pump configuration example below Project Canvas. */
.public-page .analysis-example-section{background:#fff}
.public-page .analysis-example-section .public-wrap{max-width:1320px}
.public-page .analysis-example-card{padding:28px 30px 30px;border:1px solid #dce9f0;border-radius:16px;background:#eaf7fb}
.public-page .analysis-example-card h2{font-size:clamp(21px,2vw,29px);line-height:1.25;margin:10px 0 12px;color:#172640}
.public-page .analysis-example-card>p{max-width:940px;margin:0 0 22px;font-size:15px;line-height:1.7}
.public-page .analysis-example-figure{margin:0;max-width:975px}
.public-page .analysis-example-figure img{display:block;width:100%;height:auto;border:1px solid #d5e2e9;border-radius:10px;background:#f7f8fa}
.public-page .analysis-example-figure figcaption{margin-top:10px;font-size:12px;color:#65758a}
@media(max-width:700px){.public-page .analysis-example-card{padding:20px 16px}.public-page .analysis-example-figure img{border-radius:6px}}


/* Data Collection: editable wireless sensor catalog */
.public-page .sensor-catalog-section{background:#fff}
.public-page .sensor-catalog-section .public-lead{max-width:1100px}
.public-page .sensor-catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:26px}
.public-page .sensor-catalog-card{min-width:0;border:1px solid #e0eaf2;border-radius:13px;background:#fff;padding:14px;display:flex;flex-direction:column}
.public-page .sensor-catalog-image-slot{aspect-ratio:1.9/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed #c6d9e9;border-radius:9px;background:#f7fbff;color:#667f9f;font-size:13px;text-align:center}
.public-page .sensor-catalog-placeholder-icon{font-size:26px;line-height:1;color:#fb5522}
.public-page .sensor-catalog-card h3{font-size:18px;line-height:1.3;color:#10294d;margin:16px 0 9px}
.public-page .sensor-catalog-card p{font-size:15px;line-height:1.55;color:#5d7290;margin:0}
@media(max-width:1050px){.public-page .sensor-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.public-page .sensor-catalog-grid{grid-template-columns:1fr}.public-page .sensor-catalog-card{padding:12px}}


/* ASTRA smart load management public page */
.public-page.astra-load-page h1{font-size:clamp(34px,4.1vw,57px);line-height:1.12;color:#10294d;margin:16px 0 22px;letter-spacing:-.035em}
.public-page.astra-load-page h1 em{font-style:normal;color:#238394}
.public-page.astra-load-page h2{font-size:clamp(26px,2.8vw,38px);line-height:1.2;color:#10294d;margin:12px 0 18px}
.public-page.astra-load-page p{color:#60748f;line-height:1.7}
.public-page .astra-load-hero{background:#f1f9fc;padding:85px 0}
.public-page .astra-hero-layout{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:65px}
.public-page .astra-hero-layout>div:first-child>p{font-size:18px;max-width:640px}
.public-page .astra-primary-link{display:inline-flex;background:#ff5722;color:#fff;text-decoration:none;font-weight:700;border-radius:8px;padding:13px 20px;margin-top:15px}
.public-page .astra-primary-link:hover{background:#e94813;color:#fff}
.public-page .astra-hero-visual{border:1px solid #d7e6ef;border-radius:18px;background:#fff;padding:25px 22px;box-shadow:0 15px 40px rgba(16,41,77,.06)}
.public-page .astra-diagram-title{text-align:center;font-size:20px;font-weight:750;color:#10294d;background:#eaf6fa;padding:15px;border-radius:9px}
.public-page .astra-diagram-top,.public-page .astra-diagram-bottom{display:grid;gap:9px;margin-top:18px}
.public-page .astra-diagram-top{grid-template-columns:repeat(3,1fr)}
.public-page .astra-diagram-bottom{grid-template-columns:repeat(4,1fr)}
.public-page .astra-diagram-top span,.public-page .astra-diagram-bottom span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:62px;border:1px solid #cddfea;border-radius:8px;background:#f7fbfd;padding:8px;font-weight:650;font-size:13px;color:#17365b}
.public-page .astra-diagram-bottom span{border-color:#b6d9e3;background:#eaf6fa}
.public-page .astra-diagram-lines{display:flex;justify-content:space-around;height:35px;border-bottom:2px solid #7daebd;position:relative}
.public-page .astra-diagram-lines span{height:34px;border-left:2px solid #7daebd}
.public-page .astra-hero-visual small{display:block;text-align:center;color:#7b8da2;margin-top:15px}
.public-page .astra-three-grid,.public-page .astra-feature-grid{display:grid;gap:20px;margin-top:30px}
.public-page .astra-three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.public-page .astra-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.public-page .astra-info-card{border:1px solid #deebf1;background:#fff;border-radius:14px;padding:26px;min-width:0}
.public-page .astra-info-card h3{font-size:21px;line-height:1.3;color:#112a4e;margin:10px 0}
.public-page .astra-info-card p{margin:0;font-size:16px}
.public-page .astra-card-number{font-size:13px;letter-spacing:.12em;font-weight:800;color:#f45b22}
.public-page .astra-how-section,.public-page .astra-applications{background:#f3f9fc}
.public-page .astra-split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}
.public-page .astra-photo-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:270px;background:#f8fbfd;border:1px dashed #bdd2df;border-radius:13px;color:#6c8299;text-align:center;padding:22px}
.public-page .astra-photo-slot strong{color:#183459;font-size:18px}
.public-page .astra-photo-icon{font-size:31px;color:#f45b22}
.public-page .astra-photo-slot small{color:#f45b22}
.public-page .astra-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}
.public-page .astra-photo-grid .astra-photo-slot{min-height:230px}
.public-page .astra-cta{text-align:center;background:#eaf6fa}
.public-page .astra-cta p{max-width:780px;margin:0 auto}
@media(max-width:1000px){.public-page .astra-hero-layout,.public-page .astra-split{gap:30px}.public-page .astra-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.public-page .astra-hero-layout,.public-page .astra-split,.public-page .astra-three-grid,.public-page .astra-feature-grid,.public-page .astra-photo-grid{grid-template-columns:1fr}.public-page .astra-load-hero{padding:55px 0}.public-page .astra-diagram-bottom{grid-template-columns:repeat(2,1fr)}.public-page .astra-hero-visual{padding:16px}.public-page .astra-diagram-top span{font-size:11px}}


/* Custom PCB engineering section */
.public-page .pcb-service-section .pcb-service-subtitle{color:#61758d;font-size:18px;margin:12px 0 30px}
.public-page .pcb-service-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;align-items:stretch;margin-bottom:24px}
.public-page .pcb-service-copy{align-self:center;max-width:650px}
.public-page .pcb-service-copy p{color:#61758d;line-height:1.75;margin:0 0 16px}
.public-page .pcb-service-feature-photo{min-height:220px;background:#f2f7fa;border:1px dashed #cbdbe7;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:#5f7890}
.public-page .pcb-service-feature-photo>span{font-size:30px;color:#f45b22}
.public-page .pcb-service-feature-photo strong{color:#152942}
.public-page .pcb-service-feature-photo small{font-size:13px}
.public-page .pcb-service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.public-page .pcb-service-card{border:1px solid #dbe5ec;border-radius:12px;padding:24px;background:#fff}
.public-page .pcb-service-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;background:#fff0e9;color:#f45b22;border-radius:10px;font-size:24px;margin-bottom:16px}
.public-page .pcb-service-card h3{font-size:19px;margin:0 0 10px;color:#152942}
.public-page .pcb-service-card p{font-size:15px;line-height:1.65;color:#61758d;margin:0}
.public-page .pcb-service-process{background:#f2f8fb;border:1px solid #dceaf1;border-radius:12px;padding:24px;margin:24px 0 32px}
.public-page .pcb-service-process h3{font-size:18px;color:#152942;margin:0 0 20px}
.public-page .pcb-service-process ol{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:0}
.public-page .pcb-service-process li{display:flex;align-items:center;gap:10px;color:#233f56;font-weight:600;font-size:14px}
.public-page .pcb-service-process li span{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #cbdce8;color:#237f91;font-size:12px}
@media(max-width:800px){.public-page .pcb-service-intro{grid-template-columns:1fr}.public-page .pcb-service-cards{grid-template-columns:1fr}.public-page .pcb-service-process ol{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Real prototype photo replaces the temporary PCB placeholder. */
.public-page .pcb-service-feature-photo.pcb-service-feature-image{padding:0;min-height:0;overflow:hidden;background:#fff;border:1px solid #dbe5ec;display:block}
.public-page .pcb-service-feature-image img{display:block;width:100%;height:100%;min-height:240px;max-height:360px;object-fit:contain;object-position:center;background:#101010}
@media(max-width:800px){.public-page .pcb-service-feature-image img{min-height:0;max-height:none;height:auto}}

/* PCB section visual refinement */
.public-page .pcb-service-heading{font-size:clamp(28px,3vw,40px);line-height:1.2;letter-spacing:-.025em;margin:12px 0}
.public-page .pcb-service-heading span{color:#237f91}
.public-page .pcb-service-intro{align-items:start;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:40px;margin-top:20px}
.public-page .pcb-service-copy{align-self:start;padding-top:8px}
.public-page .pcb-service-feature-photo.pcb-service-feature-image{align-self:start}
.public-page .pcb-service-feature-image img{object-fit:cover;object-position:50% 60%;height:290px;min-height:0;max-height:none}
.public-page .pcb-service-card{height:100%;box-sizing:border-box}
.public-page .pcb-service-process ol{position:relative}
.public-page .pcb-service-process ol:before{content:"";position:absolute;top:18px;left:18px;right:18px;height:1px;background:#cbdce8;pointer-events:none}
.public-page .pcb-service-process li{position:relative;z-index:1}
.public-page .pcb-service-process li span{background:#fff3eb;border-color:#f45b22;color:#e9541e;font-weight:800}
.public-page .pcb-service-cta{display:inline-flex;align-items:center;gap:10px;margin:0 0 12px;color:#f45b22;font-weight:750;text-decoration:none}
.public-page .pcb-service-cta:hover{text-decoration:underline}
@media(max-width:800px){.public-page .pcb-service-intro{grid-template-columns:1fr;gap:18px}.public-page .pcb-service-feature-image img{height:auto;max-height:350px;object-fit:contain}.public-page .pcb-service-process ol:before{display:none}}

/* Align PCB feature with the typography and image rhythm of other sections. */
.public-page .pcb-service-heading{font-size:clamp(25px,2.1vw,31px);line-height:1.25;letter-spacing:-.018em;margin:10px 0 12px;font-weight:750}
.public-page .pcb-service-heading span{color:#237f91}
.public-page .pcb-service-subtitle{margin-bottom:22px}
.public-page .pcb-service-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;margin-top:12px}
.public-page .pcb-service-copy{padding-top:0;align-self:start}
.public-page .pcb-service-copy p:first-child{margin-top:0}
.public-page .pcb-service-feature-photo.pcb-service-feature-image{margin:0;align-self:start}
.public-page .pcb-service-feature-image img{width:100%;height:260px;min-height:0;max-height:none;object-fit:contain;object-position:center;background:#101010}
@media(max-width:800px){.public-page .pcb-service-heading{font-size:clamp(24px,5vw,30px)}.public-page .pcb-service-intro{grid-template-columns:1fr;gap:18px}.public-page .pcb-service-feature-image img{height:auto;max-height:340px}}

/* PCB section: tighten space between subtitle and content. */
.public-page .pcb-service-subtitle{margin-bottom:0}
.public-page .pcb-service-intro{margin-top:0}

/* Subtle engineering-drawing treatment for PCB capabilities. */
.public-page .pcb-service-section{
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(145deg,#f7fbfd 0%,#fff 55%,#f7fbfd 100%);
}
.public-page .pcb-service-section:before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  inset:0 0 auto auto;width:min(65%,950px);height:440px;opacity:.36;
  background-image:
    radial-gradient(circle at 20% 25%,transparent 0 5px,#b6dce7 5.5px 6.5px,transparent 7px),
    radial-gradient(circle at 72% 58%,transparent 0 5px,#b6dce7 5.5px 6.5px,transparent 7px),
    repeating-linear-gradient(0deg,transparent 0 49px,#d8eaf0 50px,#d8eaf0 51px,transparent 52px 100px),
    repeating-linear-gradient(90deg,transparent 0 49px,#d8eaf0 50px,#d8eaf0 51px,transparent 52px 100px);
  mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);
}
.public-page .pcb-service-section .public-wrap{position:relative}
.public-page .pcb-service-heading{font-size:clamp(25px,2.1vw,31px);max-width:720px}
.public-page .pcb-service-subtitle{max-width:750px}
.public-page .pcb-service-intro{margin-top:18px;gap:32px;align-items:center}
.public-page .pcb-service-copy{padding:0}
.public-page .pcb-service-feature-photo.pcb-service-feature-image{
  border:1px solid #d9e6ec;border-radius:14px;overflow:hidden;
  box-shadow:0 12px 30px rgba(25,54,74,.07)
}
.public-page .pcb-service-feature-image img{height:265px;object-fit:contain}
.public-page .pcb-service-cards{margin-top:28px;gap:18px}
.public-page .pcb-service-card{
  background:rgba(255,255,255,.92);border:1px solid #dbe8ee;
  box-shadow:0 5px 18px rgba(25,54,74,.035);
}
.public-page .pcb-service-card:hover{border-color:#a6ccd6;transform:translateY(-2px);transition:transform .2s,border-color .2s}
.public-page .pcb-service-process{background:#edf6f9;border:1px solid #d9e9ee;border-radius:12px}
@media(max-width:800px){.public-page .pcb-service-section:before{width:100%;opacity:.2}.public-page .pcb-service-intro{align-items:start}.public-page .pcb-service-feature-image img{height:auto}}

/* PCB: show actual board layout above the existing 3D prototype. */
.public-page .pcb-service-image-stack{display:grid;gap:14px;min-width:0;align-self:start}
.public-page .pcb-service-image-stack .pcb-service-feature-photo{margin:0;background:#101010;overflow:hidden;border-radius:12px}
.public-page .pcb-service-image-stack .pcb-service-feature-image img{display:block;width:100%;height:230px;min-height:0;max-height:none;object-fit:contain;background:#101010}
.public-page .pcb-service-image-stack figcaption{padding:8px 12px;background:#fff;color:#64778a;font-size:13px;border-top:1px solid #e0e9ee}
@media(max-width:800px){.public-page .pcb-service-image-stack .pcb-service-feature-image img{height:auto;max-height:290px}}

/* PCB gallery: keep copy compact and place both visuals on one balanced row. */
.public-page .pcb-service-intro{display:block;margin:18px 0 22px}
.public-page .pcb-service-copy{max-width:100%;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start}
.public-page .pcb-service-copy p{margin:0;line-height:1.7}
.public-page .pcb-service-image-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0 0 26px;align-items:stretch}
.public-page .pcb-service-image-stack .pcb-service-feature-photo{margin:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #dbe5ec;border-radius:12px;background:#101010}
.public-page .pcb-service-image-stack .pcb-service-feature-image img{width:100%;height:275px;min-height:0;max-height:none;object-fit:contain;object-position:center;background:#101010}
.public-page .pcb-service-image-stack figcaption{margin-top:auto;text-align:center;background:#fff;padding:10px 12px;color:#61758d;font-size:13px}
@media(max-width:800px){.public-page .pcb-service-copy{grid-template-columns:1fr;gap:12px}.public-page .pcb-service-image-stack{grid-template-columns:1fr;gap:16px}.public-page .pcb-service-image-stack .pcb-service-feature-image img{height:auto;max-height:330px;aspect-ratio:16/9;object-fit:contain}}

/* Two-line balancing heading: navy statement followed by teal outcome. */
.public-page .about-balancing-section h2 .about-balancing-heading-accent{display:block;color:#218394;line-height:1.2;margin-top:4px}

/* HVAC IoT: upcoming Edge AI Gateway */
.public-page .edge-ai-section{background:linear-gradient(135deg,#f8fcfe 0%,#fff 70%)}
.public-page .edge-ai-section .public-wrap{max-width:1280px}
.public-page .edge-ai-heading{font-size:clamp(27px,2.4vw,36px);line-height:1.22;color:#172640;margin:16px 0}
.public-page .edge-ai-heading span{color:#218394}
.public-page .edge-ai-lead{max-width:920px;color:#62738b;font-size:17px;line-height:1.75;margin:0 0 28px}
.public-page .edge-ai-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:center;margin-bottom:28px}
.public-page .edge-ai-intro>p{color:#62738b;line-height:1.75;margin:0}
.public-page .edge-ai-diagram{display:flex;align-items:center;justify-content:center;gap:12px;min-height:190px;padding:25px;border:1px solid #dceaf0;border-radius:14px;background-color:#f1f9fc;background-image:linear-gradient(#dceef355 1px,transparent 1px),linear-gradient(90deg,#dceef355 1px,transparent 1px);background-size:30px 30px;color:#218394}
.public-page .edge-ai-node{flex:1;min-width:0;padding:17px 9px;border:1px solid #c7dfe8;border-radius:10px;background:#fff;color:#172640;text-align:center;font-weight:700;font-size:14px}
.public-page .edge-ai-core{border-color:#218394;box-shadow:0 3px 12px #21839416}
.public-page .edge-ai-core small{display:block;font-weight:400;color:#62738b;margin-top:5px}
.public-page .edge-ai-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.public-page .edge-ai-features article{background:#fff;border:1px solid #dce6ee;border-top:3px solid #218394;border-radius:10px;padding:22px}
.public-page .edge-ai-features article:nth-child(odd){border-top-color:#f45b22}
.public-page .edge-ai-features h3{font-size:17px;color:#172640;margin:0 0 10px}
.public-page .edge-ai-features p{font-size:15px;color:#62738b;line-height:1.65;margin:0}
.public-page .edge-ai-note{font-size:13px;color:#62738b;margin:20px 0 0}
@media(max-width:850px){.public-page .edge-ai-intro{grid-template-columns:1fr}.public-page .edge-ai-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.public-page .edge-ai-features{grid-template-columns:1fr}.public-page .edge-ai-diagram{gap:5px;padding:14px}.public-page .edge-ai-node{font-size:11px;padding:12px 5px}}

/* Edge AI gateway: compact two-line heading and dark feature cards. */
.public-page .edge-ai-heading{font-size:clamp(25px,2.1vw,33px);line-height:1.2}
.public-page .edge-ai-features article{
  position:relative;
  min-height:155px;
  box-sizing:border-box;
  background:linear-gradient(145deg,#183e69 0%,#0e294e 100%);
  border:1px solid #254f78;
  border-top:3px solid #22a0b4;
  border-radius:13px;
  padding:25px 23px;
  box-shadow:0 6px 18px rgba(15,44,78,.08);
}
.public-page .edge-ai-features article:nth-child(odd){border-top-color:#f45b22}
.public-page .edge-ai-features h3{color:#fff;font-size:18px;line-height:1.35;margin:0 0 12px}
.public-page .edge-ai-features p{color:#d2e1ef;font-size:15px;line-height:1.65;margin:0}


/* Edge AI Gateway: minimal technical sketch and responsive hardware hero. */
.public-page .edge-ai-section{position:relative;overflow:hidden;background:#fbfdff}
.public-page .edge-ai-section:before{content:"";pointer-events:none;position:absolute;right:-12%;top:-120px;width:70%;height:430px;border:1px solid rgba(108,179,211,.12);border-radius:50%;transform:rotate(-13deg);box-shadow:0 22px 0 rgba(108,179,211,.045),0 44px 0 rgba(108,179,211,.045)}
.public-page .edge-ai-section:after{content:"✦";position:absolute;pointer-events:none;right:10%;top:32px;color:rgba(92,177,217,.25);font-size:42px}
.public-page .edge-ai-section .public-wrap{position:relative;z-index:1}
.public-page .edge-ai-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:center;margin-bottom:30px}
.public-page .edge-ai-heading{font-size:clamp(25px,2.05vw,32px);line-height:1.22;margin:15px 0}
.public-page .edge-ai-lead{font-size:16px;line-height:1.75;max-width:620px;margin:0}
.public-page .edge-ai-hero-media{display:flex;align-items:center;justify-content:center;gap:20px;min-width:0}
.public-page .edge-ai-hero-media>img{display:block;object-fit:contain;width:min(72%,430px);height:auto;max-height:240px}
.public-page .edge-ai-brand-panel{display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid #deedf4;border-radius:13px;background:rgba(255,255,255,.85);padding:17px 19px;min-width:88px;box-shadow:0 8px 24px rgba(32,88,125,.04)}
.public-page .edge-ai-brand-ai{font-weight:800;font-size:27px;color:#182f50;line-height:1}
.public-page .edge-ai-spark{color:#9bd3ec;font-size:13px;vertical-align:top}
.public-page .edge-ai-brand-divider{height:1px;width:44px;background:#dce8f0}
.public-page .edge-ai-brand-nvidia{font-weight:800;letter-spacing:-.035em;color:#65a900;font-size:13px}
.public-page .edge-ai-features article{display:flex;align-items:flex-start;gap:15px;min-height:132px;padding:23px 20px;background:linear-gradient(135deg,#11385f,#0d2a4e);border-top:0}
.public-page .edge-ai-features article:nth-child(odd){border-top:0}
.public-page .edge-ai-feature-icon{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:rgba(80,161,218,.38);color:#fff;font-size:25px}
.public-page .edge-ai-features h3{font-size:16px;margin:2px 0 9px}
.public-page .edge-ai-features p{font-size:14px;line-height:1.55}
@media(max-width:850px){.public-page .edge-ai-hero{grid-template-columns:1fr;gap:18px}.public-page .edge-ai-hero-media{justify-content:flex-start}.public-page .edge-ai-hero-media>img{max-height:210px}}
@media(max-width:500px){.public-page .edge-ai-hero-media{gap:10px}.public-page .edge-ai-brand-panel{padding:12px;min-width:66px}.public-page .edge-ai-features article{min-height:0}.public-page .edge-ai-section:after{right:5%;font-size:25px}}

/* Edge AI gateway image: reduce hardware size without altering section layout. */
.public-page .edge-ai-hero-media>img{width:min(55%,330px);max-height:185px;object-fit:contain}
@media(max-width:850px){.public-page .edge-ai-hero-media>img{width:min(58%,300px);max-height:175px}}
@media(max-width:500px){.public-page .edge-ai-hero-media>img{width:min(60%,240px);max-height:150px}}

/* Edge Processing: six equal-height navy cards alongside the advantages panel. */
.public-page .acquisition-processing-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:stretch}
.public-page .acquisition-processing-how{display:flex;flex-direction:column;min-width:0}
.public-page .acquisition-processing-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;flex:1}
.public-page .acquisition-processing-step{position:relative;min-width:0;min-height:145px;box-sizing:border-box;padding:19px 17px 17px;border-radius:12px;background:linear-gradient(145deg,#183e68,#102b4d);color:#fff;border:1px solid #28557f;box-shadow:0 7px 18px rgba(16,43,77,.08)}
.public-page .acquisition-processing-step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#2c6c92;color:#fff;font-size:12px;font-weight:700;margin-bottom:9px}
.public-page .acquisition-processing-grid .acquisition-processing-step h4{color:#fff;font-size:15px;line-height:1.3;margin:0 0 7px;font-weight:750}
.public-page .acquisition-processing-grid .acquisition-processing-step p{color:#d8e6f3;font-size:13px;line-height:1.5;margin:0}
@media(max-width:760px){.public-page .acquisition-processing-grid{grid-template-columns:1fr}.public-page .acquisition-processing-steps{grid-template-rows:auto}.public-page .acquisition-processing-step{min-height:155px}}
@media(max-width:420px){.public-page .acquisition-processing-steps{grid-template-columns:1fr}.public-page .acquisition-processing-step{min-height:0}}

/* Edge Processing visual refresh: compact technical dashboard, clear hierarchy. */
.public-page .acquisition-processing-section{background:linear-gradient(180deg,#fbfdff 0%,#f3f9fc 100%)}
.public-page .acquisition-processing-header{margin-bottom:30px}
.public-page .acquisition-processing-grid{grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:20px;align-items:stretch}
.public-page .acquisition-processing-how,.public-page .acquisition-processing-benefits{padding:27px;border:1px solid #dce9f0;border-radius:18px;background:#fff;box-shadow:0 12px 32px rgba(20,54,81,.045)}
.public-page .acquisition-processing-grid h3{font-size:19px;letter-spacing:-.02em;margin:0 0 19px}
.public-page .acquisition-processing-steps{gap:10px;grid-template-rows:repeat(3,minmax(0,1fr))}
.public-page .acquisition-processing-step{display:flex;flex-direction:column;min-height:150px;padding:17px 19px;border:1px solid #2b5279;border-radius:12px;background:linear-gradient(145deg,#1c456e 0%,#112f52 100%);box-shadow:none;transition:transform .2s ease,box-shadow .2s ease}
.public-page .acquisition-processing-step:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(17,47,82,.16)}
.public-page .acquisition-processing-step-number{width:29px;height:29px;margin:0 0 12px;border-radius:8px;background:#327b9e;color:#fff;letter-spacing:.02em}
.public-page .acquisition-processing-grid .acquisition-processing-step h4{font-size:15px;line-height:1.3;margin:0 0 7px;color:#fff}
.public-page .acquisition-processing-grid .acquisition-processing-step p{font-size:13px;line-height:1.5;color:#d8e7f2;margin:0}
.public-page .acquisition-processing-benefits{display:flex;flex-direction:column}
.public-page .acquisition-processing-benefits ul{display:grid;gap:9px;margin:0 0 18px}
.public-page .acquisition-processing-grid .acquisition-processing-benefits li{margin:0;padding:13px 14px 13px 44px;border:1px solid #e0ebf1;border-radius:10px;background:#f5fafc;color:#405c76;font-size:14px;line-height:1.45}
.public-page .acquisition-processing-grid .acquisition-processing-benefits li::before{left:14px;top:50%;transform:translateY(-50%)}
.public-page .acquisition-processing-photo.acquisition-processing-formulas{margin:auto 0 0;padding:14px;border:1px solid #d5e7f2;border-radius:12px;background:#e8f5fc}
.public-page .acquisition-processing-formulas img{width:100%;height:auto;max-height:245px;object-fit:contain}
.public-page .acquisition-processing-applications{margin-top:18px;border:1px solid #dce9f0;border-radius:14px;background:#f0f8fb}
@media(max-width:900px){.public-page .acquisition-processing-grid{grid-template-columns:1fr}.public-page .acquisition-processing-steps{grid-template-rows:auto}.public-page .acquisition-processing-step{min-height:145px}.public-page .acquisition-processing-formulas img{max-height:none}}
@media(max-width:480px){.public-page .acquisition-processing-how,.public-page .acquisition-processing-benefits{padding:18px}.public-page .acquisition-processing-steps{grid-template-columns:1fr}.public-page .acquisition-processing-step{min-height:0}.public-page .acquisition-processing-grid .acquisition-processing-benefits li{font-size:13px}}
@media(prefers-reduced-motion:reduce){.public-page .acquisition-processing-step{transition:none}.public-page .acquisition-processing-step:hover{transform:none}}

/* About overview: dedicated image area above each service card */
.public-page .about-overview-card{overflow:hidden;display:flex;flex-direction:column}
.public-page .about-overview-card-image{aspect-ratio:16/9;width:100%;margin:0 0 22px;border:1px dashed #bfd1dd;border-radius:10px;background:#f1f6f9;color:#607c90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;font-size:13px;line-height:1.45}
.public-page .about-overview-card-image-icon{font-size:30px;line-height:1;color:#8aa9b9}
.public-page .about-overview-card h3{margin-top:0}
.public-page .about-overview-card a{margin-top:auto;align-self:flex-start}

/* About: restrained, typography-led process timeline (no image placeholders) */
.public-page .about-process-section{background:#f7fafc}
.public-page .about-process-heading{max-width:850px;margin-bottom:32px}
.public-page .about-process-heading h2{margin:8px 0 14px;color:#102a47;letter-spacing:-.025em}
.public-page .about-process-heading>p{margin:0;color:#536b80;line-height:1.75}
.public-page .about-process-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative}
.public-page .about-process-step{position:relative;display:flex;flex-direction:column;min-height:240px;padding:26px 24px 22px;border:1px solid #dce6ec;border-top:3px solid #16859a;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(15,49,72,.035)}
.public-page .about-process-step-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px}
.public-page .about-process-number{font-size:35px;line-height:1;font-weight:700;letter-spacing:-.06em;color:#13869a}
.public-page .about-process-phase{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#778c9e}
.public-page .about-process-step h3{font-size:21px;margin:0 0 10px;color:#0f2a47}
.public-page .about-process-step p{font-size:14px;line-height:1.65;color:#536b80;margin:0 0 20px}
.public-page .about-process-step-detail{margin-top:auto;padding-top:14px;border-top:1px solid #e7edf1;color:#187e90;font-size:12px;line-height:1.45;font-weight:600}
.public-page .about-process-footnote{margin:23px 0 0;padding-left:16px;border-left:3px solid #16859a;font-size:13px;color:#536b80}
@media(max-width:900px){.public-page .about-process-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.public-page .about-process-timeline{grid-template-columns:1fr}.public-page .about-process-step{min-height:0;padding:22px}.public-page .about-process-step-top{margin-bottom:16px}}

/* About page: subtle blurred rooftop HVAC background for the process section */
.public-page .about-process-section{position:relative;isolation:isolate;overflow:hidden;background:#edf4f8;padding-top:72px;padding-bottom:76px}
.public-page .about-process-section::before{content:"";position:absolute;inset:-24px;z-index:-2;background-image:url("../../images/site-assets/boiler.jpg");background-size:cover;background-position:center 45%;filter:blur(11px);opacity:.35;transform:scale(1.04)}
.public-page .about-process-section::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(245,250,253,.90),rgba(245,250,253,.78) 62%,rgba(245,250,253,.67))}
.public-page .about-process-section .about-process-heading{max-width:900px}
.public-page .about-process-section .about-process-step{box-shadow:0 9px 26px rgba(21,54,75,.10);background:rgba(255,255,255,.96)}
@media(max-width:560px){.public-page .about-process-section{padding-top:48px;padding-bottom:52px}}

/* Keep the rooftop photo in place and add a visible gap before the example panel. */
@media(min-width:901px){
  .public-page .about-balancing-layout{align-items:start}
  .public-page .about-balancing-example{display:block;align-self:start}
  .public-page .about-balancing-example-copy{margin-top:46px}
}

/* Fix: make the blurred boiler photo visible behind the four process cards. */
.public-page .about-process-section::before{z-index:0;opacity:.75;filter:blur(8px)}
.public-page .about-process-section::after{z-index:1;background:linear-gradient(90deg,rgba(245,250,253,.78),rgba(245,250,253,.68) 60%,rgba(245,250,253,.55))}
.public-page .about-process-section>.public-wrap{position:relative;z-index:2}

/* Flexible communication card icons */
.public-page .communication-card-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:22px;border-radius:13px;background:#e9f5f8;color:#12839a}
.public-page .communication-card-icon svg{display:block;width:31px;height:31px}
.public-page .communication-card h3{margin-top:0}

/* Consistent uploaded navy icon images in communication cards */
.public-page .communication-card-icon-image{width:76px;height:76px;margin-bottom:18px;background:transparent;border-radius:0}
.public-page .communication-card-icon-image img{display:block;width:100%;height:100%;object-fit:contain}

/* Enerinno Dashboard Features: warm orange accent, six balanced cards */
.public-page .dashboard-features-section{background:linear-gradient(135deg,#fffaf6 0%,#fff 60%,#fff5ec 100%);padding-top:70px;padding-bottom:78px}
.public-page .dashboard-features-heading{max-width:750px;margin-bottom:30px}
.public-page .dashboard-features-eyebrow{display:block;color:#e85b20;font-size:12px;letter-spacing:.12em;font-weight:800;margin-bottom:10px}
.public-page .dashboard-features-heading h2{color:#172640;font-size:clamp(27px,2.3vw,36px);letter-spacing:-.025em;margin:0 0 12px}
.public-page .dashboard-features-heading p{color:#65758b;line-height:1.7;margin:0}
.public-page .dashboard-features-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.public-page .dashboard-features-grid>.public-card{position:relative;min-width:0;min-height:208px;padding:30px 27px 26px;border:1px solid #f2dfd2;border-radius:13px;background:#fff;box-shadow:0 7px 22px rgba(106,53,18,.045);transition:transform .2s ease,box-shadow .2s ease}
.public-page .dashboard-features-grid>.public-card::before{content:"";display:block;width:38px;height:4px;background:#f36a2b;border-radius:3px;margin-bottom:22px}
.public-page .dashboard-features-grid>.public-card h3{color:#182d47;font-size:19px;line-height:1.35;margin:0 0 12px}
.public-page .dashboard-features-grid>.public-card p{color:#60748a;line-height:1.7;margin:0}
@media(hover:hover){.public-page .dashboard-features-grid>.public-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(106,53,18,.10)}}
@media(max-width:850px){.public-page .dashboard-features-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.public-page .dashboard-features-grid{grid-template-columns:1fr}.public-page .dashboard-features-section{padding-top:48px;padding-bottom:52px}.public-page .dashboard-features-grid>.public-card{min-height:0}}

/* Dashboard feature screenshot showcase */
.public-page .dashboard-showcase-section{background:#f8fafc;padding-top:66px;padding-bottom:76px}
.public-page .dashboard-showcase-section .public-eyebrow{color:#e85b20}
.public-page .dashboard-showcase-section h2{color:#172640;margin:10px 0 12px}
.public-page .dashboard-showcase-section .public-lead{max-width:850px;margin-bottom:30px}
.public-page .dashboard-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.public-page .dashboard-showcase-card{margin:0;overflow:hidden;border:1px solid #e0e8ef;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(18,46,72,.04)}
.public-page .dashboard-showcase-placeholder{aspect-ratio:16/10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(145deg,#edf3f7,#f8fafc);border-bottom:1px solid #e0e8ef;color:#7b8fa0;font-size:13px}
.public-page .dashboard-showcase-placeholder-symbol{font-size:29px;color:#d86a36}
.public-page .dashboard-showcase-card figcaption{display:flex;flex-direction:column;gap:7px;padding:20px 21px 22px}
.public-page .dashboard-showcase-card figcaption strong{font-size:17px;color:#172640}
.public-page .dashboard-showcase-card figcaption span{font-size:13px;line-height:1.6;color:#63768b}
@media(max-width:850px){.public-page .dashboard-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.public-page .dashboard-showcase-grid{grid-template-columns:1fr}}

/* Flexible communication: restrained industrial navy theme */
.public-page .flexible-communication-section{position:relative;isolation:isolate;overflow:hidden;background:#08264b;padding-top:72px;padding-bottom:78px}
.public-page .flexible-communication-section::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(131,164,193,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(131,164,193,.065) 1px,transparent 1px);background-size:68px 68px;mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent)}
.public-page .flexible-communication-section h2{color:#fff;margin-bottom:27px;font-weight:750}
.public-page .flexible-communication-section h2::after{content:"";display:block;width:43px;height:3px;margin-top:13px;border-radius:2px;background:#f36a2b}
.public-page .flexible-communication-section .public-grid{align-items:stretch}
.public-page .flexible-communication-section .communication-card{background:#fff;border:1px solid #dce5ee;border-radius:10px;box-shadow:0 8px 22px rgba(0,13,35,.13);padding:28px 26px}
.public-page .flexible-communication-section .communication-card h3{color:#112b4c}
.public-page .flexible-communication-section .communication-card p{color:#596e84}
@media(max-width:600px){.public-page .flexible-communication-section{padding-top:48px;padding-bottom:54px}}

/* Compact Flexible communication section */
.public-page .flexible-communication-section{padding-top:42px;padding-bottom:46px}
.public-page .flexible-communication-section h2{font-size:25px;margin-bottom:20px}
.public-page .flexible-communication-section h2::after{margin-top:9px}
.public-page .flexible-communication-section .communication-card{padding:20px 22px;min-height:0}
.public-page .flexible-communication-section .communication-card-icon-image{width:58px;height:58px;margin-bottom:12px}
.public-page .flexible-communication-section .communication-card h3{font-size:18px;margin-bottom:10px}
.public-page .flexible-communication-section .communication-card p{font-size:14px;line-height:1.6}
@media(max-width:600px){.public-page .flexible-communication-section{padding-top:34px;padding-bottom:38px}}

/* Engineering drawing style: light blueprint, restrained technical drafting marks */
.public-page .flexible-communication-section{
  background:linear-gradient(110deg,#f0f5f9 0%,#f8fbfd 52%,#edf3f8 100%);
  padding-top:48px;padding-bottom:54px;
}
.public-page .flexible-communication-section::before{
  z-index:-1;opacity:1;mask-image:none;
  background-image:
    linear-gradient(rgba(55,94,132,.075) 1px,transparent 1px),
    linear-gradient(90deg,rgba(55,94,132,.075) 1px,transparent 1px);
  background-size:90px 90px;
}
.public-page .flexible-communication-section::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 0% 53%,transparent 0 155px,rgba(63,105,143,.22) 156px 157px,transparent 158px 179px,rgba(63,105,143,.13) 180px 181px,transparent 182px),
    linear-gradient(90deg,transparent 4.9%,rgba(63,105,143,.12) 5%,transparent 5.1%),
    linear-gradient(0deg,transparent 49.9%,rgba(63,105,143,.10) 50%,transparent 50.1%);
  opacity:.55;
}
.public-page .flexible-communication-section h2{color:#0b294d;font-size:25px;margin-bottom:24px}
.public-page .flexible-communication-section .communication-card{
  background:rgba(255,255,255,.97);border:1px solid #d6e2ed;
  box-shadow:0 5px 15px rgba(24,54,83,.065);border-radius:8px;
  padding:23px 25px;min-height:0;
}
.public-page .flexible-communication-section .communication-card h3{color:#0b294d}
.public-page .flexible-communication-section .communication-card p{color:#566e87}
@media(max-width:600px){.public-page .flexible-communication-section{padding-top:36px;padding-bottom:40px}}


/* Contact hero: split composition — text on navy, Town photo on right. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,#10243b 0%,#10243b 43%,rgba(16,36,59,.98) 49%,rgba(16,36,59,.72) 57%,rgba(16,36,59,0) 70%),
    url("../../images/site-assets/Town.jpg")!important;
  background-position:center center, right center!important;
  background-size:cover,auto 100%!important;
  background-repeat:no-repeat!important;
}
.public-page .contact-toronto-hero .public-wrap {
  width:min(100%,1280px);
  margin-left:auto;margin-right:auto;
}
@media(max-width:900px){
  .public-page .public-hero.contact-toronto-hero {
    background-image:
      linear-gradient(90deg,rgba(16,36,59,.98) 0%,rgba(16,36,59,.96) 55%,rgba(16,36,59,.55) 100%),
      url("../../images/site-assets/Town.jpg")!important;
    background-position:center,right center!important;
    background-size:cover,auto 100%!important;
  }
}


/* Contact hero background refinement: gentle navy-to-Town photo transition.
   Keep all typography, layout, and foreground elements unchanged. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 48%,
      rgba(16,36,59,.98) 53%,
      rgba(16,36,59,.88) 59%,
      rgba(16,36,59,.55) 66%,
      rgba(16,36,59,.18) 73%,
      rgba(16,36,59,0) 79%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:cover,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}
@media(max-width:900px) {
  .public-page .public-hero.contact-toronto-hero {
    background-image:
      linear-gradient(90deg,
        rgba(16,36,59,.98) 0%,
        rgba(16,36,59,.96) 48%,
        rgba(16,36,59,.74) 75%,
        rgba(16,36,59,.5) 100%),
      url("../../images/site-assets/Town.jpg")!important;
  }
}


/* Contact hero seamless fade: photo covers entire hero behind opaque navy left. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 49%,
      rgba(16,36,59,.98) 54%,
      rgba(16,36,59,.88) 59%,
      rgba(16,36,59,.60) 65%,
      rgba(16,36,59,.25) 72%,
      rgba(16,36,59,0) 80%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,cover!important;
  background-position:center center,center center!important;
  background-repeat:no-repeat!important;
}
@media(max-width:900px) {
  .public-page .public-hero.contact-toronto-hero {
    background-image:
      linear-gradient(90deg,
        rgba(16,36,59,.99) 0%,
        rgba(16,36,59,.97) 48%,
        rgba(16,36,59,.83) 73%,
        rgba(16,36,59,.65) 100%),
      url("../../images/site-assets/Town.jpg")!important;
    background-size:100% 100%,cover!important;
    background-position:center center,center center!important;
  }
}


/* Contact Town skyline framing: move CN Tower into the visible right panel. */
.public-page .public-hero.contact-toronto-hero {
  background-position:center center, right center!important;
}
@media(max-width:900px) {
  .public-page .public-hero.contact-toronto-hero {
    background-position:center center, right center!important;
  }
}


/* Contact hero FINAL photo framing: fit full Town image into right 54% of hero.
   Avoid cover cropping (which concealed the CN Tower); fade its left edge. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 46%,
      rgba(16,36,59,.99) 49%,
      rgba(16,36,59,.87) 54%,
      rgba(16,36,59,.58) 60%,
      rgba(16,36,59,.20) 67%,
      rgba(16,36,59,0) 74%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,54% 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}
@media(max-width:900px){
  .public-page .public-hero.contact-toronto-hero{
    background-image:
      linear-gradient(90deg,rgba(16,36,59,.98),rgba(16,36,59,.86) 55%,rgba(16,36,59,.5)),
      url("../../images/site-assets/Town.jpg")!important;
    background-size:100% 100%,100% 100%!important;
    background-position:center center,right center!important;
  }
}


/* Contact hero: preserve Town.jpg natural proportions (no distortion).
   The image is height-fitted and right aligned; navy gradient covers its left edge. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,
      #10243b 0%,#10243b 45%,
      rgba(16,36,59,.98) 51%,
      rgba(16,36,59,.80) 58%,
      rgba(16,36,59,.42) 66%,
      rgba(16,36,59,0) 76%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}
@media(max-width:900px){
  .public-page .public-hero.contact-toronto-hero{
    background-image:
      linear-gradient(90deg,rgba(16,36,59,.99),rgba(16,36,59,.92) 60%,rgba(16,36,59,.55)),
      url("../../images/site-assets/Town.jpg")!important;
    background-size:100% 100%,auto 100%!important;
    background-position:center center,right center!important;
  }
}


/* Contact hero: fade ONLY the navy/photo boundary; preserve Town photo size and framing. */
.public-page .public-hero.contact-toronto-hero {
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 65%,
      rgba(16,36,59,.98) 67%,
      rgba(16,36,59,.84) 70%,
      rgba(16,36,59,.48) 74%,
      rgba(16,36,59,.16) 78%,
      rgba(16,36,59,0) 82%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}


/* Contact hero: feather only the photo's left edge (~150px at desktop).
   Keep Town.jpg at its existing natural aspect ratio and right alignment. */
.public-page .public-hero.contact-toronto-hero {
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b calc(69% - 20px),
      rgba(16,36,59,.98) calc(70% - 20px),
      rgba(16,36,59,.88) calc(72% - 20px),
      rgba(16,36,59,.63) calc(74% - 20px),
      rgba(16,36,59,.33) calc(76% - 20px),
      rgba(16,36,59,.10) calc(78% - 20px),
      rgba(16,36,59,0) calc(80% - 20px)),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}


/* Contact hero: gradual leftward blend across the actual Town photo edge.
   Preserve natural photo ratio, right alignment, and all foreground content. */
.public-page .public-hero.contact-toronto-hero {
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 62%,
      rgba(16,36,59,.99) 67%,
      rgba(16,36,59,.93) 71%,
      rgba(16,36,59,.75) 75%,
      rgba(16,36,59,.46) 79%,
      rgba(16,36,59,.18) 83%,
      rgba(16,36,59,0) 87%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}


/* Contact hero: seamless navy-to-photo transition with no visible photo seam.
   Keep image natural size, right alignment, text and layout unchanged. */
.public-page .public-hero.contact-toronto-hero {
  background-color:#10243b!important;
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b 71%,
      rgba(16,36,59,.98) 73%,
      rgba(16,36,59,.86) 76%,
      rgba(16,36,59,.60) 80%,
      rgba(16,36,59,.28) 85%,
      rgba(16,36,59,0) 90%),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto 100%!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}


/* Contact hero: extend Town photo 20px to the left, without stretching. */
.public-page .public-hero.contact-toronto-hero {
  background-size:100% 100%,calc(100% * 0 + 1px) auto!important;
  background-size:100% 100%,auto calc(100% + 20px)!important;
  background-position:center center,right center!important;
}


/* Contact hero: shift navy-to-photo gradient boundary 30px left.
   Preserve photo size, alignment and all content. */
.public-page .public-hero.contact-toronto-hero {
  background-image:
    linear-gradient(90deg,
      #10243b 0%,
      #10243b calc(71% - 30px),
      rgba(16,36,59,.98) calc(73% - 30px),
      rgba(16,36,59,.86) calc(76% - 30px),
      rgba(16,36,59,.60) calc(80% - 30px),
      rgba(16,36,59,.28) calc(85% - 30px),
      rgba(16,36,59,0) calc(90% - 30px)),
    url("../../images/site-assets/Town.jpg")!important;
  background-size:100% 100%,auto calc(100% + 20px)!important;
  background-position:center center,right center!important;
  background-repeat:no-repeat!important;
}

/* Contact page: shift Toronto skyline 40px left */
@media (min-width: 901px) {
  .public-page .public-hero.contact-toronto-hero {
    background-position:
      center center,
      right 40px center !important;
  }
}

/* Contact page: wider skyline, aligned to right edge */
@media (min-width: 901px) {
  .public-page .public-hero.contact-toronto-hero {
    background-size:
      100% 100%,
      auto calc(100% + 100px) !important;

    background-position:
      center center,
      right center !important;
  }
}

/* Contact skyline: balanced city visibility */
@media (min-width: 901px) {
  .public-page .public-hero.contact-toronto-hero {
    background-size: 100% 100%, auto calc(100% + 60px) !important;
    background-position: center center, right center !important;
  }
}

/* Enerinno Contact page — orange services section */
.project-applications-section {
  background: linear-gradient(180deg, #fffaf5 0%, #ffffff 100%);
}

.project-applications-section .project-applications-heading {
  color: #152b42;
  margin-bottom: 18px;
}

.project-applications-section .project-applications-heading span {
  color: #f15a24;
}

.project-applications-section .project-applications-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px;
}

.project-applications-section .project-application-card {
  border: 1px solid #f0d9c9;
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 5px 18px rgba(65, 39, 20, 0.045);
}

.project-applications-section .project-application-photo {
  background: #fff0e5;
  border-bottom: 1px solid #f2d7c4;
  color: #e65a22;
}

.project-applications-section .project-application-photo-icon,
.project-applications-section .project-application-photo small {
  color: #e65a22;
}

.project-applications-section .project-application-body h3 {
  color: #dc531d;
}

@media (max-width: 900px) {
  .project-applications-section .project-applications-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .project-applications-section .project-applications-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Enerinno modern Contact Request form */
.public-page .contact-request {
  background: linear-gradient(160deg, #f0f5f8, #f8fafc);
}

.public-page .contact-request-head {
  margin-bottom: 30px;
}

.public-page .contact-request-head h2 {
  color: #10243b;
  font-size: clamp(30px, 3vw, 40px);
  letter-spacing: -0.025em;
}

.public-page .contact-request-form {
  background: #ffffff;
  border: 1px solid #dfe8ef;
  border-radius: 18px;
  padding: clamp(24px, 3vw, 44px);
  box-shadow: 0 12px 36px rgba(16, 36, 59, 0.055);
}

.public-page .contact-request-form input,
.public-page .contact-request-form select,
.public-page .contact-request-form textarea {
  border: 1px solid #d4e0e9;
  border-radius: 9px;
  background: #fbfcfe;
  transition: border-color .2s, box-shadow .2s;
}

.public-page .contact-request-form input:focus,
.public-page .contact-request-form select:focus,
.public-page .contact-request-form textarea:focus {
  outline: none;
  border-color: #f15a24;
  box-shadow: 0 0 0 3px rgba(241, 90, 36, .12);
}

/* Compact orange Send Request button */
.public-page .contact-request-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  padding: 9px 16px;
  border: 1px solid #e95521;
  border-radius: 8px;
  background: #e95521;
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: background .2s, transform .2s;
}

.public-page .contact-request-form button[type="submit"]:hover {
  background: #c94719;
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .public-page .contact-request-form button[type="submit"] {
    transition: none;
  }
}

/* Enerinno Contact Request — mechanical installation background */

.public-page .contact-request {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #edf3f6;
}

/* Blurred mechanical installation photograph */
.public-page .contact-request::before {
    content: "";
    position: absolute;
    inset: -18px;
    z-index: -2;
    background-image: url("../../images/site-assets/boiler.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    filter: blur(7px);
}

/* Light overlay for readability */
.public-page .contact-request::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(245, 249, 252, 0.80);
}

/* Smaller section heading */
.public-page .contact-request h2 {
    font-size: 30px !important;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

/* Keep form prominent */
.public-page .contact-request-form {
    position: relative;
    z-index: 1;
    background: rgba(255, 255, 255, 0.97);
}

@media (max-width: 600px) {
    .public-page .contact-request h2 {
        font-size: 26px !important;
    }
}

/* Smart Load Management — compact hero headings */
.public-page.astra-load-page .astra-load-hero h1 {
    font-size: 48px !important;
    line-height: 1.13 !important;
    letter-spacing: -0.025em;
}

.public-page.astra-load-page .astra-diagram-title {
    font-size: 20px !important;
}

@media (max-width: 760px) {
    .public-page.astra-load-page .astra-load-hero h1 {
        font-size: 34px !important;
        line-height: 1.18 !important;
    }
}

/* Smart Load Management — smaller headline */
.public-page.astra-load-page .astra-load-hero h1 {
    font-size: 38px !important;
    line-height: 1.18 !important;
}

@media (max-width: 760px) {
    .public-page.astra-load-page .astra-load-hero h1 {
        font-size: 28px !important;
    }
}


/* SorXen Smart Load Management hero */
.public-page.astra-load-page .sorxen-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 23% 35%, rgba(90,188,226,.12), transparent 37%),
        linear-gradient(115deg, #f5fbfe 0%, #ffffff 56%, #f2f9fd 100%);
    padding: 90px 0;
}

/* Subtle circuit-line technology motif */
.public-page.astra-load-page .sorxen-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .35;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, transparent 0 68%, #9ed6ed 68% 69%, transparent 69%),
        linear-gradient(0deg, transparent 0 76%, #9ed6ed 76% 77%, transparent 77%);
    background-size: 190px 130px;
    mask-image: linear-gradient(
        90deg,
        #000 0%,
        transparent 28%,
        transparent 72%,
        #000 100%
    );
}

.public-page.astra-load-page .sorxen-hero-layout {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 55px;
}

.public-page.astra-load-page .sorxen-hero-image {
    background: #ffffff;
    border: 1px solid #d9e8f0;
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 14px 36px rgba(16,41,77,.06);
}

.public-page.astra-load-page .sorxen-hero-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.public-page.astra-load-page .sorxen-hero-content h1 {
    font-size: 38px !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em;
    margin: 22px 0 25px;
    color: #10294d;
}

.public-page.astra-load-page .sorxen-hero-content h1 em {
    color: #21899a;
    font-style: normal;
}

.public-page.astra-load-page .sorxen-hero-content > p {
    font-size: 18px;
    line-height: 1.8;
    color: #60748f;
    margin-bottom: 25px;
}

@media (max-width: 900px) {
    .public-page.astra-load-page .sorxen-hero-layout {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .public-page.astra-load-page .sorxen-hero {
        padding: 55px 0;
    }

    .public-page.astra-load-page .sorxen-hero-content h1 {
        font-size: 28px !important;
    }
}

/* SorXen hero — larger diagram */
@media (min-width: 901px) {

    .public-page.astra-load-page .sorxen-hero-layout {
        grid-template-columns: 1.2fr 0.8fr !important;
        gap: 40px !important;
    }

    .public-page.astra-load-page .sorxen-hero-image {
        padding: 5px !important;
    }

    .public-page.astra-load-page .sorxen-hero-image img {
        width: 100% !important;
        height: auto !important;
        display: block;
    }
}

/* Mobile: maintain responsive image */
@media (max-width: 900px) {
    .public-page.astra-load-page .sorxen-hero-image {
        padding: 8px !important;
    }
}


/* SorXen — secondary dashboard image */
.public-page.astra-load-page .sorxen-secondary-image {
    margin-top: 22px;
    padding: 10px;
}

.public-page.astra-load-page .sorxen-secondary-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
}



/* SorXen — keep both images in the left grid column */
.public-page.astra-load-page .sorxen-hero-images {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

.public-page.astra-load-page .sorxen-hero-images .sorxen-hero-image {
    width: 100%;
    box-sizing: border-box;
}

.public-page.astra-load-page .sorxen-hero-images .sorxen-secondary-image {
    margin-top: 0 !important;
}

.public-page.astra-load-page .sorxen-hero-layout {
    align-items: center;
}

@media (max-width: 900px) {
    .public-page.astra-load-page .sorxen-hero-images {
        gap: 16px;
    }
}

/* SorXen Smart Load Management — professional dark theme */
.public-page.astra-load-page .sorxen-hero {
    background:
        radial-gradient(
            ellipse at 18% 35%,
            rgba(23, 112, 157, 0.28),
            transparent 48%
        ),
        radial-gradient(
            ellipse at 88% 72%,
            rgba(20, 93, 125, 0.20),
            transparent 48%
        ),
        linear-gradient(
            125deg,
            #09182b 0%,
            #102c46 52%,
            #071525 100%
        ) !important;
}

/* Subtle technology grid */
.public-page.astra-load-page .sorxen-hero::before {
    background-image:
        linear-gradient(
            rgba(110, 190, 220, 0.12) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(110, 190, 220, 0.12) 1px,
            transparent 1px
        ) !important;

    background-size: 110px 110px !important;
    opacity: 0.35 !important;
    mask-image: none !important;
}

/* Keep the existing images in white cards */
.public-page.astra-load-page .sorxen-hero-images .sorxen-hero-image {
    background: #ffffff !important;
    border: 1px solid rgba(178, 211, 229, 0.45) !important;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.20) !important;
}

/* Orange section label */
.public-page.astra-load-page .sorxen-hero-content .public-eyebrow {
    color: #ff784b !important;
}

/* White main heading */
.public-page.astra-load-page .sorxen-hero-content h1 {
    color: #ffffff !important;
}

/* Light teal highlighted heading */
.public-page.astra-load-page .sorxen-hero-content h1 em {
    color: #64c8d6 !important;
}

/* Readable supporting description */
.public-page.astra-load-page .sorxen-hero-content > p {
    color: #c4d6e5 !important;
}

/* Preserve the existing orange button */
.public-page.astra-load-page .sorxen-hero-content .astra-primary-link {
    background: #ff5722 !important;
    color: #ffffff !important;
}

.public-page.astra-load-page .sorxen-hero-content .astra-primary-link:hover {
    background: #e94813 !important;
}


/* SorXen — subtle engineering schematic background */

.public-page.astra-load-page .sorxen-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

/* Fine technical traces and connection nodes */
.public-page.astra-load-page .sorxen-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;

    background-image:
        radial-gradient(
            circle,
            rgba(94, 185, 216, .48) 2px,
            transparent 3px
        ),
        linear-gradient(
            90deg,
            transparent 0 25%,
            rgba(94, 185, 216, .22) 25% 25.3%,
            transparent 25.3% 75%,
            rgba(94, 185, 216, .22) 75% 75.3%,
            transparent 75.3%
        ),
        linear-gradient(
            0deg,
            transparent 0 35%,
            rgba(94, 185, 216, .16) 35% 35.3%,
            transparent 35.3% 65%,
            rgba(94, 185, 216, .16) 65% 65.3%,
            transparent 65.3%
        );

    background-size:
        220px 180px,
        440px 360px,
        440px 360px;

    background-position:
        20px 10px,
        0 0,
        0 0;

    opacity: .24 !important;
    mask-image: linear-gradient(
        90deg,
        #000 0%,
        transparent 32%,
        transparent 68%,
        #000 100%
    ) !important;
}

/* Gentle blue technical lighting */
.public-page.astra-load-page .sorxen-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;

    background:
        radial-gradient(
            ellipse at 8% 25%,
            rgba(34, 135, 180, .12),
            transparent 32%
        ),
        radial-gradient(
            ellipse at 92% 78%,
            rgba(55, 170, 205, .10),
            transparent 35%
        );
}

/* Keep the foreground content above the decoration */
.public-page.astra-load-page .sorxen-hero > .public-wrap {
    position: relative;
    z-index: 1;
}


/* SorXen — visible light-blue engineering circuit background */
.public-page.astra-load-page .sorxen-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;

    background-image:
        radial-gradient(
            circle,
            rgba(118, 215, 255, 0.95) 2.5px,
            transparent 3.5px
        ),
        linear-gradient(
            90deg,
            transparent 0 25%,
            rgba(112, 205, 245, 0.65) 25% 25.4%,
            transparent 25.4% 75%,
            rgba(112, 205, 245, 0.65) 75% 75.4%,
            transparent 75.4%
        ),
        linear-gradient(
            0deg,
            transparent 0 35%,
            rgba(112, 205, 245, 0.55) 35% 35.4%,
            transparent 35.4% 65%,
            rgba(112, 205, 245, 0.55) 65% 65.4%,
            transparent 65.4%
        ) !important;

    background-size:
        220px 180px,
        440px 360px,
        440px 360px !important;

    opacity: 0.65 !important;

    mask-image: linear-gradient(
        90deg,
        #000 0%,
        rgba(0,0,0,.45) 22%,
        rgba(0,0,0,.20) 50%,
        rgba(0,0,0,.45) 78%,
        #000 100%
    ) !important;
}


/* Enerinno Contact hero — light skyline theme */
.public-page .public-hero.contact-toronto-hero {
    background-color: #E8EEF2 !important;
    background-image:
        linear-gradient(
            90deg,
            #E8EEF2 0%,
            #E2EAF0 37%,
            rgba(213,224,231,.96) 51%,
            rgba(213,224,231,.65) 65%,
            rgba(213,224,231,.12) 81%,
            rgba(213,224,231,0) 100%
        ),
        url("../../images/site-assets/Town.jpg") !important;

    background-size:
        100% 100%,
        auto calc(100% + 60px) !important;

    background-position:
        center center,
        right center !important;

    background-repeat: no-repeat !important;
}

/* Dark navy text for readability */
.public-page .contact-toronto-hero h1 {
    color: #17324B !important;
}

.public-page .contact-toronto-hero h1 em {
    color: #21899A !important;
}

.public-page .contact-toronto-hero .public-lead,
.public-page .contact-toronto-hero .contact-hero-capabilities,
.public-page .contact-toronto-hero .contact-hero-capabilities p,
.public-page .contact-toronto-hero .contact-hero-capabilities li,
.public-page .contact-toronto-hero .contact-hero-capabilities strong {
    color: #344C60 !important;
}

/* Orange brand accent */
.public-page .contact-toronto-hero .public-eyebrow {
    color: #E95521 !important;
}

/* Light engineering-style geometric lines */
.public-page .contact-toronto-hero::before {
    opacity: .13 !important;
}

/* Preserve mobile readability */
@media (max-width: 900px) {
    .public-page .public-hero.contact-toronto-hero {
        background-image:
            linear-gradient(
                90deg,
                rgba(232,238,242,.98),
                rgba(232,238,242,.88)
            ),
            url("../../images/site-assets/Town.jpg") !important;
    }
}

/* Enerinno light hero — logo contrast and skyline blending */

/* Make the existing white logo dark navy */
.public-page .contact-toronto-hero .contact-toronto-logo {
    filter: brightness(0) saturate(100%)
            invert(16%) sepia(24%) saturate(1290%)
            hue-rotate(168deg) brightness(90%) contrast(95%) !important;
}

/* Smoothly blend the light-grey background into the Toronto skyline */
.public-page .public-hero.contact-toronto-hero {
    background-color: #e8eef2 !important;

    background-image:
        linear-gradient(
            90deg,
            #e8eef2 0%,
            rgba(232,238,242,0.99) 32%,
            rgba(224,233,239,0.97) 49%,
            rgba(216,227,234,0.85) 60%,
            rgba(216,227,234,0.45) 72%,
            rgba(216,227,234,0.08) 87%,
            transparent 100%
        ),
        url("../../images/site-assets/Town.jpg") !important;

    background-size:
        100% 100%,
        cover !important;

    background-position:
        center center,
        center center !important;

    background-repeat: no-repeat !important;
}

/* Maintain readability on smaller screens */
@media (max-width: 900px) {
    .public-page .public-hero.contact-toronto-hero {
        background-image:
            linear-gradient(
                90deg,
                rgba(232,238,242,0.98),
                rgba(232,238,242,0.88)
            ),
            url("../../images/site-assets/Town.jpg") !important;

        background-position: center center, right center !important;
    }
}

/* Contact hero — correct skyline scale and smooth grey transition */
@media (min-width: 901px) {

    .public-page .public-hero.contact-toronto-hero {
        background-color: #e8eef2 !important;

        background-image:
            linear-gradient(
                90deg,
                #e8eef2 0%,
                rgba(232,238,242,0.99) 35%,
                rgba(232,238,242,0.96) 48%,
                rgba(232,238,242,0.78) 58%,
                rgba(232,238,242,0.30) 68%,
                rgba(232,238,242,0) 78%
            ),
            url("../../images/site-assets/Town.jpg") !important;

        /* Restore original photograph proportions */
        background-size:
            100% 100%,
            auto calc(100% + 60px) !important;

        background-position:
            center center,
            right center !important;

        background-repeat: no-repeat !important;
    }
}


/* Enerinno Contact hero — refined blue-grey background and soft photo blend */

@media (min-width: 901px) {
    .public-page .public-hero.contact-toronto-hero {
        background-color: #e4edf0 !important;

        background-image:
            linear-gradient(
                90deg,
                #e4edf0 0%,
                #e1ebef 30%,
                rgba(219,232,237,0.99) 42%,
                rgba(219,232,237,0.94) 51%,
                rgba(219,232,237,0.78) 59%,
                rgba(219,232,237,0.45) 66%,
                rgba(219,232,237,0.12) 73%,
                transparent 80%
            ),
            url("../../images/site-assets/Town.jpg") !important;

        /* Preserve the existing skyline size and position */
        background-size:
            100% 100%,
            auto calc(100% + 60px) !important;

        background-position:
            center center,
            right center !important;

        background-repeat: no-repeat !important;
    }
}

/* Keep the same colour scheme on mobile */
@media (max-width: 900px) {
    .public-page .public-hero.contact-toronto-hero {
        background-color: #e4edf0 !important;

        background-image:
            linear-gradient(
                90deg,
                rgba(228,237,240,0.98),
                rgba(228,237,240,0.88)
            ),
            url("../../images/site-assets/Town.jpg") !important;
    }
}


/* Enerinno Contact Hero — bv.png background */
.public-page .public-hero.contact-toronto-hero {
    background-color: #e6f0f8 !important;
    background-image: url("../../images/site-assets/bv.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    border: none !important;
}

/* Keep all existing content on the left */
.public-page .contact-toronto-hero .public-wrap {
    position: relative;
    z-index: 1;
}

.public-page .contact-toronto-hero .contact-toronto-logo {
    filter: none !important;
}

/* Dark text for the light background */
.public-page .contact-toronto-hero h1 {
    color: #102d49 !important;
}

.public-page .contact-toronto-hero h1 em {
    color: #20899d !important;
}

.public-page .contact-toronto-hero .public-lead,
.public-page .contact-toronto-hero .contact-hero-capabilities,
.public-page .contact-toronto-hero .contact-hero-capabilities p,
.public-page .contact-toronto-hero .contact-hero-capabilities li,
.public-page .contact-toronto-hero .contact-hero-capabilities strong {
    color: #183b55 !important;
}

/* Ensure readable content on smaller screens */
@media (max-width: 900px) {
    .public-page .public-hero.contact-toronto-hero {
        background-image:
            linear-gradient(
                90deg,
                rgba(235, 244, 251, 0.96),
                rgba(235, 244, 251, 0.86)
            ),
            url("../../images/site-assets/bv.png") !important;
        background-position: 60% center !important;
    }
}

/* SorXen Style — Smart Load Management Hero */
.public-page.astra-load-page .astra-load-hero {
    background-color: #e7f1fa !important;
    background-image:
        linear-gradient(
            90deg,
            rgba(232,243,252,.90),
            rgba(238,247,253,.75)
        ),
        url("../../images/site-assets/bv.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Main heading */
.public-page.astra-load-page .astra-load-hero h1 {
    color: #102d49 !important;
}

/* Highlighted heading */
.public-page.astra-load-page .astra-load-hero h1 em,
.public-page.astra-load-page .astra-load-hero h1 span {
    color: #20899d !important;
}

/* Description */
.public-page.astra-load-page .astra-load-hero p {
    color: #244b68 !important;
}

/* Keep the orange CTA */
.public-page.astra-load-page .astra-load-hero .astra-primary-link {
    background: #ff5722 !important;
    color: #ffffff !important;
}

/* Preserve white image cards */
.public-page.astra-load-page .astra-load-hero img {
    background: #ffffff;
}


/* SorXen — Abstract Geometric Line Art */
.public-page.astra-load-page .astra-load-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    background-color: #eaf3fa !important;

    background-image:
        linear-gradient(
            120deg,
            rgba(220,237,249,.8),
            rgba(250,252,255,.9) 60%,
            rgba(225,241,250,.8)
        ) !important;

    background-size: cover !important;
}

/* Fine engineering grid */
.public-page.astra-load-page .astra-load-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;

    background-image:
        linear-gradient(
            rgba(75,150,190,.09) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(75,150,190,.09) 1px,
            transparent 1px
        );

    background-size: 150px 150px;
}

/* Abstract geometric engineering lines */
.public-page.astra-load-page .astra-load-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;

    background-image:
        linear-gradient(
            32deg,
            transparent 47%,
            rgba(61,143,188,.17) 47.08%,
            rgba(61,143,188,.17) 47.18%,
            transparent 47.26%
        ),
        linear-gradient(
            148deg,
            transparent 56%,
            rgba(61,143,188,.13) 56.08%,
            rgba(61,143,188,.13) 56.18%,
            transparent 56.26%
        ),
        radial-gradient(
            circle at 13% 22%,
            rgba(53,150,197,.4) 0 3px,
            transparent 4px
        ),
        radial-gradient(
            circle at 87% 73%,
            rgba(53,150,197,.4) 0 3px,
            transparent 4px
        );

    background-size:
        950px 700px,
        1100px 800px,
        100% 100%,
        100% 100%;

    opacity: .8;
}

/* Keep original content above the background */
.public-page.astra-load-page .astra-load-hero > * {
    position: relative;
    z-index: 1;
}

/* Dark navy text on light background */
.public-page.astra-load-page .astra-load-hero h1 {
    color: #102d49 !important;
}

/* Teal highlighted headline */
.public-page.astra-load-page .astra-load-hero h1 em,
.public-page.astra-load-page .astra-load-hero h1 span {
    color: #20899d !important;
}

/* Readable description */
.public-page.astra-load-page .astra-load-hero p {
    color: #365a75 !important;
}

/* Preserve orange button */
.public-page.astra-load-page .astra-load-hero .astra-primary-link {
    background: #ff5722 !important;
    color: #ffffff !important;
}

/* Mobile adjustments */
@media (max-width: 760px) {
    .public-page.astra-load-page .astra-load-hero::before {
        background-size: 100px 100px;
    }
}


/* Enerinno Dashboard Showcase — Image Hover Zoom */
.dashboard-showcase-card .dashboard-showcase-placeholder {
    overflow: hidden !important;
}

.dashboard-showcase-card .dashboard-showcase-placeholder img {
    transition: transform 0.35s ease !important;
    transform: scale(1);
    transform-origin: center center;
}

@media (hover: hover) {
    .dashboard-showcase-card:hover .dashboard-showcase-placeholder img {
        transform: scale(1.05);
    }
}

@media (prefers-reduced-motion: reduce) {
    .dashboard-showcase-card .dashboard-showcase-placeholder img {
        transition: none !important;
    }
}

/* Enerinno Project Canvas Demo Request */
.canvas-demo-request {
    padding: 76px 24px;
    background: linear-gradient(125deg, #eaf3f9 0%, #f7fafc 65%, #e5f1f8 100%);
    text-align: center;
}

.canvas-demo-inner {
    max-width: 780px;
    margin: 0 auto;
}

.canvas-demo-eyebrow {
    color: #ff501c;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 1.5px;
}

.canvas-demo-request h2 {
    color: #102d49;
    font-size: clamp(26px, 3vw, 36px);
    margin: 16px 0;
}

.canvas-demo-request p {
    color: #526a80;
    line-height: 1.8;
    margin-bottom: 28px;
}

.canvas-demo-form {
    max-width: 580px;
    margin: 0 auto;
}

.canvas-demo-label {
    display: block;
    text-align: left;
    font-weight: 650;
    color: #173650;
    margin-bottom: 8px;
}

.canvas-demo-fields {
    display: flex;
    gap: 12px;
}

.canvas-demo-fields input {
    flex: 1;
    min-width: 0;
    padding: 15px;
    border: 1px solid #d4e0e9;
    border-radius: 8px;
    background: white;
    font-size: 15px;
}

.canvas-demo-fields button {
    background: #ff501c;
    color: white;
    border: 0;
    border-radius: 8px;
    padding: 15px 24px;
    font-weight: 700;
    cursor: pointer;
}

.canvas-demo-fields button:hover {
    background: #df4010;
}

.canvas-demo-form small {
    display: block;
    margin-top: 14px;
    color: #708397;
}

.canvas-demo-success { color: #18754d !important; }
.canvas-demo-error { color: #b52d2d !important; }

.canvas-demo-trap {
    position: absolute;
    left: -9999px;
}

@media (max-width: 600px) {
    .canvas-demo-fields {
        flex-direction: column;
    }
    .canvas-demo-fields button {
        width: 100%;
    }
}

/* Project Canvas Expected Outcomes */
.canvas-expected-outcome {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid #e4ebf0;
}

.canvas-outcome-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: #e9f6f3;
    color: #238a78;
    font-size: 13px;
    font-weight: 700;
}

.canvas-expected-outcome strong {
    display: block;
    color: #15334e;
    font-size: 13px;
    margin-bottom: 5px;
}

.canvas-expected-outcome p {
    color: #526b80;
    font-size: 13px;
    line-height: 1.6;
    margin: 0;
}



/* Project Canvas Demo - Image and Form Layout */
.canvas-demo-request .canvas-demo-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 54px;
    max-width: 1200px;
    text-align: left;
}

.canvas-demo-visual {
    min-width: 0;
}

.canvas-demo-image-placeholder {
    aspect-ratio: 4 / 3;
    min-height: 320px;
    border: 1px dashed #b8ccda;
    border-radius: 16px;
    background: linear-gradient(145deg, #f8fbfd, #dceaf4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #58738a;
}

.canvas-demo-placeholder-icon {
    font-size: 40px;
    color: #ff501c;
}

.canvas-demo-image-placeholder strong {
    color: #173650;
    font-size: 18px;
}

.canvas-demo-image-placeholder span:last-child {
    font-size: 14px;
}

.canvas-demo-content {
    min-width: 0;
}

.canvas-demo-content h2 {
    line-height: 1.2;
}

.canvas-demo-content .canvas-demo-form {
    max-width: none;
    margin: 0;
}

.canvas-demo-content .canvas-demo-form small {
    text-align: left;
}

@media (max-width: 850px) {
    .canvas-demo-request .canvas-demo-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .canvas-demo-image-placeholder {
        min-height: 240px;
    }
}

/* SorXen Abstract Geometric Line Art — Project Canvas Demo */
.canvas-demo-request {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: #edf5fa !important;
    background-image:
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 189px,
            rgba(76, 143, 186, 0.09) 190px,
            transparent 191px
        ),
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 189px,
            rgba(76, 143, 186, 0.07) 190px,
            transparent 191px
        ),
        repeating-linear-gradient(
            32deg,
            transparent 0,
            transparent 270px,
            rgba(76, 143, 186, 0.11) 271px,
            transparent 273px
        ),
        repeating-linear-gradient(
            148deg,
            transparent 0,
            transparent 360px,
            rgba(76, 143, 186, 0.08) 361px,
            transparent 363px
        ) !important;
}

.canvas-demo-request::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(65, 137, 180, 0.32) 2px, transparent 3px),
        radial-gradient(circle, rgba(65, 137, 180, 0.22) 2px, transparent 3px);
    background-size: 240px 190px, 360px 280px;
    background-position: 40px 45px, 150px 100px;
    opacity: 0.65;
}

.canvas-demo-request .canvas-demo-inner {
    position: relative;
    z-index: 1;
}


/* Flexible Communication — darker SorXen-style background */
.public-page .flexible-communication-section {
    background-color: #D7E3EC !important;
    background-blend-mode: multiply !important;
}


/* SorXen-inspired Project Canvas benefits */
.public-page #canvas-benefits-section {
    background-color: #D5E2EB !important;
    background-image:
        linear-gradient(rgba(55,105,145,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(55,105,145,.08) 1px, transparent 1px) !important;
    background-size: 90px 90px !important;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article {
    background: linear-gradient(145deg, #EDF4F8, #DFEAF2) !important;
    border: 1px solid #B8CBD9 !important;
    border-top: 3px solid #FF5424 !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(9,42,75,.08) !important;
    transition: transform .25s ease, box-shadow .25s ease;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 30px rgba(9,42,75,.15) !important;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article h3 {
    color: #092A4B !important;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article p {
    color: #355A75 !important;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article hr {
    border-color: #B8CBD9 !important;
}

.public-page #canvas-benefits-section .enerinno-canvas-benefits article .expected-outcome,
.public-page #canvas-benefits-section .enerinno-canvas-benefits article .outcome-label {
    color: #087C76 !important;
}



/* SorXen geometric background — Edge AI Gateway */
.public-page .edge-ai-section {
    background-color: #D8E5EE !important;
    background-image:
        linear-gradient(
            135deg,
            transparent 49.9%,
            rgba(52,111,157,.035) 50%,
            transparent 50.1%
        ),
        linear-gradient(
            35deg,
            transparent 69.9%,
            rgba(52,111,157,.03) 70%,
            transparent 70.1%
        ),
        linear-gradient(
            rgba(46,105,151,.055) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(46,105,151,.055) 1px,
            transparent 1px
        ) !important;
    background-size:
        100% 100%,
        100% 100%,
        110px 110px,
        110px 110px !important;
}


/* Edge AI Gateway device image — light-blue border */
.public-page .edge-ai-gateway img {
    border: 2px solid #B7D9ED !important;
    border-radius: 10px !important;
    box-sizing: border-box;
}



/* SorXen light-orange Project Canvas benefits background */
.public-page #canvas-benefits-section {
    background-color: #FCE9D9 !important;
    background-image:
        linear-gradient(rgba(201,122,72,.08) 1px, transparent 1px),
        linear-gradient(90deg,rgba(201,122,72,.08) 1px, transparent 1px) !important;
    background-size: 100px 100px !important;
}

/* Project Canvas — larger heading icons */
#canvas-benefits-section h3 img {
    width: 46px !important;
    height: 46px !important;
    object-fit: contain;
    flex-shrink: 0;
    vertical-align: middle;
}


/* ENERINNO CANVAS REFINEMENT V1 */
/* Scoped to the six Project Canvas benefit cards only. */
#canvas-benefits-section article {
  display: flex;
  flex-direction: column;
  padding: 28px 28px 24px;
  transition: box-shadow .2s ease, transform .2s ease;
}
#canvas-benefits-section article:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15, 51, 82, .08);
}
#canvas-benefits-section article > h3 {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 0 18px !important;
  font-size: 19px;
  line-height: 1.35;
  letter-spacing: -.015em;
}
#canvas-benefits-section article > h3 > img {
  box-sizing: content-box;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px;
  padding: 7px;
  border-radius: 12px;
  background: #dbeaf4;
  object-fit: contain;
  flex-shrink: 0;
}
#canvas-benefits-section article > p {
  margin-top: 0;
  line-height: 1.7;
}
#canvas-benefits-section article > .canvas-expected-outcome {
  margin-top: auto !important;
  padding-top: 18px;
  border-top: 1px solid rgba(31, 74, 105, .11);
}
#canvas-benefits-section .canvas-expected-outcome strong {
  display: block;
  margin-bottom: 5px;
}
#canvas-benefits-section .canvas-expected-outcome p {
  line-height: 1.55;
}
@media (max-width: 700px) {
  #canvas-benefits-section article { padding: 22px 20px; }
  #canvas-benefits-section article > h3 { font-size: 17px; gap: 11px !important; }
  #canvas-benefits-section article > h3 > img {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px;
    padding: 6px;
  }
}
/* END ENERINNO CANVAS REFINEMENT V1 */


/* Project Canvas — refined warm background */
.public-page #canvas-benefits-section {
    background-color: #F8EDE4 !important;
    background-image:
        linear-gradient(to right, #EADFD5 1px, transparent 1px),
        linear-gradient(to bottom, #EADFD5 1px, transparent 1px) !important;
    background-size: 100px 100px !important;
}


/* Remove Project Canvas preview image frame */
.canvas-demo-request .canvas-demo-image-placeholder {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
}










/* ENERINNO — corrected Canvas demo layout */
@media (min-width: 1100px) {
  .public-page .canvas-demo-request .canvas-demo-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 30%) minmax(0, 35%) minmax(0, 35%) !important;
    gap: 0 !important;
    align-items: center !important;
    width: 100% !important;
  }

  .public-page .canvas-demo-request .canvas-demo-visual {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  .public-page .canvas-demo-request .canvas-demo-image-placeholder {
    width: 100% !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-image-placeholder img {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: 480px !important;
    object-fit: contain !important;
    background: transparent !important;
  }

  .public-page .canvas-demo-request .canvas-demo-content {
    grid-column: 2 / 4 !important;
    grid-row: 1 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
    column-gap: 32px !important;
    row-gap: 16px !important;
    align-items: center !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 24px !important;
    transform: none !important;
  }

  .public-page .canvas-demo-request .canvas-demo-eyebrow {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-content > h2 {
    grid-column: 1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-content > p:not(.canvas-demo-success):not(.canvas-demo-error) {
    grid-column: 1 !important;
    grid-row: 3 !important;
    margin: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-form {
    grid-column: 2 !important;
    grid-row: 1 / 5 !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-success,
  .public-page .canvas-demo-request .canvas-demo-error {
    grid-column: 1 !important;
    grid-row: 4 !important;
    margin: 0 !important;
  }

  .public-page .canvas-demo-request .canvas-demo-fields {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 18px !important;
    width: 100% !important;
  }

  .public-page .canvas-demo-request .canvas-demo-fields input {
    flex: none !important;
    width: 100% !important;
    max-width: 520px !important;
    min-width: 0 !important;
    height: 52px !important;
    box-sizing: border-box !important;
  }
}

/* Project Canvas image — remove remaining background */
.canvas-demo-request .canvas-demo-visual,
.canvas-demo-request .canvas-demo-image-placeholder {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.canvas-demo-request .canvas-demo-image-placeholder img {
    background: transparent !important;
}


/* Enerinno M&V project caption */
.canvas-demo-request .canvas-demo-visual {
    position: relative !important;
}

.enerinno-mv-caption {
    position: absolute;
    z-index: 3;
    left: 0;
    top: 50%;
    transform: translate(-12%, -50%);
    width: 190px;
    padding: 18px 16px;
    background: rgba(255,255,255,.96);
    border-left: 3px solid #FF5424;
    border-radius: 8px;
    box-shadow: 0 8px 26px rgba(8,45,76,.10);
    color: #082D4C;
}

.enerinno-mv-caption .enerinno-mv-label {
    display: block;
    color: #FF5424;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.2px;
    margin-bottom: 10px;
}

.enerinno-mv-caption strong {
    display: block;
    font-size: 17px;
    line-height: 1.3;
    margin-bottom: 9px;
}

.enerinno-mv-caption .enerinno-mv-location {
    display: block;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 10px;
}

.enerinno-mv-caption p {
    font-size: 12px;
    line-height: 1.55;
    margin: 0;
    color: #48647D;
}

@media (max-width: 1099px) {
    .enerinno-mv-caption {
        position: static;
        transform: none;
        width: auto;
        max-width: 360px;
        margin: 0 auto 18px;
    }
}

/* SorXen load management feature cards */
.sorxen-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 32px;
}

.sorxen-feature-card {
    background: #EAF3F9;
    border: 1px solid #C8DCEB;
    border-top: 3px solid #FF5424;
    border-radius: 13px;
    padding: 26px;
    min-width: 0;
}

.sorxen-feature-card h3,
.sorxen-feature-card h4 {
    color: #082D4C;
    font-size: 19px;
    line-height: 1.4;
    margin: 0 0 14px;
}

.sorxen-feature-card p {
    color: #42617C;
    font-size: 16px;
    line-height: 1.7;
    margin: 0;
}

@media (max-width: 950px) {
    .sorxen-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sorxen-feature-grid {
        grid-template-columns: 1fr;
    }
}

/* SorXen electrical challenge — expected benefits */
.sorxen-benefit-row {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #D4E3EC;
    color: #082D4C;
}

.sorxen-benefit-row strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 5px;
}

.sorxen-benefit-row p {
    font-size: 14px;
    line-height: 1.65;
    color: #42617C;
    margin: 0;
}

.sorxen-benefit-pulse {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #E3F5F3;
    color: #168D91;
    font-size: 16px;
    animation: sorxenPulse 2.8s ease-in-out infinite;
}

@keyframes sorxenPulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(22,141,145,0.25);
    }
    50% {
        box-shadow: 0 0 0 7px rgba(22,141,145,0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .sorxen-benefit-pulse {
        animation: none;
    }
}

/* SorXen challenge cards — refined design */
.sorxen-challenge-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    padding: 28px 30px;
    background: linear-gradient(160deg, #FFFFFF 0%, #F1F7FB 100%);
    border: 1px solid #D5E4EF;
    border-top: 3px solid #FF5424;
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(8,45,76,0.035);
    transition: transform .2s ease, box-shadow .2s ease;
}

.sorxen-challenge-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(8,45,76,0.09);
}

.sorxen-challenge-card > .sorxen-benefit-row {
    margin-top: auto;
    padding-top: 18px;
}

.sorxen-challenge-card > .sorxen-benefit-row strong {
    font-size: 13px;
    color: #082D4C;
}

.sorxen-challenge-card > .sorxen-benefit-row p {
    font-size: 14px;
    line-height: 1.6;
}

.sorxen-challenge-card .sorxen-benefit-pulse {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
    font-size: 14px;
}

@media (prefers-reduced-motion: reduce) {
    .sorxen-challenge-card {
        transition: none;
    }
    .sorxen-challenge-card:hover {
        transform: none;
    }
}

/* Align SorXen challenge benefit sections */
.sorxen-challenge-card {
    display: flex;
    flex-direction: column;
}

.sorxen-challenge-card .sorxen-benefit-row {
    margin-top: auto !important;
    min-height: 145px;
}

@media (max-width: 700px) {
    .sorxen-challenge-card .sorxen-benefit-row {
        min-height: 0;
    }
}

/* SorXen expected benefit lightning icon */
.sorxen-benefit-icon {
    background: #FFF1C7 !important;
    color: #FF5A1F !important;
    border-radius: 50%;
}

/* SorXen lightning icons — soft yellow background */
.sorxen-benefit-row .sorxen-benefit-pulse {
    background-color: #FFF1C7 !important;
    color: #FF5A1F !important;
    border-radius: 50%;
}



/* SorXen two retrofit image slots v2 */
.astra-control-section .sorxen-retrofit-images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    width: 100%;
    align-self: center;
}

.astra-control-section .sorxen-retrofit-image {
    min-height: 190px;
    padding: 22px;
    border: 1px dashed #BFD8E8;
    border-radius: 15px;
    background: #F4F9FC;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}

.astra-control-section .sorxen-retrofit-icon {
    color: #FF5424;
    font-size: 25px;
}

.astra-control-section .sorxen-retrofit-image strong {
    color: #082D50;
    font-size: 17px;
}

.astra-control-section .sorxen-retrofit-image > span:not(.sorxen-retrofit-icon) {
    color: #66839C;
    font-size: 14px;
}

.astra-control-section .sorxen-retrofit-image small {
    color: #FF5424;
    font-size: 12px;
}

@media (max-width: 768px) {
    .astra-control-section .sorxen-retrofit-images {
        gap: 14px;
    }
}


/* Enerinno retrofit images */
.astra-control-section .sorxen-retrofit-image {
    padding: 0 !important;
    border: 1px solid #D5E4EF !important;
    border-radius: 15px;
    overflow: hidden;
    background: #F4F9FC;
    min-height: 190px;
}

.astra-control-section .sorxen-retrofit-image img {
    display: block;
    width: 100%;
    height: 210px;
    object-fit: cover;
}

/* Enerinno retrofit images — display full image */
.astra-control-section .sorxen-retrofit-image {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

.astra-control-section .sorxen-retrofit-image img {
    display: block;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
}


/* Enerinno building integration redesign v1 */

.astra-control-section .sorxen-integration-content {
    width: 100%;
}

.astra-control-section .sorxen-integration-content h2 {
    margin-bottom: 22px;
}

.astra-control-section .sorxen-integration-intro {
    font-size: 17px;
    line-height: 1.8;
    color: #506B86;
    margin-bottom: 24px;
}

.astra-control-section .sorxen-retrofit-challenge {
    background: #EDF6FB;
    border: 1px solid #D9E9F2;
    border-radius: 12px;
    padding: 20px 23px;
    margin: 0 0 27px;
}

.astra-control-section .sorxen-challenge-heading {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 10px;
    color: #082D50;
    font-size: 16px;
}

.astra-control-section .sorxen-challenge-symbol {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border: 1px solid #9BBFD5;
    border-radius: 50%;
    color: #2C729B;
    font-size: 16px;
    font-weight: 700;
}

.astra-control-section .sorxen-retrofit-challenge p {
    margin: 0;
    color: #506B86;
    font-size: 15px;
    line-height: 1.75;
}

.astra-control-section .sorxen-integration-solution {
    border-left: 3px solid #FF5424;
    padding: 2px 0 2px 18px;
    margin-bottom: 26px;
}

.astra-control-section .sorxen-integration-solution h3 {
    font-size: 18px;
    line-height: 1.4;
    color: #082D50;
    margin: 0 0 10px;
}

.astra-control-section .sorxen-integration-solution p {
    font-size: 15px;
    line-height: 1.75;
    color: #506B86;
    margin: 0;
}

.astra-control-section .sorxen-integration-features {
    display: flex;
    flex-direction: column;
}

.astra-control-section .sorxen-integration-feature {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 16px 0;
    border-bottom: 1px solid #E1EBF1;
}

.astra-control-section .sorxen-integration-feature:first-child {
    padding-top: 0;
}

.astra-control-section .sorxen-integration-feature:last-child {
    border-bottom: none;
}

.astra-control-section .sorxen-feature-icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #EDF6FB;
    color: #276B94;
    font-size: 21px;
}

.astra-control-section .sorxen-integration-feature strong {
    display: block;
    font-size: 15px;
    color: #082D50;
    margin-bottom: 5px;
}

.astra-control-section .sorxen-integration-feature p {
    margin: 0;
    color: #58738C;
    font-size: 14px;
    line-height: 1.65;
}

.astra-control-section .sorxen-integration-disclaimer {
    font-size: 12px;
    line-height: 1.7;
    color: #8296A8;
    margin: 20px 0 0;
}

@media (max-width: 768px) {
    .astra-control-section .sorxen-retrofit-challenge {
        padding: 18px;
    }

    .astra-control-section .sorxen-integration-feature {
        gap: 12px;
    }
}

/* Enerinno navy and orange heading */
.astra-control-section .sorxen-two-tone-heading {
    background: none !important;
    -webkit-text-fill-color: initial !important;
    color: #082D50 !important;
}

.astra-control-section .sorxen-two-tone-heading span {
    display: block;
    background: none !important;
    -webkit-text-fill-color: currentColor !important;
}

.astra-control-section .sorxen-two-tone-heading span:first-child {
    color: #082D50 !important;
}

.astra-control-section .sorxen-two-tone-heading span:last-child {
    color: #FF5424 !important;
}

/* Enerinno Retrofit Challenge — soft yellow */
.astra-control-section .sorxen-retrofit-challenge {
    background: #FFF7E3 !important;
    border: 1px solid #F2DFAF !important;
}

.astra-control-section .sorxen-challenge-symbol {
    background: #FFF0C4 !important;
    border-color: #E7C875 !important;
    color: #A87516 !important;
}

/* SorXen dark navy engineering section */
.public-section.sorxen-measure-section {
    background-color: #082D50 !important;
    background-image:
        linear-gradient(rgba(112,178,211,.075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(112,178,211,.075) 1px, transparent 1px),
        radial-gradient(circle, rgba(112,178,211,.18) 1.5px, transparent 2px) !important;
    background-size: 100px 100px, 100px 100px, 100px 100px !important;
}

/* Main heading */
.public-section.sorxen-measure-section h2 {
    color: #FFFFFF !important;
}

/* Orange section eyebrow */
.public-section.sorxen-measure-section .public-eyebrow {
    color: #FF7045 !important;
}

/* Introduction */
.public-section.sorxen-measure-section .public-wrap > p {
    color: #C0D5E5 !important;
}

/* Six feature cards */
.public-section.sorxen-measure-section .astra-info-card {
    background: #103B5C !important;
    border: 1px solid #285675 !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 24px rgba(0, 13, 30, .12);
    transition: transform .2s ease, border-color .2s ease;
}

.public-section.sorxen-measure-section .astra-info-card:hover {
    transform: translateY(-3px);
    border-color: #FF7045 !important;
}

/* Card titles */
.public-section.sorxen-measure-section .astra-info-card h3 {
    color: #FFFFFF !important;
}

/* Card descriptions */
.public-section.sorxen-measure-section .astra-info-card p {
    color: #C4D8E7 !important;
}

/* Mobile */
@media (max-width: 768px) {
    .public-section.sorxen-measure-section .astra-info-card {
        border-radius: 12px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-section.sorxen-measure-section .astra-info-card {
        transition: none;
    }
    .public-section.sorxen-measure-section .astra-info-card:hover {
        transform: none;
    }
}

/* SorXen card title color */
.public-section.sorxen-measure-section .astra-info-card h3 {
    color: #A9DFF5 !important;
}

/* SorXen feature cards — light yellow titles */
.public-section.sorxen-measure-section .astra-info-card h3 {
    color: #FFE6A3 !important;
}


/* SorXen battery section — full-size uncropped image */
.astra-battery-section .sorxen-battery-photo {
    display: block !important;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #D5E4EF;
    border-radius: 15px;
    background: #FFFFFF;
}

.astra-battery-section .sorxen-battery-photo img {
    display: block;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
}


/* SorXen energy storage full-width image banner */
.public-section.sorxen-energy-banner {
    background: #FFFFFF;
    padding: 65px 0;
}

.sorxen-energy-hero {
    position: relative;
    width: 100%;
    min-height: 490px;
    border-radius: 18px;
    overflow: hidden;
    background: #082D50;
}

.sorxen-energy-hero > img {
    display: block;
    width: 100%;
    height: 490px;
    object-fit: cover;
    object-position: center;
}

.sorxen-energy-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    background: linear-gradient(
        90deg,
        rgba(4, 29, 54, .94) 0%,
        rgba(4, 29, 54, .78) 36%,
        rgba(4, 29, 54, .28) 65%,
        rgba(4, 29, 54, .03) 100%
    );
}

.sorxen-energy-content {
    position: relative;
    z-index: 2;
    width: min(550px, 55%);
    padding: 55px;
}

.sorxen-energy-eyebrow {
    display: block;
    margin-bottom: 18px;
    color: #FF8055;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.sorxen-energy-content h2 {
    color: #FFFFFF !important;
    font-size: clamp(30px, 3.2vw, 46px);
    line-height: 1.18;
    margin: 0 0 23px;
}

.sorxen-energy-content p {
    color: #E2EDF5 !important;
    font-size: 17px;
    line-height: 1.8;
    margin-bottom: 20px;
}

.sorxen-energy-content small {
    display: block;
    color: #B7CCDC;
    font-size: 12px;
    line-height: 1.7;
}

@media (max-width: 768px) {
    .sorxen-energy-hero {
        min-height: 560px;
    }

    .sorxen-energy-hero > img {
        height: 560px;
        object-position: 65% center;
    }

    .sorxen-energy-overlay {
        background: linear-gradient(
            0deg,
            rgba(4,29,54,.96) 0%,
            rgba(4,29,54,.84) 48%,
            rgba(4,29,54,.12) 100%
        );
        align-items: flex-end;
    }

    .sorxen-energy-content {
        width: 100%;
        padding: 28px;
    }

    .sorxen-energy-content h2 {
        font-size: 30px;
    }

    .sorxen-energy-content p {
        font-size: 15px;
    }
}

/* Enerinno service card images */
.enerinno-service-photo {
    width: 100%;
    height: 230px;
    overflow: hidden;
    background: #F0F5F9;
}

.enerinno-service-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Enerinno service card photos */
.project-application-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}


/* SorXen engineering background — Enerinno services */
.public-section.sorxen-services-section {
    background-color: #F7FAFC !important;
    background-image:
        linear-gradient(rgba(27,91,130,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(27,91,130,.055) 1px, transparent 1px),
        radial-gradient(circle, rgba(27,91,130,.14) 1.2px, transparent 2px) !important;
    background-size: 85px 85px, 85px 85px, 85px 85px !important;
    background-position: center !important;
}

.sorxen-services-section .sorxen-services-eyebrow {
    color: #F07842 !important;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.sorxen-services-section h2 {
    line-height: 1.28;
    margin-top: 0;
}

.sorxen-services-section .project-application-card {
    background: #FFFFFF;
    border: 1px solid #D6E6F0;
    border-radius: 14px;
    box-shadow: 0 5px 18px rgba(8,45,80,.055);
    overflow: hidden;
    transition: border-color .2s ease, transform .2s ease;
}

.sorxen-services-section .project-application-card:hover {
    border-color: #F07842;
    transform: translateY(-3px);
}

@media (prefers-reduced-motion: reduce) {
    .sorxen-services-section .project-application-card {
        transition: none;
    }
    .sorxen-services-section .project-application-card:hover {
        transform: none;
    }
}

/* Enerinno SorXen services section - final override */
section.enerinno-sorxen-services {
    background-color: #F5F9FC !important;
    background-image:
        linear-gradient(rgba(15, 77, 120, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15, 77, 120, .07) 1px, transparent 1px),
        radial-gradient(circle, rgba(15, 77, 120, .18) 1px, transparent 2px) !important;
    background-size: 72px 72px !important;
    background-position: center center !important;
}

section.enerinno-sorxen-services .enerinno-services-eyebrow {
    display: block !important;
    color: #F07842 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase;
    margin-bottom: 16px !important;
}

section.enerinno-sorxen-services h2 {
    margin-top: 0 !important;
    line-height: 1.3;
}



/* Enerinno compact contact request redesign */
.public-section:has(form) {
    padding-top: 48px;
    padding-bottom: 55px;
}

.public-section:has(form) .public-wrap {
    max-width: 1100px;
}

.public-section:has(form) h2 {
    font-size: clamp(27px, 3vw, 36px);
    line-height: 1.2;
    margin-bottom: 12px;
}

.public-section:has(form) form {
    width: 100%;
    max-width: 960px;
    margin: 28px auto 0;
    padding: 32px 36px;
    background: rgba(255,255,255,.97);
    border: 1px solid #DCE8F2;
    border-radius: 18px;
    box-shadow: 0 14px 38px rgba(10,43,75,.09);
}

.public-section:has(form) form label {
    font-size: 14px;
    font-weight: 650;
    color: #082D50;
}

.public-section:has(form) form input,
.public-section:has(form) form select {
    min-height: 46px;
    border-radius: 9px;
    border: 1px solid #CFDEEB;
}

.public-section:has(form) form textarea {
    min-height: 105px;
    max-height: 160px;
    border-radius: 9px;
    border: 1px solid #CFDEEB;
}

.public-section:has(form) form input:focus,
.public-section:has(form) form select:focus,
.public-section:has(form) form textarea:focus {
    outline: 2px solid rgba(240,92,40,.2);
    border-color: #F05C28;
}

.public-section:has(form) form button[type="submit"] {
    background: #F05C28;
    color: white;
    border: 0;
    border-radius: 9px;
    min-height: 45px;
    padding: 0 23px;
    font-weight: 700;
}

.public-section:has(form) form button[type="submit"]:hover {
    background: #D94A1B;
}

@media (max-width: 768px) {
    .public-section:has(form) form {
        padding: 24px 18px;
        margin-top: 22px;
    }
}



/* ENERINNO ULTRA COMPACT CONTACT FORM */

/* Limit form width and override earlier layout rules */
body .public-section:has(form) form {
    box-sizing: border-box !important;
    width: min(700px, calc(100% - 32px)) !important;
    max-width: 700px !important;
    margin: 20px auto 0 !important;
    padding: 22px 26px !important;
    border-radius: 14px !important;
}

/* Reduce space between form fields */
body .public-section:has(form) form {
    row-gap: 12px !important;
    column-gap: 18px !important;
}

body .public-section:has(form) form label {
    font-size: 13px !important;
    margin-bottom: 5px !important;
}

body .public-section:has(form) form input,
body .public-section:has(form) form select {
    box-sizing: border-box !important;
    min-height: 0 !important;
    height: 38px !important;
    padding: 7px 11px !important;
    font-size: 13px !important;
}

body .public-section:has(form) form textarea {
    box-sizing: border-box !important;
    min-height: 0 !important;
    height: 78px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
}

/* Compact submit button */
body .public-section:has(form) form button[type="submit"] {
    min-height: 0 !important;
    height: 38px !important;
    padding: 0 18px !important;
    font-size: 13px !important;
}

/* Reduce overall section height */
body .public-section:has(form) {
    padding-top: 26px !important;
    padding-bottom: 32px !important;
}

/* Mobile: preserve full usable width */
@media (max-width: 768px) {
    body .public-section:has(form) form {
        width: 100% !important;
        max-width: 100% !important;
        padding: 18px 16px !important;
    }
}


/* Request Demo vertical form layout fix */
.public-page .canvas-demo-request .canvas-demo-fields {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 18px !important;
    width: 100% !important;
}

.public-page .canvas-demo-request .canvas-demo-fields input {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 520px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.public-page .canvas-demo-request .canvas-demo-fields .enerinno-turnstile {
    margin: 0 !important;
    max-width: 100%;
}

.public-page .canvas-demo-request .canvas-demo-fields button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 190px !important;
}

@media (max-width: 600px) {
    .public-page .canvas-demo-request .canvas-demo-fields button {
        width: 100% !important;
        max-width: 520px !important;
    }
}


/* Request Demo final form alignment */
.public-page .canvas-demo-form .canvas-demo-fields {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 18px !important;
    width: 100% !important;
}

.public-page .canvas-demo-form .canvas-demo-fields input {
    flex: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 520px !important;
    min-width: 0 !important;
    height: 52px !important;
    box-sizing: border-box !important;
}

.public-page .canvas-demo-form .enerinno-turnstile {
    margin: 0 !important;
    max-width: 100%;
}

.public-page .canvas-demo-form .canvas-demo-fields button {
    flex: none !important;
    width: auto !important;
    min-width: 190px !important;
    min-height: 52px !important;
}

@media (max-width: 600px) {
    .public-page .canvas-demo-form .canvas-demo-fields button {
        width: 100% !important;
        max-width: 520px !important;
    }
}
