/* Gifting Grace Project site styles (replace Essential Addons widgets). */

/* ---------- Gravity Forms ---------- */
.gform_wrapper .gform_fields { column-gap: 9px !important; row-gap: 10px !important; }

/* Contact page form */
.ggp-gf--contact .gform_wrapper :is(.gfield_label, .gform-field-label, legend, .gfield_required, input, textarea, select) { font-family: Montserrat, sans-serif !important; }
.ggp-gf--contact .gform_wrapper .gform_footer :is(.gform_button, input[type="submit"], button[type="submit"]) {
	width: 100% !important; padding: 12px 0 !important; min-height: 0 !important; height: auto !important;
	background: #5CC2EC !important; color: #fff !important; border: 1px solid transparent !important; border-radius: 10px !important;
	font-family: Montserrat, sans-serif !important; font-size: 1.1em !important; font-weight: 600 !important; line-height: 1 !important; text-transform: uppercase !important;
	box-shadow: 6px 6px 0 -2px #52AACF !important; justify-content: center;
}
.ggp-gf--contact .gform_wrapper .gform_footer :is(.gform_button, input[type="submit"], button[type="submit"]):hover { background: #1599C8 !important; }

/* Footer "Get Updates" form */
.ggp-gf--footer .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
	border: 0 !important; border-radius: 12px !important; box-shadow: 4px 4px 0 0 rgba(197, 197, 197, .5) !important;
}
.ggp-gf--footer .gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]) {
	background: #5CC2EC !important; color: #fff !important; border: 0 !important; border-radius: 12px !important; padding: 0 20px !important;
	font-family: Montserrat, sans-serif !important; font-size: 1em !important; font-weight: 700 !important; text-transform: uppercase !important;
	box-shadow: 4px 4px 0 0 #51AACF !important;
}
.ggp-gf--footer .gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]):hover { background: #1599C8 !important; }

/* ---------- Mobile menu (off-canvas) ---------- */
.ggp-mmenu { font-family: Montserrat, sans-serif; }
.ggp-mmenu ul { list-style: none; margin: 0; padding: 0; }
.ggp-mmenu__item { position: relative; margin: 0; padding: 0; }
.ggp-mmenu__row { position: relative; }
body .ggp-mmenu .ggp-mmenu__link {
	position: relative; display: flex; align-items: center; gap: 14px; width: 100%; margin: 0 0 5px; padding: 7px 44px 7px 0;
	background: none; border: 0; border-bottom: 1px solid rgba(92, 194, 236, .38); border-radius: 0; box-shadow: none;
	color: #1A1A1A; font-family: Montserrat, sans-serif; font-size: 1em; font-weight: 700; line-height: 1.4; text-align: left; text-transform: none; text-decoration: none; cursor: pointer;
}
body .ggp-mmenu .ggp-mmenu__item:not(.has-sub) > .ggp-mmenu__link { padding-right: 0; }
.ggp-mmenu__item:last-child > .ggp-mmenu__link,
.ggp-mmenu__item:last-child > .ggp-mmenu__row > .ggp-mmenu__link { border-bottom: 0; }
body .ggp-mmenu .ggp-mmenu__link:hover,
body .ggp-mmenu .ggp-mmenu__link:focus-visible,
.ggp-mmenu__item.is-open > .ggp-mmenu__link,
.ggp-mmenu__item.is-open > .ggp-mmenu__row > .ggp-mmenu__link,
.ggp-mmenu__item.is-current > .ggp-mmenu__link { color: #1599C8; background: none; }

.ggp-mmenu__icon {
	display: flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%;
	background: #EAF7FD; color: #1499C8; font-family: "Font Awesome 6 Pro"; font-weight: 900; font-size: 18px; line-height: 1;
}
.ggp-mmenu__icon::before { content: "\f0c0"; }
.ggp-mmenu__item:nth-child(2) .ggp-mmenu__icon::before { content: "\f0ae"; }
.ggp-mmenu__item:nth-child(3) .ggp-mmenu__icon::before { content: "\f4c4"; }
.ggp-mmenu__item:nth-child(4) .ggp-mmenu__icon::before { content: "\f091"; }
.ggp-mmenu__item.menu-icon-contact .ggp-mmenu__icon::before { content: "\f0e0"; }

body .ggp-mmenu .ggp-mmenu__chev {
	position: absolute; right: 10px; top: 50%; width: 28px; height: 28px; margin: -14px 0 0; padding: 0;
	display: flex; align-items: center; justify-content: center; background: none; border: 0; box-shadow: none; color: #1A1A1A; cursor: pointer;
}
.ggp-mmenu__chev svg { transition: transform .25s ease; }
.ggp-mmenu__item.is-open .ggp-mmenu__chev svg { transform: rotate(180deg); }

.ggp-mmenu__sub {
	margin: 4px 0 14px !important; padding: 6px !important; background: #fff;
	border: 1px solid rgba(92, 194, 236, .3); border-radius: 14px; box-shadow: 0 10px 24px -12px rgba(27, 56, 76, .28);
	animation: ggp-mmenu-in .22s ease;
}
.ggp-mmenu__sub[hidden] { display: none; }
.ggp-mmenu__subitem a {
	display: flex; align-items: center; gap: 12px; padding: 13px 14px; border-radius: 10px;
	color: #1B384C; font-size: 15px; font-weight: 600; line-height: 1.3; text-decoration: none;
	transition: background-color .18s ease, color .18s ease;
}
.ggp-mmenu__subitem a::before { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #5CC2EC; }
.ggp-mmenu__subitem a:hover,
.ggp-mmenu__subitem a:focus-visible,
.ggp-mmenu__subitem.is-current a { background: #EFF7FC; color: #1599C8; }
@keyframes ggp-mmenu-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ggp-mmenu__sub { animation: none; } .ggp-mmenu__chev svg { transition: none; } }

/* ---------- Announcement bar ---------- */
.ggp-bar { position: relative; z-index: 1000; background: #1B384C; color: #fff; font-family: Montserrat, sans-serif; }
.ggp-bar__text { max-width: 1200px; margin: 0 auto; padding: 10px 16px; font-size: 14px; font-weight: 600; line-height: 1.4; text-align: center; }
.ggp-bar__link { display: inline-block; margin-left: 10px; padding: 3px 12px; border-radius: 999px; background: #5CC2EC; color: #fff !important; font-size: 12.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; text-decoration: none !important; white-space: nowrap; }
.ggp-bar__link:hover, .ggp-bar__link:focus-visible { background: #1599C8; }
@media (max-width: 767px) { .ggp-bar__text { font-size: 13px; padding: 9px 14px; } .ggp-bar__link { margin: 6px 0 0; } }

/* ---------- Drop-off locations ---------- */
.ggp-drop { width: 100%; font-family: Montserrat, sans-serif; color: #1B384C; background: #fff; border-radius: 18px; padding: 16px; box-shadow: 0 14px 34px -18px rgba(27, 56, 76, .35); text-align: left; }
.ggp-drop__tools { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
body .ggp-drop .ggp-drop__search, body .ggp-drop .ggp-drop__area {
	flex: 1 1 220px; min-height: 46px; padding: 0 16px; border: 1px solid rgba(92, 194, 236, .55); border-radius: 12px; background: #fff;
	color: #1B384C; font: 500 15px/1.2 Montserrat, sans-serif; box-shadow: none;
}
body .ggp-drop .ggp-drop__area { flex: 0 1 260px; }
body .ggp-drop .ggp-drop__search:focus, body .ggp-drop .ggp-drop__area:focus { outline: 2px solid #1599C8; outline-offset: 1px; border-color: #1599C8; }
.ggp-drop__body { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 16px; }
.ggp-drop__map { height: 520px; border-radius: 14px; overflow: hidden; background: #EFF7FC; z-index: 0; }
.ggp-drop__side { display: flex; flex-direction: column; min-height: 0; max-height: 520px; }
.ggp-drop__count { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: #1599C8; }
.ggp-drop__list { flex: 1; min-height: 0; overflow-y: auto; margin: 0; padding: 0 6px 0 0; list-style: none; overscroll-behavior: contain; }
.ggp-drop__item { position: relative; padding: 12px 118px 12px 14px; margin: 0 0 8px; border: 1px solid rgba(92, 194, 236, .3); border-radius: 12px; background: #fff; transition: background-color .18s, border-color .18s; }
.ggp-drop__item[hidden] { display: none; }
.ggp-drop__item.is-active { background: #EFF7FC; border-color: #5CC2EC; }
body .ggp-drop .ggp-drop__name { display: block; width: 100%; margin: 0 0 3px; padding: 0; background: none; border: 0; box-shadow: none; color: #1B384C; font: 700 15px/1.3 Montserrat, sans-serif; text-align: left; text-transform: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
body .ggp-drop .ggp-drop__name:hover, body .ggp-drop .ggp-drop__name:focus-visible { color: #1599C8; background: none; }
.ggp-drop__addr, .ggp-drop__note { display: block; font-size: 13.5px; line-height: 1.45; color: #4a5d6b; }
.ggp-drop__note { margin-top: 4px; font-style: italic; }
.ggp-drop__dir { position: absolute; top: 12px; right: 12px; padding: 6px 12px; border-radius: 999px; background: #5CC2EC; color: #fff !important; font-size: 11.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; text-decoration: none !important; }
.ggp-drop__dir:hover, .ggp-drop__dir:focus-visible { background: #1599C8; }
.ggp-drop__none { margin: 8px 0 0; font-size: 14px; }
.ggp-drop .leaflet-popup-content { font: 500 13px/1.45 Montserrat, sans-serif; color: #1B384C; }
.ggp-drop .leaflet-popup-content a { color: #1599C8; font-weight: 700; }
@media (max-width: 900px) {
	.ggp-drop__body { grid-template-columns: 1fr; }
	.ggp-drop__map { height: 300px; }
	.ggp-drop__side { max-height: 460px; }
}
@media (max-width: 480px) {
	.ggp-drop { padding: 12px; border-radius: 14px; }
	body .ggp-drop .ggp-drop__area { flex: 1 1 100%; }
	.ggp-drop__item { padding-right: 14px; }
	.ggp-drop__dir { position: static; display: inline-block; margin-top: 8px; }
}
