/* Joomla article styling. Every content rule is limited to .fe-legal.
   Palette and font factors inherit the existing Funchal Easy template. */
.fe-legal {
  --fe-legal-accent: var(--fe-green, #176b3b);
  --fe-legal-ink: var(--fe-ink, #173628);
  --fe-legal-deep: var(--fe-deep, #103723);
  --fe-legal-line: var(--fe-line, #dce8dd);
  --fe-legal-offset: 24px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  color: var(--fe-legal-ink);
  font-family: FEPreviewSans, Arial, sans-serif;
  font-size: max(16px, calc(16px * var(--fe-text-scale, 1) * var(--fe-font-body-scale, 1)));
  line-height: 1.72;
  overflow-wrap: anywhere;
  text-align: start;
}
.fe-legal *, .fe-legal *::before, .fe-legal *::after { box-sizing: border-box; }
.fe-legal [id], .fe-legal[id] { scroll-margin-top: var(--fe-legal-offset); }
#main .fe-legal h1, #main .fe-legal h2, #main .fe-legal h3 { color: var(--fe-legal-deep); text-transform: none; letter-spacing: -.02em; }
#main .fe-legal p { margin: 0 0 1em; font: inherit; }
#main .fe-legal a { color: var(--fe-legal-accent); text-decoration: underline; text-underline-offset: .18em; }
#main .fe-legal a:hover { text-decoration-thickness: 2px; }
#main .fe-legal a:focus-visible, #main .fe-legal summary:focus-visible { outline: 3px solid var(--fe-legal-accent); outline-offset: 4px; }
#main .fe-legal h1:focus, #main .fe-legal h2:focus, #main .fe-legal h3:focus { outline: none; }
#main .fe-legal .fe-legal-skip { position: absolute; inset-inline-start: 16px; top: 8px; z-index: 5; padding: 10px 14px; border: 1px solid var(--fe-legal-line); border-radius: 8px; background: #fff; transform: translateY(-200%); }
#main .fe-legal .fe-legal-skip:focus { transform: none; }
.fe-legal-hero { position: relative; padding: 30px 34px 28px; overflow: hidden; border: 1px solid var(--fe-legal-line); border-radius: 18px; background: linear-gradient(115deg, #f2f7ec, #fbfdf9 75%); }
#main .fe-legal .fe-legal-eyebrow { margin: 0 0 9px; color: var(--fe-legal-accent); font-size: .75em; font-weight: 700; letter-spacing: .11em; line-height: 1.5; text-transform: uppercase; }
#main .fe-legal h1 { max-width: 25ch; margin: 0 0 12px; font-family: FEDisplaySans, FEPreviewSans, Arial, sans-serif; font-size: calc(clamp(32px, 4vw, 46px) * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); font-weight: 700; line-height: 1.1; letter-spacing: -.035em; }
#main .fe-legal .fe-legal-intro { max-width: 85ch; margin: 0; color: #465d4d; font-size: .94em; line-height: 1.65; }
.fe-legal-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
#main .fe-legal .fe-legal-shortcuts a { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 8px 13px; border: 1px solid #cddfc6; border-radius: 9px; background: #fff; color: var(--fe-legal-deep); font-size: .82em; font-weight: 700; line-height: 1.35; text-decoration: none; }
#main .fe-legal .fe-legal-shortcuts a::after { content: '\2193'; color: var(--fe-legal-accent); font-weight: 400; }
#main .fe-legal .fe-legal-shortcuts a:hover { border-color: var(--fe-legal-accent); background: #f6faf2; }
#main .fe-legal .fe-legal-company { margin: 18px 0 28px; padding: 0 2px; color: #4e6155; font-size: .8em; line-height: 1.75; }
.fe-legal-layout { display: grid; grid-template-columns: minmax(215px, 245px) minmax(0, 1fr); align-items: start; gap: 28px; }
.fe-legal-toc { position: sticky; top: var(--fe-legal-offset); min-width: 0; max-height: calc(100vh - var(--fe-legal-offset) - 20px); max-height: calc(100dvh - var(--fe-legal-offset) - 20px); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--fe-legal-line); border-radius: 14px; background: #f8faf5; scrollbar-width: thin; }
.fe-legal-toc summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 60px; padding: 17px 18px; color: var(--fe-legal-deep); font-size: .88em; font-weight: 700; line-height: 1.4; cursor: pointer; list-style: none; }
.fe-legal-toc summary::-webkit-details-marker { display: none; }
.fe-legal-toc summary::after { content: '+'; flex: 0 0 auto; font-size: 1.2em; font-weight: 400; }
.fe-legal-toc details[open] > summary::after { content: '\2212'; }
#main .fe-legal .fe-legal-toc ol { display: grid; gap: 2px; margin: 0; padding: 0 9px 11px; list-style: none; }
#main .fe-legal .fe-legal-toc li { display: block; margin: 0; padding: 0; list-style: none; }
#main .fe-legal .fe-legal-toc a { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 7px; min-height: 44px; padding: 9px 9px; border: 1px solid transparent; border-radius: 8px; color: #3c5143; font-size: .82em; line-height: 1.4; text-decoration: none; }
#main .fe-legal .fe-legal-toc a span:first-child { color: #627b60; font-size: .86em; font-variant-numeric: tabular-nums; }
#main .fe-legal .fe-legal-toc a:hover { border-color: #d6e5ce; background: #eef5e7; }
#main .fe-legal .fe-legal-toc a[aria-current="location"] { border-color: #cbdcc1; background: #e7f1dc; color: var(--fe-legal-deep); font-weight: 700; }
#main .fe-legal .fe-legal-toc li:last-child { margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--fe-legal-line); }
.fe-legal-content { display: grid; gap: 22px; min-width: 0; }
.fe-legal-section { min-width: 0; padding: 28px 30px 22px; border: 1px solid var(--fe-legal-line); border-radius: 15px; background: #fff; }
.fe-legal-section-heading { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 21px; }
.fe-legal-number { display: inline-flex; flex: 0 0 32px; align-items: center; justify-content: center; min-width: 32px; min-height: 32px; margin-top: 1px; border-radius: 9px; background: #edf4e5; color: var(--fe-legal-accent); font-size: .74em; font-weight: 700; font-variant-numeric: tabular-nums; }
#main .fe-legal h2 { min-width: 0; margin: 0; font-family: FEDisplaySans, FEPreviewSans, Arial, sans-serif; font-size: calc(clamp(23px, 2.3vw, 28px) * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); font-weight: 700; line-height: 1.22; }
#main .fe-legal h3 { margin: 1.7em 0 .65em; font-family: FEPreviewSans, Arial, sans-serif; font-size: 1.04em; font-weight: 700; line-height: 1.5; letter-spacing: -.01em; }
#main .fe-legal .fe-legal-section-heading + h3 { margin-top: 0; }
#main .fe-legal .fe-legal-section ul { margin: .25em 0 1.3em; padding-inline-start: 1.3em; list-style: disc outside; }
#main .fe-legal .fe-legal-section li { margin: .5em 0; padding-inline-start: .2em; list-style: inherit; }
.fe-legal-section li::marker { color: var(--fe-legal-accent); }
.fe-legal-privacy { border-top: 3px solid var(--fe-legal-accent); }
.fe-legal-anchor { display: block; height: 0; margin: 0; padding: 0; }
#main .fe-legal .fe-legal-back { display: flex; justify-content: flex-end; margin-top: 22px; padding-top: 12px; border-top: 1px solid #edf1e9; }
#main .fe-legal .fe-legal-back a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-size: .78em; text-decoration: none; }
#main .fe-legal .fe-legal-back a::after { content: '\2191'; font-size: 1.2em; }
.fe-legal-consent { line-height: 1.65; }
.fe-legal-consent a { color: var(--fe-green, #176b3b); text-decoration: underline; text-underline-offset: .15em; }
/* Added only around the article identified by fe-legal.js. */
/* Joomla's article title and menu page heading are separate settings.
   Preserve the h1 inside fe-legal; hide only the native wrapper headings. */
#main .fe-legal-shell > .page-header,
#main .fe-legal-shell > .com-content-article__title,
#main .fe-legal-shell > .item-title,
#main .fe-legal-shell > h1,
#main .fe-legal-shell > h2 { display: none !important; }
@supports selector(:has(*)) {
  #main .main-body:has(.fe-legal) .page-header:has(> h1, > h2),
  #main :is(.com-content-article, .item-page):has(.fe-legal) > :is(h1, h2) { display: none !important; }
}
@media (max-width: 960px) {
  .fe-legal-layout { grid-template-columns: minmax(185px, 215px) minmax(0, 1fr); gap: 20px; }
  .fe-legal-section { padding: 24px; }
}
@media (max-width: 780px) {
  .fe-legal-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .fe-legal-toc { position: static; max-height: none; overflow: visible; }
  .fe-legal-toc summary { min-height: 56px; padding: 16px 18px; }
  .fe-legal-toc details[open] > summary { border-bottom: 1px solid var(--fe-legal-line); }
  #main .fe-legal .fe-legal-toc ol { padding-top: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #main .fe-legal .fe-legal-toc li:last-child { margin: 0; padding: 0; border: 0; }
  .fe-legal-hero { padding: 25px 24px; }
  #main .fe-legal .fe-legal-company { margin-block: 16px 22px; }
}
@media (max-width: 480px) {
  .fe-legal-hero { padding: 23px 20px; border-radius: 13px; }
  .fe-legal-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  #main .fe-legal .fe-legal-shortcuts a { justify-content: space-between; gap: 8px; padding-inline: 10px; }
  #main .fe-legal .fe-legal-toc ol { grid-template-columns: minmax(0, 1fr); }
  .fe-legal-section { padding: 23px 19px 17px; border-radius: 13px; }
  .fe-legal-section-heading { gap: 10px; }
  .fe-legal-number { flex-basis: 28px; min-width: 28px; min-height: 28px; border-radius: 7px; }
  #main .fe-legal h2 { font-size: calc(23px * var(--fe-text-scale, 1) * var(--fe-font-section-heading-scale, 1)); }
}
@media print {
  .fe-legal { max-width: none; font-family: Arial, sans-serif; font-size: 11pt; color: #000; line-height: 1.5; }
  .fe-legal-hero, .fe-legal-section { padding: 0; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
  .fe-legal-shortcuts, .fe-legal-toc, .fe-legal-back, .fe-legal-skip, .fe-legal-number, .fe-legal-eyebrow { display: none !important; }
  .fe-legal-layout, .fe-legal-content { display: block; }
  .fe-legal-section { margin: 0 0 24pt; }
  #main .fe-legal h1 { font-size: 22pt; }
  #main .fe-legal h2 { font-size: 16pt; }
  #main .fe-legal h3 { font-size: 12pt; }
  #main .fe-legal h1, #main .fe-legal h2, #main .fe-legal h3 { color: #000; break-after: avoid; }
  #main .fe-legal p, #main .fe-legal li { orphans: 3; widows: 3; }
  #main .fe-legal a { color: #000; }
  .fe-legal-section-heading { margin-bottom: 10pt; }
}
