/* Global Partners page. Scoped under .gp-page so it does not restyle the shared header/footer. */
.gp-page{
  --brand:#0B5CD5;
  --brand-2:#2E8BFF;
  --brand-deep:#083E92;
  --brand-soft:#EAF2FF;
  --ink:#0B1B33;
  --ink-2:#1B3A6B;
  --text:#3F4E66;
  --muted:#7C8CA5;
  --line:#E4EAF3;
  --bg-soft:#F6F9FE;
  --radius:14px;
  --shadow-sm:0 1px 2px rgba(11,27,51,.05);
  --shadow-md:0 10px 30px -12px rgba(11,60,140,.18);
  --shadow-lg:0 22px 48px -20px rgba(11,60,140,.28);
  color:var(--text);
  background:#fff;
  line-height:1.6;
  text-rendering:optimizeLegibility;
}
.gp-page *,
.gp-page *::before,
.gp-page *::after{box-sizing:border-box}
.gp-page h1,
.gp-page h2,
.gp-page h3,
.gp-page h4,
.gp-page p,
.gp-page ul,
.gp-page ol,
.gp-page li,
.gp-page figure{margin:0;padding:0}
.gp-page ul{list-style:none}
.gp-page a{color:inherit}
.gp-page img,
.gp-page svg{max-width:100%}
.gp-page button,
.gp-page input,
.gp-page select,
.gp-page textarea{font-family:inherit}

.gp-page .container{
  width:min(1200px,92%);
  max-width:none;
  margin:0 auto;
  padding:0;
  float:none;
}
.gp-page .container::before,
.gp-page .container::after{display:none;content:none}

