/* Shared styles for legal pages */
.legal-page { max-width: 860px; margin: 0 auto; padding: 60px 40px 100px; }
.legal-page h1 { font-family: 'Instrument Serif', serif; font-size: clamp(36px, 5vw, 56px); color: var(--green-deep); font-weight: 400; margin-bottom: 12px; line-height: 1.1; }
.legal-page h1 em { color: var(--gold); font-style: italic; }
.legal-page .legal-meta { font-size: 13px; color: var(--text-muted); margin-bottom: 48px; letter-spacing: 1px; text-transform: uppercase; }
.legal-page h2 { font-family: 'Instrument Serif', serif; font-size: 26px; color: var(--green-deep); font-weight: 400; margin: 36px 0 12px; }
.legal-page h3 { font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 600; color: var(--green-deep); margin: 24px 0 8px; letter-spacing: 0.2px; }
.legal-page p, .legal-page li { font-size: 15px; line-height: 1.75; color: var(--text); margin-bottom: 12px; }
.legal-page ul, .legal-page ol { padding-left: 24px; margin-bottom: 16px; }
.legal-page li { margin-bottom: 6px; }
.legal-page a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.legal-page a:hover { color: var(--gold); }
.legal-page strong { color: var(--green-deep); font-weight: 600; }
.legal-page .legal-nav { display: flex; gap: 20px; flex-wrap: wrap; padding-bottom: 24px; margin-bottom: 36px; border-bottom: 1px solid var(--border); font-size: 13px; letter-spacing: 1px; text-transform: uppercase; }
.legal-page .legal-nav a { text-decoration: none; color: var(--text-muted); }
.legal-page .legal-nav a.active, .legal-page .legal-nav a:hover { color: var(--green-deep); border-bottom: 1px solid var(--gold); padding-bottom: 4px; }

/* Cookie consent banner */
.cookie-banner {
  position: fixed; bottom: 20px; left: 20px; right: 20px; max-width: 480px;
  background: var(--green-deep); color: var(--white); padding: 24px 28px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25); z-index: 9999;
  transform: translateY(calc(100% + 40px)); transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 14px; line-height: 1.6;
}
.cookie-banner.show { transform: translateY(0); }
.cookie-banner h4 { font-family: 'Instrument Serif', serif; font-size: 20px; font-weight: 400; margin-bottom: 8px; color: var(--white); }
.cookie-banner p { margin-bottom: 16px; opacity: 0.9; font-size: 13px; line-height: 1.6; }
.cookie-banner a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner .cookie-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cookie-banner button {
  padding: 10px 20px; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
  border: 1px solid var(--white); background: transparent; color: var(--white); cursor: pointer; transition: all 0.2s;
  font-family: inherit;
}
.cookie-banner button.primary { background: var(--gold); border-color: var(--gold); }
.cookie-banner button:hover { background: var(--white); color: var(--green-deep); border-color: var(--white); }
.cookie-banner button.primary:hover { background: var(--white); color: var(--green-deep); }

@media (max-width: 560px) {
  .cookie-banner { left: 12px; right: 12px; bottom: 12px; padding: 18px 20px; }
  .legal-page { padding: 40px 24px 80px; }
}

/* Floating cookie button (re-opens banner after choice made) */
.cookie-fab {
  position: fixed; bottom: 20px; left: 20px; z-index: 998;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--green-deep); color: var(--white);
  border: none; cursor: pointer;
  font-size: 22px; line-height: 1;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cookie-fab:hover { transform: scale(1.08); box-shadow: 0 10px 28px rgba(0,0,0,0.28); }