
/* MOLLEDA & ASOCIADOS - legal/privacy layer - 2026-09-14 */
:root {
  --ma-teal: #006f6d;
  --ma-teal-dark: #004b4c;
  --ma-ink: #14191b;
  --ma-muted: #626b70;
  --ma-line: #d9e2e2;
  --ma-soft: #f5f9f9;
  --ma-white: #ffffff;
  --ma-shadow: 0 14px 42px rgba(16, 40, 40, .16);
}

/* Home compliance additions */
.legal-form-notice {
  width: 100%;
  margin: .35rem 0 1rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--ma-teal);
  background: var(--ma-soft);
  color: var(--ma-ink);
  font-size: .92rem;
  line-height: 1.55;
}
.legal-form-notice a,
.legal-marketing-consent a,
.legal-footer-links a { color: var(--ma-teal-dark); text-decoration: underline; }
.legal-marketing-consent {
  width: 100%;
  margin: .25rem 0 1rem;
  font-size: .92rem;
  line-height: 1.5;
}
.legal-marketing-consent label { display: flex; gap: .6rem; align-items: flex-start; cursor: pointer; }
.legal-marketing-consent input { margin-top: .35rem; flex: 0 0 auto; }
.legal-captcha-label { width: 100%; font-weight: 600; margin: .3rem 0 .4rem; color: var(--ma-teal-dark); }
.legal-footer-links { margin-top: 1.25rem; }
.legal-footer-links h4 { margin: 0 0 .5rem; color: inherit; font-size: 1rem; }
.legal-footer-links ul { margin: 0; padding: 0; list-style: none; }
.legal-footer-links li { margin: .25rem 0; }
.legal-footer-links button { border: 0; background: none; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.legal-footer-copy { width: 100%; text-align: center; padding: 1.2rem 1rem 0; font-size: .82rem; opacity: .84; }

/* Legal pages */
.legal-body { background: var(--ma-soft); color: var(--ma-ink); }
.legal-skip { position: absolute; left: -9999px; top: auto; }
.legal-skip:focus { left: 1rem; top: 1rem; z-index: 10000; background: #fff; padding: .7rem 1rem; border: 2px solid var(--ma-teal); }
.legal-site-header {
  background: #fff;
  border-bottom: 1px solid var(--ma-line);
  position: sticky;
  top: 0;
  z-index: 900;
}
.legal-header-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
}
.legal-logo img { display: block; width: min(245px, 52vw); height: auto; }
.legal-nav { display: flex; flex-wrap: wrap; gap: .35rem 1rem; justify-content: flex-end; }
.legal-nav a { color: var(--ma-ink); font-weight: 600; font-size: .95rem; }
.legal-nav a:hover, .legal-nav a:focus { color: var(--ma-teal); }
.legal-hero { background: linear-gradient(135deg, #ffffff 0%, #eef6f6 100%); border-bottom: 1px solid var(--ma-line); }
.legal-hero-inner { max-width: 980px; margin: 0 auto; padding: 4.5rem 1.25rem 3rem; }
.legal-kicker { color: var(--ma-teal); text-transform: uppercase; font-size: .78rem; letter-spacing: .12em; font-weight: 700; margin-bottom: .8rem; }
.legal-hero h1 { color: var(--ma-teal-dark); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.12; font-weight: 700; }
.legal-meta { margin-top: 1.15rem; color: var(--ma-muted); font-size: .95rem; line-height: 1.6; }
.legal-main { max-width: 980px; margin: 0 auto; padding: 2.2rem 1.25rem 5rem; }
.legal-toc { background: #fff; border: 1px solid var(--ma-line); border-radius: 8px; padding: 1.3rem 1.4rem; margin: 0 0 2rem; }
.legal-toc strong { color: var(--ma-teal-dark); display: block; margin-bottom: .55rem; }
.legal-toc ol { margin: 0; padding-left: 1.25rem; columns: 2; column-gap: 2rem; }
.legal-toc li { break-inside: avoid; margin: .28rem 0; }
.legal-toc a { color: var(--ma-teal-dark); text-decoration: underline; }
.legal-card { background: #fff; border: 1px solid var(--ma-line); border-radius: 8px; padding: clamp(1.25rem, 3vw, 2rem); margin: 0 0 1.25rem; box-shadow: 0 2px 10px rgba(0, 65, 65, .04); }
.legal-card h2 { color: var(--ma-teal-dark); font-size: clamp(1.35rem, 2.2vw, 1.75rem); margin: 0 0 1rem; line-height: 1.25; }
.legal-card h3 { color: var(--ma-teal); font-size: 1.05rem; margin: 1.2rem 0 .55rem; letter-spacing: 0; }
.legal-card p { margin: 0 0 .85rem; line-height: 1.75; }
.legal-card ul, .legal-card ol { margin: .4rem 0 .9rem; padding-left: 1.35rem; }
.legal-card li { margin: .35rem 0; line-height: 1.65; }
.legal-card a { color: var(--ma-teal-dark); text-decoration: underline; }
.legal-note { background: #eef6f6; border-left: 4px solid var(--ma-teal); padding: 1rem 1.1rem; margin: 1rem 0; }
.legal-table-wrap { overflow-x: auto; }
.legal-table { width: 100%; border-collapse: collapse; font-size: .94rem; }
.legal-table th, .legal-table td { border: 1px solid var(--ma-line); padding: .7rem .75rem; text-align: left; vertical-align: top; }
.legal-table th { background: #eef6f6; color: var(--ma-teal-dark); }
.legal-site-footer { background: var(--ma-teal-dark); color: #fff; }
.legal-footer-inner { max-width: 1180px; margin: 0 auto; padding: 2.4rem 1.25rem 1.5rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.legal-site-footer h2, .legal-site-footer h3 { color: #fff; }
.legal-site-footer h2 { font-size: 1.25rem; }
.legal-site-footer h3 { font-size: 1rem; letter-spacing: .02em; margin-bottom: .65rem; }
.legal-site-footer p, .legal-site-footer li { font-size: .9rem; line-height: 1.55; }
.legal-site-footer ul { list-style: none; margin: 0; padding: 0; }
.legal-site-footer li { margin: .32rem 0; }
.legal-site-footer a, .legal-site-footer button { color: #fff; text-decoration: underline; }
.legal-site-footer button { border: 0; background: none; padding: 0; font: inherit; cursor: pointer; }
.legal-footer-bottom { max-width: 1180px; margin: 0 auto; padding: 1rem 1.25rem 1.5rem; border-top: 1px solid rgba(255,255,255,.2); font-size: .82rem; }

/* Cookie consent */
#ma-cookie-banner, #ma-cookie-modal { font-family: inherit; }
#ma-cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 10000;
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  color: var(--ma-ink);
  border: 1px solid var(--ma-line);
  border-radius: 10px;
  box-shadow: var(--ma-shadow);
  padding: 1.2rem 1.25rem;
}
.ma-cookie-grid { display: grid; grid-template-columns: 1fr auto; gap: 1rem 1.5rem; align-items: center; }
.ma-cookie-title { margin: 0 0 .3rem; color: var(--ma-teal-dark); font-size: 1.15rem; font-weight: 700; }
.ma-cookie-text { margin: 0; font-size: .9rem; line-height: 1.55; }
.ma-cookie-text a { color: var(--ma-teal-dark); text-decoration: underline; }
.ma-cookie-actions { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; }
.ma-cookie-btn { border: 1px solid var(--ma-teal); border-radius: 5px; padding: .65rem .9rem; font: inherit; font-size: .88rem; cursor: pointer; background: #fff; color: var(--ma-teal-dark); }
.ma-cookie-btn.primary { background: var(--ma-teal); color: #fff; }
.ma-cookie-btn:hover, .ma-cookie-btn:focus { filter: brightness(.96); outline: 2px solid rgba(0,111,109,.18); outline-offset: 2px; }
.ma-cookie-backdrop { position: fixed; inset: 0; background: rgba(9, 20, 20, .5); z-index: 10001; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.ma-cookie-dialog { width: min(720px, 100%); max-height: min(84vh, 760px); overflow: auto; background: #fff; border-radius: 10px; box-shadow: var(--ma-shadow); padding: 1.4rem; }
.ma-cookie-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.ma-cookie-dialog h2 { color: var(--ma-teal-dark); font-size: 1.45rem; }
.ma-cookie-close { border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--ma-ink); }
.ma-cookie-category { border-top: 1px solid var(--ma-line); padding: 1rem 0; }
.ma-cookie-category:first-of-type { border-top: 0; }
.ma-cookie-category-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ma-cookie-category strong { color: var(--ma-teal-dark); }
.ma-cookie-category p { margin: .4rem 0 0; font-size: .9rem; line-height: 1.55; }
.ma-cookie-switch { position: relative; width: 46px; height: 26px; flex: 0 0 auto; }
.ma-cookie-switch input { opacity: 0; width: 0; height: 0; }
.ma-cookie-slider { position: absolute; inset: 0; background: #aeb9bb; border-radius: 30px; transition: .2s; }
.ma-cookie-slider::before { content: ''; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.ma-cookie-switch input:checked + .ma-cookie-slider { background: var(--ma-teal); }
.ma-cookie-switch input:checked + .ma-cookie-slider::before { transform: translateX(20px); }
.ma-cookie-switch input:disabled + .ma-cookie-slider { opacity: .7; cursor: not-allowed; }
.ma-cookie-modal-actions { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; margin-top: 1rem; }
.ma-cookie-hidden { display: none !important; }
body.ma-cookie-modal-open { overflow: hidden; }

@media (max-width: 760px) {
  .legal-header-inner { align-items: flex-start; flex-direction: column; }
  .legal-nav { justify-content: flex-start; }
  .legal-hero-inner { padding-top: 3.1rem; }
  .legal-toc ol { columns: 1; }
  .legal-footer-inner { grid-template-columns: 1fr; gap: 1.4rem; }
  .ma-cookie-grid { grid-template-columns: 1fr; }
  .ma-cookie-actions { justify-content: flex-start; }
  #ma-cookie-banner { left: .6rem; right: .6rem; bottom: .6rem; }
}
