/*
Theme Name: OMTECHSYS
Theme URI: https://omtechsys.example
Author: OMTECHSYS
Description: OMTECHSYS corporate theme — Energy, Infrastructure and Trade. Copper industrial palette, Barlow Condensed / IBM Plex Sans.
Version: 3.4.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: omtechsys
*/

/* ===== page shell (no body/:root/* styles; wrapper carries theme) ===== */
.omts-page { margin:-8px; font-family:'IBM Plex Sans',sans-serif; color:#2a211a; background:#faf7f3; }
.omts-page a { color:#b06136; }
.omts-page a:hover { color:#8f4a26; }
.omts-wrap { max-width:1320px; margin:0 auto; padding:0 32px; }
.omts-heading { font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:0.5px; margin:0; }
.omts-kicker { font-size:13px; letter-spacing:4px; color:#e79a63; font-weight:600; }
.omts-btn-solid { display:inline-block; background:#b06136; color:#fff !important; text-decoration:none; font-weight:600; font-size:14px; letter-spacing:1.5px; padding:16px 32px; }
.omts-btn-solid:hover { background:#c47c50; }
.omts-btn-ghost { display:inline-block; border:1px solid rgba(245,239,232,0.4); color:#f5efe8 !important; text-decoration:none; font-weight:600; font-size:14px; letter-spacing:1.5px; padding:16px 32px; }
.omts-btn-ghost:hover { border-color:#e79a63; color:#e79a63 !important; }
/* ===== nav ===== */
.omts-nav { background:#1c1410; color:#f5efe8; border-bottom:1px solid rgba(196,124,80,0.25); position:relative; z-index:900; }
.omts-nav-inner { max-width:1320px; margin:0 auto; display:flex; align-items:center; gap:28px; padding:0 32px; height:78px; }
.omts-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:#f5efe8 !important; }
.omts-brand-logo { width:64px; height:64px; object-fit:contain; }
.omts-brand-name { font-family:'Barlow Condensed',sans-serif; font-size:27px; font-weight:700; letter-spacing:3px; display:block; line-height:1; }
.omts-brand-tag { font-size:10px; letter-spacing:2.4px; color:#c47c50; display:block; margin-top:3px; }
.omts-menu { display:flex; align-items:center; gap:4px; margin-left:auto; }
.omts-menu-item { position:relative; }
.omts-menu-link { display:block; padding:12px 16px; color:#e8ddd2 !important; text-decoration:none; font-size:14.5px; letter-spacing:0.3px; cursor:pointer; }
.omts-menu-link:hover { color:#e79a63 !important; }
.omts-menu-link-active { color:#e79a63 !important; box-shadow:inset 0 -2px 0 #b06136; }
.omts-caret { font-size:9px; margin-left:4px; }
.omts-drop { display:none; position:absolute; top:100%; left:0; background:#241a13; border:1px solid rgba(196,124,80,0.3); min-width:210px; padding:10px 0; box-shadow:0 18px 40px rgba(0,0,0,0.45); }
.omts-menu-item:hover .omts-drop { display:block; }
.omts-drop-link { display:block; padding:10px 22px; color:#e8ddd2 !important; text-decoration:none; font-size:14px; }
.omts-drop-link:hover { background:#31241a; color:#e79a63 !important; }
.omts-mega { display:none; position:absolute; top:100%; right:-120px; background:#241a13; border:1px solid rgba(196,124,80,0.3); padding:26px 30px; box-shadow:0 18px 40px rgba(0,0,0,0.45); }
.omts-menu-item:hover .omts-mega { display:flex; }
.omts-mega-col { width:210px; padding:0 26px; border-right:1px solid rgba(196,124,80,0.2); }
.omts-mega-col:first-child { padding-left:0; }
.omts-mega-col:last-child { border-right:none; padding-right:0; }
.omts-mega-title { font-family:'Barlow Condensed',sans-serif; font-size:19px; font-weight:600; letter-spacing:1.5px; color:#e79a63 !important; text-decoration:none; }
.omts-mega-list { display:flex; flex-direction:column; gap:2px; margin-top:12px; }
.omts-btn-enquire { margin-left:14px; background:#b06136; color:#fff !important; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:1px; padding:11px 22px; text-transform:uppercase; }
.omts-btn-enquire:hover { background:#c47c50; }
/* ===== hero ===== */
.omts-hero { position:relative; background:#1c1410; overflow:hidden; }
.omts-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.omts-hero-scrim { position:absolute; inset:0; background:linear-gradient(100deg, rgba(23,16,9,0.94) 0%, rgba(23,16,9,0.75) 45%, rgba(23,16,9,0.25) 100%); }
.omts-hero-body { position:relative; padding-top:110px; padding-bottom:96px; }
.omts-hero-title { font-size:76px; line-height:1.02; color:#f5efe8; margin:22px 0 0; max-width:720px; text-wrap:pretty; }
.omts-hero-sub { color:#d8ccbf; font-size:18px; line-height:1.7; max-width:560px; margin:26px 0 0; text-wrap:pretty; }
.omts-hero-cta { display:flex; gap:16px; margin-top:40px; }
.omts-stats { position:relative; border-top:1px solid rgba(196,124,80,0.3); background:rgba(23,16,9,0.85); }
.omts-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; padding-top:26px; padding-bottom:26px; }
.omts-stat-num { font-family:'Barlow Condensed',sans-serif; font-size:40px; font-weight:700; color:#e79a63; }
.omts-stat-label { font-size:13px; letter-spacing:1.5px; color:#cbbfb2; }
.omts-credit { position:absolute; left:10px; bottom:8px; font-size:11px; color:rgba(245,239,232,0.55); z-index:2; }
.omts-credit a { color:rgba(245,239,232,0.7) !important; }
/* ===== sections ===== */
.omts-section { padding-top:96px; }
.omts-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:24px; }
.omts-section-note { font-size:14px; color:#8d7a68; }
.omts-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:40px; }
.omts-card { text-decoration:none; color:#2a211a !important; background:#fff; border:1px solid #e8ddd0; display:flex; flex-direction:column; }
.omts-card:hover { border-color:#b06136; box-shadow:0 16px 40px rgba(80,50,30,0.12); }
.omts-card-media { position:relative; height:210px; overflow:hidden; }
.omts-card-media img { width:100%; height:100%; object-fit:cover; display:block; }
.omts-card-body { padding:26px 26px 30px; }
.omts-card-title { font-family:'Barlow Condensed',sans-serif; font-size:26px; font-weight:700; letter-spacing:1.5px; }
.omts-card-text { font-size:14.5px; line-height:1.65; color:#5c4f43; margin:10px 0 16px; text-wrap:pretty; }
.omts-card-cta { font-size:13px; font-weight:600; letter-spacing:1.5px; color:#b06136; }
/* ===== EPC band ===== */
.omts-epc { background:#1c1410; color:#f5efe8; padding:56px; display:grid; grid-template-columns:1fr 1.6fr; gap:56px; align-items:center; margin-top:96px; }
.omts-epc-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; }
.omts-epc-step { background:#241a13; padding:24px 20px; }
.omts-epc-num { font-family:'Barlow Condensed',sans-serif; font-size:30px; color:#b06136; font-weight:700; }
.omts-epc-name { font-weight:600; margin-top:8px; }
.omts-epc-desc { font-size:13px; color:#cbbfb2; margin-top:6px; line-height:1.55; }
.omts-epc-link { display:inline-block; margin-top:26px; color:#e79a63 !important; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:1.5px; }
.omts-epc-link:hover { color:#c47c50 !important; }
/* ===== gallery ===== */
.omts-gal-nav { display:flex; gap:10px; }
.omts-gal-btn { width:44px; height:44px; border:1px solid #d8c9b8; background:#fff; cursor:pointer; font-size:17px; color:#b06136; }
.omts-gal-btn:hover { background:#b06136; color:#fff; }
.omts-gal-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; margin-top:36px; padding-bottom:12px; scrollbar-width:none; }
.omts-gal-item { flex:0 0 420px; scroll-snap-align:start; }
.omts-gal-media { position:relative; height:280px; overflow:hidden; }
.omts-gal-media img { width:100%; height:100%; object-fit:cover; display:block; }
.omts-gal-title { font-weight:600; margin-top:14px; font-size:15px; }
.omts-gal-meta { font-size:13px; color:#8d7a68; margin-top:4px; letter-spacing:1px; }
.omts-section-last { padding-bottom:96px; }
/* ===== ticker + footer ===== */
.omts-ticker { background:#b06136; color:#fff; overflow:hidden; display:flex; align-items:stretch; }
.omts-ticker-label { background:#8f4a26; padding:10px 18px; font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:2.5px; font-size:15px; display:flex; align-items:center; white-space:nowrap; z-index:2; }
.omts-ticker-view { overflow:hidden; flex:1; display:flex; align-items:center; }
.omts-ticker-belt { display:flex; gap:64px; white-space:nowrap; animation:omts-scroll 45s linear infinite; padding-left:32px; font-size:13.5px; }
@keyframes omts-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.omts-footer { background:#171009; color:#cbbfb2; padding:64px 32px 0; }
.omts-footer a { color:#cbbfb2 !important; text-decoration:none; }
.omts-footer a:hover { color:#e79a63 !important; }
.omts-footer-grid { max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.5fr 0.9fr 1fr 1.15fr 0.95fr; gap:36px; }
.omts-footer-qr { border:1px solid rgba(231,154,99,0.35); border-radius:10px; padding:20px 18px; text-align:center; background:rgba(231,154,99,0.04); height:fit-content; display:flex; flex-direction:column; align-items:center; }
.omts-qr-link { position:relative; display:inline-block; text-decoration:none; }
.omts-qr-link img { width:88px; height:88px; border-radius:8px; background:#fff; padding:6px; box-sizing:border-box; display:block; transition:box-shadow .18s ease, transform .18s ease; }
.omts-qr-link:hover img { box-shadow:0 0 0 3px rgba(231,154,99,0.6); transform:translateY(-2px); }
.omts-qr-tip { position:absolute; left:50%; bottom:calc(100% + 8px); transform:translateX(-50%) translateY(4px); background:#241a13; color:#f5efe8; font-size:11.5px; font-weight:500; white-space:nowrap; padding:6px 10px; border-radius:6px; border:1px solid rgba(231,154,99,0.35); opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease; pointer-events:none; z-index:5; }
.omts-qr-tip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:#241a13; }
.omts-qr-link:hover .omts-qr-tip, .omts-qr-link:focus-visible .omts-qr-tip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.omts-footer-qr-caption { font-size:12px; color:#cbbfb2; margin-top:12px; max-width:130px; line-height:1.4; }
.omts-footer-head { font-family:'Barlow Condensed',sans-serif; font-size:15px; font-weight:600; letter-spacing:2px; color:#e79a63; margin-bottom:14px; }
.omts-footer-links { display:flex; flex-direction:column; gap:9px; font-size:13.5px; }
.omts-footer-offices-compact { font-size:12.5px; line-height:1.6; color:#a89b8c; }
.omts-footer-blurb { font-size:13.5px; line-height:1.7; margin:16px 0 0; color:#a89b8c; text-wrap:pretty; }
.omts-footer-tagline { font-size:11px; letter-spacing:2.5px; color:#e79a63; margin-top:8px; }
.omts-footer-contact { font-size:13px; line-height:1.9; }
.omts-footer-bottom { max-width:1320px; margin:48px auto 0; border-top:1px solid rgba(196,124,80,0.2); padding:20px 0; display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:#8d8073; }
.omts-wa { position:fixed; right:26px; bottom:26px; width:58px; height:58px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(0,0,0,0.35); z-index:950; text-decoration:none; }
.omts-wa:hover { transform:scale(1.07); }
/* ===== scroll reveal ===== */
.omts-reveal { opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.omts-reveal-in { opacity:1; transform:none; }
/* ===== responsive ===== */
@media (max-width: 980px) {
  .omts-hero-title { font-size:48px; }
  .omts-stats-grid, .omts-cards { grid-template-columns:1fr 1fr; }
  .omts-epc { grid-template-columns:1fr; padding:36px; }
  .omts-footer-grid { grid-template-columns:1fr 1fr; }
  .omts-menu { display:none; }
}
@media (max-width: 600px) {
  .omts-stats-grid, .omts-cards, .omts-footer-grid, .omts-epc-steps { grid-template-columns:1fr; }
  .omts-gal-item { flex-basis:80vw; }
}

/* ===== contact form controls ===== */
.omts-input { background:#241a13; border:1px solid rgba(196,124,80,0.35); color:#f5efe8; padding:15px 16px; font-size:14px; font-family:'IBM Plex Sans',sans-serif; outline:none; }
.omts-input:focus { border-color:#e79a63; }
.omts-input::placeholder { color:#9b8a7b; }
.omts-form-btn { background:#b06136; border:none; color:#fff; font-size:13px; font-weight:600; letter-spacing:1.5px; padding:16px 36px; cursor:pointer; font-family:'IBM Plex Sans',sans-serif; }
.omts-form-btn:hover { background:#c47c50; }
@media (max-width: 980px) {
  .omts-input, .omts-form-btn { width:100%; box-sizing:border-box; }
}

/* ===== investor calculator ===== */
.omts-calc-step { font-size:11px; letter-spacing:2.5px; color:#b06136; font-weight:600; }
.omts-scheme-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:18px; }
.omts-scheme { text-align:left; cursor:pointer; padding:18px 20px; border:1px solid #e8ddd0; background:#faf7f3; color:#2a211a; font-family:'IBM Plex Sans',sans-serif; transition:all .15s ease; }
.omts-scheme:hover { border-color:#b06136; }
.omts-scheme-on { border-color:#b06136; background:#1c1410; color:#f5efe8; box-shadow:0 10px 26px rgba(80,50,30,0.18); }
.omts-scheme-name { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:700; letter-spacing:1px; display:block; }
.omts-scheme-blurb { font-size:12.5px; line-height:1.5; display:block; margin-top:6px; opacity:0.85; }
.omts-calc-questions { padding:34px 40px; border-bottom:1px solid #e8ddd0; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; align-items:start; }
.omts-calc-select { width:100%; margin-top:12px; padding:13px 14px; font-size:14px; font-family:'IBM Plex Sans',sans-serif; border:1px solid #d8c9b8; background:#faf7f3; color:#2a211a; }
.omts-calc-results { display:grid; grid-template-columns:repeat(5,1fr); gap:2px; margin-top:28px; }
.omts-calc-cell { background:#241a13; padding:24px 22px; }
.omts-calc-cell-label { font-size:11.5px; letter-spacing:1.5px; color:#cbbfb2; }
.omts-calc-cell-val { font-family:'Barlow Condensed',sans-serif; font-size:32px; font-weight:700; color:#e79a63; margin-top:8px; }
@media (max-width: 980px) {
  .omts-scheme-grid { grid-template-columns:1fr 1fr; }
  .omts-calc-questions { grid-template-columns:1fr; padding:28px; }
  .omts-calc-results { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .omts-scheme-grid, .omts-calc-results { grid-template-columns:1fr; }
}

/* ===== live FX ticker ===== */
.omts-fx { position:absolute; top:0; right:0; background:#1c1410; border-left:1px solid #e8ddd0; border-bottom:1px solid rgba(196,124,80,0.3); padding:12px 18px; display:flex; align-items:center; gap:18px; }
.omts-fx-live { display:flex; align-items:center; gap:7px; font-size:10px; letter-spacing:2px; color:#e79a63; font-weight:600; }
.omts-fx-dot { width:7px; height:7px; border-radius:50%; background:#25d366; display:inline-block; animation:omts-fx-pulse 1.4s ease-in-out infinite; }
.omts-fx-cell { display:block; padding:2px 6px; }
.omts-fx-flash { animation:omts-fx-flash 1.1s ease-out; }
.omts-fx-pair { font-size:10px; letter-spacing:1.2px; color:#9b8a7b; display:block; }
.omts-fx-rate { font-family:'Barlow Condensed',sans-serif; font-size:19px; font-weight:700; color:#f5efe8; display:block; line-height:1.15; }
.omts-fx-stamp { font-size:9.5px; color:#8d8073; max-width:96px; line-height:1.35; }
@keyframes omts-fx-pulse { 0%,100% { opacity:1; } 50% { opacity:0.35; } }
@keyframes omts-fx-flash { 0% { background:rgba(231,154,99,0.35); } 100% { background:transparent; } }
@media (max-width: 980px) {
  .omts-fx { position:static; border-left:none; flex-wrap:wrap; gap:12px; }
}

/* ===== social shortcuts ===== */
.omts-soc-row { display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; }
.omts-soc { width:40px; height:40px; border:1px solid rgba(196,124,80,0.35); display:flex; align-items:center; justify-content:center; background:#1f160e; color:#e79a63 !important; transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.omts-soc:hover { background:#b06136; border-color:#b06136; color:#fff !important; }
.omts-soc-big { width:54px; height:54px; border:1px solid #d8c9b8; background:#fff; color:#b06136 !important; display:flex; align-items:center; justify-content:center; }
.omts-soc-big:hover { background:#b06136; border-color:#b06136; color:#fff !important; }
.omts-brand-logo { width:74px; height:74px; filter:drop-shadow(0 0 14px rgba(231,154,99,0.55)) drop-shadow(0 0 3px rgba(255,214,170,0.5)); }

/* ===== LNG trade page ===== */
.omts-lng-cell { background:#241a13; padding:20px 22px; }
@keyframes omlng-pulse { 0%,100% { opacity:1; } 50% { opacity:0.35; } }
@keyframes omlng-beacon { 0% { transform:scale(0.6); opacity:0.9; } 100% { transform:scale(2.4); opacity:0; } }
@media (max-width: 980px) {
  .omts-lng-cell { padding:16px; }
}

/* ===== logo animation panel ===== */
.omts-logo-film { position:relative; border:1px solid rgba(196,124,80,0.4); background:#120c07; overflow:hidden; }
.omts-logo-film video { width:100%; height:100%; object-fit:cover; display:block; filter:drop-shadow(0 0 20px rgba(231,154,99,0.35)); }

/* ===== nav dropdown panels (CSS-only hover) ===== */
.omts-drop-panel { display:none; }
.omts-menu-item:hover > .omts-drop-panel { display:block; }
.omts-menu-item:hover > .omts-drop-mega { display:flex; }
/* ===== FAQ accordion ===== */
.omts-faq-q { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:22px 26px; display:flex; align-items:flex-start; gap:18px; font-family:'IBM Plex Sans',sans-serif; }
.omts-faq-q:hover { background:#faf7f3; }
.omts-faq-cat { font-size:10.5px; letter-spacing:1.5px; color:#b06136; font-weight:600; min-width:110px; padding-top:4px; }
.omts-faq-text { flex:1; font-size:16px; font-weight:600; color:#2a211a; line-height:1.45; }
.omts-faq-sign { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:26px; color:#b06136; line-height:1; }
.omts-faq-a { padding:0 26px 24px 154px; }
@media (max-width: 720px) {
  .omts-faq-q { flex-wrap:wrap; gap:8px; }
  .omts-faq-a { padding:0 22px 22px; }
}

/* ===== nav: single row, shrink then collapse ===== */
.omts-nav-inner { flex-wrap:nowrap; padding:0 clamp(16px,2.4vw,32px); }
.omts-menu { flex-wrap:nowrap; justify-content:flex-end; min-width:0; }
.omts-menu-link { padding:12px clamp(7px,0.75vw,11px); font-size:clamp(13px,1.1vw,14.5px); }
.omts-brand-logo { width:clamp(50px,5.2vw,74px); height:clamp(50px,5.2vw,74px); flex-shrink:0; }
.omts-brand-name { font-size:clamp(21px,2.1vw,27px); letter-spacing:clamp(1.6px,0.24vw,3px); white-space:nowrap; }
.omts-brand-tag { font-size:clamp(8.5px,0.82vw,10px); letter-spacing:clamp(1.4px,0.2vw,2.4px); white-space:nowrap; }
.omts-burger { display:none; margin-left:auto; width:46px; height:46px; background:none; border:1px solid rgba(196,124,80,0.45); color:#e79a63; font-size:20px; cursor:pointer; flex-shrink:0; align-items:center; justify-content:center; }
.omts-burger:hover { background:#b06136; color:#fff; }
.omts-mobile-menu { border-top:1px solid rgba(196,124,80,0.3); background:#241a13; padding:14px 0 20px; }
.omts-mob-group { display:block; padding:9px clamp(16px,2.4vw,32px); color:#e79a63 !important; text-decoration:none; font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:600; letter-spacing:1.8px; }
.omts-mob-item { display:block; padding:9px clamp(16px,2.4vw,32px) 9px calc(clamp(16px,2.4vw,32px) + 16px); color:#e8ddd2 !important; text-decoration:none; font-size:14.5px; }
.omts-mob-group:hover, .omts-mob-item:hover { background:#31241a; color:#e79a63 !important; }
.omts-mob-cta { display:block; margin:16px clamp(16px,2.4vw,32px) 0; background:#b06136; color:#fff !important; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:1px; padding:14px 20px; text-transform:uppercase; text-align:center; }
.omts-mob-cta:hover { background:#c47c50; }
@media (max-width: 1000px) {
  .omts-btn-enquire { display:none; }
}
@media (max-width: 980px) {
  .omts-menu { display:none; }
  .omts-burger { display:flex; }
}

/* ===== om-grid-guard ===== */
[style*="grid-template-columns"] { min-width:0; }
[style*="grid-template-columns"] > * { min-width:0; }
.omts-page p a { overflow-wrap:anywhere; }
@media (max-width: 1080px) {
  [style*="grid-template-columns:repeat(5"], [style*="grid-template-columns:repeat(6"] { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
  [style*="grid-template-columns:repeat(4"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 860px) {
  [style*="grid-template-columns"] { grid-template-columns:minmax(0,1fr) !important; }
}

/* ===== site header (wp_nav_menu) — replaces the old hardcoded nav markup ===== */
.omts-topbar { background:#1c1410; color:#f5efe8; position:relative; z-index:900; border-bottom:1px solid rgba(196,124,80,0.25); }
.omts-topbar-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:20px; padding:0 clamp(16px,2.4vw,32px); min-height:82px; }
.omts-topbar .omts-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:#f5efe8 !important; }
.omts-topbar .omts-brand-text { display:flex; flex-direction:column; line-height:1; }
.omts-topbar .custom-logo { width:clamp(50px,5.2vw,74px); height:clamp(50px,5.2vw,74px); object-fit:contain; }
/* nav wrapper: overrides the legacy .omts-nav bar rule — here it only holds the menu */
.omts-topbar .omts-nav { margin-left:auto; min-width:0; background:none; border:none; }
.omts-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:2px; flex-wrap:nowrap; justify-content:flex-end; min-width:0; }
.omts-menu > li { position:relative; }
.omts-menu > li > a { display:block; padding:12px clamp(7px,0.75vw,11px); color:#e8ddd2 !important; text-decoration:none; font-size:clamp(13px,1.1vw,14.5px); letter-spacing:0.3px; white-space:nowrap; }
.omts-menu > li > a:hover { color:#e79a63 !important; }
.omts-menu > li.current-menu-item > a,
.omts-menu > li.current-menu-ancestor > a,
.omts-menu > li.current-menu-parent > a { color:#e79a63 !important; box-shadow:inset 0 -2px 0 #b06136; }
.omts-menu .menu-item-has-children > a::after { content:"\25BE"; font-size:9px; margin-left:4px; }
/* dropdown panels — carries the treatment from the old .omts-drop / .omts-mega */
.omts-menu .sub-menu { list-style:none; margin:0; padding:10px 0; display:none; position:absolute; top:100%; left:0; min-width:220px; background:#241a13; border:1px solid rgba(196,124,80,0.3); box-shadow:0 18px 40px rgba(0,0,0,0.45); z-index:20; }
.omts-menu > li:hover > .sub-menu,
.omts-menu > li:focus-within > .sub-menu { display:block; }
/* right-align the last two top-level dropdowns so they never overflow the viewport */
.omts-menu > li:nth-last-child(-n+2) > .sub-menu { left:auto; right:0; }
.omts-menu .sub-menu a { display:block; padding:10px 22px; color:#e8ddd2 !important; text-decoration:none; font-size:14px; white-space:nowrap; }
.omts-menu .sub-menu a:hover { background:#31241a; color:#e79a63 !important; }
.omts-menu .sub-menu .current-menu-item > a { color:#e79a63 !important; }
/* mobile menu (wp_nav_menu, container:false) */
.omts-mobile-list { list-style:none; margin:0; padding:0; }
.omts-mobile-list > li > a { display:block; padding:9px clamp(16px,2.4vw,32px); color:#e79a63 !important; text-decoration:none; font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:600; letter-spacing:1.8px; }
.omts-mobile-list .sub-menu { list-style:none; margin:0; padding:0; display:none; position:static; background:none; border:none; box-shadow:none; min-width:0; }
.omts-mobile-list .sub-menu a { display:block; padding:9px clamp(16px,2.4vw,32px) 9px calc(clamp(16px,2.4vw,32px) + 16px); color:#e8ddd2 !important; text-decoration:none; font-size:14.5px; }
.omts-mobile-list .sub-menu .sub-menu a { padding-left:calc(clamp(16px,2.4vw,32px) + 40px); font-size:14px; }
.omts-mobile-list a:hover { background:#31241a; color:#e79a63 !important; }
/* collapsible dropdown: children stay hidden until the parent li gets .is-open
   (toggled in js/nav.js). Scoped to .omts-mobile-list so the desktop mega menu
   (.omts-menu, with its own \25BE chevron) is untouched — no double chevron. */
.omts-mobile-list li.is-open > .sub-menu { display:block; }
.omts-mobile-list li.menu-item-has-children > a::after { content:"\25BE"; margin-left:8px; display:inline-block; transition:transform .2s ease; }
.omts-mobile-list li.menu-item-has-children.is-open > a::after { transform:rotate(180deg); }
@media (max-width: 1000px) { .omts-topbar .omts-btn-enquire { display:none; } }
@media (max-width: 980px) {
  .omts-topbar .omts-nav { display:none; }
  .omts-topbar .omts-burger { display:flex; }
}

/* ===== mega menu — add class "mega-menu" to a top-level menu item (Businesses) ===== */
/* Level 2 (.mega-menu > .sub-menu) becomes a 3-column grid panel; level 3 renders inline. */
/* Desktop-only: scoped to min-width:981px so these grid/column rules never reach the
   mobile hamburger list, which renders the same menu (mega-menu class included). */
@media (min-width: 981px) {
.omts-menu > li.mega-menu > .sub-menu { padding:26px 30px; left:auto; right:0; min-width:900px; max-width:min(1100px,95vw); grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.omts-menu > li.mega-menu:hover > .sub-menu,
.omts-menu > li.mega-menu:focus-within > .sub-menu { display:grid; }
/* columns — replicate the original 26px padding + divider borders */
.mega-menu > .sub-menu > li { padding:0 26px; border-right:1px solid rgba(196,124,80,0.2); }
.mega-menu > .sub-menu > li:first-child { padding-left:0; }
.mega-menu > .sub-menu > li:last-child { padding-right:0; border-right:none; }
/* column header (level-2 link) */
.mega-menu > .sub-menu > li > a { font-family:'Barlow Condensed',sans-serif; font-size:19px; font-weight:600; letter-spacing:1.5px; color:#e79a63 !important; text-transform:uppercase; padding:0; white-space:nowrap; }
.mega-menu .menu-item-has-children > a::after { content:none; } /* no caret inside the mega */
/* level-3 list under each header — plain vertical list, always inline (not a flyout) */
.mega-menu > .sub-menu > li > .sub-menu { display:block; position:static; inset:auto; min-width:0; margin:12px 0 0; padding:0; background:none; border:none; box-shadow:none; }
.mega-menu > .sub-menu > li > .sub-menu > li > a { padding:7px 0; font-size:14px; }
/* non-clickable label items: add class "no-link" (e.g. on the top-level Businesses item) */
.omts-menu .no-link > a,
.mega-menu .no-link > a { pointer-events:none; cursor:default; }
/* JS-driven open state (keyboard/click) — mirrors the :hover / :focus-within ladder */
.omts-menu > li.is-open > .sub-menu { display:block; }
.omts-menu > li.mega-menu.is-open > .sub-menu { display:grid; }
} /* end @media (min-width:981px) — mega menu is desktop-only */

/* ===== skip link + screen-reader utility (a11y) ===== */
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); -webkit-clip-path:inset(50%); clip-path:inset(50%); height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal !important; }
.screen-reader-text:focus { clip:auto !important; -webkit-clip-path:none; clip-path:none; display:block; height:auto; width:auto; left:8px; top:8px; z-index:100000; padding:14px 22px; line-height:normal; text-decoration:none; }
.omts-skip-link:focus { background:#b06136; color:#fff !important; font-size:14px; font-weight:600; letter-spacing:1px; outline:2px solid #fff; outline-offset:2px; }
.omts-main-anchor { display:block; height:0; }

/* ===== contact form: CF7 output styling + inactive-plugin fallback (M6) ===== */
/* Fallback notice shown when Contact Form 7 is not active. Sits inside the dark
   enquiry panel, so it uses the copper-accent card treatment. */
.omts-form-fallback { border-left:3px solid #b06136; background:#241a13; padding:24px 28px; color:#f5efe8; font-family:'IBM Plex Sans',sans-serif; }
.omts-form-fallback p { margin:0 0 8px; font-size:14.5px; line-height:1.7; }
.omts-form-fallback p:last-child { margin-bottom:0; color:#d8ccbf; }
.omts-form-fallback strong { color:#e79a63; }
.omts-form-fallback a { color:#e79a63 !important; }

/* CF7 wraps fields in its own markup; map its default classes onto the theme look. */
.wpcf7-form { display:grid; gap:18px; }
.wpcf7-form p { margin:0; }
.wpcf7-form label { display:block; font-size:12px; letter-spacing:1px; color:#cbbfb2; }
/* base controls mirror .omts-input */
.wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-list-item-label) {
  width:100%; box-sizing:border-box; background:#241a13; border:1px solid rgba(196,124,80,0.35);
  color:#f5efe8; padding:15px 16px; font-size:14px; font-family:'IBM Plex Sans',sans-serif; outline:none;
}
.wpcf7-form .wpcf7-form-control:not(.wpcf7-submit):focus { border-color:#e79a63; }
.wpcf7-form .wpcf7-form-control::placeholder { color:#9b8a7b; }
.wpcf7-form textarea.wpcf7-form-control { resize:vertical; }
/* submit mirrors .omts-form-btn */
.wpcf7-form .wpcf7-submit {
  background:#b06136; border:none; color:#fff; font-size:13px; font-weight:600; letter-spacing:1.5px;
  padding:16px 36px; cursor:pointer; font-family:'IBM Plex Sans',sans-serif; justify-self:start;
}
.wpcf7-form .wpcf7-submit:hover { background:#c47c50; }
/* inline validation tip */
.wpcf7-form .wpcf7-not-valid-tip { color:#e79a63; font-size:12px; margin-top:6px; }
.wpcf7-form .wpcf7-form-control.wpcf7-not-valid { border-color:#e79a63; }
/* response banner (success/error/validation summary) mirrors a card */
.wpcf7-form .wpcf7-response-output {
  margin:8px 0 0; padding:14px 18px; border:1px solid rgba(196,124,80,0.4);
  background:#241a13; color:#f5efe8; font-size:13.5px; line-height:1.6;
}
.wpcf7-form.sent .wpcf7-response-output { border-color:#25d366; }
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output { border-color:#e79a63; }
/* spinner: keep it subtle on the dark panel */
.wpcf7-spinner { background-color:#e79a63; }
@media (max-width: 980px) {
  .wpcf7-form .wpcf7-form-control:not(.wpcf7-submit), .wpcf7-form .wpcf7-submit { width:100%; box-sizing:border-box; }
}

/* ========================================================================
   PORTED FROM WP CUSTOMIZER — hand-authored content design system
   Used by production's page content HTML (Vision, Buildings-Civil,
   Infra Projects, Irrigation Projects, all Trade subcategories, etc.)
   Original source: WP Admin → Appearance → Customize → Additional CSS
   ======================================================================== */

/* Design tokens (all variables preserved verbatim from the Customizer :root) */
:root{--navy-dark:#05142b;--navy:#0b2545;--navy-light:#133b6f;--gold:#e3a733;--gold-light:#f5c869;--copper:#b56a2c;--text-light:#eef3fb;--text-muted:#b9c6dc;}

/* ADDED DURING PORT (not from the Customizer blob):
   The omt- content design assumes a DARK page background — in production that
   came from Astra's `html,body{background:var(--navy-dark)}` override, which we
   deliberately did NOT port (it would darken the whole theme). Scope a dark
   shell to pages whose content uses the omt- system so body copy
   (color:var(--text-light)) stays legible when rendered through page.php.
   Uses :has() so only omt- content pages are affected; all other pages
   keep the theme's light shell. We use the theme's dark brown (#1c1410, the
   same value as the nav background) rather than the imported navy, so the
   omt- pages match the rest of the site's palette. */
.omts-page:has(.omt-hero){background:#1c1410;color:var(--text-light);}

/* Palette adjustment (not from the Customizer blob): the ported .omt-card uses a
   navy gradient (#0d2a52 → #0a1e3d) that clashes with the brown shell. Re-tone
   cards to the theme's warm dark browns (#241a13 dropdown brown → #1c1410 nav
   brown); the gold border and heading accents are kept. Scoped to omt- pages. */
.omts-page:has(.omt-hero) .omt-card{background:linear-gradient(160deg,#241a13,#1c1410);}

/* ADDED DURING PORT (not from the Customizer blob) — theme integration:
   page.php renders the page title as <h1 class="omts-heading"> above the_content,
   and every omt- page's .omt-hero already carries its own <h1>. Hide the theme
   title on omt- pages so it isn't shown twice. */
.omts-page:has(.omt-hero) main.omts-wrap > article > h1.omts-heading { display: none; }

/* ADDED DURING PORT (not from the Customizer blob) — full-bleed enablement:
   page.php wraps the_content in <main class="omts-wrap omts-section omts-section-last">
   (max-width:1320px; padding:0 32px; +96px top/bottom from .omts-section*) and an
   inline max-width:820px, left-aligned .omts-card-text column. That narrows and
   left-offsets the full-bleed .omt-hero (width:100vw) and leaves a 96px gap above
   it. Neutralize the wrapper chain on omt- pages so the hero spans edge to edge
   and sits flush under the nav. .omt-content keeps its own centered max-width:1100px
   + padding, so body copy stays readable. (!important on .omts-card-text is required
   to beat page.php's inline max-width:820px.) */
.omts-page:has(.omt-hero) main.omts-wrap { max-width:none; margin:0; padding:0; }
.omts-page:has(.omt-hero) main.omts-wrap > article > .omts-card-text { max-width:none !important; margin:0; }

/* omt- content blocks (hero + body) — verbatim */
.omt-hero{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;min-height:60vh;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;text-align:center;padding:0 20px;}
.omt-hero-inner{max-width:900px;padding:40px;}
.omt-hero-inner h1{font-size:2.8rem;color:#ffffff;font-weight:700;text-shadow:0 2px 12px rgba(0,0,0,0.6);margin-bottom:1rem;letter-spacing:.5px;}
.omt-hero-inner p{font-size:1.25rem;color:var(--gold-light);font-weight:500;}
.omt-content{max-width:1100px;margin:0 auto;padding:50px 20px;}
.omt-content-inner p{font-size:1.08rem;line-height:1.8;color:var(--text-light);margin-bottom:1.2rem;}
.omt-content-inner h1,.omt-content-inner h2,.omt-content-inner h3{color:var(--gold);}

/* omt- cards / grid — verbatim */
.omt-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin-top:26px;}
.omt-card{background:linear-gradient(160deg,#0d2a52,#0a1e3d);border:1px solid rgba(227,167,51,0.35);border-radius:12px;padding:26px;transition:transform .2s,border-color .2s;}
.omt-card:hover{transform:translateY(-4px);border-color:var(--gold);}
.omt-card h3{color:var(--gold-light);margin-bottom:8px;}
.omt-card p{color:var(--text-muted);}

/* omt- button — verbatim */
.omt-btn{display:inline-block;margin-top:20px;padding:13px 30px;background:linear-gradient(120deg,var(--gold),var(--copper));color:#0a1e3d!important;font-weight:700;border-radius:50px;text-decoration:none;letter-spacing:.4px;box-shadow:0 6px 20px rgba(227,167,51,0.35);transition:transform .2s;}
.omt-btn:hover{transform:translateY(-2px);color:#0a1e3d!important;}

/* omt- WhatsApp float (also referenced by the WhatsApp WPCode snippet) — verbatim */
.omt-whatsapp-float{position:fixed;bottom:24px;right:24px;z-index:99999;background:#25D366;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,0.4);}
.omt-whatsapp-float svg{width:32px;height:32px;fill:#ffffff;}

/* omt- maps / office cards — verbatim */
.omt-maps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:24px;}
.omt-maps-grid iframe{width:100%;height:220px;border:0;border-radius:10px;}
.omt-office-card{background:rgba(255,255,255,0.03);border:1px solid rgba(227,167,51,0.25);border-radius:10px;padding:16px;}
.omt-office-card h4{color:var(--gold-light);margin:0 0 10px 0;}

/* omt- form — verbatim (blob's .wpcf7-submit selectors dropped: the theme already
   styles Contact Form 7 in its own palette at .wpcf7-form above) */
.omt-form input,.omt-form textarea{width:100%;padding:12px 14px;margin-bottom:14px;border-radius:8px;border:1px solid rgba(227,167,51,0.4);background:rgba(255,255,255,0.05);color:var(--text-light);font-size:1rem;}
.omt-form label{color:var(--gold-light);display:block;margin-bottom:6px;font-weight:600;}
.omt-form button[type=submit]{padding:13px 34px;background:linear-gradient(120deg,var(--gold),var(--copper));color:#0a1e3d!important;font-weight:700;border:0;border-radius:50px;cursor:pointer;}
.omt-form input[type=submit]{background:linear-gradient(120deg,var(--gold),var(--copper))!important;color:#0a1e3d!important;border:0!important;width:auto!important;}


/* ============================================================
   MOBILE AUDIT PASS — phone / small-tablet overrides (<=768px).
   The theme uses pervasive INLINE styles, so these target the
   inline style attribute via [style*="..."] selectors (the same
   technique as the grid-guard above). !important is required to
   beat inline styles. Grouped by concern; numbers map to the
   audit issue list.
   ============================================================ */
@media (max-width: 768px) {
  /* 7 — horizontal-overflow guard */
  html, body { overflow-x: hidden; }
  .omts-page { max-width: 100vw; overflow-x: hidden; }

  /* 2 — display-type downscale (hero 76px down to section 42px).
     40px = short stat numbers ("200+"); full-width after the grid-guard, left as-is. */
  [style*="font-size:76px"] { font-size:34px !important; line-height:1.05 !important; }
  [style*="font-size:66px"] { font-size:32px !important; line-height:1.08 !important; }
  [style*="font-size:60px"] { font-size:32px !important; line-height:1.08 !important; }
  [style*="font-size:58px"] { font-size:30px !important; line-height:1.08 !important; }
  [style*="font-size:46px"] { font-size:28px !important; line-height:1.12 !important; }
  [style*="font-size:44px"] { font-size:27px !important; line-height:1.12 !important; }
  [style*="font-size:42px"] { font-size:26px !important; line-height:1.12 !important; }

  /* 3 — hero CTA row: stack + full-width buttons (front-page.php:22; pointer-events:auto is unique to that row) */
  [style*="display:flex"][style*="pointer-events:auto"] { flex-direction:column !important; align-items:stretch !important; }
  [style*="pointer-events:auto"] > a { width:100% !important; box-sizing:border-box; text-align:center; }

  /* 5 — split section headers (heading + subtitle/controls) stack (front-page.php:38,87 and page templates) */
  .omts-reveal[style*="justify-content:space-between"] { flex-direction:column !important; align-items:flex-start !important; gap:12px !important; }

  /* 6 — tame oversized section padding (96/110/88px verticals -> ~52px; the 56px EPC panel -> 30px) */
  [style*="padding:110px 32px"],
  [style*="padding:96px 32px"],
  [style*="padding:88px 32px"] { padding-top:52px !important; padding-bottom:52px !important; }
  [style*="padding:56px"] { padding:30px !important; }

  /* 8 — omt- content-page hero: class-based rem sizing (not inline px), so the
     font-size downscale above can't reach it. Scale down for long titles like
     "Gas Generators & Power Plants". */
  .omt-hero-inner h1 { font-size:1.8rem; line-height:1.15; }
  .omt-hero-inner p { font-size:1rem; line-height:1.4; }
}