/* hero */
.gp-page .hero{
  padding:66px 0 58px;
  background:
    radial-gradient(820px 400px at 80% 14%,#E9F2FF 0%,rgba(233,242,255,0) 64%),
    linear-gradient(180deg,#FBFDFF 0%,#FFFFFF 100%);
  overflow:hidden;
}
.gp-page .hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:34px;
  align-items:center;
}
.gp-page .hero-title{
  font-size:clamp(34px,4.4vw,52px);
  line-height:1.08;
  font-weight:800;
  color:var(--ink);
  letter-spacing:-.6px;
  position:relative;
  padding-left:20px;
  margin:0;
}
.gp-page .hero-title::before{
  content:"";
  position:absolute;
  left:0;top:9px;bottom:9px;
  width:5px;
  border-radius:3px;
  background:linear-gradient(180deg,var(--brand-2),var(--brand-deep));
}
.gp-page .hero-lead{
  margin-top:20px;
  font-size:19px;
  line-height:1.5;
  font-weight:600;
  color:var(--ink-2);
  max-width:30em;
}
.gp-page .hero-desc{
  margin-top:14px;
  font-size:15.5px;
  line-height:1.78;
  color:var(--text);
  max-width:33em;
}
.gp-page .hero-points{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px}
.gp-page .hero-points span{
  font-size:12.5px;
  font-weight:600;
  color:var(--brand-deep);
  background:var(--brand-soft);
  border:1px solid #D5E5FF;
  padding:5px 11px;
  border-radius:999px;
}
.gp-page .hero-map{position:relative}
.gp-page .worldmap{width:100%;height:auto;display:block;overflow:visible}
.gp-page .map-label{font-size:9.6px;font-weight:600;fill:#1B3A6B;letter-spacing:.2px}

/* sections */
.gp-page .sec{padding:70px 0}
.gp-page .sec-soft{
  background:var(--bg-soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.gp-page .sec-head{text-align:center;max-width:760px;margin:0 auto 42px}
.gp-page .sec-head h2{
  font-size:clamp(23px,2.7vw,31px);
  color:var(--ink);
  font-weight:800;
  letter-spacing:-.3px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0;
  line-height:1.3;
}
.gp-page .sec-head h2::before,
.gp-page .sec-head h2::after{
  content:"";
  height:1px;
  width:52px;
  background:linear-gradient(90deg,transparent,#B9CBE6);
  flex:none;
}
.gp-page .sec-head h2::after{background:linear-gradient(270deg,transparent,#B9CBE6)}
.gp-page .sec-head p{margin-top:13px;font-size:15px;color:var(--muted);line-height:1.7}
.gp-page .sec-head h2.plain{display:block}
.gp-page .sec-head h2.plain::before,
.gp-page .sec-head h2.plain::after{display:none}

/* why */
.gp-page .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.gp-page .why-item{text-align:center;padding:4px 6px}
.gp-page .why-icon{
  width:56px;height:56px;border-radius:50%;margin:0 auto 16px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,#EAF2FF,#D8E7FF);
  border:1px solid #D5E5FF;
}
.gp-page .why-icon svg{
  width:26px;height:26px;stroke:var(--brand);fill:none;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.gp-page .why-item h3{font-size:16px;color:var(--ink);font-weight:700;margin:0 0 8px}
.gp-page .why-item p{font-size:13.8px;line-height:1.7;color:var(--muted)}

/* partner cards */
.gp-page .partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gp-page .p-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px 22px 20px;
  display:flex;
  flex-direction:column;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.gp-page .p-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#CFE0F8}
.gp-page .p-head{display:flex;align-items:center;gap:13px}
.gp-page .p-logo{
  width:52px;height:52px;border-radius:12px;flex:none;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:800;letter-spacing:.4px;color:var(--brand-deep);
  background:linear-gradient(145deg,#EAF2FF,#D6E6FF);
  border:1px solid #D5E5FF;
  text-transform:uppercase;
}
.gp-page .p-name{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.35;margin:0}
.gp-page .p-loc{margin-top:3px;font-size:12.8px;color:var(--muted);display:flex;align-items:center;gap:4px}
.gp-page .p-loc svg{width:12px;height:12px;stroke:var(--muted);fill:none;stroke-width:1.8;flex:none}
.gp-page .p-badge{
  display:inline-flex;align-items:center;gap:5px;align-self:flex-start;
  margin-top:15px;font-size:11.5px;font-weight:700;color:var(--brand);
  background:var(--brand-soft);border:1px solid #D5E5FF;
  padding:4px 10px;border-radius:999px;letter-spacing:.1px;
}
.gp-page .p-badge svg{width:12px;height:12px;stroke:var(--brand);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.gp-page .p-desc{margin-top:13px;font-size:13.7px;line-height:1.72;color:var(--text);flex:1 1 auto}
.gp-page .p-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.gp-page .p-tags span{
  font-size:12px;font-weight:500;color:#4A5A73;
  background:#F4F7FC;border:1px solid var(--line);
  padding:4px 9px;border-radius:7px;
}
.gp-page .p-link{
  margin-top:17px;padding-top:15px;border-top:1px solid var(--line);
  font-size:13.5px;font-weight:600;color:var(--brand);text-decoration:none;
  display:inline-flex;align-items:center;gap:6px;transition:gap .18s,color .18s;
}
.gp-page .p-link:hover{gap:10px;color:var(--brand-deep);text-decoration:none}
.gp-page .grid-note{margin-top:26px;text-align:center;font-size:12.8px;color:var(--muted);line-height:1.7}

/* cta */
.gp-page .cta{padding:0 0 76px}
.gp-page .cta-box{
  border-radius:20px;
  padding:38px 40px;
  background:linear-gradient(120deg,#F2F7FF 0%,#E8F1FF 52%,#E3EEFF 100%);
  border:1px solid #D8E7FF;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:34px;
  align-items:center;
  box-shadow:var(--shadow-md);
}
.gp-page .cta-visual{flex:none}
.gp-page .cta-visual svg{width:280px;height:auto;display:block}
.gp-page .cta-copy h2{
  font-size:clamp(21px,2.4vw,27px);
  font-weight:800;
  color:var(--ink);
  letter-spacing:-.2px;
  margin:0;
  line-height:1.3;
}
.gp-page .cta-copy p{margin-top:11px;font-size:14.6px;line-height:1.75;color:var(--text);max-width:44em}
.gp-page .cta-list{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 20px;
  max-width:640px;
  padding:0;
}
.gp-page .cta-list li{
  list-style:none;
  font-size:13.4px;
  color:#3A4B66;
  display:flex;
  align-items:flex-start;
  gap:8px;
  line-height:1.6;
}
.gp-page .cta-list li::before{
  content:"";
  flex:none;
  width:15px;height:15px;margin-top:3px;border-radius:50%;
  background:var(--brand) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/10px no-repeat;
}
.gp-page .cta-action{flex:none;display:flex;flex-direction:column;align-items:stretch;gap:11px;min-width:250px}
.gp-page .btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--brand);color:#fff;border:none;cursor:pointer;
  padding:14px 26px;border-radius:10px;font-size:15px;font-weight:700;
  line-height:1.2;
  box-shadow:0 10px 24px -10px rgba(11,92,213,.75);
  transition:background .2s,transform .2s,box-shadow .2s;
  text-shadow:none;
}
.gp-page .btn-primary:hover,
.gp-page .btn-primary:focus{
  background:var(--brand-deep);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 14px 28px -10px rgba(11,92,213,.8);
}
.gp-page .btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  background:#fff;color:var(--brand);border:1px solid #C6DBFA;
  padding:11px 20px;border-radius:10px;font-size:13.8px;font-weight:600;
  line-height:1.2;
  text-decoration:none;cursor:pointer;
  transition:border-color .2s,background .2s;
}
.gp-page .btn-ghost:hover,
.gp-page .btn-ghost:focus{border-color:var(--brand);background:#F7FAFF;color:var(--brand);text-decoration:none}

/* modal */
.gp-page .modal{
  position:fixed;inset:0;z-index:1000;display:none;
  align-items:flex-start;justify-content:center;padding:40px 18px;
  background:rgba(8,22,42,.55);
  overflow-y:auto;overflow-x:hidden;
  margin:0;border:0;border-radius:0;
  outline:none;
}
.gp-page .modal.open{display:flex}
.gp-page .modal-card{
  background:#fff;border-radius:18px;width:min(760px,100%);
  box-shadow:0 40px 80px -30px rgba(6,30,70,.5);
  animation:gpModalIn .26s cubic-bezier(.16,.84,.44,1);
  overflow:hidden;
  margin:0 auto;
}
@keyframes gpModalIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.gp-page .modal-head{
  padding:26px 30px 20px;border-bottom:1px solid var(--line);
  display:flex;align-items:flex-start;gap:16px;
  background:linear-gradient(120deg,#F5F9FF,#EDF4FF);
}
.gp-page .modal-head h2{font-size:21px;font-weight:800;color:var(--ink);letter-spacing:-.2px;margin:0;line-height:1.3}
.gp-page .modal-head p{margin-top:6px;font-size:13.6px;color:var(--muted);line-height:1.65}
.gp-page .modal-close{
  margin-left:auto;flex:none;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);
  background:#fff;cursor:pointer;color:#5B6B85;font-size:19px;line-height:1;
  display:flex;align-items:center;justify-content:center;padding:0;
}
.gp-page .modal-close:hover{background:#F1F5FB;color:var(--ink)}
.gp-page .modal-body{padding:26px 30px 30px}
.gp-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.gp-page .field{display:flex;flex-direction:column;gap:6px}
.gp-page .field.full{grid-column:1 / -1}
.gp-page .field label{font-size:13px;font-weight:600;color:#33415C;margin:0}
.gp-page .field label .req{color:#E03B3B;margin-left:2px}
.gp-page .field input,
.gp-page .field select,
.gp-page .field textarea{
  font-size:14px;color:var(--ink);
  border:1px solid #D9E2EE;border-radius:9px;padding:10px 12px;
  background:#FBFDFF;
  width:100%;height:auto;
  box-shadow:none;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.gp-page .field textarea{resize:vertical;min-height:96px;line-height:1.65}
.gp-page .field input:focus,
.gp-page .field select:focus,
.gp-page .field textarea:focus{
  outline:none;border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px rgba(11,92,213,.12);
}
.gp-page .field .msg{display:none;font-size:11.8px;color:#D23434}
.gp-page .field.err input,
.gp-page .field.err select,
.gp-page .field.err textarea{border-color:#E03B3B;background:#FFF9F9}
.gp-page .field.err .msg{display:block}
.gp-page .consent{grid-column:1 / -1;display:flex;align-items:flex-start;gap:9px;margin-top:2px}
.gp-page .consent input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--brand);flex:none}
.gp-page .consent label{font-size:12.8px;color:#4A5A73;font-weight:400;line-height:1.6;margin:0}
.gp-page .form-foot{grid-column:1 / -1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}
.gp-page .form-foot .btn-primary{padding:13px 30px}
.gp-page .form-foot .btn-ghost{padding:12px 20px}
.gp-page .form-foot .note{font-size:12.2px;color:var(--muted);margin-left:auto}
.gp-page .success{display:none;text-align:center;padding:18px 6px 6px}
.gp-page .success.show{display:block}
.gp-page .success-icon{
  width:62px;height:62px;border-radius:50%;margin:0 auto 18px;
  background:linear-gradient(150deg,#E8F7EE,#D3F0DF);border:1px solid #B9E4CB;
  display:flex;align-items:center;justify-content:center;
}
.gp-page .success-icon svg{width:30px;height:30px;stroke:#1E9A56;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.gp-page .success h3{font-size:19px;font-weight:800;color:var(--ink);margin:0}
.gp-page .success p{margin-top:10px;font-size:14px;color:var(--text);line-height:1.75;max-width:38em;margin-left:auto;margin-right:auto}
.gp-page .success .mailbox{
  margin-top:14px;display:inline-flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:600;color:var(--brand-deep);
  background:var(--brand-soft);border:1px solid #D5E5FF;border-radius:9px;padding:8px 14px;
}
.gp-page .success .actions{margin-top:22px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.gp-page .fallback-copy{margin-top:20px;text-align:left;display:none}
.gp-page .fallback-copy.show{display:block}
.gp-page .fallback-copy textarea{
  width:100%;min-height:150px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;line-height:1.6;color:#33415C;border:1px solid var(--line);
  border-radius:10px;padding:12px;background:#FBFDFF;resize:vertical;
}

.gp-page .toast{
  position:fixed;left:50%;bottom:36px;transform:translate(-50%,14px);
  background:#0B1B33;color:#fff;font-size:13.4px;font-weight:500;
  padding:11px 20px;border-radius:10px;box-shadow:0 14px 30px -12px rgba(0,0,0,.5);
  opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;z-index:1200;
}
.gp-page .toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-width:1080px){
  .gp-page .hero-grid{grid-template-columns:1fr;gap:26px}
  .gp-page .hero-lead,
  .gp-page .hero-desc{max-width:none}
  .gp-page .hero-map{order:2}
  .gp-page .why-grid{grid-template-columns:repeat(2,1fr);gap:26px 22px}
  .gp-page .partner-grid{grid-template-columns:repeat(2,1fr)}
  .gp-page .cta-box{grid-template-columns:1fr;gap:26px;padding:32px 28px}
  .gp-page .cta-visual svg{width:190px;margin:0 auto}
  .gp-page .cta-action{min-width:0}
}
@media (max-width:680px){
  .gp-page .map-label{font-size:13px}
  .gp-page .hero{padding:44px 0 40px}
  .gp-page .sec{padding:52px 0}
  .gp-page .sec-head h2::before,
  .gp-page .sec-head h2::after{display:none}
  .gp-page .why-grid{grid-template-columns:1fr}
  .gp-page .partner-grid{grid-template-columns:1fr}
  .gp-page .form-grid{grid-template-columns:1fr}
  .gp-page .modal{padding:16px 12px 30px}
  .gp-page .modal-head,
  .gp-page .modal-body{padding-left:20px;padding-right:20px}
  .gp-page .cta-list{grid-template-columns:1fr}
  .gp-page .form-foot .note{margin-left:0}
}
