/* GSP Marketing front end: consent banner, lead forms, popups. Colours follow the site where possible. */
.gspm-cb { position: fixed; z-index: 99998; left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin: 0 auto; background: #1F2F48; color: #fff; border-radius: 14px; padding: 16px 18px; box-shadow: 0 16px 48px rgba(0,0,0,.28); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; font: 14px/1.5 inherit; }
.gspm-cb p { margin: 0; flex: 1 1 260px; color: rgba(255,255,255,.9); }
.gspm-cb a { color: #E7C77A; }
.gspm-cb div { display: flex; gap: 8px; }
.gspm-cb button { cursor: pointer; border-radius: 999px; padding: 9px 18px; font: 600 13px/1 inherit; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; }
.gspm-cb .gspm-cb__yes { background: var(--e-global-color-accent, #C39129); border-color: transparent; }

.gspm-form { max-width: 560px; }
.gspm-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.gspm-form .gspm-f { display: flex; flex-direction: column; gap: 5px; font-size: 14px; color: inherit; margin: 0; }
.gspm-form .gspm-f span { font-weight: 600; }
.gspm-form .gspm-f--message, .gspm-form .gspm-f--consent, .gspm-form .gspm-f--interest, .gspm-form .gspm-btn { grid-column: 1 / -1; }
.gspm-form input[type=text], .gspm-form input[type=tel], .gspm-form input[type=email], .gspm-form select, .gspm-form textarea { width: 100%; padding: 11px 13px; border: 1px solid rgba(31,47,72,.2); border-radius: 10px; background: #fff; font: inherit; color: #1F2F48; box-sizing: border-box; }
.gspm-form input:focus, .gspm-form select:focus, .gspm-form textarea:focus { outline: 2px solid var(--e-global-color-primary, #00748A); outline-offset: 1px; border-color: transparent; }
.gspm-form .gspm-f--consent { flex-direction: row; align-items: flex-start; gap: 8px; font-size: 13px; }
.gspm-form .gspm-f--consent span { font-weight: 400; }
.gspm-btn { display: inline-block; cursor: pointer; border: 0; border-radius: 999px; padding: 13px 26px; background: var(--e-global-color-primary, #00748A); color: #fff !important; font-weight: 700; font-size: 15px; text-align: center; text-decoration: none; }
.gspm-btn:hover { filter: brightness(1.07); }
.gspm-form__ok { background: #e7f6ec; color: #14532d; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.gspm-form__wa { display: inline-block; margin-left: 6px; background: #25D366; color: #fff !important; border-radius: 999px; padding: 4px 12px; text-decoration: none; font-weight: 600; }
.gspm-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
@media (max-width: 560px) { .gspm-form form { grid-template-columns: 1fr; } }

.gspm-pop { position: fixed; inset: 0; z-index: 99999; background: rgba(15,23,42,.55); display: grid; place-items: center; padding: 16px; opacity: 0; transition: opacity .25s; }
.gspm-pop[hidden] { display: none; }
.gspm-pop.is-open { opacity: 1; }
.gspm-pop__box { position: relative; background: #fff; border-radius: 18px; max-width: 520px; width: 100%; max-height: 92vh; overflow: auto; box-shadow: 0 30px 80px rgba(0,0,0,.3); transform: translateY(16px); transition: transform .25s; color: #1F2F48; }
.gspm-pop.is-open .gspm-pop__box { transform: none; }
.gspm-pop__box.has-img { max-width: 760px; display: grid; grid-template-columns: 40% 1fr; }
.gspm-pop__img { background: center / cover no-repeat; min-height: 220px; border-radius: 18px 0 0 18px; }
.gspm-pop__body { padding: 30px 28px 26px; }
.gspm-pop__body h3 { margin: 0 0 8px; font-size: 22px; line-height: 1.25; color: inherit; }
.gspm-pop__body p { margin: 0 0 16px; color: #48485B; }
.gspm-pop__body .gspm-form form { grid-template-columns: 1fr; }
.gspm-pop__x { position: absolute; top: 8px; right: 10px; width: 36px; height: 36px; border: 0; background: rgba(255,255,255,.9); border-radius: 50%; font-size: 24px; line-height: 1; cursor: pointer; color: #1F2F48; z-index: 2; }
@media (max-width: 640px) { .gspm-pop__box.has-img { grid-template-columns: 1fr; } .gspm-pop__img { min-height: 160px; border-radius: 18px 18px 0 0; } }

.gspm-bc{font-size:14px;margin:0 0 12px;color:#646970}.gspm-bc a{color:inherit;text-decoration:none}.gspm-bc a:hover{text-decoration:underline}.gspm-bc__sep{margin:0 4px;opacity:.6}
.gspm-locs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.gspm-loc{border:1px solid #e5e7eb;border-radius:12px;padding:16px}.gspm-loc h3{margin:0 0 6px}.gspm-loc p{margin:4px 0}.gspm-loc__map{width:100%;height:220px;border:0;border-radius:8px;margin-top:8px}
