/* ==========================================================================
   GP CTA bottom banner (.gpcta)
   Markup: themes/web/footer.tpl · Logic: js/frontend/banner-cta.js
   All variants share the brand teal #003c3e (client-approved final color)
   ========================================================================== */

.gpcta{
	--gpcta-bg:#003c3e;
	--gpcta-fg:#ffffff;
	--gpcta-line:#ffffff;
	--gpcta-btn-bg:#ffffff;
	--gpcta-btn-fg:#0a0a0a;
	position:fixed; left:0; right:0; bottom:0; width:100%; z-index:900;
	box-sizing:border-box;
	background:var(--gpcta-bg); color:var(--gpcta-fg);
	font-family:'universRegular', 'Helvetica Neue', Helvetica, Arial, sans-serif;
	padding:28px 138px calc(28px + env(safe-area-inset-bottom, 0px)) 62px;
	transform:translateY(100%);
	transition:transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.gpcta.gpcta--visible{transform:none;}
.gpcta *{box-sizing:border-box;}

.gpcta .gpcta__wrap{display:flex; align-items:center; gap:39px; margin:0 auto;}
.gpcta .gpcta__text{display:flex; align-items:center; flex:1 1 auto; min-width:0;}
.gpcta .gpcta__title{margin:0; font-family:'universBold', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:16px; font-weight:700; line-height:1; color:var(--gpcta-fg); flex:0 0 auto; white-space:nowrap;}
.gpcta .gpcta__desc{margin:0; font-family:'universBold', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:14px; font-weight:700; line-height:1.2; color:var(--gpcta-fg); margin-left:55px; padding-left:55px; border-left:1px solid var(--gpcta-line); flex:1 1 auto; max-width:48ch; min-height:2.4em; display:flex; align-items:center;}
/* Per-variant text-block widths (wrap points from the Figma frames) */
.gpcta--projects .gpcta__desc{max-width:36ch;}
.gpcta--contact .gpcta__desc{max-width:56ch;}
.gpcta a.gpcta__btn,
.gpcta a.gpcta__btn:link,
.gpcta a.gpcta__btn:visited{flex:0 0 auto; display:inline-block; background:var(--gpcta-btn-bg); color:var(--gpcta-btn-fg); font-family:'universBold', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size:14px; font-weight:700; text-align:center; text-decoration:none; padding:6px 25px; line-height:18px; border-radius:10px; white-space:nowrap; transition:opacity 0.15s ease; cursor:pointer;}
.gpcta a.gpcta__btn:hover,
.gpcta a.gpcta__btn:focus{color:var(--gpcta-btn-fg); text-decoration:none; opacity:0.85;}
.gpcta .gpcta__close{position:absolute; top:16px; right:28px; background:none; border:0; color:var(--gpcta-fg); font-family:inherit; font-size:24px; line-height:1; cursor:pointer; padding:4px; opacity:0.75;}
.gpcta .gpcta__close:hover,
.gpcta .gpcta__close:focus{opacity:1;}

/* Keep the "Go Up" button above the banner (mix-blend-mode:difference breaks over purple).
   Only relevant >1024px: go-up is display:none below that. */
body.gpcta-open .content_go_up{bottom:calc(60px + var(--gpcta-h, 120px));}

/* Never float over the opened mobile burger menu (main.js toggles html.overflow) */
html.overflow .gpcta{visibility:hidden; pointer-events:none;}

@media (max-width:820px){
	.gpcta{padding:30px 48px calc(34px + env(safe-area-inset-bottom, 0px)); max-height:70vh; overflow-y:auto;}
	.gpcta .gpcta__wrap{flex-direction:column; align-items:stretch; gap:22px; max-width:420px; margin:0 auto;}
	.gpcta .gpcta__text{flex-direction:column; align-items:stretch; gap:18px;}
	.gpcta .gpcta__title{font-size:13px; white-space:normal; max-width:none; padding:0 0 16px; border-bottom:1px solid var(--gpcta-line);}
	.gpcta .gpcta__desc{font-family:'universRegular', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight:400; font-size:12px; line-height:1.5; border-left:0; padding-left:0; margin-left:0; max-width:none; min-height:0; display:block;}
	.gpcta a.gpcta__btn,
	.gpcta a.gpcta__btn:link,
	.gpcta a.gpcta__btn:visited{align-self:flex-start; font-size:11px; padding:6px 16px; border-radius:6px;}
	.gpcta .gpcta__close{top:18px; right:22px; font-size:20px;}
}

@media (prefers-reduced-motion:reduce){
	.gpcta{transition:none;}
}
