/* Partner program, franchise and CMS additions. */
.section--soft {
  background: rgba(223, 231, 217, .46);
  border-block: 1px solid var(--line);
}

.partnership-hero {
  overflow: hidden;
  padding-top: clamp(88px, 10vw, 150px);
  background:
    radial-gradient(circle at 86% 14%, rgba(216, 121, 66, .16), transparent 28%),
    radial-gradient(circle at 8% 88%, rgba(158, 175, 147, .28), transparent 32%);
}
.partnership-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  gap: clamp(48px, 8vw, 120px);
  align-items: start;
}
.partnership-hero h1 { max-width: 11ch; font-size: clamp(3.4rem, 7vw, 7.2rem); }
.partnership-hero .lead { max-width: 760px; }
.partnership-summary {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--line);
  box-shadow: var(--shadow-md);
}
.partnership-summary > div {
  display: grid;
  gap: 8px;
  padding: 26px 28px;
  background: rgba(251, 247, 240, .96);
}
.partnership-summary strong { color: var(--green-deep); font: 500 clamp(1.5rem, 2vw, 2.3rem)/1 var(--display); }
.partnership-summary span { color: var(--muted); font: 500 .83rem/1.45 var(--ui); }

.partnership-steps,
.franchise-formats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 48px;
}
.partnership-steps article,
.franchise-formats article {
  min-width: 0;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, .58);
  box-shadow: var(--shadow-sm);
}
.partnership-steps article > span,
.franchise-formats article > span {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 28px;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--green);
  font: 700 .76rem/1 var(--ui);
}
.partnership-steps h3,
.franchise-formats h3 { font-size: clamp(1.55rem, 2vw, 2.1rem); }
.partnership-steps p,
.franchise-formats p { color: var(--muted); }
.franchise-formats dl { display: grid; gap: 12px; margin: 28px 0 0; }
.franchise-formats dl > div { display: flex; justify-content: space-between; gap: 18px; padding-top: 12px; border-top: 1px solid var(--line); }
.franchise-formats dt { color: var(--muted); font: 500 .78rem/1.35 var(--ui); }
.franchise-formats dd { margin: 0; text-align: right; font: 700 .82rem/1.35 var(--ui); }
.partnership-note { max-width: 960px; margin: 34px auto 0; color: var(--muted); text-align: center; font: 500 .82rem/1.6 var(--ui); }

.partnership-rules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(48px, 8vw, 120px);
}
.partnership-rules h2 { font-size: clamp(2.5rem, 4vw, 4.5rem); }
.partnership-rules ul { display: grid; gap: 14px; padding: 0; list-style: none; }
.partnership-rules li { position: relative; padding-left: 28px; }
.partnership-rules li::before { content: ""; position: absolute; top: .68em; left: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--orange); }

.partnership-apply {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: clamp(40px, 8vw, 110px);
  align-items: start;
}
.partnership-apply > .button { justify-self: start; }
.partnership-form { display: grid; gap: 20px; }
.partnership-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.partnership-form label { display: grid; gap: 8px; color: var(--green-deep); font: 700 .8rem/1.4 var(--ui); }
.partnership-form input,
.partnership-form select,
.partnership-form textarea,
.partner-link-box input {
  width: 100%;
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: rgba(255, 255, 255, .76);
  font: 500 .95rem/1.45 var(--ui);
}
.partnership-form textarea { resize: vertical; }
.partnership-check { grid-template-columns: auto 1fr !important; align-items: center; }
.partnership-check input { width: 20px; min-height: 20px; }
.form-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

.button--secondary {
  color: var(--green-deep);
  background: transparent;
  border: 1px solid var(--line);
}
.partner-link-box { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: end; margin-top: 26px; }
.partner-link-box label { display: grid; gap: 8px; font: 700 .78rem/1.4 var(--ui); }
.account-notice { margin-top: 22px; padding: 15px 18px; border-left: 3px solid var(--orange); background: rgba(216, 121, 66, .08); }
.partner-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.account-status { display: inline-flex; padding: 8px 12px; border-radius: 999px; color: var(--green-deep); background: var(--sage-light); font: 700 .75rem/1 var(--ui); }
.account-table-wrap { overflow-x: auto; }
.account-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.account-table th,
.account-table td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; font: 500 .82rem/1.45 var(--ui); }
.account-table th { color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: .7rem; }

.cms-page__body { max-width: 900px; }
.cms-page__body h2,
.cms-page__body h3,
.content-detail__body h2,
.content-detail__body h3 { margin-top: 1.25em; }
.cms-page__body img,
.content-detail__body img { height: auto; margin: 28px auto; border-radius: var(--radius-sm); }
.cms-page__body table,
.content-detail__body table { width: 100%; border-collapse: collapse; overflow: hidden; border: 1px solid var(--line); }
.cms-page__body th,
.cms-page__body td,
.content-detail__body th,
.content-detail__body td { padding: 12px 14px; border: 1px solid var(--line); text-align: left; }
.cms-page__body a,
.content-detail__body a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1080px) {
  .partnership-steps,
  .franchise-formats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .partnership-hero__grid,
  .partnership-rules,
  .partnership-apply { grid-template-columns: 1fr; }
  .partnership-hero h1 { max-width: none; }
  .partnership-form__grid { grid-template-columns: 1fr; }
  .partner-link-box { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .partnership-steps,
  .franchise-formats,
  .partner-stats { grid-template-columns: 1fr; }
  .partnership-steps article,
  .franchise-formats article { padding: 24px; }
}
