.kp-wrap{
  max-width:1240px;
  margin:0 auto;
  padding:20px 0 32px;
  color:#172338;
}

.kp-hero,
.kp-card,
.kp-section-card,
.kp-panel{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.64);
  border-radius:28px;
  background:linear-gradient(145deg, rgba(255,253,248,.92), rgba(243,248,255,.84));
  box-shadow:0 26px 60px rgba(15,23,42,.08);
}

.kp-hero::before,
.kp-card::before,
.kp-section-card::before,
.kp-panel::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.52);
  pointer-events:none;
}

.kp-hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
  padding:28px;
  background:
    radial-gradient(circle at top left, rgba(219,124,38,.14), transparent 30%),
    radial-gradient(circle at bottom right, rgba(20,91,154,.16), transparent 34%),
    linear-gradient(145deg, rgba(255,252,246,.94), rgba(238,245,255,.88));
}

.kp-eyebrow,
.kp-card__label,
.kp-panel__kicker{
  display:inline-flex;
  align-items:center;
  padding:8px 13px;
  border-radius:999px;
  background:rgba(216,235,255,.88);
  border:1px solid rgba(20,91,154,.12);
  color:#145b9a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.kp-hero h1,
.kp-card h2,
.kp-section-card h2,
.kp-panel h2{
  margin:0;
  font-family:var(--shell-font-display,"Iowan Old Style","Palatino Linotype",Georgia,serif);
  letter-spacing:-.02em;
}

.kp-hero h1{
  margin-top:14px;
  font-size:clamp(34px, 4.8vw, 60px);
  line-height:.98;
  max-width:12ch;
}

.kp-hero p,
.kp-card p,
.kp-section-card p,
.kp-panel p,
.kp-list{
  color:#566274;
  line-height:1.7;
}

.kp-hero__copy > p{
  margin:12px 0 0;
  max-width:68ch;
  font-size:17px;
}

.kp-meta{
  margin:14px 0 0;
  font-size:13px;
  font-weight:700;
  color:#145b9a;
}

.kp-badges,
.kp-crumbs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.kp-badges{
  list-style:none;
  padding:0;
  margin:18px 0 0;
}

.kp-badges li{
  padding:9px 13px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(23,35,56,.12);
  font-size:13px;
  font-weight:700;
}

.kp-hero__aside{
  display:grid;
  gap:14px;
  align-content:start;
}

.kp-crumbs a,
.kp-crumbs span{
  font-size:13px;
  text-decoration:none;
  color:#5d6980;
}

.kp-callout{
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(23,35,56,.1);
}

.kp-callout strong{
  display:block;
  margin-bottom:10px;
}

.kp-callout ul{
  margin:0;
  padding-left:18px;
  color:#566274;
}

.kp-card-grid,
.kp-sections,
.kp-lower-grid{
  display:grid;
  gap:16px;
  margin-top:18px;
}

.kp-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.kp-sections{grid-template-columns:repeat(2,minmax(0,1fr))}
.kp-lower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.kp-card,
.kp-section-card,
.kp-panel{
  padding:20px;
}

.kp-card h2,
.kp-section-card h2,
.kp-panel h2{
  margin-top:12px;
  font-size:clamp(24px, 2.6vw, 34px);
}

.kp-inline-link,
.kp-related-links a{
  color:#145b9a;
  text-decoration:none;
  font-weight:800;
}

.kp-inline-link{display:inline-flex;margin-top:8px}

.kp-list{
  margin:12px 0 0;
  padding-left:20px;
}

.kp-list li{margin-bottom:8px}

.kp-faq{
  display:grid;
  gap:10px;
  margin-top:12px;
}

.kp-faq details{
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(23,35,56,.1);
  background:rgba(255,255,255,.72);
}

.kp-faq summary{
  cursor:pointer;
  font-weight:800;
}

.kp-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.kp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 16px;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none;
  font-weight:800;
}

.kp-btn--wa{
  background:linear-gradient(135deg, #25b45e, #147c43);
  color:#fff;
}

.kp-btn--soft{
  background:rgba(255,255,255,.82);
  border-color:rgba(23,35,56,.12);
  color:#172338;
}

.kp-related-links{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.kp-related-links a{
  display:grid;
  gap:4px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(23,35,56,.1);
  background:rgba(255,255,255,.76);
}

.kp-related-links span{
  font-weight:400;
  color:#566274;
}

@media (max-width:980px){
  .kp-hero,
  .kp-card-grid,
  .kp-sections,
  .kp-lower-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:720px){
  .kp-wrap{padding-top:12px}
  .kp-hero,
  .kp-card,
  .kp-section-card,
  .kp-panel{
    border-radius:24px;
    padding:18px;
  }
}
