/*
Theme Name: ThermoExpert
Theme URI: https://thermexp.com/
Author: ThermoExpert
Description: Lightweight classic theme for ThermoExpert, built to pair with Elementor. Provides a global header, footer and navigation.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thermoexpert
*/

:root{
  --te-red:#d8241c;
  --te-red-dark:#b41c15;
  --te-ink:#1a1c1f;
  --te-ink-soft:#3c3f45;
  --te-muted:#5e626b;
  --te-line:#e4e5e9;
  --te-bg:#f5f5f7;
  --te-wrap:1200px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  color:var(--te-ink-soft);
  background:#fff;
}
img{max-width:100%;height:auto;}
a{color:var(--te-red);}
h1,h2,h3,h4,h5,h6{color:var(--te-ink);line-height:1.25;margin:0 0 .6em;font-weight:700;}
.te-wrap{max-width:var(--te-wrap);margin:0 auto;padding:0 20px;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.skip-link:focus{position:fixed;top:8px;left:8px;z-index:9999;background:#fff;padding:10px 16px;width:auto;height:auto;clip:auto;}

/* ---------- Header ---------- */
.te-topbar{background:var(--te-ink);color:#c9cacd;font-size:14px;}
.te-topbar .te-wrap{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:flex-end;min-height:40px;}
.te-topbar a{color:#ececed;text-decoration:none;}
.te-topbar a:hover{color:#fff;text-decoration:underline;}
.te-topbar span.te-sep{color:#6b6d73;}

.te-header{background:#fff;border-bottom:1px solid var(--te-line);position:sticky;top:0;z-index:999;}
.admin-bar .te-header{top:32px;}
.te-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;}
.te-brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto;}
.te-brand img{max-height:52px;width:auto;}
.te-brand-text{display:flex;flex-direction:column;line-height:1.15;}
.te-brand-name{font-size:22px;font-weight:800;color:var(--te-ink);letter-spacing:-.01em;}
.te-brand-name b{color:var(--te-red);font-weight:800;}
.te-brand-tag{font-size:12px;color:var(--te-muted);text-transform:uppercase;letter-spacing:.09em;}

.te-nav{margin-left:auto;}
.te-nav ul{list-style:none;display:flex;align-items:center;gap:26px;margin:0;padding:0;}
.te-nav li{position:relative;}
.te-nav a{color:var(--te-ink);text-decoration:none;font-size:15px;font-weight:600;padding:8px 0;display:block;}
.te-nav a:hover,.te-nav .current-menu-item>a{color:var(--te-red);}
.te-nav .sub-menu{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--te-line);min-width:230px;padding:8px 0;box-shadow:0 10px 26px rgba(20,26,51,.12);}
.te-nav li:hover>.sub-menu{display:block;}
.te-nav .sub-menu a{padding:8px 16px;font-weight:500;}

.te-cta{background:var(--te-red);color:#fff!important;padding:12px 20px;font-size:15px;font-weight:700;text-decoration:none;white-space:nowrap;display:inline-block;}
.te-cta:hover{background:var(--te-red-dark);color:#fff!important;}

.te-burger{display:none;background:none;border:1px solid var(--te-line);padding:10px 12px;cursor:pointer;line-height:0;}
.te-burger span{display:block;width:22px;height:2px;background:var(--te-ink);margin:4px 0;}

@media(max-width:1024px){
  .te-header-inner{min-height:66px;}
  .te-burger{display:block;order:3;}
  .te-nav{order:4;flex-basis:100%;display:none;border-top:1px solid var(--te-line);margin:0;}
  .te-nav.is-open{display:block;}
  .te-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:8px 0;}
  .te-nav li{border-bottom:1px solid var(--te-line);}
  .te-nav li:last-child{border-bottom:0;}
  .te-nav a{padding:12px 2px;}
  .te-nav .sub-menu{display:block;position:static;border:0;box-shadow:none;padding:0 0 8px 14px;}
  .te-header-cta{display:none;}
  .te-topbar .te-wrap{justify-content:center;text-align:center;}
}

/* ---------- Content ---------- */
.te-main{min-height:50vh;}
.te-page{padding:56px 0 72px;}
.te-page-header{background:var(--te-bg);border-bottom:1px solid var(--te-line);padding:46px 0;}
.te-page-header h1{margin:0;font-size:36px;}
.te-page-header p{margin:10px 0 0;color:var(--te-muted);max-width:760px;}
.te-content{max-width:860px;}
.te-content h2{font-size:27px;margin-top:1.7em;}
.te-content h3{font-size:21px;margin-top:1.5em;}
.te-content ul,.te-content ol{padding-left:22px;}
.te-content li{margin-bottom:8px;}
.te-content table{width:100%;border-collapse:collapse;margin:22px 0;}
.te-content th,.te-content td{border:1px solid var(--te-line);padding:10px 12px;text-align:left;vertical-align:top;}
.te-content th{background:var(--te-bg);color:var(--te-ink);}

/* ---------- Footer ---------- */
.te-footer{background:var(--te-ink);color:#b3b4b8;font-size:15px;margin-top:0;}
.te-footer a{color:#dcdcde;text-decoration:none;}
.te-footer a:hover{color:#fff;text-decoration:underline;}
.te-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:36px;padding:52px 0 40px;}
.te-footer h3{color:#fff;font-size:15px;text-transform:uppercase;letter-spacing:.09em;margin:0 0 16px;}
.te-footer ul{list-style:none;margin:0;padding:0;}
.te-footer li{margin-bottom:9px;}
.te-footer-about p{margin:0 0 14px;}
.te-footer-brand{font-size:21px;font-weight:800;color:#fff;display:block;margin-bottom:12px;}
.te-footer-brand b{color:var(--te-red);}
.te-footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:14px;}
@media(max-width:900px){.te-footer-grid{grid-template-columns:1fr 1fr;gap:28px;padding:40px 0 28px;}}
@media(max-width:560px){.te-footer-grid{grid-template-columns:1fr;}.te-page-header h1{font-size:29px;}}

/* ---------- Shared building blocks used by Elementor content ---------- */
.te-eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--te-red);margin-bottom:10px;}
.te-grid{display:grid;gap:22px;}
.te-grid-2{grid-template-columns:repeat(2,1fr);}
.te-grid-3{grid-template-columns:repeat(3,1fr);}
.te-grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.te-grid-3,.te-grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.te-grid-2,.te-grid-3,.te-grid-4{grid-template-columns:1fr;}}

.te-card{background:#fff;border:1px solid var(--te-line);border-top:3px solid var(--te-red);padding:24px;}
.te-card h3{font-size:18px;margin:0 0 8px;}
.te-card p{margin:0;font-size:15.5px;color:var(--te-muted);}
.te-card-plain{background:#fff;border:1px solid var(--te-line);padding:24px;}
.te-card-plain h3{font-size:17px;margin:0 0 8px;}
.te-card-plain p{margin:0;font-size:15.5px;color:var(--te-muted);}

.te-step{background:transparent;border-left:2px solid rgba(216,36,28,.35);padding:4px 0 18px 20px;}
.te-step h3{font-size:16px;margin:0 0 6px;color:var(--te-ink);}
.te-step p{margin:0;font-size:15.5px;color:var(--te-muted);}

.te-checks{list-style:none;margin:0;padding:0;columns:2;column-gap:34px;}
.te-checks li{break-inside:avoid;position:relative;padding:0 0 10px 26px;font-size:15.5px;}
.te-checks li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;background:var(--te-red);}
@media(max-width:700px){.te-checks{columns:1;}}

.te-onlight{color:var(--te-ink-soft);}
.te-ondark,.te-ondark p,.te-ondark li{color:#c6c7ca;}
.te-ondark h1,.te-ondark h2,.te-ondark h3{color:#fff;}
.te-ondark .te-card,.te-ondark .te-card-plain{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);}
.te-ondark .te-card p,.te-ondark .te-card-plain p{color:#c6c7ca;}

/* ---------- Enquiry form ---------- */
.te-form{background:#fff;border:1px solid var(--te-line);padding:26px;}
.te-form p{margin:0 0 16px;}
.te-form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
@media(max-width:640px){.te-form-row{grid-template-columns:1fr;}}
.te-form label{display:block;font-size:14px;font-weight:600;color:var(--te-ink);margin-bottom:6px;}
.te-form label span{color:var(--te-red);}
.te-form input,.te-form select,.te-form textarea{width:100%;padding:11px 13px;border:1px solid #cfd0d4;background:#fff;font:inherit;font-size:15.5px;color:var(--te-ink);border-radius:0;}
.te-form input:focus,.te-form select:focus,.te-form textarea:focus{outline:2px solid var(--te-red);outline-offset:1px;border-color:var(--te-red);}
.te-form button.te-cta{border:0;cursor:pointer;font:inherit;font-weight:700;padding:14px 26px;}
.te-form-submit{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:0;}
.te-form-note{font-size:13.5px;color:var(--te-muted);max-width:420px;}
.te-form-hp{position:absolute;left:-9999px;height:0;overflow:hidden;}
.te-form-notice{padding:14px 18px;margin-bottom:18px;border-left:4px solid;font-size:15.5px;}
.te-form-ok{background:#eef7ee;border-color:#2e7d32;color:#1b5e20;}
.te-form-error{background:#fdeeed;border-color:var(--te-red);color:#8c1610;}

/* Elementor helpers */
.te-anchor{scroll-margin-top:120px;}
.elementor-widget-icon-list .elementor-icon-list-text{font-size:15.5px;}

/* ---------- FAQ ---------- */
.te-faq{border-top:1px solid var(--te-line);}
.te-faq-item{border-bottom:1px solid var(--te-line);}
.te-faq-item summary{cursor:pointer;list-style:none;padding:18px 44px 18px 0;position:relative;font-weight:700;color:var(--te-ink);font-size:17px;}
.te-faq-item summary::-webkit-details-marker{display:none;}
.te-faq-item summary::after{content:"";position:absolute;right:14px;top:50%;width:11px;height:11px;margin-top:-8px;border-right:2px solid var(--te-red);border-bottom:2px solid var(--te-red);transform:rotate(45deg);transition:transform .2s;}
.te-faq-item[open] summary::after{transform:rotate(-135deg);margin-top:-3px;}
.te-faq-answer{padding:0 10px 20px 0;}
.te-faq-answer p{margin:0;color:var(--te-muted);font-size:16px;}

/* ---------- Contact details block ---------- */
.te-contact-list{list-style:none;margin:0;padding:0;}
.te-contact-list li{padding:14px 0;border-bottom:1px solid var(--te-line);}
.te-contact-list li:last-child{border-bottom:0;}
.te-contact-list strong{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--te-muted);margin-bottom:3px;}
.te-contact-list a{color:var(--te-ink);text-decoration:none;font-weight:600;font-size:17px;}
.te-contact-list a:hover{color:var(--te-red);}

/* ---------- Service feature lists ---------- */
.te-features{list-style:none;margin:0;padding:0;columns:2;column-gap:30px;}
.te-features li{position:relative;padding:0 0 8px 22px;font-size:15.5px;line-height:1.5;break-inside:avoid;}
.te-features li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--te-red);}
.te-ondark .te-features li{color:#c6c7ca;}
@media(max-width:760px){.te-features{columns:1;}}
.te-features-label{margin:16px 0 9px;font-size:12.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--te-red);}
.te-ondark .te-features-label{color:#ff8a80;}
.te-ask{margin:16px 0 0;font-size:15px;font-weight:700;}
.te-ask a{color:var(--te-red);text-decoration:none;}
.te-ondark .te-ask a{color:#ffb3ad;}

/* ---------- Elementor section styling (kept in CSS, not per widget) ---------- */
.te-sec h1.elementor-heading-title{font-size:44px;line-height:1.14;margin-bottom:16px;}
.te-sec h2.elementor-heading-title{font-size:34px;line-height:1.2;margin-bottom:14px;}
.te-sec h3.elementor-heading-title{font-size:22px;line-height:1.25;margin-bottom:10px;}
.te-sec .elementor-widget-text-editor{font-size:17px;line-height:1.65;color:var(--te-ink-soft);}
.te-sec .elementor-widget-text-editor p{margin:0 0 14px;}
.te-sec .elementor-widget-text-editor p:last-child{margin-bottom:0;}
.te-sec .elementor-widget-heading{margin-bottom:0;}

.te-ondark h1.elementor-heading-title,.te-ondark h2.elementor-heading-title,.te-ondark h3.elementor-heading-title{color:#fff;}
.te-ondark .elementor-widget-text-editor{color:#c6c7ca;}

.te-el-card{background:#fff;border:1px solid var(--te-line);padding:28px;}
.te-ondark .te-el-card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);}

.te-el-btn .elementor-button{background:var(--te-red);color:#fff;border-radius:0;font-weight:700;font-size:15px;padding:15px 28px;letter-spacing:.01em;}
.te-el-btn .elementor-button:hover{background:var(--te-red-dark);color:#fff;}
.te-el-btn-ghost .elementor-button{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.3);}
.te-el-btn-ghost .elementor-button:hover{background:rgba(255,255,255,.16);}
.te-el-img img{display:block;width:100%;border:1px solid var(--te-line);}
.te-ondark .te-el-img img{border-color:rgba(255,255,255,.18);}

@media(max-width:768px){
  .te-sec h1.elementor-heading-title{font-size:31px;}
  .te-sec h2.elementor-heading-title{font-size:26px;}
  .te-sec h3.elementor-heading-title{font-size:20px;}
  .te-sec.e-con{padding-top:52px!important;padding-bottom:52px!important;padding-left:16px!important;padding-right:16px!important;}
  .te-el-card{padding:20px 18px;}
}


/* ---------- Elementor kit colours: replace the default light blue/green globals with the brand palette ---------- */
body[class*="elementor-kit-"]{
  --e-global-color-primary:#1a1c1f!important;
  --e-global-color-secondary:#3c3f45!important;
  --e-global-color-text:#3c3f45!important;
  --e-global-color-accent:#d8241c!important;
}
.elementor-widget-heading .elementor-heading-title{color:var(--te-ink);}
.elementor-widget-text-editor{color:var(--te-ink-soft);}

/* ---------- Elementor page styling (by element id, classes are stripped on save) ---------- */
.elementor-widget-heading h1.elementor-heading-title{font-size:44px;line-height:1.14;margin:0 0 16px;}
.elementor-widget-heading h2.elementor-heading-title{font-size:34px;line-height:1.2;margin:0 0 14px;}
.elementor-widget-heading h3.elementor-heading-title{font-size:22px;line-height:1.28;margin:0 0 10px;}
.elementor-widget-text-editor{font-size:17px;line-height:1.65;color:var(--te-ink-soft);}
.elementor-widget-text-editor p{margin:0 0 14px;}
.elementor-widget-text-editor p:last-child{margin-bottom:0;}
.elementor-widget-image img{display:block;width:100%;border:1px solid var(--te-line);}

/* Service cards */
#water-tube-boilers,#fire-tube-boilers,#solid-fuel-boilers,#hybrid-boilers,#hrsg-gas-turbine,#hrsg-engines,#thermal-oil-heater,#orc-system-design,#economizer-design,#deaerator-design,#condensate-system-design,#expansion-vessel-design,#hydraulic-calculations,#psv-capacity-calculations,#steam-system-performance,#independent-design-verification,#commissioning-services,#om-manuals,#control-narratives,#boiler-preservation,#vendor-quotation-vetting{background:#fff;border:1px solid var(--te-line);padding:28px;}
#thermal-oil-heater,#orc-system-design,#economizer-design,#steam-system-performance,#independent-design-verification,#commissioning-services{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);}

/* Dark sections */
#waste-heat-recovery,#verification-commissioning,#top,#standards{color:#c6c7ca;}
#waste-heat-recovery h1.elementor-heading-title,#verification-commissioning h1.elementor-heading-title,#top h1.elementor-heading-title,#standards h1.elementor-heading-title,#waste-heat-recovery h2.elementor-heading-title,#verification-commissioning h2.elementor-heading-title,#top h2.elementor-heading-title,#standards h2.elementor-heading-title,#waste-heat-recovery h3.elementor-heading-title,#verification-commissioning h3.elementor-heading-title,#top h3.elementor-heading-title,#standards h3.elementor-heading-title{color:#fff;}
#waste-heat-recovery .elementor-widget-text-editor,#verification-commissioning .elementor-widget-text-editor,#top .elementor-widget-text-editor,#standards .elementor-widget-text-editor{color:#c6c7ca;}
#waste-heat-recovery .elementor-widget-image img,#verification-commissioning .elementor-widget-image img,#top .elementor-widget-image img,#standards .elementor-widget-image img{border-color:rgba(255,255,255,.18);}
#waste-heat-recovery .te-features li,#verification-commissioning .te-features li,#top .te-features li,#standards .te-features li{color:#c6c7ca;}
#waste-heat-recovery .te-features-label,#verification-commissioning .te-features-label,#top .te-features-label,#standards .te-features-label,#waste-heat-recovery .te-eyebrow,#verification-commissioning .te-eyebrow,#top .te-eyebrow,#standards .te-eyebrow{color:#ff8a80;}
#waste-heat-recovery .te-ask a,#verification-commissioning .te-ask a,#top .te-ask a,#standards .te-ask a{color:#ffb3ad;}

/* CTA links inside Elementor content */
.te-cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:22px;}
.te-cta-ghost{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.3);}
.te-cta-ghost:hover{background:rgba(255,255,255,.18)!important;}

@media(max-width:768px){
  .elementor-widget-heading h1.elementor-heading-title{font-size:31px;}
  .elementor-widget-heading h2.elementor-heading-title{font-size:26px;}
  .elementor-widget-heading h3.elementor-heading-title{font-size:20px;}
  #water-tube-boilers,#fire-tube-boilers,#solid-fuel-boilers,#hybrid-boilers,#hrsg-gas-turbine,#hrsg-engines,#thermal-oil-heater,#orc-system-design,#economizer-design,#deaerator-design,#condensate-system-design,#expansion-vessel-design,#hydraulic-calculations,#psv-capacity-calculations,#steam-system-performance,#independent-design-verification,#commissioning-services,#om-manuals,#control-narratives,#boiler-preservation,#vendor-quotation-vetting{padding:20px 18px;}
  .e-con.e-parent{padding-top:52px!important;padding-bottom:52px!important;padding-left:16px!important;padding-right:16px!important;}
}
