/* Offer extends the approved editorial palette and typography. */
.offer-section { padding-top: 0; }
.offer-card { display: grid; grid-template-columns: 1fr 1fr; background: var(--white); border: 1px solid var(--wine); }
.offer-main { padding: clamp(28px,4.1vw,60px); }
.offer-main h2 { margin-top: 24px; color: var(--wine); font-size: clamp(48px,5vw,74px); line-height: 1.04; letter-spacing: -.035em; }
.offer-main h2 span { display: block; }
.offer-professor { margin-top: 18px; color: var(--muted); font-size: 14px; }
.offer-product { margin-top: 22px; max-width: 300px; font-size: 17px; color: var(--muted); }
.offer-product strong { color: var(--wine); }
.offer-price { margin-top: 42px; font-family: var(--serif); font-size: clamp(58px,6vw,86px); line-height: 1; letter-spacing: -.035em; }
.offer-conditions { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px,4.1vw,60px); border-left: 1px solid var(--line); }
.offer-conditions h3 { font-family: var(--serif); font-size: 34px; line-height: 1.15; margin-bottom: 20px; }
.offer-conditions>p { font-size: 15px; color: var(--muted); }
.offer-conditions .offer-access { margin-top: 20px; }
.offer-register { margin-top: 30px; justify-content: space-between; min-height: 54px; }
.offer-conditions .offer-access-note { margin-top: 12px; font-size: 12px; }
.offer-return { align-self: flex-start; margin-top: 20px; font-size: 13px; }
.offer-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; padding: 28px 0; margin: 0; list-style: none; border-bottom: 1px solid var(--line); }
.offer-steps strong,.offer-steps span { display: block; font-size: 14px; }
.offer-steps strong { margin-bottom: 8px; color: var(--wine); }
.offer-steps span { color: var(--muted); line-height: 1.6; }
.offer-content-note { margin-top: 18px; color: var(--muted); font-size: 13px; line-height: 1.7; max-width: 900px; }
@media(max-width:760px) {
  .offer-card { grid-template-columns: 1fr; }
  .offer-conditions { border-left: 0; border-top: 1px solid var(--line); }
  .offer-main h2 { font-size: 52px; }
  .offer-price { margin-top: 30px; font-size: 66px; }
  .offer-conditions h3 { font-size: 30px; }
  .offer-steps { grid-template-columns: 1fr; gap: 20px; }
}
@media(max-width:360px) {
  .offer-main,.offer-conditions { padding: 24px; }
  .offer-main h2 { font-size: clamp(38px,12.2vw,44px); }
  .offer-price { font-size: 58px; }
}
