/* ---------------------------------------------------------------------------
 * Header. Sticky, with a permanent click-to-call. The number never leaves the screen.
 * ------------------------------------------------------------------------- */

/* --- Top strip ---------------------------------------------------------- */
.grls-topbar {
	background: #081B33;
	color: #9FB3C8;
	font-family: Roboto, system-ui, sans-serif;
	font-size: 13.5px;
	border-bottom: 1px solid #14304E;
}
.grls-topbar__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 9px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.grls-topbar__hours { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.grls-dot {
	width: 8px; height: 8px; border-radius: 50%;
	display: inline-block; flex: none;
}
.grls-dot.is-open {
	background: #35D07F;
	box-shadow: 0 0 0 0 rgba(53, 208, 127, .6);
	animation: grls-pulse 2.4s infinite;
}
.grls-dot.is-closed { background: #E0A458; }

@keyframes grls-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(53, 208, 127, .55); }
	70%  { box-shadow: 0 0 0 7px rgba(53, 208, 127, 0); }
	100% { box-shadow: 0 0 0 0 rgba(53, 208, 127, 0); }
}

/* --- Sticky header ------------------------------------------------------ */
.site-header {
	position: sticky;
	top: 0;
	z-index: 500;
	background: #fff;
	transition: box-shadow .2s ease, padding .2s ease;
}
.site-header.grls-stuck { box-shadow: 0 6px 22px rgba(11, 37, 69, .13); }
.site-header .inside-header { padding-top: 14px; padding-bottom: 14px; transition: padding .2s ease; }
.site-header.grls-stuck .inside-header { padding-top: 8px; padding-bottom: 8px; }

.main-navigation { z-index: 499; }
.site-branding .main-title a { letter-spacing: -.4px; }

/* --- Header call CTA ---------------------------------------------------- */
.grls-headcta {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-left: 20px;
	margin-left: 4px;
	border-left: 1px solid var(--gr-line, #D9E2EC);
}
.grls-headcta__text { display: flex; flex-direction: column; line-height: 1.25; text-align: right; }
.grls-headcta__label {
	font-family: Roboto, sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A8FA6;
	letter-spacing: .02em;
}
.grls-headcta__num {
	font-family: Roboto, sans-serif;
	font-size: 19px;
	font-weight: 700;
	color: #0B2545 !important;
	text-decoration: none;
	white-space: nowrap;
}
.grls-headcta__num:hover { color: #C8102E !important; }

.grls-headcta__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #C8102E;
	color: #fff !important;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	padding: 12px 20px;
	border-radius: 8px;
	min-height: 46px;
	white-space: nowrap;
	box-shadow: 0 4px 14px rgba(200, 16, 46, .28);
	transition: transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.grls-headcta__btn:hover {
	background: #A50D26;
	transform: translateY(-1px);
	box-shadow: 0 7px 20px rgba(200, 16, 46, .36);
}
.grls-headcta__btn:active { transform: translateY(0); }

/* --- Mobile ------------------------------------------------------------- */
.grls-mobcall {
	display: none;
	align-items: center;
	gap: 7px;
	background: #C8102E;
	color: #fff !important;
	font-family: Roboto, sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	padding: 10px 16px;
	border-radius: 8px;
	min-height: 44px;
	margin-right: 8px;
}

@media (max-width: 1024px) {
	.grls-headcta { display: none; }
	.grls-mobcall { display: inline-flex; }
	.grls-topbar__areas { display: none; }
	.grls-topbar__inner { justify-content: center; padding: 8px 16px; }
}

@media (max-width: 767px) {
	.grls-topbar { font-size: 12.5px; }
	.site-header .inside-header { padding-top: 10px; padding-bottom: 10px; }
	/* Sticky header + sticky bottom call bar on a short screen leaves no room to read */
	.site-header { position: static; }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
	.grls-dot.is-open { animation: none; }
	.grls-headcta__btn, .site-header, .site-header .inside-header { transition: none; }
}


/* ---------------------------------------------------------------------------
 * grls-header-fit
 * Logo + 6 nav items + phone block + button overflowed 1180px and wrapped to a
 * second row. Trim each part rather than dropping the number, which is the
 * whole point of the header.
 * ------------------------------------------------------------------------- */
.site-header .inside-header { flex-wrap: nowrap; gap: 12px; }
.site-branding { flex: 0 1 auto; min-width: 0; }
.site-header .main-title {
	font-size: 20px !important;
	line-height: 1.2 !important;
	max-width: 220px;
}
.site-header .main-title a { color: #0B2545 !important; }
.main-navigation .main-nav > ul > li > a { font-size: 15px; padding-left: 12px; padding-right: 12px; }
.main-navigation { flex: 1 1 auto; }

.grls-headcta { padding-left: 16px; gap: 10px; }
.grls-headcta__num { font-size: 17px; }
.grls-headcta__label { font-size: 11px; }
.grls-headcta__btn { padding: 11px 16px; font-size: 14px; min-height: 44px; }

@media (max-width: 1280px) {
	.grls-headcta__text { display: none; } /* keep the button, drop the label block first */
}

/* ---------------------------------------------------------------------------
 * grls-cta-visibility
 * GeneratePress styles links inside .menu-bar-items with a more specific selector
 * than a bare class, so `.grls-mobcall { display: none }` lost and both the
 * desktop and mobile call buttons rendered side by side. Scope through
 * .menu-bar-items to win, and force the display value.
 *
 * Note: generate_menu_bar_items fires twice (desktop nav + mobile menu). That is
 * intended -- the mobile menu gets its own call button -- so only visibility is
 * switched here, nothing is unhooked.
 * ------------------------------------------------------------------------- */
.menu-bar-items .grls-mobcall { display: none !important; }
.menu-bar-items .grls-headcta { display: flex !important; }

@media (max-width: 1024px) {
	.menu-bar-items .grls-mobcall { display: inline-flex !important; }
	.menu-bar-items .grls-headcta { display: none !important; }
}