/*
 * Public site: fonts served by the site itself (no Google Fonts request) and the scroll reveal
 * that replaces the AOS library. Content is always visible without JavaScript.
 */
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../vendor/fonts/inter-latin-wght-normal.260c81a4759b.woff2") format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../vendor/fonts/inter-latin-ext-wght-normal.1ad231aac0a8.woff2") format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../vendor/fonts/montserrat-latin-wght-normal.311d352d9323.woff2") format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../vendor/fonts/montserrat-latin-ext-wght-normal.d16dfe26bcd7.woff2") format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* Scroll reveal (data-aos="fade-up|fade-left|fade-right|zoom-in"), only once the script runs */
html.reveal-on [data-aos]:not(.aos-animate) { opacity: 0; }
html.reveal-on [data-aos] { transition: opacity .7s ease, transform .7s ease; transition-delay: var(--aos-delay, 0ms); }
html.reveal-on [data-aos="fade-up"]:not(.aos-animate) { transform: translate3d(0, 40px, 0); }
html.reveal-on [data-aos="fade-left"]:not(.aos-animate) { transform: translate3d(40px, 0, 0); }
html.reveal-on [data-aos="fade-right"]:not(.aos-animate) { transform: translate3d(-40px, 0, 0); }
html.reveal-on [data-aos="zoom-in"]:not(.aos-animate) { transform: scale(.94); }
@media (prefers-reduced-motion: reduce) {
  html.reveal-on [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Legal pages (privacy, terms, legal notice): the public stylesheet has no "prose" plugin and the
   Tailwind reset removes heading sizes and list bullets, so the legal texts get their own readable layout. */
.legal-content { color: #1f2937; line-height: 1.7; font-size: 1rem; overflow-wrap: anywhere; }
.legal-content h2 { font-size: 1.5rem; font-weight: 800; color: #0f172a; margin: 0 0 1rem; line-height: 1.3; }
.legal-content h3 { font-size: 1.15rem; font-weight: 700; color: #0f172a; margin: 2rem 0 .75rem; line-height: 1.35; }
.legal-content p { margin: 0 0 1rem; }
.legal-content ul { list-style: disc; padding-left: 1.4rem; margin: 0 0 1rem; }
.legal-content ul ul { list-style: circle; margin: .5rem 0 .5rem; }
.legal-content li { margin: .35rem 0; }
.legal-content a { color: #c2410c; text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:hover { color: #9a3412; }
.legal-content strong { color: #0f172a; }
@media (max-width: 640px) {
  .legal-content h2 { font-size: 1.3rem; }
  .legal-content h3 { font-size: 1.05rem; }
}

/* Visible keyboard focus on public links, buttons and fields */
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid #f97316; outline-offset: 2px;
}

/* Public forms: a field is flagged in red only after the visitor has tried to send the form
   (two separate rules: a browser that does not know :user-invalid would otherwise drop both) */
.form-validate input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):user-invalid,
.form-validate select:user-invalid,
.form-validate textarea:user-invalid {
  border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .15);
}
.form-validate.was-validated input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):invalid,
.form-validate.was-validated select:invalid,
.form-validate.was-validated textarea:invalid {
  border-color: #dc2626 !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .15);
}
.form-validate .field-error[hidden] { display: none; }
.form-validate .field-error { display: block; margin-top: .35rem; font-size: .8rem; font-weight: 600; color: #b91c1c; }

/* Wide tables on public pages scroll inside their own box on phones instead of widening the page */
.table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
