/* Haptic <-> Elementor compatibility (generated by the build; do not edit by hand).
   Keeps the original design intact inside Elementor containers/widgets. */
.e-con.haptic-c { display: block; width: 100%; max-width: none; min-height: 0; padding: 0; margin: 0; gap: 0; box-sizing: border-box; }
.e-con.haptic-c > .elementor-widget { width: auto; }
.e-con.haptic-c > .elementor-widget:not(:last-child) { margin-block-end: 0; margin-bottom: 0; }
.elementor-widget-text-editor.haptic-t { font-family: inherit; font-size: inherit; font-weight: inherit; font-style: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; text-align: inherit; }
.elementor-widget.haptic-art { position: static; }
/* original rules, re-applied with higher specificity */
.e-con.layer{ position: relative; z-index: 1; }
.e-con.section-inner{ max-width: 1200px; margin: 0 auto; }
.e-con.section{ padding: 80px 40px; position: relative; overflow: hidden; }
.e-con.section.bone{ background: var(--bone); }
.e-con.section.white{ background: var(--paper); }
.e-con.section.dark{ background: var(--forest); }
.e-con.section.ink{ background: var(--ink); }
.e-con.section.amber{ background: var(--amberlt); }
.e-con.section.greenxl{ background: var(--greenxl); }
.e-con.hero{ position: relative; overflow: hidden; padding: 96px 40px 72px; background: var(--bone); }
.e-con.hero-inner{ max-width: 1200px; margin: 0 auto; }
.e-con.hero-grid{ display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: center; }
.e-con.stripe{ display: grid; grid-template-columns: repeat(4,1fr); border-top: 0.5px solid var(--border); border-bottom: 0.5px solid var(--border); background: var(--paper); }
.e-con.lifecycle{ display: grid; grid-template-columns: repeat(6,1fr); gap: 0; margin-top: 44px; border: 0.5px solid var(--border-med); border-radius: 14px; overflow: hidden; }
.e-con.cap-grid{ display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin-top: 44px; }
.e-con.reg-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 44px; position: relative; z-index: 1; }
.e-con.arabic-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 44px; }
.e-con.hw-steps{ display: flex; flex-direction: column; gap: 0; margin-top: 44px; }
.e-con.hw-step{ display: grid; grid-template-columns: 80px 1fr; gap: 36px; padding: 36px 0; border-top: 0.5px solid var(--border); align-items: start; }
.e-con.hw-step:last-child{ border-bottom: 0.5px solid var(--border); }
.e-con.ct-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 44px; }
.e-con.cta-band{ padding: 88px 40px; text-align: center; position: relative; overflow: hidden; }
.e-con.contact-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; margin-top: 52px; }
@media (max-width: 768px){.e-con.hero{ padding: 60px 24px 48px; }.e-con.hero-grid{ grid-template-columns: 1fr; gap: 36px; }.e-con.section{ padding: 56px 24px; }.e-con.lifecycle{ grid-template-columns: repeat(3,1fr); }.e-con.cap-grid{ grid-template-columns: 1fr; }.e-con.reg-grid{ grid-template-columns: 1fr 1fr; }.e-con.arabic-grid{ grid-template-columns: 1fr; }.e-con.ct-grid{ grid-template-columns: 1fr 1fr; }.e-con.stripe{ grid-template-columns: 1fr 1fr; }.e-con.contact-grid{ grid-template-columns: 1fr; }.e-con.hw-step{ grid-template-columns: 52px 1fr; gap: 20px; }}
/* inline styles from the prototype, now classes */
.e-con.hxs-1{padding-top:0;padding-bottom:0}
.e-con.hxs-2{padding:0 0 80px}
.e-con.hxs-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px;position:relative;z-index:1}
.e-con.hxs-4{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:44px}
.e-con.hxs-5{background:var(--bone)}
.e-con.hxs-6{padding:72px 40px 56px;background:var(--bone);border-bottom:0.5px solid var(--border);position:relative;overflow:hidden}
.e-con.hxs-7{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px}
.e-con.hxs-8{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px}
.e-con.hxs-9{padding:72px 40px 56px;background:var(--bone);border-bottom:0.5px solid var(--border)}
.e-con.hxs-10{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.e-con.hxs-11{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}
.e-con.hxs-12{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px;position:relative;z-index:1}
.e-con.hxs-13{padding:72px 40px 56px;background:var(--forest);position:relative;overflow:hidden}
.e-con.hxs-14{margin-top:44px;background:none}
.e-con.hxs-15{padding:72px 40px 56px;background:var(--ink);position:relative;overflow:hidden}
.e-con.hxs-16{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:44px;position:relative;z-index:1}

/* grid items: make each card fill its grid cell */
.e-con.haptic-grid-fill > .elementor-widget, .e-con.haptic-grid-fill > .elementor-widget > .elementor-widget-container { height: 100%; }
.e-con.haptic-grid-fill > .elementor-widget > .elementor-widget-container > *:only-child { height: 100%; }
/* :last-child rules from the original design, re-expressed for widget-wrapped cards */
.e-con.haptic-grid > .elementor-widget > .elementor-widget-container > .stat,
.e-con.haptic-grid > .elementor-widget > .elementor-widget-container > .lc-step { border-right: 0.5px solid var(--border); }
.e-con.haptic-grid > .elementor-widget:last-child > .elementor-widget-container > .stat,
.e-con.haptic-grid > .elementor-widget:last-child > .elementor-widget-container > .lc-step { border-right: none; }
