/* Gilboa — product page design layer (2026-11-02). Remove wp-content/mu-plugins/gilboa-product-design.php to switch it off. */
.gb-product { --ink:#0A1F33; --body:#3B5466; --muted:#6B8191; --aqua:#0891B2; --aqua-soft:#EAF8FE; --line:#DCEBF2; --bg-soft:#F6FAFC; }
.gb-product .gbp { font-family: 'Heebo', sans-serif; }

/* ---------- rhythm: more air between sections ---------- */
.gbp > .e-con.e-parent:not(:first-child) { padding-top: clamp(56px, 8vw, 112px) !important; padding-bottom: clamp(56px, 8vw, 112px) !important; }
.gbp > .e-con.e-parent { background-color: #fff; }
.gbp > .e-con.e-parent:nth-child(even):not(:first-child) { background-color: var(--bg-soft) !important; background-image: none !important; }

/* ---------- typography ---------- */
.gbp .elementor-heading-title {
  font-family: 'Heebo', sans-serif !important; color: var(--ink) !important;
  -webkit-text-stroke: 0 !important; text-stroke: 0 !important; text-shadow: none !important;
  letter-spacing: -.01em !important; line-height: 1.2 !important;
}
.gbp h1.elementor-heading-title { font-weight: 200 !important; font-size: clamp(40px, 6vw, 76px) !important; line-height: 1.05 !important; letter-spacing: -.02em !important; }
.gbp h2.elementor-heading-title, .gbp h3.elementor-heading-title { font-weight: 300 !important; font-size: clamp(26px, 3.2vw, 44px) !important; }
.gbp .e-con.e-child h2.elementor-heading-title, .gbp .e-con.e-child h3.elementor-heading-title,
.gbp .e-con.e-child h4.elementor-heading-title, .gbp .e-con.e-child h5.elementor-heading-title { font-weight: 500 !important; font-size: clamp(18px, 1.6vw, 22px) !important; }
.gbp .elementor-widget-text-editor, .gbp .elementor-widget-text-editor p, .gbp .elementor-widget-text-editor li {
  font-family: 'Heebo', sans-serif !important; font-weight: 300 !important; font-size: clamp(16px, 1.15vw, 18px) !important;
  line-height: 1.75 !important; color: var(--body) !important;
}
.gbp .elementor-widget-text-editor strong, .gbp .elementor-widget-text-editor b { font-weight: 500 !important; color: var(--ink) !important; }
.gbp .elementor-widget-text-editor a { color: var(--aqua) !important; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- hero (first section) ---------- */
.gbp > .e-con:first-child { position: relative; isolation: isolate; }
.gbp > .e-con:first-child::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.45) 45%, rgba(255,255,255,.92) 100%);
}
.gbp > .e-con:first-child > * { position: relative; z-index: 1; }
.gbp > .e-con:first-child .elementor-heading-title:not(h1) { font-weight: 300 !important; font-size: clamp(20px, 2.2vw, 30px) !important; color: var(--body) !important; }

