/* PAGE HEADER */
.page-hdr {
  padding-top: 84px;
  background: var(--bg);
  border-bottom: 1px solid var(--rule);
  position: relative;
  overflow: hidden;
  min-height: 40vh;
  display: flex;
  align-items: flex-end;
}
.page-hdr-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  display: block;
}
.page-hdr-gradient {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 0% 60%, rgba(37,99,235,0.07) 0%, transparent 65%),
    linear-gradient(180deg, transparent 40%, var(--bg) 100%);
  pointer-events: none;
}
.page-hdr-inner {
  max-width:var(--wrap); margin:0 auto;
  padding:clamp(48px,7vw,88px) var(--pad);
  position:relative;
  z-index: 2;
  width: 100%;
}
.page-hdr h1 { font-size:clamp(42px,6vw,88px); margin-top:12px; max-width:16ch; line-height:1.05; }
.page-hdr-sub { font-size:clamp(15px,1.5vw,18px); color:var(--t2); max-width:520px; margin-top:18px; font-weight:400; line-height:1.75; }

/* TWO COL */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,96px); align-items:start; }
.two-col-n { display:grid; grid-template-columns:5fr 7fr; gap:clamp(40px,6vw,96px); align-items:start; }
@media(max-width:760px){ .two-col,.two-col-n { grid-template-columns:1fr; gap:32px; } }

/* BODY TEXT */
.body-stack { display:flex; flex-direction:column; gap:16px; }
.body-stack p { font-size:16px; }

/* FEATURE LIST */
.feat-list { display:flex; flex-direction:column; }
.feat { display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--rule); align-items:flex-start; }
.feat:last-child { border-bottom:none; }
.feat-ico { width:28px; height:28px; color:var(--blue-hi); flex-shrink:0; margin-top:3px; }
.feat-ico svg { width:100%; height:100%; }
.feat h4 { font-size:15px; margin-bottom:4px; }
.feat p { font-size:14px; }

/* CONTENT BG BANDS */
.band { border-top:1px solid var(--rule); }
.band-dark { background:var(--bg-2); }
.band-3 { background:var(--bg-3); }
.band-default { background:var(--bg); }

/* INLINE CTA */
.icta {
  background:var(--bg-3);
  border:1px solid var(--rule);
  border-radius:var(--r);
  padding:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap;
  margin-top: 56px;
}
.icta h3 { font-size:clamp(18px,2vw,24px); }
.icta p  { font-size:14px; color:var(--t2); margin-top:4px; }
.icta-r  { display:flex; gap:12px; flex-shrink:0; flex-wrap:wrap; }

@media(max-width:600px){
  .icta { flex-direction:column; align-items:stretch; padding:28px 24px; }
  .icta-r { flex-direction:column; }
  .icta-r .btn { width:100%; justify-content:center; }
}

/* ABOUT PAGE - partner logo grid */
.partner-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--rule);
  margin-top: 48px;
}
.partner-slot {
  padding: 36px 28px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  transition: background 0.2s;
}
.partner-slot:hover { background: var(--surface); }
.partner-slot:nth-child(5n) { border-right: none; }
.partner-slot:nth-last-child(-n+5) { border-bottom: none; }
.partner-name-big {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.04em;
}
.partner-cat {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t3);
}
.partner-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--blue);
  flex-shrink: 0;
  margin-top: 4px;
}

@media(max-width:900px){
  .partner-grid { grid-template-columns: repeat(3,1fr); }
  .partner-slot:nth-child(5n) { border-right:1px solid var(--rule); }
  .partner-slot:nth-child(3n) { border-right:none; }
  .partner-slot:nth-last-child(-n+5) { border-bottom:1px solid var(--rule); }
  .partner-slot:nth-last-child(-n+3) { border-bottom:none; }
}
@media(max-width:580px){
  .partner-grid { grid-template-columns: repeat(2,1fr); }
  .partner-slot:nth-child(3n) { border-right:1px solid var(--rule); }
  .partner-slot:nth-child(2n) { border-right:none; }
  .partner-slot:nth-last-child(-n+3) { border-bottom:1px solid var(--rule); }
  .partner-slot:nth-last-child(-n+2) { border-bottom:none; }
}

/* ABOUT - coverage blocks */
.coverage-blocks {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 24px;
}
.cov-block {
  padding: 20px 24px;
  background: var(--surface);
  border-left: 2px solid transparent;
  transition: border-color 0.2s, background 0.2s;
}
.cov-block:hover { background: var(--surface-2); border-left-color: var(--blue); }
.cov-block-name { font-family:var(--sans); font-size:16px; font-weight:700; color:var(--white); }
.cov-block-sub  { font-size:12px; color:var(--t3); margin-top:3px; }

