/* Günther Spotlight Pro 2.0 — aggressively scoped to prevent theme/Elementor button styles leaking in */
.gspx, .gspx *, .gspx *::before, .gspx *::after { box-sizing: border-box; }
.gspx {
  --gspx-accent:#2f6d2a; --gspx-dark:#173f24; --gspx-bg:#f4f7f1;
  position:relative; isolation:isolate; overflow:hidden; width:100%; margin:0 !important;
  padding:clamp(64px,7vw,108px) 0; background:var(--gspx-bg); color:#13201a; font-family:inherit;
}
.gspx .gspx-shell { width:min(1320px, calc(100% - 48px)); margin:0 auto; position:relative; z-index:2; }
.gspx .gspx-ambient { position:absolute; border-radius:999px; pointer-events:none; filter:blur(1px); opacity:.65; }
.gspx .gspx-ambient-a { width:460px; height:460px; left:-250px; top:-290px; background:radial-gradient(circle, color-mix(in srgb,var(--gspx-accent) 14%,transparent), transparent 68%); }
.gspx .gspx-ambient-b { width:520px; height:520px; right:-280px; bottom:-330px; background:radial-gradient(circle, color-mix(in srgb,var(--gspx-accent) 10%,transparent), transparent 68%); }

.gspx .gspx-header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end; margin:0 0 34px !important; }
.gspx .gspx-intro { max-width:850px; }
.gspx .gspx-eyebrow { display:flex !important; align-items:center; gap:12px; margin:0 0 13px !important; color:var(--gspx-accent) !important; font:800 12px/1.2 inherit !important; letter-spacing:.18em !important; text-transform:uppercase !important; }
.gspx .gspx-eyebrow > span { display:block; width:42px; height:1px; background:color-mix(in srgb,var(--gspx-accent) 58%,transparent); }
.gspx h2.gspx-title { margin:0 !important; padding:0 !important; border:0 !important; color:#17231c !important; font:800 clamp(48px,5.1vw,76px)/.98 inherit !important; letter-spacing:-.052em !important; text-transform:none !important; }
.gspx h2.gspx-title::before, .gspx h2.gspx-title::after { display:none !important; content:none !important; }
.gspx .gspx-title span, .gspx .gspx-title strong { display:inline !important; font:inherit !important; letter-spacing:inherit !important; text-transform:none !important; }
.gspx .gspx-title strong { color:var(--gspx-accent) !important; font-weight:800 !important; }
.gspx p.gspx-subtitle { max-width:780px; margin:18px 0 0 !important; padding:0 !important; color:#657069 !important; font:400 clamp(17px,1.35vw,21px)/1.55 inherit !important; letter-spacing:-.012em !important; }

.gspx .gspx-badges { display:flex; flex-wrap:wrap; gap:18px; margin:22px 0 0 !important; }
.gspx .gspx-badge { display:inline-flex !important; align-items:center; gap:8px; padding:0 !important; margin:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; color:#39473f !important; font:700 13px/1.2 inherit !important; }
.gspx .gspx-badge i { display:grid; place-items:center; width:28px; height:28px; border-radius:9px; background:#fff; border:1px solid rgba(25,55,32,.08); box-shadow:0 7px 20px rgba(20,48,27,.07); color:var(--gspx-accent); font-style:normal; }
.gspx .gspx-badge svg { width:14px; height:14px; display:block; }

.gspx a.gspx-cta { display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:13px !important; min-height:58px !important; padding:0 24px !important; margin:0 !important; border:1px solid rgba(255,255,255,.08) !important; border-radius:16px !important; background:linear-gradient(135deg,var(--gspx-accent),var(--gspx-dark)) !important; color:#fff !important; box-shadow:0 16px 36px color-mix(in srgb,var(--gspx-dark) 18%,transparent) !important; text-decoration:none !important; text-transform:none !important; font:800 15px/1 inherit !important; letter-spacing:-.01em !important; white-space:nowrap; transition:transform .24s ease,box-shadow .24s ease,filter .24s ease; }
.gspx a.gspx-cta:hover { transform:translateY(-2px); filter:brightness(1.05); box-shadow:0 20px 44px color-mix(in srgb,var(--gspx-dark) 24%,transparent) !important; }
.gspx a.gspx-cta svg { width:19px; height:19px; display:block; transition:transform .24s ease; }
.gspx a.gspx-cta:hover svg { transform:translateX(3px); }

.gspx .gspx-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:300px 242px; gap:16px; }
.gspx .gspx-card { position:relative; min-width:0; margin:0 !important; padding:0 !important; border:0 !important; border-radius:26px; overflow:hidden; background:#dfe7dc; box-shadow:0 18px 46px rgba(23,48,31,.10); }
.gspx .gspx-card-1 { grid-column:span 6; }
.gspx .gspx-card-2, .gspx .gspx-card-3 { grid-column:span 3; }
.gspx .gspx-card-4, .gspx .gspx-card-5, .gspx .gspx-card-6 { grid-column:span 4; }

/* full reset specifically fixes theme-generated green pill/oval buttons */
.gspx button.gspx-card-trigger,
.gspx button.gspx-lightbox-close,
.gspx button.gspx-lightbox-nav {
  -webkit-appearance:none !important; appearance:none !important; text-transform:none !important; letter-spacing:normal !important;
  font:inherit !important; box-shadow:none !important; outline:0; min-width:0 !important; min-height:0 !important;
}
.gspx button.gspx-card-trigger { all:unset; box-sizing:border-box; display:block !important; position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; color:inherit !important; cursor:pointer; overflow:hidden; }
.gspx .gspx-media { position:absolute; inset:0; display:block; overflow:hidden; background:#dfe7dc; }
.gspx .gspx-media img { display:block !important; width:100% !important; height:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; object-fit:cover; object-position:center; transform:scale(1.001); filter:saturate(.94) contrast(1.01); transition:transform .75s cubic-bezier(.2,.7,.15,1),filter .4s ease; }
.gspx .gspx-shade { position:absolute; inset:0; display:block; background:linear-gradient(180deg,rgba(8,20,12,.02) 20%,rgba(8,20,12,.12) 55%,rgba(8,20,12,.82) 100%); transition:background .35s ease; }
.gspx .gspx-number { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:42px; height:42px; border-radius:999px; border:1px solid rgba(255,255,255,.24); background:rgba(18,31,22,.26); color:#fff; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); font:800 11px/1 inherit; letter-spacing:.12em; }
.gspx .gspx-card-copy { position:absolute; left:0; right:0; bottom:0; display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:26px 26px 24px; color:#fff; text-align:left; }
.gspx .gspx-card-kicker { display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.82); font:750 11px/1.2 inherit; letter-spacing:.06em; text-transform:uppercase; }
.gspx .gspx-card-kicker svg { width:15px; height:15px; }
.gspx .gspx-card-title { display:block; margin:0; color:#fff !important; font:800 clamp(21px,1.65vw,28px)/1.08 inherit !important; letter-spacing:-.025em !important; text-transform:none !important; }
.gspx .gspx-card-desc { display:block; max-width:560px; color:rgba(255,255,255,.82); font:450 14px/1.45 inherit; max-height:0; opacity:0; transform:translateY(6px); overflow:hidden; transition:max-height .35s ease,opacity .3s ease,transform .3s ease; }
.gspx .gspx-card-link { display:flex; align-items:center; gap:7px; margin-top:1px; color:#fff; font:800 12px/1 inherit; }
.gspx .gspx-card-link svg { width:15px; height:15px; transition:transform .25s ease; }
.gspx .gspx-card-trigger:hover .gspx-media img { transform:scale(1.055); filter:saturate(1.03) contrast(1.02); }
.gspx .gspx-card-trigger:hover .gspx-shade { background:linear-gradient(180deg,rgba(8,20,12,.00) 20%,rgba(8,20,12,.10) 50%,rgba(8,20,12,.9) 100%); }
.gspx .gspx-card-trigger:hover .gspx-card-desc { max-height:65px; opacity:1; transform:translateY(0); }
.gspx .gspx-card-trigger:hover .gspx-card-link svg { transform:translate(2px,-2px); }
.gspx .gspx-card-trigger:focus-visible { outline:3px solid color-mix(in srgb,var(--gspx-accent) 45%,white) !important; outline-offset:-5px; }

.gspx .gspx-card-2 .gspx-card-copy, .gspx .gspx-card-3 .gspx-card-copy { padding:22px; }
.gspx .gspx-card-2 .gspx-card-title, .gspx .gspx-card-3 .gspx-card-title { font-size:21px !important; }
.gspx .gspx-card-2 .gspx-card-desc, .gspx .gspx-card-3 .gspx-card-desc { font-size:12.5px; }
.gspx .gspx-card-4 .gspx-card-desc, .gspx .gspx-card-5 .gspx-card-desc, .gspx .gspx-card-6 .gspx-card-desc { display:none; }
.gspx .gspx-mobile-note { display:none; }

.gspx .gspx-lightbox { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:28px; visibility:hidden; opacity:0; transition:opacity .2s ease,visibility .2s ease; }
.gspx .gspx-lightbox.is-open { visibility:visible; opacity:1; }
.gspx .gspx-lightbox-backdrop { position:absolute; inset:0; background:rgba(7,13,9,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.gspx .gspx-lightbox-panel { position:relative; z-index:1; width:min(1120px,94vw); max-height:92vh; }
.gspx .gspx-lightbox figure { margin:0 !important; overflow:hidden; border-radius:24px; background:#101712; box-shadow:0 35px 100px rgba(0,0,0,.45); }
.gspx .gspx-lightbox figure img { display:block; width:100%; max-height:76vh; object-fit:contain; background:#101712; }
.gspx .gspx-lightbox figcaption { display:flex; flex-direction:column; gap:4px; padding:18px 20px; background:#fff; color:#18221c; }
.gspx .gspx-lightbox figcaption strong { font:800 18px/1.2 inherit; }
.gspx .gspx-lightbox figcaption span { color:#687169; font:450 14px/1.45 inherit; }
.gspx button.gspx-lightbox-close, .gspx button.gspx-lightbox-nav { position:absolute !important; z-index:4 !important; display:grid !important; place-items:center !important; margin:0 !important; padding:0 !important; border:1px solid rgba(255,255,255,.16) !important; border-radius:999px !important; background:rgba(18,28,20,.72) !important; color:#fff !important; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); cursor:pointer; }
.gspx button.gspx-lightbox-close { top:12px; right:12px; width:44px !important; height:44px !important; font-size:28px !important; line-height:1 !important; }
.gspx button.gspx-lightbox-nav { top:50%; width:48px !important; height:48px !important; transform:translateY(-50%); }
.gspx button.gspx-lightbox-nav svg { width:22px; height:22px; }
.gspx button.gspx-prev { left:-66px; }
.gspx button.gspx-next { right:-66px; }
.gspx button.gspx-lightbox-close:hover, .gspx button.gspx-lightbox-nav:hover { background:var(--gspx-accent) !important; }
body.gspx-lock { overflow:hidden; }

@media (max-width:1100px) {
  .gspx .gspx-header { grid-template-columns:1fr; gap:24px; align-items:start; }
  .gspx a.gspx-cta { justify-self:start; }
  .gspx .gspx-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; }
  .gspx .gspx-card { grid-column:auto !important; min-height:270px; }
  .gspx .gspx-card-1 { min-height:330px; grid-column:span 2 !important; }
  .gspx button.gspx-prev { left:10px; }
  .gspx button.gspx-next { right:10px; }
}

@media (max-width:720px) {
  .gspx { padding:52px 0 58px; }
  .gspx .gspx-shell { width:100%; }
  .gspx .gspx-header { padding:0 18px; margin-bottom:26px !important; }
  .gspx h2.gspx-title { font-size:clamp(40px,12vw,56px) !important; }
  .gspx p.gspx-subtitle { font-size:16px !important; margin-top:13px !important; }
  .gspx .gspx-badges { gap:10px 15px; margin-top:18px !important; }
  .gspx .gspx-badge { font-size:12px !important; }
  .gspx a.gspx-cta { min-height:52px !important; border-radius:14px !important; padding:0 18px !important; }
  .gspx .gspx-grid { display:flex; overflow-x:auto; gap:12px; padding:2px 18px 14px; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .gspx .gspx-grid::-webkit-scrollbar { display:none; }
  .gspx .gspx-card { flex:0 0 min(86vw,390px); min-height:390px !important; scroll-snap-align:start; border-radius:22px; }
  .gspx .gspx-card-copy, .gspx .gspx-card-2 .gspx-card-copy, .gspx .gspx-card-3 .gspx-card-copy { padding:22px; }
  .gspx .gspx-card-title, .gspx .gspx-card-2 .gspx-card-title, .gspx .gspx-card-3 .gspx-card-title { font-size:24px !important; }
  .gspx .gspx-card-desc, .gspx .gspx-card-4 .gspx-card-desc, .gspx .gspx-card-5 .gspx-card-desc, .gspx .gspx-card-6 .gspx-card-desc { display:block; max-height:60px; opacity:1; transform:none; font-size:13px; }
  .gspx .gspx-number { top:14px; right:14px; }
  .gspx .gspx-mobile-note { display:flex; align-items:center; justify-content:center; gap:10px; padding:2px 18px 0; color:#748078; font:700 11px/1 inherit; letter-spacing:.02em; }
  .gspx .gspx-mobile-note i { font-style:normal; color:var(--gspx-accent); font-size:18px; }
  .gspx .gspx-lightbox { padding:12px; }
  .gspx .gspx-lightbox-panel { width:100%; }
  .gspx .gspx-lightbox figure { border-radius:18px; }
  .gspx button.gspx-lightbox-close { top:8px; right:8px; }
  .gspx button.gspx-prev { left:8px; }
  .gspx button.gspx-next { right:8px; }
  .gspx button.gspx-lightbox-nav { width:42px !important; height:42px !important; }
}

@media (prefers-reduced-motion:reduce) { .gspx *, .gspx *::before, .gspx *::after { transition:none !important; scroll-behavior:auto !important; } }
