/* =============================================================================
   G4U custom site SHELL — global header + footer (loads on every page).
   Namespaced under `.g4uc` so it only styles the header/footer wrappers and
   never the Divi page content that sits between them.
   Reversible: dequeue this file + delete header.php/footer.php to restore Divi.
   ============================================================================= */

/* Divi pads #page-container to offset its fixed header (which the shell removes),
   leaving an empty band above the top bar. Our header is in normal flow → kill it. */
#page-container { padding-top: 0 !important; }

.g4uc, .g4uc * { box-sizing: border-box; }
.g4uc {
	--orange:#ff4700; --orange-d:#e63f00; --navy:#0b1c2d; --navy2:#10293f;
	--ink:#161616; --txt:#2b2b2b; --muted:#6b7280; --line:#e6e8ec;
	font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:var(--txt); line-height:1.6;
}
.g4uc img { max-width:100%; height:auto; display:block; }
.g4uc a { color:inherit; text-decoration:none; }
.g4uc__wrap { max-width:1200px; margin:0 auto; padding:0 22px; }
.g4uc h4 { margin:0 0 .5em; line-height:1.2; font-weight:800; }

/* ---- buttons ---- */
.g4uc-btn { display:inline-block; font-weight:700; font-size:14px; line-height:1; padding:13px 24px; border-radius:4px; border:2px solid transparent; transition:.18s; cursor:pointer; }
.g4uc-btn--orange { background:var(--orange); color:#fff; border-color:var(--orange); }
.g4uc-btn--orange:hover { background:var(--orange-d); border-color:var(--orange-d); }
.g4uc-btn--ghost { background:transparent; color:var(--orange); border-color:var(--orange); }
.g4uc-btn--ghost:hover { background:var(--orange); color:#fff; }

/* =================== TOP UTILITY BAR =================== */
.g4uc-top { background:#1a1a1a; color:#cfd3d8; font-size:13px; }
.g4uc-top .g4uc__wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:40px; flex-wrap:wrap; }
.g4uc-top a { color:#cfd3d8; }
.g4uc-top a:hover { color:#fff; }
.g4uc-top__left { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.g4uc-top__left b { color:#fff; }
.g4uc-top__social { display:flex; gap:14px; }
.g4uc-top__social a { color:var(--orange); font-weight:700; }

/* =================== HEADER (white, Level 2) =================== */
.g4uc-header { background:#fff; border-bottom:1px solid var(--line); }
.g4uc-header__main { display:flex; align-items:center; gap:26px; min-height:100px; }
.g4uc-brand { display:flex; align-items:center; gap:14px; margin-right:auto; }
.g4uc-brand img { height:68px; width:auto; }
.g4uc-brand__txt { font-weight:800; font-size:25px; color:#555; white-space:nowrap; }

.g4uc-contact { display:flex; align-items:center; gap:28px; min-width:0; }
.g4uc-hc { display:flex; align-items:center; gap:10px; text-decoration:none; white-space:nowrap; }
.g4uc-hc__ico { color:var(--orange); font-size:21px; line-height:1; }
.g4uc-hc__txt { display:flex; flex-direction:column; line-height:1.25; }
.g4uc-hc__val { color:#222; font-weight:700; font-size:15px; white-space:nowrap; }
.g4uc-hc__val2 { color:#444; font-weight:600; font-size:12px; white-space:nowrap; }
.g4uc-hc__lbl { color:var(--orange); font-weight:600; font-size:12px; }

/* ---- header CTA buttons (polished) ---- */
.g4uc-head-cta { display:flex; gap:12px; flex:0 0 auto; }
.g4uc-head-cta .g4uc-btn { white-space:nowrap; flex:0 0 auto; padding:14px 24px; font-size:14px; border-radius:6px; letter-spacing:.01em; transition:transform .15s, box-shadow .15s, background .15s, color .15s; }
.g4uc-head-cta .g4uc-btn--orange { box-shadow:0 6px 16px rgba(255,71,0,.28); }
.g4uc-head-cta .g4uc-btn--orange:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(255,71,0,.36); }
.g4uc-head-cta .g4uc-btn--ghost { background:#fff; color:var(--orange); }
.g4uc-head-cta .g4uc-btn--ghost:hover { background:var(--orange); color:#fff; transform:translateY(-2px); box-shadow:0 8px 18px rgba(255,71,0,.20); }

/* ---- search ---- */
.g4uc-search-wrap { position:relative; display:flex; align-items:center; }
.g4uc-search { background:none; border:0; cursor:pointer; font-size:19px; color:#444; padding:8px; line-height:1; border-radius:50%; transition:.15s; }
.g4uc-search:hover { color:var(--orange); background:rgba(255,71,0,.08); }
.g4uc-search-wrap.is-open .g4uc-search { color:var(--orange); }
.g4uc-search-form { position:absolute; top:calc(100% + 16px); right:0; display:flex; align-items:center; gap:0;
	background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 16px 36px rgba(0,0,0,.18);
	padding:6px; width:320px; opacity:0; visibility:hidden; transform:translateY(-8px); transition:.16s ease; z-index:100; }
.g4uc-search-wrap.is-open .g4uc-search-form { opacity:1; visibility:visible; transform:none; }
.g4uc-search-form:before { content:""; position:absolute; top:-7px; right:14px; width:12px; height:12px; background:#fff; border-left:1px solid var(--line); border-top:1px solid var(--line); transform:rotate(45deg); }
.g4uc-search-form input { flex:1; min-width:0; border:0; outline:none; background:transparent; color:#222; font-size:14px; padding:10px 12px; }
.g4uc-search-form button { background:var(--orange); color:#fff; border:0; border-radius:5px; padding:0 16px; height:38px; cursor:pointer; font-size:16px; line-height:1; transition:.15s; }
.g4uc-search-form button:hover { background:var(--orange-d); }

.g4uc-burger { display:none; background:none; border:0; font-size:26px; color:var(--ink); cursor:pointer; }

/* =================== MENU BAR (dark, Level 3, full width) =================== */
.g4uc-menubar { background:#1a1a1a; position:sticky; top:0; z-index:90; }
.g4uc-menubar > .g4uc__wrap { position:relative; }
.g4uc-menu { display:flex; align-items:stretch; list-style:none; margin:0; padding:0; }
.g4uc-mi { position:static; }
.g4uc-menu > li > a { display:flex; align-items:center; gap:7px; color:#fff; font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.02em; padding:15px 20px; }
.g4uc-menu > li > a:hover { color:var(--orange); background:rgba(255,255,255,.04); }
.g4uc-menu > li.current-menu-item > a,
.g4uc-menu > li.current_page_item > a { color:var(--orange); }
.g4uc-menu__caret { font-size:10px; opacity:.85; transition:transform .18s; }
.g4uc-mi.has-mega:hover .g4uc-menu__caret { transform:rotate(180deg); }
.g4uc-menu__home { font-size:15px; }

/* ---- mega dropdown panel ---- */
.g4uc-mega { position:absolute; left:0; right:0; top:100%; background:#fff;
	box-shadow:0 22px 44px rgba(0,0,0,.18); border-top:3px solid var(--orange);
	opacity:0; visibility:hidden; transform:translateY(8px); transition:.16s ease; z-index:95; }
.g4uc-mi.has-mega:hover .g4uc-mega { opacity:1; visibility:visible; transform:translateY(0); }
.g4uc-mega__inner { display:flex; flex-wrap:wrap; gap:14px 56px; padding:32px 4px 36px; }
.g4uc-mega__col { min-width:200px; }
.g4uc-mega__col h4 { color:var(--orange); font-size:16px; font-weight:700; margin:0 0 14px; }
.g4uc-mega__col a { display:block; color:#4a4f55; font-size:14.5px; padding:6px 0; transition:color .14s; }
.g4uc-mega__col a:hover { color:var(--orange); }

/* =================== QUOTE MODAL =================== */
.g4uc-modal { position:fixed; inset:0; z-index:100000; display:none; }
.g4uc-modal.is-open { display:block; }
.g4uc-modal__backdrop { position:absolute; inset:0; background:rgba(8,16,26,.62); }
.g4uc-modal__dialog { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	width:min(460px,92vw); max-height:88vh; overflow:auto; background:#fff; border-radius:10px;
	box-shadow:0 30px 80px rgba(0,0,0,.45); animation:g4ucModalIn .2s ease; }
@keyframes g4ucModalIn { from { opacity:0; transform:translate(-50%,-46%); } to { opacity:1; transform:translate(-50%,-50%); } }
.g4uc-modal__head { background:#1a1a1a; color:#fff; padding:16px 22px; border-radius:10px 10px 0 0; position:relative; }
.g4uc-modal__head h3 { margin:0; color:#fff; font-size:18px; font-weight:800; }
.g4uc-modal__head p { margin:4px 0 0; color:#b9bdc2; font-size:12.5px; }
.g4uc-modal__close { position:absolute; top:10px; right:14px; background:none; border:0; color:#fff; font-size:26px; line-height:1; cursor:pointer; opacity:.85; }
.g4uc-modal__close:hover { opacity:1; color:var(--orange); }
.g4uc-modal__body { padding:18px 22px 22px; }
.g4uc-field { margin-bottom:14px; }
.g4uc-field label { display:block; font-size:13px; font-weight:700; color:#33373c; margin-bottom:6px; }
.g4uc-field input, .g4uc-field select, .g4uc-field textarea { width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px; font-size:14px; color:#222; background:#fff; outline:none; transition:border-color .15s, box-shadow .15s; font-family:inherit; }
.g4uc-field input:focus, .g4uc-field select:focus, .g4uc-field textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,71,0,.14); }
.g4uc-field textarea { min-height:92px; resize:vertical; }
.g4uc-fieldrow { display:flex; gap:14px; }
.g4uc-fieldrow > .g4uc-field { flex:1; }
.g4uc-modal__body .g4uc-btn { width:100%; margin-top:6px; padding:14px; font-size:15px; }
/* ---- Contact Form 7 inside the modal (match the built-in styling) ---- */
.g4uc-modal__body .wpcf7 p { margin:0 0 10px; }
.g4uc-modal__body .wpcf7-form-control:not(.wpcf7-submit):not([type="checkbox"]):not([type="radio"]) {
	width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:6px; font-size:13.5px; color:#222; background:#fff; font-family:inherit; outline:none; transition:border-color .15s, box-shadow .15s; }
.g4uc-modal__body .wpcf7-form-control:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,71,0,.14); }
.g4uc-modal__body textarea.wpcf7-form-control { min-height:74px; resize:vertical; }
.g4uc-modal__body .wpcf7-submit {
	width:100%; margin-top:4px; padding:12px; font-size:14.5px; font-weight:700; color:#fff; cursor:pointer;
	background:var(--orange); border:2px solid var(--orange); border-radius:6px; transition:.15s; }
.g4uc-modal__body .wpcf7-submit:hover { background:var(--orange-d); border-color:var(--orange-d); }
.g4uc-modal__body .wpcf7 label { font-size:12.5px; font-weight:700; color:#33373c; display:block; margin-bottom:3px; }

.g4uc-formnote { padding:12px 14px; border-radius:6px; font-size:14px; font-weight:600; margin-bottom:16px; }
.g4uc-formnote--ok { background:#e8f7ec; color:#1b7f3b; border:1px solid #bce6c8; }
.g4uc-formnote--err { background:#fdecea; color:#b3261e; border:1px solid #f3c2bd; }
.g4uc-formnote a { color:inherit; text-decoration:underline; }
body.g4uc-modal-open { overflow:hidden; }
@media (max-width:520px){ .g4uc-fieldrow { flex-direction:column; gap:0; } }

/* =================== FOOTER =================== */
.g4uc-foot { background:var(--ink); color:#aeb4bb; padding:56px 0 0; font-size:14px; }
.g4uc-foot a { color:#aeb4bb; }
.g4uc-foot a:hover { color:var(--orange); }
.g4uc-foot__grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px; }
.g4uc-foot h4 { color:#fff; font-size:16px; margin-bottom:16px; }
.g4uc-foot ul { list-style:none; margin:0; padding:0; }
.g4uc-foot li { margin-bottom:9px; }
.g4uc-foot__brand img { height:46px; margin-bottom:14px; }
.g4uc-foot__bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:46px; padding:20px 0; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; color:#7e858d; font-size:13px; }

/* =================== RESPONSIVE =================== */
@media (max-width:980px){
	.g4uc-contact, .g4uc-head-cta, .g4uc-search { display:none; }
	.g4uc-burger { display:block; }
	.g4uc-header { position:sticky; top:0; z-index:91; }
	.g4uc-menubar { position:static; }
	.g4uc-menu { display:none; flex-direction:column; }
	.g4uc-menu.is-open { display:flex; }
	.g4uc-menu > li > a { padding:13px 22px; border-top:1px solid rgba(255,255,255,.08); justify-content:space-between; }
	.g4uc-mega { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border-top:0; background:#222; display:none; }
	.g4uc-mi.is-open .g4uc-mega { display:block; }
	.g4uc-mi.is-open .g4uc-menu__caret { transform:rotate(180deg); }
	.g4uc-mega__inner { flex-direction:column; gap:2px; padding:4px 22px 16px; }
	.g4uc-mega__col { min-width:0; }
	.g4uc-mega__col h4 { margin:10px 0 6px; font-size:14px; }
	.g4uc-mega__col a { color:#cfd3d8; padding:6px 0; }
	.g4uc-foot__grid { grid-template-columns:1fr; }
}