/* LINES WE DON'T CROSS */
.no-list { display:flex; flex-direction:column; }
.no-item {
  display:flex; gap:16px; align-items:flex-start;
  padding:18px 0; border-bottom:1px solid var(--rule);
}
.no-item:last-child { border-bottom:none; }
.no-icon { width:16px; height:16px; flex-shrink:0; margin-top:3px; color:var(--t3); }
.no-icon svg { width:100%; height:100%; }
.no-item p { font-size:16px; color:var(--t1); }

/* VALUES */
.val-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--rule);
  margin-top: 56px;
}
.val-card {
  padding: 48px 44px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  transition: background 0.2s;
}
.val-card:hover { background: var(--surface); }
.val-card:nth-child(2n) { border-right: none; }
/* Remove bottom border only from cards in the last visible row before full-width */
.val-card:nth-child(3) { border-bottom: none; }
.val-card:nth-child(4) { border-bottom: none; }
.val-card-full {
  grid-column: 1 / -1;
  border-right: none;
  border-bottom: none;
  border-top: 1px solid var(--rule);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 64px;
  align-items: center;
}
.val-num { font-size:11px; font-weight:600; letter-spacing:.16em; color:var(--t3); margin-bottom:20px; font-family:var(--sans); text-transform:uppercase; }
.val-title { font-family:var(--serif); font-size:clamp(26px,3vw,40px); color:var(--white); margin-bottom:14px; }
.val-title em { font-style:italic; color:var(--white); }
.val-body { font-size:15px; color:var(--t2); line-height:1.8; }
@media(max-width:700px){
  .val-grid { grid-template-columns:1fr; }
  .val-card:nth-child(2n) { border-right:none; }
  .val-card:nth-child(3) { border-bottom: 1px solid var(--rule); }
  .val-card:nth-child(4) { border-bottom: 1px solid var(--rule); }
  .val-card:last-child { border-bottom:none; }
  .val-card-full { grid-template-columns:1fr; gap:16px; border-right:none; }
}

/* CONTACT */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: clamp(48px, 6vw, 96px);
  align-items: start;
}
@media(max-width:820px){ .contact-layout { grid-template-columns:1fr; } }

.contact-info-cards { display:flex; flex-direction:column; }
.cinfo {
  display:flex; gap:16px; align-items:flex-start;
  padding:20px 0; border-bottom:1px solid var(--rule);
}
.cinfo:last-child { border-bottom:none; }
.cinfo-ico {
  width:20px; height:20px; flex-shrink:0; color:var(--blue-hi); margin-top:2px;
}
.cinfo-ico svg { width:100%; height:100%; }
.cinfo-lbl { font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--t3); margin-bottom:4px; }
.cinfo-val { font-size:16px; font-weight:600; color:var(--white); transition:color .2s; line-height:1.3; }
a.cinfo-val:hover { color:var(--blue-hi); }
.cinfo-sub { font-size:12px; color:var(--t3); margin-top:3px; }

/* CONTACT FORM */
.cform { display:flex; flex-direction:column; gap:18px; }
.cf-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:560px){ .cf-row { grid-template-columns:1fr; } }
.cf-field { display:flex; flex-direction:column; gap:7px; }
.cf-field label { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--t3); }
.cf-field input, .cf-field select, .cf-field textarea {
  background: var(--bg-2);
  border: 1px solid var(--rule);
  border-radius: var(--r);
  color: var(--t1);
  font-family: var(--sans);
  font-size: 15px;
  padding: 12px 14px;
  outline: none;
  transition: border-color 0.2s;
  -webkit-appearance: none;
}
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus { border-color: var(--blue-hi); }
.cf-field input::placeholder, .cf-field textarea::placeholder { color:var(--t3); }
.cf-field textarea { resize:vertical; min-height:130px; }
.cf-field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233a4562' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 13px center;
  padding-right: 36px;
  cursor: pointer;
}
.cf-field select option { background:var(--surface); color:var(--t1); }
.cf-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.cf-note { font-size:12px; color:var(--t3); }
.form-success { display:none; text-align:center; padding:48px 0; }
.form-success-ico { width:52px; height:52px; border-radius:50%; background:rgba(37,99,235,.1); border:1px solid rgba(37,99,235,.2); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; color:var(--blue-hi); }
.form-success-ico svg { width:22px; height:22px; }
.form-success h3 { font-size:22px; margin-bottom:6px; }
.form-success p { font-size:14px; color:var(--t2); }
