:root {
  --gp-navy: #06162d;
  --gp-blue: #2563eb;
  --gp-green: #69c43f;
  --gp-ink: #10233e;
  --gp-muted: #607086;
  --gp-surface: #f4f7fb;
  --gp-line: #dce5f0;
  --gp-shadow: 0 24px 70px rgba(15, 35, 62, .12);
}

/* Home4-aligned foundation for every public page using the shared app shell. */
.gp-site-theme {
  --gp-night: #02060d;
  --gp-navy: #061326;
  --gp-panel: #ffffff;
  --gp-panel-soft: #f7f9fc;
  --gp-blue: #2563eb;
  --gp-green: #76cf45;
  --gp-ink: #10233e;
  --gp-muted: #607086;
  --gp-line: #dce5f0;
  margin: 0;
  color: var(--gp-ink);
  background: #f4f7fb;
  font-family: 'DM Sans', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.gp-site-theme :where(h1,h2,h3,h4,h5,h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6) {
  font-family: 'Manrope', sans-serif;
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.12;
}

.gp-site-theme main {
  min-height: 70vh;
  overflow: clip;
  background:
    radial-gradient(850px 420px at 3% 8%, rgba(118,207,69,.08), transparent 66%),
    radial-gradient(900px 440px at 97% 12%, rgba(37,99,235,.09), transparent 68%),
    #f4f7fb;
}

.gp-site-theme main > section { position: relative; }
.gp-site-theme main > section:not([class*="py-"]):not([class*="pt-"]):not([class*="pb-"]) { padding-block: clamp(2.75rem, 6vw, 5.5rem); }
.gp-site-theme :where(.container,.container-fluid,.container-medium) { position: relative; z-index: 1; }
.gp-site-theme :where(p,.text-body-tertiary,.text-muted) { color: var(--gp-muted); line-height: 1.72; }

.gp-site-theme :where(.card,.modal-content,.dropdown-menu,.accordion-item,.list-group-item) {
  border-color: var(--gp-line);
  border-radius: 18px;
}
.gp-site-theme main :where(.card,.accordion-item,.list-group-item) {
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 50px rgba(15,35,62,.09);
}
.gp-site-theme main .card { transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.gp-site-theme main .card:hover { border-color: rgba(37,99,235,.25); box-shadow: 0 24px 62px rgba(15,35,62,.14); }
.gp-site-theme main :where(.card-body,.modal-body) { padding: clamp(1.25rem, 2.5vw, 2rem); }

.gp-site-theme :where(.btn,.form-control,.form-select,.input-group-text) { border-radius: 12px; }
.gp-site-theme .btn {
  min-height: 44px;
  padding-inline: 1.15rem;
  font-family: 'DM Sans', sans-serif;
  font-weight: 800;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.gp-site-theme .btn:hover { transform: translateY(-2px); }
.gp-site-theme :where(.btn-primary,.btn-info) {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(135deg,#2563eb,#1747ac);
  box-shadow: 0 12px 28px rgba(37,99,235,.22);
}
.gp-site-theme :where(.btn-success,.btn-warning) {
  border-color: transparent;
  color: #071208;
  background: linear-gradient(135deg,#8ee247,#54b956);
  box-shadow: 0 12px 28px rgba(84,185,86,.2);
}
.gp-site-theme :where(.form-control,.form-select) {
  min-height: 48px;
  border: 1.5px solid #d7e1ed;
  background: #fbfdff;
  font-family: 'DM Sans', sans-serif;
}
.gp-site-theme :where(.form-control,.form-select):focus {
  border-color: var(--gp-blue);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(37,99,235,.1);
}
.gp-site-theme textarea.form-control { min-height: 126px; }
.gp-site-theme .form-label { color: #334155; font-weight: 800; }

.gp-site-theme .table-responsive {
  overflow: hidden auto;
  border: 1px solid var(--gp-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 45px rgba(15,35,62,.08);
}
.gp-site-theme .table { margin-bottom: 0; vertical-align: middle; }
.gp-site-theme .table thead th {
  padding-block: 1rem;
  border-bottom-color: var(--gp-line);
  background: #eef3f9;
  color: #334155;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.gp-site-theme .table tbody td { padding-block: .95rem; border-color: #edf1f6; }
.gp-site-theme :where(.badge,.nav-pills .nav-link) { border-radius: 999px; font-weight: 800; }
.gp-site-theme .pagination { gap: .4rem; }
.gp-site-theme .page-link { border-radius: 10px !important; border-color: var(--gp-line); }
.gp-site-theme img { max-width: 100%; }

@media (max-width: 767px) {
  .gp-site-theme main > section { padding-inline: .15rem; }
  .gp-site-theme :where(h1,.display-1,.display-2,.display-3) { font-size: clamp(2rem, 9vw, 3rem); }
  .gp-site-theme main :where(.card-body,.modal-body) { padding: 1.15rem; }
  .gp-site-theme .btn { white-space: normal; }
  .gp-site-theme .table-responsive { border-radius: 14px; }
}

/* --------------------------------------------------------------------------
   Home4 universal public theme
   Covers legacy public Livewire views that have not yet received a dedicated
   page scope. Kept under .gp-site-theme so seller/admin layouts remain intact.
   -------------------------------------------------------------------------- */
.gp-site-theme {
  --gp-night: #02060d;
  --gp-navy: #061326;
  --gp-panel: #0a1b31;
  --gp-panel-2: #102a48;
  --gp-text: #f6f9ff;
  --gp-muted: #9aacbf;
  --gp-line: rgba(255,255,255,.11);
  --gp-green: #8ee247;
  --gp-blue: #4285ff;
  color: var(--gp-text);
  background: var(--gp-night);
}

.gp-site-theme main {
  color: var(--gp-text);
  background:
    radial-gradient(900px 620px at 6% 7%, rgba(142,226,71,.10), transparent 62%),
    radial-gradient(900px 680px at 96% 12%, rgba(66,133,255,.15), transparent 64%),
    linear-gradient(180deg,#02060d 0%,#06101e 48%,#030914 100%);
}

.gp-site-theme main::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .32;
  background-image:
    linear-gradient(rgba(255,255,255,.024) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.024) 1px,transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(#000,transparent 88%);
}

.gp-site-theme main > * { position: relative; z-index: 1; }
.gp-site-theme main :where(h1,h2,h3,h4,h5,h6,.text-body-emphasis,.text-dark) { color: var(--gp-text) !important; }
.gp-site-theme main :where(p,li,.text-body-tertiary,.text-muted,.text-secondary) { color: var(--gp-muted) !important; }
.gp-site-theme main :where(.text-primary,.text-warning) { color: var(--gp-green) !important; }
.gp-site-theme main a:not(.btn):hover { color: var(--gp-green); }

.gp-site-theme main :where(.bg-white,.bg-light,.bg-body,.bg-body-tertiary,.bg-body-highlight) {
  color: var(--gp-text) !important;
  background: linear-gradient(155deg,var(--gp-panel-2),var(--gp-panel)) !important;
}
.gp-site-theme main :where(.card,.accordion-item,.list-group-item,.modal-content,.dropdown-menu,.offcanvas,.toast) {
  color: var(--gp-text);
  border: 1px solid var(--gp-line) !important;
  background: linear-gradient(155deg,var(--gp-panel-2),var(--gp-panel)) !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.32) !important;
}
.gp-site-theme main .card:hover {
  border-color: rgba(142,226,71,.34) !important;
  transform: translateY(-4px);
  box-shadow: 0 32px 82px rgba(0,0,0,.42) !important;
}
.gp-site-theme main :where(.border,.border-top,.border-bottom,.border-start,.border-end) { border-color: var(--gp-line) !important; }
.gp-site-theme main hr { border-color: var(--gp-line); opacity: 1; }

.gp-site-theme main .accordion-button {
  color: var(--gp-text);
  background: transparent;
  box-shadow: none;
  font-family: 'Manrope',sans-serif;
  font-weight: 800;
}
.gp-site-theme main .accordion-button:not(.collapsed) { color: var(--gp-green); background: rgba(142,226,71,.08); }
.gp-site-theme main .accordion-button::after { filter: invert(1) brightness(1.8); }
.gp-site-theme main .list-group-item { color: var(--gp-muted); box-shadow: none !important; }

.gp-site-theme main :where(.form-control,.form-select,.input-group-text,.ts-control) {
  color: var(--gp-text) !important;
  border-color: var(--gp-line) !important;
  background: rgba(255,255,255,.055) !important;
}
.gp-site-theme main :where(.form-control,.form-select)::placeholder { color: #8294aa; }
.gp-site-theme main :where(.form-control,.form-select):focus {
  border-color: var(--gp-green) !important;
  background: rgba(255,255,255,.08) !important;
  box-shadow: 0 0 0 4px rgba(142,226,71,.12) !important;
}
.gp-site-theme main .form-select option { color: #071426; background: #fff; }
.gp-site-theme main .form-label { color: #dce7f5; }
.gp-site-theme main .btn-primary,
.gp-site-theme main .btn-success,
.gp-site-theme main .btn-warning {
  color: #061208 !important;
  border-color: transparent !important;
  background: linear-gradient(135deg,var(--gp-green),#43b95e) !important;
  box-shadow: 0 14px 32px rgba(87,204,77,.22) !important;
}
.gp-site-theme main :where(.btn-info,.btn-secondary) {
  color: #fff !important;
  border-color: transparent !important;
  background: linear-gradient(135deg,var(--gp-blue),#2459c7) !important;
}
.gp-site-theme main :where(.btn-outline-primary,.btn-outline-success) {
  color: var(--gp-green) !important;
  border-color: rgba(142,226,71,.48) !important;
  background: rgba(142,226,71,.05) !important;
}
.gp-site-theme main :where(.btn-outline-primary,.btn-outline-success):hover {
  color: #061208 !important;
  background: var(--gp-green) !important;
}

.gp-site-theme main .table-responsive { border-color: var(--gp-line); background: var(--gp-panel); box-shadow: 0 24px 65px rgba(0,0,0,.3); }
.gp-site-theme main .table { --phoenix-table-color: var(--gp-text); --bs-table-color: var(--gp-text); --bs-table-bg: transparent; color: var(--gp-text); }
.gp-site-theme main .table thead th { color: #cbd8e8; border-color: var(--gp-line); background: rgba(255,255,255,.055); }
.gp-site-theme main .table tbody td { color: var(--gp-muted); border-color: var(--gp-line); }
.gp-site-theme main .table-hover tbody tr:hover > * { color: var(--gp-text); background: rgba(142,226,71,.055); }
.gp-site-theme main .page-link { color: var(--gp-muted); border-color: var(--gp-line); background: var(--gp-panel); }
.gp-site-theme main .page-item.active .page-link { color: #061208; border-color: var(--gp-green); background: var(--gp-green); }

.gp-site-theme main :where(.nav-tabs,.nav-pills) { border-color: var(--gp-line); }
.gp-site-theme main :where(.nav-tabs,.nav-pills) .nav-link { color: var(--gp-muted); }
.gp-site-theme main :where(.nav-tabs,.nav-pills) .nav-link.active {
  color: #061208 !important;
  border-color: var(--gp-green) !important;
  background: var(--gp-green) !important;
}
.gp-site-theme main .badge.bg-primary { color: #061208; background: var(--gp-green) !important; }
.gp-site-theme main .alert { color: var(--gp-text); border-color: var(--gp-line); background: rgba(66,133,255,.10); }

/* Turn the first content block on old pages into a confident editorial opening. */
.gp-site-theme main > div > section:first-of-type,
.gp-site-theme main > section:first-of-type {
  padding-top: clamp(7.5rem,11vw,10rem);
}
.gp-site-theme main > div > section:first-of-type h1,
.gp-site-theme main > section:first-of-type h1 {
  max-width: 980px;
  font-size: clamp(2.45rem,5vw,4.8rem);
  line-height: 1.04;
  letter-spacing: -.055em;
}

@media (max-width: 767px) {
  .gp-site-theme main > div > section:first-of-type,
  .gp-site-theme main > section:first-of-type { padding-top: 6.5rem; }
  .gp-site-theme main > div > section:first-of-type h1,
  .gp-site-theme main > section:first-of-type h1 { font-size: clamp(2rem,10vw,3rem); }
  .gp-site-theme main .card:hover { transform: none; }
}

/* Responsive hardening shared by every public view. */
.gp-site-theme { overflow-x: hidden; }
.gp-site-theme main :where(img,video,iframe,svg) { max-width: 100%; }
.gp-site-theme main :where(h1,h2,h3,h4,h5,h6,p,a,button,label,td,th) { overflow-wrap: break-word; }
.gp-site-theme main :where(.row,.d-flex,.grid) > * { min-width: 0; }
.gp-site-theme main :where(.table-responsive,.overflow-auto) { max-width: 100%; }

@media (max-width: 991px) {
  .gp-site-theme main :where(.position-sticky,.sticky-top) { position: static !important; }
  .gp-site-theme main .container-fluid { padding-inline: clamp(.85rem,3vw,1.5rem); }
  .gp-site-theme main :where(.modal-dialog,.offcanvas) { max-width: calc(100vw - 24px); margin-inline: auto; }
}

@media (max-width: 767px) {
  .gp-site-theme main :where(.display-4,.display-5,.display-6) { font-size: clamp(1.9rem,8.8vw,2.65rem) !important; }
  .gp-site-theme main :where(.py-5,.py-6,.py-7,.py-8,.py-9,.py-10) { padding-top: 2.75rem !important; padding-bottom: 2.75rem !important; }
  .gp-site-theme main :where(.px-5,.px-6,.px-7,.px-8,.px-9,.px-10) { padding-left: 1.15rem !important; padding-right: 1.15rem !important; }
  .gp-site-theme main .input-group > :where(.form-control,.form-select) { min-width: 0; }
  .gp-site-theme main .btn-group { max-width: 100%; flex-wrap: wrap; }
  .gp-site-theme main .nav-tabs { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .gp-site-theme main .nav-tabs::-webkit-scrollbar { display: none; }
  .gp-site-theme main .table { min-width: 620px; }
  .gp-site-theme main :where(.ratio,iframe,video) { max-height: 72vh; }

  /* Buy Leads: stronger contrast and a calmer first viewport. */
  .gp-site-theme .byleads-scope .gp-hero-unique { padding: 28px 12px 32px; }
  .gp-site-theme .byleads-scope .gp-unique-title { font-size: clamp(2.15rem,10.5vw,2.85rem) !important; line-height: 1.14 !important; }
  .gp-site-theme .byleads-scope .gp-unique-title span { color: var(--green) !important; }
  .gp-site-theme .byleads-scope .gp-unique-subtext { color: #b9c7d9 !important; font-size: .98rem; line-height: 1.7; }

  /* EXIM Training: prevent the stacked sales message from overwhelming mobile. */
  .gp-site-theme .main-GFE { gap: 1rem; padding-inline: .75rem; }
  .gp-site-theme .main-GFE .card { padding: 1.5rem 1.1rem !important; }
  .gp-site-theme .main-GFE h3 { font-size: clamp(1.25rem,6vw,1.65rem) !important; line-height: 1.25; margin-bottom: .75rem; }
  .gp-site-theme .main-GFE h4 { font-size: 1rem !important; line-height: 1.45; }

  /* Trade Finance: keep floating helpers clear of reading content. */
  .gp-site-theme .tfs-scope { padding-top: 118px !important; }
  .gp-site-theme .tfs-scope > .mt-5 { margin-top: 0 !important; }
  .gp-site-theme .tfs-scope .container.my-5 { margin-top: 1.25rem !important; }
  .gp-site-theme .tfs-scope .button-enq-1 .btn { font-size: .78rem; padding: .62rem .85rem !important; min-height: 38px; }
}

@media (max-width: 420px) {
  .gp-site-theme main .container,
  .gp-site-theme main .container-medium { width: 100%; padding-inline: 14px; }
  .gp-site-theme main :where(.card,.accordion-item,.table-responsive) { border-radius: 14px; }
  .gp-site-theme main :where(.btn:not(.btn-sm),button:not(.btn-sm)) { min-height: 42px; }
}

/* Subtle shared motion: purposeful feedback without distracting from content. */
@keyframes gpRiseIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@keyframes gpSoftPulse { 50% { box-shadow:0 0 0 7px rgba(142,226,71,0); } }
.gp-site-theme main > div > section:first-of-type h1,
.gp-site-theme main > section:first-of-type h1 { animation:gpRiseIn .7s cubic-bezier(.2,.8,.2,1) both; }
.gp-site-theme main > div > section:first-of-type p,
.gp-site-theme main > section:first-of-type p { animation:gpRiseIn .72s .08s cubic-bezier(.2,.8,.2,1) both; }
.gp-site-theme main :where(.card,.accordion-item,.location-card,.product-card) { transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .32s,box-shadow .32s; }
.gp-site-theme main :where(.btn-primary,.btn-success,.btn-warning) { animation:gpSoftPulse 2.8s infinite; }
@media(prefers-reduced-motion:reduce){.gp-site-theme *, .gp-site-theme *::before, .gp-site-theme *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

html { scroll-behavior: smooth; }
body { color: var(--gp-ink); background: var(--gp-surface); }

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(37, 99, 235, .28);
  outline-offset: 3px;
}

.gp-modern-page {
  background:
    radial-gradient(800px 360px at 8% 0, rgba(105, 196, 63, .08), transparent 64%),
    radial-gradient(850px 420px at 94% 12%, rgba(37, 99, 235, .09), transparent 68%),
    var(--gp-surface);
  color: var(--gp-ink);
}

.gp-modern-page section { position: relative; }
.gp-modern-page h1,
.gp-modern-page h2,
.gp-modern-page h3 { color: var(--gp-ink); letter-spacing: -.025em; }
.gp-modern-page p { line-height: 1.72; }

.gp-modern-page .container,
.gp-modern-page .container-medium { position: relative; z-index: 1; }

.gp-modern-page .card,
.gp-modern-page .glass-card,
.gp-modern-page .rounded-3,
.gp-modern-page .rounded-4 {
  border-color: var(--gp-line) !important;
}

.gp-modern-page .glass-card,
.gp-modern-page .shadow-sm {
  box-shadow: 0 16px 45px rgba(15, 35, 62, .09) !important;
}

.gp-modern-page .form-control,
.gp-modern-page .form-select {
  min-height: 48px;
  border: 1.5px solid #d7e1ed;
  border-radius: 12px !important;
  background: #fbfdff;
  transition: border-color .2s, box-shadow .2s, background .2s;
}

.gp-modern-page textarea.form-control { min-height: 128px; }
.gp-modern-page .form-control:focus,
.gp-modern-page .form-select:focus {
  border-color: var(--gp-blue);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .1);
}

.gp-modern-page .btn-primary {
  border-color: transparent;
  background: linear-gradient(135deg, #2563eb, #1747ac);
  box-shadow: 0 12px 28px rgba(37, 99, 235, .22);
  font-weight: 800;
}

.gp-modern-page .btn-primary:hover { transform: translateY(-2px); }

.gp-about-page > section:first-of-type {
  overflow: hidden;
  padding-top: clamp(7rem, 10vw, 9rem) !important;
  background: linear-gradient(145deg, #eef5ff, #fff 48%, #f0f8eb);
}

.gp-about-page > section:first-of-type h1 {
  max-width: 980px;
  margin-inline: auto;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 1.04;
}

.gp-about-page img { border-radius: 18px; }
.gp-about-page .img-zoom-hover {
  border: 1px solid rgba(255,255,255,.75);
  box-shadow: 0 16px 42px rgba(15,35,62,.13);
}

.gp-contact-page > section:first-of-type {
  overflow: hidden;
  max-height: 470px;
  background: var(--gp-navy);
}
.gp-contact-page > section:first-of-type img {
  width: 100%;
  min-height: 330px;
  max-height: 470px;
  object-fit: cover;
  opacity: .86;
}
.gp-contact-page .location-card {
  border: 1px solid var(--gp-line) !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: var(--gp-shadow) !important;
}
.gp-contact-page .location-card:hover { border-color: rgba(37,99,235,.3) !important; }

.gp-auth-stage { padding-top: clamp(5rem, 8vw, 7rem) !important; padding-bottom: 5rem !important; }
.gp-auth-shell {
  max-width: 1050px;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(216,226,238,.9);
  background: #fff;
  box-shadow: var(--gp-shadow);
}
.gp-auth-form { display: flex; flex-direction: column; justify-content: center; }
.gp-signup-page .form-label { color: #334155; font-size: .84rem; font-weight: 800; }

.sl-page {
  background:
    radial-gradient(700px 330px at 8% 8%, rgba(105,196,63,.1), transparent 65%),
    radial-gradient(800px 360px at 92% 14%, rgba(37,99,235,.12), transparent 65%),
    #f2f6fc !important;
}
.sl-wrap { border: 1px solid rgba(216,226,238,.9); box-shadow: var(--gp-shadow) !important; }
.sl-left { background: linear-gradient(145deg, #06162d 0%, #123a7a 58%, #2563eb 100%) !important; }
.sl-right { min-width: 0; }

.gp-success-page-shell .gfe-success-page { padding-top: clamp(7rem, 10vw, 10rem); }
.gp-success-page-shell .gfe-success-header { max-width: 850px; margin-inline: auto; }

@media (max-width: 767px) {
  .gp-modern-page h1 { line-height: 1.08; }
  .gp-about-page > section:first-of-type { padding-top: 6.5rem !important; }
  .gp-about-page > section:first-of-type h1 { font-size: 2.35rem; }
  .gp-contact-page > section:first-of-type img { min-height: 230px; }
  .gp-auth-stage { padding-inline: 14px; }
  .gp-auth-form { padding: 2rem 1.25rem !important; }
  .sl-page { padding-top: 90px !important; padding-bottom: 36px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
