/* ============================================================
   ULTRA CONECTA — policy.css
   One combined stylesheet for the inner policy pages
   (cookie / privacy × spanish / portuguese).
   Order: shared tokens -> header -> footer -> page content.
   ============================================================ */

/* ---------- Shared design tokens ---------- */
:root {
  /* Fonts */
  --uc-font-body: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Brand */
  --uc-magenta-700: #a42f96;
  --uc-lime-200:    #bbe06d;
  --uc-lime-400:    #93be2c;

  /* Neutrals */
  --uc-white:       #ffffff;
  --uc-neutral-100: #f2f4f7;
  --uc-neutral-500: #667085;
  --uc-neutral-600: #475467;
  --uc-neutral-700: #344054;
  --uc-neutral-800: #1d2939;
  --uc-neutral-900: #101828;

  /* Page-specific */
  --uc-text-dark:   #1f2933;
  --uc-wrap:        1200px;
}

/* ============================================================
   HEADER — scoped under .uc-header
   ============================================================ */
.uc-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--uc-white, #ffffff);
  border-bottom: 1px solid var(--uc-neutral-100, #f2f4f7);
  font-family: var(--uc-font-body, "Onest", system-ui, sans-serif);
}
.uc-header *,
.uc-header *::before,
.uc-header *::after { box-sizing: border-box; }

.uc-header__inner {
  width: min(100% - 2rem, 1320px);
  margin-inline: auto;
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Brand */
.uc-header__brand { display: inline-flex; align-items: center; flex: none; }
.uc-header__logo { height: 55px; width: auto; display: block; }
.uc-header__logo--icon { display: none; }   /* shown on mobile only */

/* ---- Header mobile ---- */
@media (max-width: 960px) {
  .uc-header__logo--full { display: none; }
  .uc-header__logo--icon { display: block; height: 40px; }
}

/* ============================================================
   FOOTER — scoped under .uc-footer
   ============================================================ */
.uc-footer {
  font-family: var(--uc-font-body, "Onest", system-ui, sans-serif);
}
.uc-footer *,
.uc-footer *::before,
.uc-footer *::after { box-sizing: border-box; }

/* Main */
.uc-footer__main {
  background: var(--uc-neutral-800, #1d2939);
  color: rgba(255, 255, 255, .8);
  padding: clamp(2rem, 4vw, 3rem) 0;
}
.uc-footer__main-inner {
  width: min(100% - 2rem, 1320px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: start;
  gap: clamp(1.5rem, 4vw, 3rem);
}
.uc-footer__brand img { height: 36px; width: auto; }

/* Legal */
.uc-footer__legal {
  background: var(--uc-neutral-900, #101828);
  color: rgba(255, 255, 255, .7);
  padding: 1.25rem 0;
}
.uc-footer__legal-inner {
  width: min(100% - 2rem, 1320px);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.uc-footer__copy { margin: 0; font-size: .8rem; }
.uc-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: clamp(1rem, 3vw, 2rem);
}
.uc-footer__links a {
  font-size: .8rem;
  color: rgba(255, 255, 255, .7);
  text-decoration: none;
}
.uc-footer__links a:hover { color: var(--uc-white, #ffffff); text-decoration: underline; }

/* ---- Footer mobile ---- */
@media (max-width: 860px) {
  .uc-footer__main-inner { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .uc-footer__brand img { height: 48px; }
  .uc-footer__legal-inner { flex-direction: column; align-items: flex-start; }
  .uc-footer__links {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    margin-top: .5rem;
  }
}

/* ============================================================
   POLICY PAGE — scoped under .policy-page
   ============================================================ */
.policy-page {
  font-family: var(--uc-font-body);
  color: var(--uc-text-dark);
  line-height: 1.6;
}
.policy-page *,
.policy-page *::before,
.policy-page *::after { box-sizing: border-box; }

/* Hero / title banner */
.policy-hero {
  background: var(--uc-neutral-100);
  padding: clamp(2rem, 5vw, 3.5rem) 0;
}
.policy-hero__inner {
  width: min(100% - 2rem, var(--uc-wrap));
  margin-inline: auto;
  text-align: center;
}
.policy-hero h1 {
  margin: 0 0 .35rem;
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  font-weight: 700;
  color: var(--uc-neutral-900);
  line-height: 1.2;
}
.policy-hero__updated {
  margin: 0;
  font-size: .9rem;
  color: var(--uc-neutral-600);
}

/* Language switcher row */
.policy-tools {
  width: min(100% - 2rem, var(--uc-wrap));
  margin-inline: auto;
  display: flex;
  justify-content: flex-end;
  padding: 1.25rem 0 .5rem;
}
.policy-lang {
  position: relative;
  min-width: 220px;
}
.policy-lang__select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  font-size: .95rem;
  color: var(--uc-neutral-700);
  background: var(--uc-white);
  border: 1px solid #d0d5dd;
  border-radius: 6px;
  padding: .65rem 2.5rem .65rem 1rem;
  cursor: pointer;
}
.policy-lang__select:focus-visible {
  outline: 2px solid var(--uc-magenta-700);
  outline-offset: 2px;
}
.policy-lang::after {
  content: "";
  position: absolute;
  right: 1.1rem;
  top: 50%;
  width: 8px;
  height: 8px;
  transform: translateY(-70%) rotate(45deg);
  border-right: 1.5px solid var(--uc-neutral-500);
  border-bottom: 1.5px solid var(--uc-neutral-500);
  pointer-events: none;
}

/* Body content */
.policy-body {
  width: min(100% - 2rem, 1000px);
  margin-inline: auto;
  padding: 1rem 0 clamp(2.5rem, 6vw, 4rem);
}
.policy-body p { margin: 0 0 1.1rem; }
.policy-body h4 {
  margin: 2rem 0 .8rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--uc-neutral-900);
}
.policy-body a {
  color: var(--uc-magenta-700);
  text-decoration: underline;
}
.policy-body a:hover { text-decoration: none; }

.policy-body ul {
  margin: 0 0 1.1rem;
  padding-left: 1.25rem;
}
.policy-body li { margin-bottom: .5rem; }
.policy-body li::marker { color: var(--uc-magenta-700); }

/* Table */
.policy-table-wrap { overflow-x: auto; margin: 0 0 1.1rem; }
.policy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .92rem;
  min-width: 640px;
}
.policy-table th,
.policy-table td {
  border: 1px solid var(--uc-neutral-100);
  padding: .85rem 1rem;
  text-align: left;
  vertical-align: top;
}
.policy-table thead th {
  background: var(--uc-neutral-100);
  color: var(--uc-neutral-900);
  font-weight: 700;
}

/* ---- Policy mobile ---- */
@media (max-width: 600px) {
  .policy-tools { justify-content: stretch; }
  .policy-lang { min-width: 0; width: 100%; }
}