/* Legal pages (privacy, imprint): shared tz-legal__* styles. Tokens come from main.css. */

/* ---------- Hero ---------- */
.tz-legal__hero { position: relative; padding: calc(var(--tz-header-h) + 52px) 0 56px; background: var(--tz-dark); color: #fff; overflow: hidden; overflow: clip; }
.tz-legal__hero-media { position: absolute; inset: 0; }
.tz-legal__hero-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tz-legal__hero-veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 2, 0, .95) 0%, rgba(7, 2, 0, .84) 60%, rgba(7, 2, 0, .66) 100%); }
.tz-legal__hero-inner { position: relative; z-index: 1; }
.tz-legal__hero-inner > * { max-width: 760px; }
.tz-legal__crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; line-height: 1.3; color: #fff; }
.tz-legal__crumbs a { color: #fff; opacity: .85; transition: color .2s ease, opacity .2s ease; }
.tz-legal__crumbs a:hover, .tz-legal__crumbs a:focus-visible { color: var(--tz-accent-light); opacity: 1; text-decoration: underline; }
.tz-legal__crumbs span { color: #fff; }
.tz-legal__title { margin-top: 22px; font-size: 52px; font-weight: 600; line-height: 1.08; color: #fff; }
.tz-legal__lead { margin-top: 20px; font-size: 18px; line-height: 1.65; color: rgba(255, 255, 255, .92); }

/* ---------- Body and text ---------- */
.tz-legal__body { padding: 72px 0 84px; background: #fff; }
.tz-legal__content { min-width: 0; max-width: 800px; }
.tz-legal__content--single { margin: 0 auto; }
.tz-legal__section { padding-bottom: 38px; margin-bottom: 38px; border-bottom: 1px solid var(--tz-line); scroll-margin-top: calc(var(--tz-header-h) + 20px); }
.tz-legal__section:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.tz-legal__section > h2 { position: relative; padding-bottom: 14px; font-size: 32px; line-height: 1.15; color: var(--color-text-heading); }
.tz-legal__section > h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; background: var(--tz-accent); }
.tz-legal__section > h3 { margin-top: 28px; font-size: 21px; line-height: 1.25; color: var(--color-text-heading); }
.tz-legal__section > p { margin-top: 16px; font-size: 17px; line-height: 1.75; color: var(--tz-muted); }
.tz-legal__section > h2 + p { margin-top: 20px; }
.tz-legal__section > h3 + p { margin-top: 8px; }
.tz-legal__section p strong, .tz-legal__section li strong { color: var(--color-text-heading); font-weight: 700; }

.tz-legal__link { color: var(--tz-accent); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: transparent; transition: color .2s ease, text-decoration-color .2s ease; cursor: pointer; overflow-wrap: anywhere; }
.tz-legal__link:hover, .tz-legal__link:focus-visible { color: var(--color-text-heading); text-decoration-color: currentColor; }

/* Bulleted and numbered lists */
.tz-legal__list, .tz-legal__steps { margin-top: 18px; display: grid; gap: 12px; }
.tz-legal__list li, .tz-legal__steps li { position: relative; font-size: 17px; line-height: 1.7; color: var(--tz-muted); }
.tz-legal__list li { padding-left: 26px; }
.tz-legal__list li::before { content: ""; position: absolute; left: 4px; top: 11px; width: 8px; height: 8px; border-radius: 50%; background: var(--tz-accent); }
.tz-legal__steps { counter-reset: tz-legal-step; }
.tz-legal__steps li { padding-left: 52px; min-height: 36px; counter-increment: tz-legal-step; }
.tz-legal__steps li::before { content: counter(tz-legal-step); position: absolute; left: 0; top: 0; width: 36px; height: 36px; line-height: 36px; text-align: center; border-radius: 50%; background: var(--tz-peach); color: var(--tz-accent); font-family: var(--font-family-2); font-size: 18px; font-weight: 500; }
.tz-legal__list + p, .tz-legal__steps + p { margin-top: 20px; }

/* Facts list (label / value) */
.tz-legal__facts { margin: 22px 0 0; padding: 6px 26px; background: var(--tz-gray); border-radius: var(--radius-2); border-left: 4px solid var(--tz-accent); }
.tz-legal__facts > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--tz-line); }
.tz-legal__facts > div:last-child { border-bottom: 0; }
.tz-legal__facts dt { font-size: 15px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; color: var(--tz-muted); }
.tz-legal__facts dd { margin: 0; min-width: 0; font-size: 17px; line-height: 1.55; color: var(--color-text-heading); overflow-wrap: anywhere; }
.tz-legal__facts + p { margin-top: 20px; }

/* Callout with icon: icon is absolute, text has its own padding */
.tz-legal__note { position: relative; margin-top: 24px; padding: 22px 24px 22px 74px; background: var(--tz-gray); border-radius: var(--radius-2); }
.tz-legal__note > img { position: absolute; left: 24px; top: 24px; width: 28px; height: 28px; }
.tz-legal__note > p { margin: 0; font-size: 16.5px; line-height: 1.65; color: var(--tz-muted); }

/* ---------- Light call to action ---------- */
.tz-legal__cta { padding: 0 0 80px; background: #fff; }
.tz-legal__cta-box { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 40px; padding: 40px 46px; background: var(--tz-gray); border-radius: var(--radius-2); border-left: 6px solid var(--tz-accent); box-shadow: var(--shadow-4); }
.tz-legal__cta-box > * { min-width: 0; }
.tz-legal__cta-text h2 { font-size: 32px; color: var(--color-text-heading); }
.tz-legal__cta-text p { margin-top: 10px; font-size: 17px; line-height: 1.6; color: var(--tz-muted); }
.tz-legal__cta-actions { display: flex; flex-direction: column; gap: 12px; min-width: 240px; }
.tz-legal__cta-phone { font-family: var(--font-family-2); font-size: 20px; font-weight: 500; }
.tz-legal__cta-phone:hover, .tz-legal__cta-phone:focus-visible { background: var(--tz-dark); border-color: var(--tz-dark); color: #fff; box-shadow: 0 6px 16px rgba(7, 2, 0, .25); }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .tz-legal__title { font-size: 48px; }
  .tz-legal__cta-box { padding: 36px 34px; gap: 30px; }
}

@media (max-width: 1024px) {
  .tz-legal__hero { padding: calc(var(--tz-header-h) + 40px) 0 48px; }
  .tz-legal__title { font-size: 42px; }
  .tz-legal__body { padding: 56px 0 64px; }
  .tz-legal__cta { padding-bottom: 64px; }
  .tz-legal__cta-box { grid-template-columns: minmax(0, 1fr); }
  .tz-legal__cta-actions { flex-direction: row; flex-wrap: wrap; min-width: 0; }
  .tz-legal__cta-actions .tz-btn { flex: 1 1 220px; }
}

@media (max-width: 768px) {
  .tz-legal__title { font-size: 36px; }
  .tz-legal__lead { font-size: 16.5px; }
  .tz-legal__body { padding: 44px 0 52px; }
  .tz-legal__section { padding-bottom: 30px; margin-bottom: 30px; }
  .tz-legal__section > h2 { font-size: 28px; }
  .tz-legal__section > h3 { font-size: 20px; }
  .tz-legal__facts { padding: 4px 20px; }
  .tz-legal__facts > div { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 12px 0; }
  .tz-legal__cta { padding-bottom: 52px; }
  .tz-legal__cta-text h2 { font-size: 27px; }
  .tz-legal__cta-box { padding: 30px 24px; }
}

@media (max-width: 480px) {
  .tz-legal__hero { padding: calc(var(--tz-header-h) + 30px) 0 38px; }
  .tz-legal__title { font-size: 31px; }
  .tz-legal__lead { font-size: 16px; }
  .tz-legal__section > h2 { font-size: 25px; }
  .tz-legal__section > p, .tz-legal__list li, .tz-legal__steps li { font-size: 16px; }
  .tz-legal__steps li { padding-left: 46px; }
  .tz-legal__steps li::before { width: 32px; height: 32px; line-height: 32px; font-size: 16px; }
  .tz-legal__note { padding: 64px 18px 18px; }
  .tz-legal__note > img { left: 18px; top: 18px; }
  .tz-legal__cta-box { padding: 26px 18px; border-left-width: 4px; text-align: center; }
  .tz-legal__cta-text h2 { font-size: 24px; }
  .tz-legal__cta-actions { flex-direction: column; }
  .tz-legal__cta-actions .tz-btn { flex: 0 0 auto; width: 100%; }
}

@media (max-width: 375px) {
  .tz-legal__title { font-size: 28px; }
  .tz-legal__section > h2 { font-size: 23px; }
  .tz-legal__facts { padding: 2px 16px; }
}
