:root {
  --gg-purple:#820DAB;
  --gg-green:#C8DA2C;
  --gg-lilac:#F3E6FA;
  --gg-green-light:#EEF5C9;
  --gg-white:#fff;
  --gg-black:#000;
  --gg-container-x: clamp(24px, 7vw, 100px);
  --gg-radius-xl: 32px; /* updated larger radius per new design */
  --gg-radius-pill: 999px;
  --gg-focus-outline: 3px solid #000; /* high contrast default */
  --gg-pad:clamp(24px,4vw,48px);
  --gg-gap:clamp(16px,2.5vw,32px);
}

/* Screen reader only */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;}

/* Footer Base */
.gg-footer { font-family: var(--font-body, 'Inter', system-ui, sans-serif);}

/* === CTA HERO (full-width background behind green activation box) === */
.gg-cta-hero { position:relative; width:100%; background:transparent; }
.gg-cta-hero::before { content:""; position:absolute; left:0; right:0; top:0; height:60%; background-color:#000; opacity:1; pointer-events:none; z-index:0; }
.gg-cta-hero.has-bg::before { background-image:var(--cta-hero-bg); background-size:cover; background-repeat:no-repeat; background-position:var(--cta-hero-pos-x,center) var(--cta-hero-pos-y,center); }
/* generous vertical space to show image above the box; remove bottom padding */
.gg-cta-hero__inner { position:relative; z-index:1; padding:clamp(56px,8vw,120px) 0 0 0; }
/* ensure the green card floats centered within section */
.gg-cta-hero .gg-footer__activate { margin-left:auto; margin-right:auto; max-width:1200px; }
/* When no background set, keep normal page spacing tighter (top only) */
.gg-cta-hero:not(.has-bg) .gg-cta-hero__inner { padding:clamp(24px,4vw,48px) 0 0 0; }
@media (max-width:767px){
  .gg-cta-hero__inner { padding:clamp(40px,12vw,80px) 0 0 0; }
}

/* 1. Newsletter CTA (neutral edge-to-edge, unified) */
.gg-footer__cta { background:#F3F3F3; margin:0; padding:0; border-radius:0; box-shadow:none; }
/* Single inner container padding: horizontal via global scale var, vertical via clamp */
.gg-footer__cta .gg-container { padding:clamp(40px,6vw,72px) var(--gg-container-x); box-sizing:border-box; }
/* Grid (two columns desktop, stack mobile) */
.gg-cta__grid { display:grid; gap:clamp(24px,4vw,48px); grid-template-columns:1fr 1.1fr; align-items:center; }
@media (max-width:1023.98px){ .gg-cta__grid { grid-template-columns:1fr; } }
/* Title & description */
.gg-cta__title { margin:0 0 16px; font-weight:800; font-size:24px; line-height:1; text-transform:uppercase; font-family:'Montserrat','Inter',sans-serif; }
.gg-cta__desc { margin:0; max-width:60ch; font-size:16px; line-height:1.3; font-family:'Montserrat','Inter',sans-serif; }
/* Form */
.gg-cta__form { display:flex; flex-direction:column; gap:12px; width:100%; margin:0; }
.gg-cta__form input[type=email] { width:100%; height:52px; border:0; border-radius:var(--gg-radius-pill); background:#fff; padding:0 22px; font-size:16px; font-weight:400; box-shadow:inset 0 1px 0 rgba(0,0,0,.06); }
.gg-cta__form input[type=email]:focus-visible { outline:none; box-shadow:0 0 0 3px #fff,0 0 0 6px var(--gg-purple); }
/* Width alignment fix: ensure input + button exact same outer width */
.gg-cta__form input[type=email], .gg-cta__btn { box-sizing:border-box; }
/* Optional: give button same horizontal internal padding for visual balance */
.gg-cta__btn { padding:0 22px; }
.gg-cta__btn { width:100%; height:52px; border:0; border-radius:var(--gg-radius-pill); background:var(--gg-purple); color:#fff; font-weight:800; font-size:16px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .25s ease; }
.gg-cta__btn:hover,.gg-cta__btn:focus-visible { background:#5E087C; }
.gg-cta__btn:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.gg-cta__btn:active { transform:translateY(1px); }
.gg-cta__form .gg-newsletter__msg { margin-top:4px; font-size:14px; font-weight:500; }
.gg-cta__form .gg-newsletter__msg:empty { display:none; }
@media (max-width:1023.98px){ .gg-cta__title, .gg-cta__desc, .gg-cta__form { text-align:center; margin-inline:auto; } }

/* Newsletter iframe embed wrapper */
.gg-cta__embed { width:100%; max-width:640px; margin:0 auto; }
.gg-cta__embed iframe { display:block; width:100%; max-width:100%; height:355px; border:0; border-radius:var(--gg-radius-xl); box-shadow:0 6px 16px -6px rgba(0,0,0,.18); }
/* @media (max-width:1165px){ .gg-cta__embed iframe { height:620px; } }
@media (max-width:1024px){ .gg-cta__embed iframe { height:580px; } }
@media (max-width:600px){ .gg-cta__embed iframe { height:620px; } }
@media (max-width:450px){ .gg-cta__embed iframe { height:690px; } }
@media (max-width:400px){ .gg-cta__embed iframe { height:750px; } } */

/* 2. Activation Banner (card style restored) */
.gg-footer__activate { background:var(--gg-green); margin:clamp(24px,4vw,40px) var(--gg-container-x); padding:clamp(48px,7vw,88px) var(--gg-pad); border-radius:var(--gg-radius-xl); box-shadow:0 12px 30px -18px rgba(0,0,0,.18); display:flex; align-items:center; justify-content:center; text-align:center; }
/* Removed padding reset so inner .gg-container uses global horizontal padding */
@media (max-width:1023.98px){ .gg-footer__activate { margin:40px 0 0; border-radius:0; padding:48px var(--gg-container-x); } }
/* Activation title typography spec override */
.gg-footer__activate-text { font-family:'Montserrat','Inter',sans-serif; font-weight:700; font-style:normal; font-size:36px; line-height: 1.3; letter-spacing:0; text-align:center; text-transform:none; margin:0; }
@media (max-width:900px){ .gg-footer__activate-text { font-size:32px; } }
@media (max-width:600px){ .gg-footer__activate-text { font-size:28px; } }
/* White pill buttons refined */
.gg-footer__activate-pills .gg-pill, .gg-pill {
  display:inline-flex;align-items:center;justify-content:center;
  padding:16px 32px;
  background:#fff;
  color:#000;
  font-family:'Montserrat','Inter',sans-serif;
  font-weight:700; font-size:16px; line-height:1; text-decoration:none;
  border:0; border-radius:var(--gg-radius-pill);
  box-shadow:0 6px 16px -6px rgba(0,0,0,.18);
  transition:background .25s ease, color .25s ease, transform .18s ease, box-shadow .25s ease;
}
.gg-footer__activate-pills .gg-pill:hover, .gg-pill:hover { background:#F7F7F7; }
.gg-footer__activate-pills .gg-pill:active, .gg-pill:active { transform:translateY(1px); box-shadow:0 4px 10px -4px rgba(0,0,0,.18); }
.gg-footer__activate-pills .gg-pill:focus-visible, .gg-pill:focus-visible { outline:3px solid var(--gg-purple); outline-offset:3px; }

/* Activation banner pills layout (horizontal, no bullets, evenly spaced) */
.gg-footer__activate-pills { width:100%; }
.gg-footer__activate-pills ul { /* reduced gap */ list-style:none; margin:clamp(28px,4vw,40px) 0 0; padding:0; display:flex; flex-wrap:nowrap; justify-content:center; gap:clamp(16px,2.5vw,40px); }
@media (max-width:780px){ .gg-footer__activate-pills ul { flex-wrap:wrap; gap:clamp(12px,2.5vw,28px); } }

/* 3. Bottom footer (retain existing) */
.gg-footer__bottom{background:#fff;padding:clamp(40px,6vw,64px) 0;}
.gg-footer__bottom-grid{display:grid;grid-template-columns:60% 40%;align-items:start;}
@media (max-width:900px){.gg-footer__bottom-grid{grid-template-columns:1fr;}}
.gg-footer__col--nav{min-width:0;}
.gg-footer-nav{width:100%;}
.gg-footer-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,48px);font-weight:600;font-family:'Montserrat','Inter',sans-serif;font-size:15px;}
.gg-footer-links li{margin:0;padding:0;}
.gg-footer-links a{text-decoration:none;color:#000;position:relative;}
.gg-footer-links a:hover{text-decoration:underline;}
.gg-footer-links a:focus-visible{outline:3px solid var(--gg-purple);outline-offset:3px;}
/* External Germany link as separate row (menu item li gets class from filter if contains ↗ or domain) */
.gg-footer-links li.is-external-de{flex-basis:100%;margin-top:clamp(16px,2vw,20px);}
.gg-footer-links li.is-external-de a{font-weight:500;}
/* Right column meta */
.gg-footer__col--meta{display:flex;flex-direction:column;align-items:flex-end;gap:clamp(28px,4vw,40px);}
@media (max-width:900px){.gg-footer__col--meta{align-items:center;text-align:center;}}
/* Adjust right footer column inset to match activation box visual spacing */
@media (min-width:901px){ .gg-footer__col--meta { padding-right:var(--gg-pad); } }
/* Adjust legal row vertical alignment (remove large padding override, use compact spacing) */
.gg-footer__bottom-grid > .gg-footer-legal-row { padding-top:clamp(8px,1.2vw,16px); }
/* Ensure right-side legal items align vertically with Germany link */
.gg-footer-legal-right > * { display:inline-flex; align-items:center; }
.gg-footer-copy { display:inline-flex; align-items:center; }
/* Remove earlier larger padding-top if still present (overridden here) */
/* Adjust legal row vertical spacing & right overflow fix */
.gg-footer__bottom-grid > .gg-footer-legal-row { padding-top:clamp(8px,1.2vw,16px); margin-top:0; }
/* Ensure legal right group doesn’t push beyond container */
.gg-footer-legal-right { flex-wrap:nowrap; }
.gg-footer-social{gap:clamp(16px,2vw,24px);justify-content:flex-end;}
@media (max-width:900px){.gg-footer-social{justify-content:center;}}
.gg-footer-legal-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;row-gap:12px;column-gap:clamp(24px,4vw,48px);font-size:14px;}
@media (max-width:900px){.gg-footer-legal-row{justify-content:center;}}
.gg-footer-legal-link{text-decoration:none;color:#000;}
.gg-footer-legal-link:hover{text-decoration:underline;}
.gg-footer-legal-link:focus-visible{outline:3px solid var(--gg-purple);outline-offset:3px;}
/* Legal row typography & spacing override */
.gg-footer-legal-row { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1; letter-spacing:0; column-gap:clamp(24px,4vw,48px); }
.gg-footer-legal-link, .gg-footer-copy { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1; letter-spacing:0; }
.gg-footer-copy { margin-left:0; }

/* === Legal row final layout override (Germany left, others right) === */
.gg-footer__bottom-grid > .gg-footer-legal-row { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; width:100%; padding-top:clamp(24px,3vw,40px); }
.gg-footer-legal-row { flex-wrap:nowrap; gap:clamp(16px,3vw,32px); }
.gg-footer-legal-left { display:flex; align-items:center; }
.gg-footer-legal-right { display:flex; align-items:center; gap:clamp(24px,4vw,48px); }
.gg-footer-de-link { font-family:'Montserrat','Inter',sans-serif; font-weight:400; font-size:16px; line-height:1; text-decoration:none; color:#000; }
.gg-footer-de-link:hover { text-decoration:underline; }
.gg-footer-de-link:focus-visible { outline:3px solid var(--gg-purple); outline-offset:3px; }
@media (max-width:900px){
  .gg-footer__bottom-grid > .gg-footer-legal-row { flex-direction:column; align-items:center; justify-content:center; gap:16px; }
  .gg-footer-legal-right { flex-wrap:wrap; justify-content:center; }
}
/* === End legal row override === */

/* Social buttons (bottom footer + reuse) */
.gg-social__btn { width:clamp(48px,5vw,60px); height:clamp(48px,5vw,60px); display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--gg-purple); color:#fff; text-decoration:none; transition:background .25s ease, transform .18s ease; }
.gg-social__btn:hover, .gg-social__btn:focus-visible { background:#5E087C; }
.gg-social__btn:active { transform:translateY(1px); }
.gg-social__btn:focus-visible { outline:3px solid #fff; outline-offset:3px; }
/* Footer social list reset & horizontal layout */
.gg-social, .gg-footer-social { display:flex; flex-direction:row; align-items:center; gap:12px; list-style:none; margin:0; padding:0; }
.gg-footer-social li { margin:0; padding:0; }

/* === Remove custom right-side padding overrides to unify horizontal spacing === */
/* Old overrides (padding-right / margin-right with var(--gg-pad)) are neutralized below */
@media (min-width:901px){
  .gg-footer__col--meta { padding-right:0 !important; }
  .gg-footer__bottom-grid > .gg-footer-legal-row { padding-right:0 !important; }
  .gg-footer-legal-right { margin-right:0 !important; }
}
/* Rely solely on global .gg-container horizontal padding (var(--gg-container-x)) for alignment */
/* === End unification block === */
