.terms-main { max-width: 1040px; margin-inline: auto; }
.terms-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid #bdc4b7; border-radius: 24px; margin-bottom: 2rem; background: #bdc4b7; }
.terms-summary div { display: grid; gap: .4rem; padding: 1.5rem; background: #eef0e7; }
.terms-summary strong { font-size: 1.3rem; }
.terms-summary span { color: #566453; }
.terms-content { padding: clamp(1.3rem, 4vw, 3.5rem); }
.terms-content section + section { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid #d4d5c8; }
.terms-content h2 { font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.25; margin-bottom: 1rem; }
.terms-content p { max-width: 75ch; line-height: 1.8; overflow-wrap: anywhere; }
.terms-content a { color: inherit; text-underline-offset: .2em; }
.terms-table { width: 100%; border-collapse: collapse; margin-block: 1.5rem; }
.terms-table caption { text-align: left; font-weight: 700; margin-bottom: .7rem; }
.terms-table th, .terms-table td { text-align: left; padding: .9rem .65rem; border-bottom: 1px solid #d4d5c8; }
.terms-table thead { background: #eef0e7; }
.terms-table tbody th { font-weight: 500; }
@media (max-width: 520px) { .terms-summary { grid-template-columns: 1fr; } .terms-table { font-size: .9rem; } }
@media print {
  body, .page-shell, .terms-content { background: white; color: black; box-shadow: none; }
  .page-shell, .terms-content, .gallery-hero, .gallery-main { padding: 0; margin: 0; width: auto; max-width: none; border: 0; }
  .topbar, .footer, .terms-summary { display: none; }
  .gallery-intro h1 { font-size: 24pt; }
  .terms-content h2 { font-size: 14pt; break-after: avoid; }
  .terms-content p, .terms-table { font-size: 10pt; }
  .terms-content section + section { margin-top: 1rem; padding-top: .5rem; }
  tr { break-inside: avoid; }
}
