.public-content-page{
  background:linear-gradient(180deg,#f7f9fd 0%,#eef4fb 100%);
  padding:clamp(2rem,4vw,4rem) 0 0;
}

.public-content-page,
.public-content-page *{
  box-sizing:border-box;
}

.public-content-page .public-section,
.public-content-page .public-hero,
.public-content-page .public-card-grid,
.public-content-page .public-detail-grid,
.public-content-page .public-split,
.public-content-page .public-link-panel,
.public-content-page .public-content-card,
.public-content-page .public-detail-card{
  content-visibility:visible!important;
  contain:none!important;
  overflow:visible;
}

.public-hero-panel,
.public-section{
  width:min(1180px,calc(100% - 32px));
  margin-inline:auto;
}

.public-hero-panel{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr);
  gap:clamp(1.25rem,3vw,2rem);
  align-items:stretch;
  padding:clamp(2rem,5vw,4.25rem);
  border:1px solid rgba(203,213,225,.92);
  border-radius:34px;
  background:
    radial-gradient(circle at 90% 0%,rgba(79,70,229,.12),transparent 32%),
    linear-gradient(135deg,#fff 0%,#f8fbff 100%);
  box-shadow:0 30px 70px rgba(15,23,42,.08);
}

.public-hero-copy h1{
  max-width:820px;
  margin:0;
  color:#0f172a;
  font-size:clamp(2.6rem,6vw,5rem);
  line-height:.98;
  letter-spacing:-.065em;
  text-wrap:balance;
}

.public-lead{
  max-width:760px;
  margin:1.15rem 0 0;
  color:#64748b;
  font-size:clamp(1.08rem,2vw,1.28rem);
  line-height:1.7;
  font-weight:720;
}

.public-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-top:1.65rem;
}

.public-hero-aside{
  display:grid;
  align-content:start;
  gap:.85rem;
  padding:1.4rem;
  border:1px solid rgba(226,232,240,.95);
  border-radius:26px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88);
}

.public-aside-kicker,
.public-card-badge{
  width:max-content;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:.35rem .75rem;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.public-hero-aside strong{
  display:block;
  color:#0f172a;
  font-size:1.2rem;
  line-height:1.25;
  letter-spacing:-.03em;
}

.public-hero-aside p{
  margin:0;
  color:#64748b;
  line-height:1.65;
  font-weight:700;
}

.public-mini-pills{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:.25rem;
}

.public-mini-pills span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:.35rem .75rem;
  border:1px solid #dbe3ef;
  border-radius:999px;
  background:#fff;
  color:#475569;
  font-weight:850;
  font-size:.9rem;
}

.public-section{
  padding:clamp(3rem,6vw,5rem) 0;
}

.public-section-soft{
  width:100%;
  max-width:none;
  margin-top:.5rem;
  padding:clamp(3rem,6vw,5rem) max(16px,calc((100vw - 1180px)/2));
  border-top:1px solid rgba(226,232,240,.82);
  border-bottom:1px solid rgba(226,232,240,.82);
  background:rgba(255,255,255,.58);
}

.public-section-head{
  max-width:860px;
  margin-bottom:clamp(1.5rem,3vw,2.25rem);
}

.public-section-head h2,
.public-split h2,
.public-detail-card h2{
  margin:0;
  color:#0f172a;
  letter-spacing:-.052em;
  line-height:1.03;
  text-wrap:balance;
}

.public-section-head h2,
.public-split h2{
  font-size:clamp(2rem,4vw,3.7rem);
}

.public-section-head p,
.public-split p{
  max-width:760px;
  margin:.85rem 0 0;
  color:#64748b;
  font-size:1.08rem;
  line-height:1.7;
  font-weight:720;
}

.public-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.1rem;
  align-items:stretch;
}

.public-content-card,
.public-detail-card{
  display:grid;
  align-content:start;
  gap:.95rem;
  min-height:100%;
  padding:1.55rem;
  border:1px solid rgba(203,213,225,.92);
  border-radius:26px;
  background:#fff;
  color:inherit;
  text-decoration:none;
  box-shadow:0 18px 45px rgba(15,23,42,.06);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}

.public-content-card:hover{
  transform:translateY(-2px);
  border-color:#c7d2fe;
  box-shadow:0 28px 60px rgba(79,70,229,.12);
}

.public-content-card h3,
.public-detail-card h2{
  margin:0;
  color:#0f172a;
  font-size:1.35rem;
  line-height:1.16;
  letter-spacing:-.04em;
}

.public-content-card p,
.public-detail-card p{
  margin:0;
  color:#64748b;
  line-height:1.65;
  font-weight:700;
}

.public-content-card b{
  margin-top:auto;
  color:#4338ca;
  font-weight:900;
}

.public-split{
  width:min(1180px,calc(100% - 32px));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.8fr);
  gap:2rem;
  align-items:start;
}

.public-link-panel{
  display:grid;
  gap:.85rem;
}

.public-link-panel a{
  display:grid;
  gap:.25rem;
  padding:1rem 1.1rem;
  border:1px solid #dbe3ef;
  border-radius:20px;
  background:#fff;
  color:inherit;
  text-decoration:none;
  box-shadow:0 14px 34px rgba(15,23,42,.045);
}

.public-link-panel strong{
  color:#0f172a;
  font-size:1rem;
}

.public-link-panel span{
  color:#64748b;
  font-weight:700;
  line-height:1.5;
}

.public-detail-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.1rem;
}

@media (max-width: 980px){
  .public-hero-panel,
  .public-split{
    grid-template-columns:1fr;
  }
  .public-card-grid,
  .public-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 640px){
  .public-content-page{
    padding-top:1rem;
  }
  .public-hero-panel,
  .public-section,
  .public-split{
    width:calc(100% - 20px);
  }
  .public-hero-panel{
    padding:1.35rem;
    border-radius:26px;
  }
  .public-card-grid,
  .public-detail-grid{
    grid-template-columns:1fr;
  }
  .public-section-soft{
    padding-inline:10px;
  }
}

/* Public fallback button polish: keep CTA links as real buttons even when landing.css is not loaded. */
.public-actions .home-btn,
.public-actions .public-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.78rem 1.15rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.public-actions .home-btn:hover,
.public-actions .home-btn:focus-visible,
.public-actions .public-btn:hover,
.public-actions .public-btn:focus-visible {
  transform: translateY(-1px);
  text-decoration: none;
}
.public-actions .home-btn-primary,
.public-actions .public-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, #4f46e5, #2563eb);
  box-shadow: 0 18px 40px rgba(79, 70, 229, .22);
}
.public-actions .home-btn-secondary,
.public-actions .public-btn-secondary {
  color: #0f172a;
  background: #fff;
  border-color: #dbe3ef;
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}
.public-actions .home-btn-secondary:hover,
.public-actions .home-btn-secondary:focus-visible,
.public-actions .public-btn-secondary:hover,
.public-actions .public-btn-secondary:focus-visible {
  border-color: #c7d2fe;
  box-shadow: 0 18px 44px rgba(79, 70, 229, .10);
}
@media (max-width: 640px) {
  .public-actions .home-btn,
  .public-actions .public-btn { width: 100%; }
}
