/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* ==== No Junk Perth: layout helpers (added 2026-10-31). Colours ONLY via Elementor global CSS variables. ==== */
html { scroll-padding-top: 88px; }
.njp-accent { color: var(--e-global-color-primary); }
.njp-accent-light { color: var(--e-global-color-lightblue); }
.njp-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.njp-eyebrow .elementor-heading-title::before { content: ""; width: 32px; height: 2px; background: var(--e-global-color-primary); display: inline-block; flex: none; }
.njp-media-card { position: relative; }
.njp-media-card .elementor-widget-image img { display: block; }
.njp-nav .elementor-menu-toggle { min-width: 44px; min-height: 44px; justify-content: center; }
.njp-nav .elementor-nav-menu--dropdown .elementor-item { min-height: 48px; }
.njp-footer-links .elementor-item { min-height: 44px; display: flex; align-items: center; }
.njp-form-card iframe { display: block; width: 100%; min-height: 480px; }
.njp-ty-info .elementor-icon-list-item > a, .njp-ty-info .elementor-icon-list-item { min-height: 44px; }
@media (max-width: 767px) {
  .njp-trust .elementor-icon-list-items { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
  .njp-trust .elementor-icon-list-item { margin: 0 !important; justify-content: flex-start !important; }
  .njp-trust .elementor-icon-list-item:last-child { grid-column: span 2; justify-content: center !important; }
  .njp-ty-info .elementor-icon-list-items { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
  .njp-scroll-mobile { grid-auto-flow: column !important; grid-template-columns: none !important; grid-auto-columns: 84% !important;
    overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 10px; scrollbar-width: thin; }
  .njp-scroll-mobile > .e-con { scroll-snap-align: start; }
}
.njp-header { overflow-x: clip; }

/* Footer Privacy Policy link: 44px tap target (layout only) */
.njp-footer-legal a { display: inline-flex; align-items: center; min-height: 44px; }

/* ==== NJP GHL quote forms: keep GHL iframe >= 650px at desktop so fields stay 2 columns (GHL stacks at iframe max-width:649px). Added 2026-10-31 ~8:00 PM CT. Layout only. ==== */
/* Desktop >= 1240: form cards get a min-width (iframe ~660px); the text column next to them flexes. */
@media (min-width: 1240px) {
  body .elementor-33 .elementor-element.elementor-element-fc5b6bf { min-width: 704px; }  /* hero card: 660 iframe + 20+20 padding + 2+2 border */
  body .elementor-33 .elementor-element.elementor-element-776e07c { min-width: 718px; }  /* contact card: 660 iframe + 28+28 padding + 1+1 border */
  body .elementor-33 .elementor-element.elementor-element-5422a61,
  body .elementor-33 .elementor-element.elementor-element-6fcfae9 { --width: auto; --flex-grow: 1; --flex-shrink: 1; flex: 1 1 0; min-width: 0; }
}
/* Narrow desktop 1025-1239: not enough room for text + 704px card side by side, so stack like tablet (card full width, form 2 columns). */
@media (min-width: 1025px) and (max-width: 1239px) {
  body .elementor-33 .elementor-element.elementor-element-a1fdef8,
  body .elementor-33 .elementor-element.elementor-element-daaba58 { --flex-direction: column; --gap: 32px 32px; --row-gap: 32px; --column-gap: 32px; }
  body .elementor-33 .elementor-element.elementor-element-5422a61,
  body .elementor-33 .elementor-element.elementor-element-fc5b6bf,
  body .elementor-33 .elementor-element.elementor-element-6fcfae9,
  body .elementor-33 .elementor-element.elementor-element-776e07c { --width: 100%; }
  /* cap stacked form cards at 720px, left-aligned with the text above (iframe: hero 720-40-4=676, contact 720-56-2=662) */
  body .elementor-33 .elementor-element.elementor-element-fc5b6bf,
  body .elementor-33 .elementor-element.elementor-element-776e07c { max-width: 720px; --align-self: flex-start; align-self: flex-start; }
}
/* GHL form iframes: fallback height only (form_embed.js sets the real height inline and grows it for validation errors). 2-column layout is ~399px tall, so 400px floor from 768px up; stacked mobile keeps 480px. */
@media (min-width: 768px) {
  .njp-form-card iframe[src*="leadconnectorhq.com/widget/form"] { min-height: 400px; }
}
