.guide-hub-page {
  --guide-dark: #07131b;
  --guide-blue: #195774;
  --guide-line: rgba(15, 35, 47, 0.11);
}

.guide-hub-hero {
  position: relative;
  padding: clamp(72px, 9vw, 128px) 0 clamp(62px, 8vw, 104px);
  overflow: hidden;
}

.guide-hub-hero::after {
  content: "";
  position: absolute;
  width: 720px;
  height: 720px;
  right: -260px;
  top: -320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(25, 87, 116, .12), transparent 68%);
  pointer-events: none;
}

.guide-hub-hero-inner {
  position: relative;
  z-index: 1;
}

.guide-hub-hero h1 {
  max-width: 980px;
  margin: 0 0 24px;
  font-size: clamp(3.2rem, 6.4vw, 6rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-align: left;
}

.guide-hub-hero p:not(.section-kicker) {
  max-width: 820px;
  margin: 0;
  color: #53616a;
  font-size: clamp(1.08rem, 1.5vw, 1.28rem);
  line-height: 1.7;
}

.guide-area-nav {
  max-width: 920px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}

.guide-area-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid rgba(15, 35, 47, 0.12);
  border-radius: 999px;
  color: #12384d;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 28px rgba(8, 24, 34, 0.045);
  font-size: 0.86rem;
  font-weight: 850;
}

.guide-area-nav a:hover {
  border-color: rgba(25, 87, 116, 0.26);
  background: #fff;
  transform: translateY(-1px);
}

.guide-hub-section {
  padding: clamp(68px, 8vw, 108px) 0;
  border-top: 1px solid var(--guide-line);
}

.guide-hub-section:nth-of-type(even) {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.64), rgba(247, 248, 248, 0.86));
}

.guide-hub-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 44px;
  align-items: end;
  margin-bottom: 34px;
}

.guide-hub-heading h2,
.guide-project-shell h2 {
  margin: 0;
  text-align: left;
}

.guide-hub-heading h2 {
  max-width: 820px;
  font-size: clamp(2.35rem, 4.2vw, 4.65rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.guide-hub-heading p:not(.section-kicker) {
  margin: 0;
  color: #637079;
  line-height: 1.7;
}

.guide-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.guide-card {
  min-height: 250px;
  height: 100%;
  padding: clamp(24px, 3.4vw, 34px);
  border: 1px solid var(--guide-line);
  border-radius: 22px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 14px 42px rgba(8, 24, 34, .045);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.guide-card h3,
.guide-card p {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}

.guide-card:hover {
  transform: translateY(-3px);
  border-color: rgba(25, 87, 116, .26);
  box-shadow: 0 18px 46px rgba(8, 24, 34, .08);
}

.guide-card span {
  display: block;
  margin-bottom: 20px;
  color: var(--guide-blue);
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.guide-card h3 {
  margin: 0 0 12px;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}

.guide-card p {
  margin: 0 0 24px;
  color: #5e6b73;
  line-height: 1.65;
}

.guide-card strong {
  color: var(--guide-blue);
  font-size: .9rem;
}

.guide-project-section {
  padding: 0 0 clamp(76px, 9vw, 120px);
}

.guide-project-shell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: clamp(34px, 5vw, 58px);
  border-radius: 26px;
  color: #fff;
  background: radial-gradient(circle at 85% 0%, rgba(78, 145, 177, .2), transparent 32%), linear-gradient(145deg, #0c202c, #07131b);
}

.guide-project-shell .section-kicker { color: #8cb3c7; }
.guide-project-shell h2 { max-width: 800px; color: #fff; font-size: clamp(2rem, 4vw, 3.6rem); }
.guide-project-shell p:not(.section-kicker) { max-width: 760px; margin: 18px 0 0; color: rgba(255,255,255,.7); line-height: 1.7; }
.guide-project-shell .button { flex: 0 0 auto; }

@media (max-width: 900px) {
  .guide-hub-heading { grid-template-columns: 1fr; gap: 18px; }
  .guide-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide-project-shell { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
  .guide-hub-hero { padding-top: 54px; }
  .guide-hub-hero h1 { font-size: clamp(2.8rem, 13vw, 4.3rem); }
  .guide-area-nav { align-items: stretch; flex-direction: column; }
  .guide-area-nav a { justify-content: center; }
  .guide-card-grid { grid-template-columns: 1fr; }
  .guide-card { min-height: 0; }
}

/* --- NulOne refinement: cleaner guide hub layout --- */
.guide-hub-heading {
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 26px;
}

.guide-hub-heading p:not(.section-kicker) {
  display: none;
}

.guide-hub-heading h2 {
  max-width: 980px;
  font-size: clamp(2.2rem, 4.8vw, 3.95rem);
  line-height: 1.03;
}

.guide-card-grid {
  align-items: stretch;
}

.guide-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 22px;
  border-radius: 20px;
}

.guide-card span {
  margin-bottom: 14px;
}

.guide-card h3 {
  font-size: clamp(1.28rem, 2vw, 1.62rem);
  margin: 0 0 10px;
}

.guide-card p {
  margin: 0 0 18px;
  font-size: .98rem;
  line-height: 1.6;
}

.guide-card strong {
  margin-top: auto;
}

/* Keep the hub consistently two-up with equal card sizes. */
@media (min-width: 621px) {
  .guide-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 1fr !important;
    align-items: stretch !important;
  }

  .guide-card-grid > .guide-card {
    grid-column: auto !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 220px !important;
  }

  .guide-card-grid > .guide-card:last-child:nth-child(odd) {
    grid-column: auto !important;
    justify-self: stretch !important;
    width: 100% !important;
  }
}

@media (max-width: 620px) {
  .guide-hub-heading h2 {
    max-width: 100%;
    font-size: clamp(1.85rem, 8.6vw, 2.6rem);
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .guide-card {
    padding: 20px;
  }
}