/* ---------- cards (icon + heading + text blocks) ---------- */
.gbp .e-con.e-child:has(> .elementor-widget-icon) {
  background: #fff !important; border: 1px solid var(--line) !important; border-radius: 22px !important;
  box-shadow: 0 10px 30px rgba(16, 58, 113, .06) !important; padding: 28px 22px !important;
  transition: box-shadow .4s ease, border-color .4s ease, translate .4s ease;
}
.gbp .e-con.e-child:has(> .elementor-widget-icon):hover { border-color: #BFE6F5 !important; box-shadow: 0 18px 40px rgba(16, 58, 113, .10) !important; translate: 0 -3px; }
.gbp .elementor-icon { color: var(--aqua) !important; fill: var(--aqua) !important; background: var(--aqua-soft) !important;
  width: 64px !important; height: 64px !important; font-size: 26px !important; border-radius: 18px !important;
  display: inline-grid !important; place-items: center; border: 0 !important; padding: 0 !important; }
.gbp .elementor-icon svg { width: 28px !important; height: 28px !important; fill: var(--aqua) !important; }
.gbp .elementor-icon i { color: var(--aqua) !important; }

/* ---------- buttons ---------- */
.gbp .elementor-button, .gbp .elementor-cta__button, .gbp .e-form__buttons button, .gbp button[type=submit] {
  font-family: 'Heebo', sans-serif !important; font-weight: 500 !important; font-size: 16px !important; letter-spacing: .01em;
  background: var(--ink) !important; color: #fff !important; border: 1px solid var(--ink) !important; border-radius: 999px !important;
  padding: 15px 30px !important; box-shadow: none !important; transition: background .3s ease, border-color .3s ease;
}
.gbp .elementor-button:hover, .gbp .elementor-cta__button:hover, .gbp .e-form__buttons button:hover, .gbp button[type=submit]:hover { background: var(--aqua) !important; border-color: var(--aqua) !important; }
.gbp .elementor-button .elementor-button-text, .gbp .elementor-button-icon { color: #fff !important; fill: #fff !important; }

/* ---------- forms ---------- */
.gbp .elementor-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper) , .gbp .elementor-form select {
  font-family: 'Heebo', sans-serif !important; font-size: 16px !important; color: var(--ink) !important;
  background: #fff !important; border: 1px solid var(--line) !important; border-radius: 14px !important; padding: 14px 16px !important; min-height: 52px;
}
.gbp .elementor-form .elementor-field:focus { border-color: var(--aqua) !important; box-shadow: 0 0 0 4px rgba(8, 145, 178, .12) !important; outline: none; }
.gbp .elementor-form label { font-family: 'Heebo', sans-serif !important; font-weight: 400 !important; color: var(--body) !important; }
.gbp .elementor-widget-form { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: clamp(20px, 3vw, 36px); box-shadow: 0 16px 40px rgba(16, 58, 113, .07); }

/* ---------- images, galleries, carousels ---------- */
.gbp .elementor-widget-image img, .gbp .elementor-image-carousel img, .gbp .gallery-item img, .gbp .elementor-gallery-item img { border-radius: 20px !important; }
.gbp .elementor-widget-image img { box-shadow: 0 18px 44px rgba(16, 58, 113, .10); }

/* ---------- accordions / FAQ ---------- */
.gbp .e-n-accordion-item { border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; background: transparent !important; }
.gbp .e-n-accordion-item-title { background: transparent !important; border: 0 !important; padding: 22px 4px !important; }
.gbp .e-n-accordion-item-title-text { font-family: 'Heebo', sans-serif !important; font-weight: 400 !important; font-size: clamp(17px, 1.4vw, 20px) !important; color: var(--ink) !important; }
.gbp .e-n-accordion-item-title-icon svg, .gbp .e-n-accordion-item-title-icon i { fill: var(--aqua) !important; color: var(--aqua) !important; }

/* ---------- price list ---------- */
.gbp .elementor-price-list-title, .gbp .elementor-price-list-price { font-family: 'Heebo', sans-serif !important; color: var(--ink) !important; }
.gbp .elementor-price-list-title { font-weight: 400 !important; }
.gbp .elementor-price-list-price { font-weight: 500 !important; color: var(--aqua) !important; }
.gbp .elementor-price-list-description { font-family: 'Heebo', sans-serif !important; color: var(--muted) !important; }
.gbp .elementor-price-list-separator { border-bottom-color: var(--line) !important; }

/* ---------- call to action ---------- */
.gbp .elementor-cta { border-radius: 24px !important; overflow: hidden; }
.gbp .elementor-cta__title { font-family: 'Heebo', sans-serif !important; font-weight: 300 !important; }
.gbp .elementor-cta__description { font-family: 'Heebo', sans-serif !important; font-weight: 300 !important; }

/* ---------- dividers ---------- */
.gbp .elementor-divider-separator { border-color: var(--line) !important; }

/* ---------- custom HTML blocks: same type family ---------- */
.gbp .elementor-widget-html :is(h1, h2, h3, h4, p, li, span, div, button, a, td, th, label) { font-family: 'Heebo', sans-serif !important; }

/* ---------- mobile ---------- */
@media (max-width: 767px) {
  .gbp > .e-con.e-parent:not(:first-child) { padding-left: 4vw !important; padding-right: 4vw !important; }
  .gbp .e-con.e-child:has(> .elementor-widget-icon) { padding: 22px 18px !important; }
}
/* ---------- lead-form bands: light water panel instead of dark gradient ---------- */
.gbp > .e-con.e-parent:has(.elementor-widget-form):not(:first-child) {
  background: linear-gradient(180deg, #F3FAFD 0%, #E4F4FA 100%) !important; background-image: linear-gradient(180deg, #F3FAFD 0%, #E4F4FA 100%) !important;
}
.gbp > .e-con.e-parent:has(.elementor-widget-form) .e-con { background-color: transparent !important; background-image: none !important; box-shadow: none !important; }
.gbp > .e-con.e-parent:has(.elementor-widget-form) .elementor-widget-form { box-shadow: 0 16px 40px rgba(16, 58, 113, .08); }
.gbp > .e-con.e-parent:has(.elementor-widget-form) :is(.elementor-widget-text-editor, .elementor-widget-text-editor p, .elementor-icon-list-text) { color: var(--body) !important; font-size: 17px !important; }
/* ---------- no dated reflections / glows ---------- */
.gbp .elementor-icon, .gbp .elementor-icon-wrapper, .gbp .elementor-widget-image img, .gbp .elementor-heading-title { -webkit-box-reflect: initial !important; }
.gbp .elementor-heading-title, .gbp .elementor-icon, .gbp .elementor-icon svg { filter: none !important; }

/* ---------- hero title & subtitle, whatever tag they use ---------- */
.gb-product .gbp .elementor-element.elementor-element-971eb03 .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-c2be741 .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-64d83b2 .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-79ccae0 .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-c38c74b .elementor-heading-title.elementor-heading-title { font-weight: 200 !important; font-size: clamp(40px, 6vw, 76px) !important; line-height: 1.05 !important; letter-spacing: -.02em !important; color: var(--ink) !important; }
.gb-product .gbp .elementor-element.elementor-element-1ee801f .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-ad0ba5a .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-4d72522 .elementor-heading-title.elementor-heading-title,
.gb-product .gbp .elementor-element.elementor-element-a903a19 .elementor-heading-title.elementor-heading-title { font-weight: 300 !important; font-size: clamp(20px, 2.2vw, 30px) !important; line-height: 1.35 !important; color: var(--body) !important; }

/* ---------- softer container borders everywhere ---------- */
.gbp .e-con { border-color: var(--line) !important; }
