/* FlowGrounded: camada própria sobre o CSS do template (css/site.css).
   Editado à mão. Cores tiradas da paleta do template. */
:root {
  --fg-ink: #26221e;
  --fg-ink-2: #2e2822;
  --fg-paper: #ece8e1;
  --fg-paper-2: #f5f2ed;
  --fg-paper-3: #fbfaf8;
  --fg-green: #3b5140;
  --fg-gold: #c79a4b;
  --fg-muted: rgba(38, 34, 30, .62);
  --fg-soft: rgba(38, 34, 30, .5);
  --fg-line: rgba(38, 34, 30, .14);
  --fg-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ------------------------------------------------------------- base */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
section[id], [id^="s"], #recuperar { scroll-margin-top: 24px; }
img { max-width: 100%; }
button.button, button.services_arrow, button.accordion_title, .fg-ck-btn, .fg-player-close {
  font: inherit; border: 0; cursor: pointer; -webkit-appearance: none; appearance: none;
}
button.services_arrow { padding: 0; border: 1px solid var(--fg-line); }
.fg-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.fg-skip { position: absolute; left: -9999px; top: 8px; z-index: 2000; padding: 10px 16px;
  border-radius: 8px; background: var(--fg-ink); color: var(--fg-paper); text-decoration: none; }
.fg-skip:focus { left: 8px; }
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible {
  outline: 2px solid var(--fg-green); outline-offset: 3px; }
.text-rich-text a, .fg-consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------- botões */
/* O template trocava o texto do botão com uma interação do Webflow. */
.button .button_text { transition: transform .45s var(--fg-ease); }
.button:hover .button_text, .button:focus-visible .button_text { transform: translateY(-100%); }
.fg-buy[aria-busy="true"] { opacity: .6; pointer-events: none; }

/* --------------------------------------------------------- navegação */
.navigation_logo.fg-logo { width: auto; height: 22px; display: block; }
.fg-lang { display: inline-flex; align-items: center; gap: 2px; padding: 3px;
  border: 1px solid var(--fg-line); border-radius: 999px; }
.fg-lang a { font-size: 12px; line-height: 1; letter-spacing: .06em; font-weight: 600;
  padding: 7px 9px; border-radius: 999px; color: var(--fg-soft); text-decoration: none;
  transition: background-color .2s, color .2s; }
.fg-lang a:hover { color: var(--fg-ink); }
.fg-lang a.is-active { background: var(--fg-ink); color: var(--fg-paper); }
.navigation_mobile-menu.is-open { display: block; }
.navigation_overlay.is-open { opacity: 1; pointer-events: auto; transition: opacity .3s; }
.fg-mobile-bottom { flex-wrap: wrap; padding-top: 8px; border-top: 1px solid var(--fg-line); }
.fg-menu-btn .button_icon { font-size: 20px; }
@media (max-width: 1180px) and (min-width: 992px) {
  .fg-lang-nav { display: none; }
  .navigation_link { padding-left: 9px; padding-right: 9px; }
}
@media (max-width: 991px) {
  .fg-lang-nav { display: none; }
  .fg-nav-cta { display: none; }
}

/* ------------------------------------------------------------- hero */
.fg-trust { flex-wrap: wrap; justify-content: center; gap: 8px 20px; }
.fg-trust-item { display: inline-flex; align-items: center; gap: 6px; }
.fg-trust-item .hero_star { color: var(--fg-green); }

/* --------------------------------------------- faixa de práticas */
.fg-marquee-wrap { flex: 1; min-width: 0; width: 100%; }
.logo-marquee_logo.fg-word { max-height: none; opacity: .45; font-size: 22px; line-height: 1.1;
  font-weight: 600; letter-spacing: -.02em; color: var(--fg-ink); white-space: nowrap; }
.logo-marquee_list { animation: fg-marquee 34s linear infinite; }
.logo-marquee_list.is-bottom { animation-direction: reverse; animation-duration: 40s; }
@keyframes fg-marquee { to { transform: translateX(calc(-100% - 48px)); } }

/* ------------------------------------------------------- factos */
.fg-stats { overflow: hidden; }
.fg-stats .stats_row { animation: fg-stats 60s linear infinite; }
@keyframes fg-stats { to { transform: translateX(calc(-100% - 8px)); } }
.fg-stats:hover .stats_row { animation-play-state: paused; }
@media (max-width: 767px) { .stats_tile { width: 280px; } }

/* ----------------------------------------------------------- sobre */
/* O template posicionava este bloco com um id do Webflow. Em ecrãs pequenos o
   texto ocupa a largura toda e as duas fotos ficam lado a lado por baixo. */
@media (max-width: 991px) {
  .about_content { grid-column: 1 / -1; order: -1; }
  .about_stones, .about_incense { width: 100%; height: auto; }
}

/* -------------------------------------------------------- slider */
.fg-slider .services_slide { transition: transform .55s var(--fg-ease); }
.fg-slider .services_arrow[disabled] { opacity: .35; cursor: default; }
.fg-slider { touch-action: pan-y; }
.services_card.w--current { outline: 2px solid var(--fg-green); outline-offset: 3px; }

/* --------------------------------------------------------- preços */
.pricing_columns { align-items: stretch; place-items: stretch; }
.pricing_card { height: 100%; }
.fg-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fg-badge { font-size: 12px; font-weight: 600; letter-spacing: .04em; padding: 6px 12px; border-radius: 999px;
  background: var(--fg-gold); color: var(--fg-ink); white-space: nowrap; }
.pricing_price { font-size: 40px; line-height: 1.1; letter-spacing: -.03em; color: inherit; }
.pricing_card .pricing_price { color: var(--fg-ink); }
.pricing_card.is-dark .pricing_price { color: var(--fg-paper); }
.fg-per { font-size: 15px; font-weight: 500; letter-spacing: 0; opacity: .6; }
.pricing_includes { margin-top: 28px; }
.pricing_features { margin-top: 18px; margin-bottom: 0; gap: 14px; }
.fg-card-action { margin-top: auto; padding-top: 36px; display: flex; flex-direction: column; gap: 12px; }
.fg-card-action .button { width: 100%; justify-content: center; }
.fg-select-wrap { display: flex; flex-direction: column; gap: 6px; }
.fg-select-label { font-size: 13px; font-weight: 600; color: var(--fg-muted); }
.fg-select { padding: 0 44px 0 16px; font: inherit; font-size: 15px; cursor: pointer; border-radius: 12px;
  border: 1px solid var(--fg-line); background-color: var(--fg-paper-2); -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2326221e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; }
.fg-consent { max-width: 720px; margin: 22px auto 0; text-align: center; font-size: 13px; line-height: 1.6;
  color: var(--fg-muted); }
.fg-consent-left { margin-left: 0; text-align: left; }
@media (max-width: 991px) {
  .pricing_columns { display: flex; flex-direction: column; }
  .pricing_card { height: auto; }
}

/* --------------------------------------------------- acompanhamento */
.fg-guide { max-width: 860px; }
.fg-guide .testimonials_quote-mark { color: var(--fg-green); }
.fg-guide-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; width: 100%;
  margin-top: 8px; text-align: left; }
.fg-guide-point { padding: 22px; border-radius: 16px; background: var(--fg-paper-2); }
.fg-guide-n { display: block; font-size: 13px; color: var(--fg-soft); margin-bottom: 10px; }
.fg-guide-t { font-weight: 600; color: var(--fg-ink); margin: 0 0 6px; }
.fg-guide-point p { margin: 0; }
.fg-guide-cta { justify-content: center; }
.fg-guide-fine { max-width: 620px; margin: 0 auto; }
@media (max-width: 767px) { .fg-guide-points { grid-template-columns: 1fr; } }

/* ------------------------------------------------------- perguntas */
button.accordion_title { display: flex; align-items: center; text-align: left; font-size: inherit; line-height: 1.4; }
.accordion_block { height: 0; transition: height .35s var(--fg-ease); }
.accordion_icon { transition: transform .3s var(--fg-ease); }
.accordion_item.is-open .accordion_icon { transform: rotate(180deg); }
.fg-no-js .accordion_block, html:not(.fg-js) .accordion_block { height: auto; }

/* --------------------------------------------------- página programa */
.fg-prog-text h2 { font-size: 24px; line-height: 1.25; letter-spacing: -.02em; margin-top: 12px; }
.fg-lessons { list-style: none; padding: 0; margin: 0; counter-reset: fgl; }
.fg-lessons li { counter-increment: fgl; display: flex; align-items: baseline; gap: 14px; padding: 12px 0;
  border-bottom: 1px solid var(--fg-line); }
.fg-lessons li::before { content: counter(fgl, decimal-leading-zero); font-size: 13px; color: var(--fg-soft);
  font-variant-numeric: tabular-nums; min-width: 22px; }
.fg-lesson-t { flex: 1; color: var(--fg-ink); }
.fg-lesson-d { font-size: 13px; color: var(--fg-soft); white-space: nowrap; }
.fg-guide-file { font-size: 14px; color: var(--fg-muted); }
.fg-prog-cta { margin-top: 40px; justify-content: flex-start; flex-wrap: wrap; }
/* O template deixava texto e foto lado a lado a 50% em qualquer largura.
   Abaixo dos 992px empilham: texto em cima, foto por baixo. */
@media (max-width: 991px) {
  .fg-prog-hero { display: flex; flex-direction: column; padding-bottom: 32px; }
  .fg-prog-hero .service-single_hero-content { width: 100%; padding: 24px 0 8px; }
  .fg-prog-hero .service-single_photo-half { position: relative; inset: auto; width: auto; height: 440px;
    margin: 16px 16px 0; border-radius: 18px; }
}
@media (max-width: 767px) {
  .fg-prog-hero .service-single_photo-half { height: 340px; margin: 12px 16px 0; }
}

/* ----------------------------------------------------------- legais */
.fg-legal-h1 { text-align: center; }
.fg-toc { padding: 22px 26px; border-radius: 16px; background: var(--fg-paper-2); }
.fg-toc ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 32px; font-size: 14px; line-height: 1.5; }
.fg-toc li { margin: 0 0 6px; break-inside: avoid; }
.fg-toc a { color: var(--fg-muted); text-decoration: none; }
.fg-toc a:hover { color: var(--fg-ink); text-decoration: underline; }
.fg-legal-text h2 { font-size: 21px; line-height: 1.3; letter-spacing: -.01em; margin-top: 18px; }
.fg-legal-text p { color: rgba(38, 34, 30, .82); }
.fg-legal-nav { padding-top: 28px; border-top: 1px solid var(--fg-line); }
.fg-legal-nav ul { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fg-legal-nav a { display: inline-block; font-size: 13px; padding: 7px 12px; border-radius: 999px;
  border: 1px solid var(--fg-line); color: var(--fg-ink); text-decoration: none; }
.fg-legal-nav a[aria-current="page"] { background: var(--fg-ink); color: var(--fg-paper); border-color: var(--fg-ink); }
@media (max-width: 600px) { .fg-toc ul { columns: 1; } }

/* ------------------------------------------- área de aulas e obrigado */
.fg-app-section { min-height: 62vh; }
.fg-app { display: flex; flex-direction: column; gap: 28px; max-width: 980px; margin: 0 auto; }
.fg-thanks { max-width: 720px; }
.fg-state { display: flex; flex-direction: column; gap: 20px; }
.fg-state[data-state="loading"] { align-items: flex-start; padding: 40px 0; }
.fg-spinner { width: 28px; height: 28px; border-radius: 50%; border: 3px solid var(--fg-line);
  border-top-color: var(--fg-ink); animation: fg-spin .8s linear infinite; }
@keyframes fg-spin { to { transform: rotate(360deg); } }
.fg-facts { display: grid; grid-template-columns: minmax(110px, auto) 1fr; gap: 12px 20px; margin: 4px 0;
  padding: 22px; border-radius: 16px; background: var(--fg-paper-2); }
.fg-facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--fg-soft); }
.fg-facts dd { margin: 0; color: var(--fg-ink); font-weight: 500; overflow-wrap: anywhere; }
.fg-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; }
.fg-note { max-width: 60ch; }
.fg-app-head { display: flex; flex-direction: column; gap: 14px; }
.fg-owned { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fg-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.fg-chip { font-size: 13px; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: var(--fg-ink);
  color: var(--fg-paper); }
.fg-wa { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 22px 24px;
  border-radius: 18px; background: var(--fg-green); color: var(--fg-paper); }
.fg-wa .icon { color: var(--fg-paper); }
.fg-wa h2 { color: var(--fg-paper); margin: 0 0 4px; }
.fg-wa p { color: rgba(236, 232, 225, .8); margin: 0; }
.fg-wa .button { background: var(--fg-paper); color: var(--fg-ink); }
@media (max-width: 767px) { .fg-wa { grid-template-columns: 1fr; } }
.fg-programs { display: flex; flex-direction: column; gap: 16px; }
.fg-prog { border-radius: 18px; background: var(--fg-paper-2); overflow: hidden; }
.fg-prog-head { display: flex; align-items: center; gap: 16px; width: 100%; padding: 18px 22px; text-align: left;
  background: none; border: 0; font: inherit; color: var(--fg-ink); cursor: pointer; }
.fg-prog-head img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex: none; }
.fg-prog-head .fg-prog-name { flex: 1; font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.fg-prog-head .fg-prog-meta { display: block; font-size: 13px; font-weight: 400; color: var(--fg-soft); margin-top: 2px; }
.fg-prog-head .icon { transition: transform .3s var(--fg-ease); }
.fg-prog.is-open .fg-prog-head .icon { transform: rotate(180deg); }
.fg-prog-body { padding: 0 22px 18px; }
.fg-prog.is-locked { background: transparent; border: 1px dashed rgba(38, 34, 30, .25); }
.fg-prog.is-locked .fg-prog-head { cursor: default; }
.fg-prog.is-locked img { filter: grayscale(1); opacity: .55; }
.fg-locked-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 0 22px 20px; }
.fg-lesson-list { list-style: none; margin: 0; padding: 0; }
.fg-lesson-list li { border-top: 1px solid var(--fg-line); }
.fg-lesson-btn { display: flex; align-items: center; gap: 14px; width: 100%; padding: 13px 2px; background: none;
  border: 0; font: inherit; text-align: left; color: var(--fg-ink); cursor: pointer; }
.fg-lesson-btn:hover { color: var(--fg-green); }
.fg-lesson-btn .n { min-width: 24px; font-size: 13px; color: var(--fg-soft); font-variant-numeric: tabular-nums; }
.fg-lesson-btn .t { flex: 1; }
.fg-lesson-btn .d { font-size: 13px; color: var(--fg-soft); }
.fg-lesson-btn .icon { font-size: 16px; width: 16px; height: 16px; color: var(--fg-soft); }
.fg-files { margin-top: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
.fg-file { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; padding: 8px 12px; border-radius: 10px;
  background: var(--fg-paper); color: var(--fg-ink); text-decoration: none; }
.fg-file.is-soon { color: var(--fg-soft); }
.fg-extras { padding: 22px 24px; border-radius: 18px; border: 1px solid var(--fg-line); }
.fg-extras ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fg-extras li p { margin: 2px 0 0; font-size: 14px; color: var(--fg-muted); }
.fg-recover { margin-top: 12px; padding: 26px; border-radius: 18px; background: var(--fg-paper-2); }
.fg-recover h2 { margin: 0 0 6px; }
.fg-recover-form { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.fg-recover-form input { flex: 1 1 240px; padding: 0 16px; font: inherit; border-radius: 12px; border: 1px solid var(--fg-line);
  background: #fff; }
.fg-recover-msg { margin: 10px 0 0; color: var(--fg-muted); min-height: 1em; }
.fg-player { position: fixed; inset: 0; z-index: 1500; display: flex; align-items: center; justify-content: center;
  padding: 20px; background: rgba(38, 34, 30, .78); }
.fg-player-box { position: relative; width: 100%; max-width: 960px; max-height: 92vh; overflow: auto; padding: 26px;
  border-radius: 20px; background: var(--fg-paper-3); }
.fg-player-box h2 { margin: 0 40px 16px 0; }
.fg-player-close { position: absolute; top: 12px; right: 14px; width: 40px; height: 40px; border-radius: 50%;
  background: var(--fg-paper); font-size: 26px; line-height: 1; color: var(--fg-ink); }
.fg-player-body iframe, .fg-player-body video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0;
  border-radius: 12px; background: #000; }
.fg-empty { padding: 34px; border-radius: 14px; background: var(--fg-paper-2); text-align: center; color: var(--fg-muted); }

/* ----------------------------------------------------------- rodapé */
.footer_section-dark.fg-no-cta .footer_bg { height: 340px; }
.footer_section-dark.fg-no-cta .fg-footer { border-top: 0; padding-top: 24px; }
.fg-footer { position: relative; z-index: 1; display: grid; gap: 44px 32px;
  grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.35fr);
  padding: 64px 0 56px; border-top: 1px solid rgba(236, 232, 225, .14); color: rgba(236, 232, 225, .72); }
.fg-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.fg-footer li { margin: 0; line-height: 1.45; }
.fg-footer .footer_col-title { margin: 0 0 18px; color: var(--fg-paper); }
.fg-footer .footer_link { font-size: 15px; text-decoration: none; overflow-wrap: anywhere; }
.fg-footer .footer_link:hover, .fg-footer .footer_link:focus-visible { color: var(--fg-paper); text-decoration: underline;
  text-underline-offset: 3px; }
.fg-foot-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-right: 12px; }
.fg-foot-logo img { display: block; height: 26px; width: auto; }
.fg-foot-blurb { margin: 0; font-size: 15px; line-height: 1.6; color: rgba(236, 232, 225, .78); max-width: 38ch; }
.fg-foot-fine { display: block; margin: 4px 0 0; font-size: 13px; line-height: 1.55; color: rgba(236, 232, 225, .55); }
.fg-foot-brand .fg-foot-fine { max-width: 40ch; margin: 0; }
.fg-foot-h2 { margin-top: 30px !important; }
.fg-foot-address { font-style: normal; font-size: 14px; line-height: 1.7; color: rgba(236, 232, 225, .72); }
.fg-lang-dark { border-color: rgba(236, 232, 225, .22); }
.fg-lang-dark a { color: rgba(236, 232, 225, .62); }
.fg-lang-dark a:hover { color: var(--fg-paper); }
.fg-lang-dark a.is-active { background: var(--fg-paper); color: var(--fg-ink); }
.fg-wordmark.footer_wordmark { position: relative; z-index: 1; font-size: clamp(54px, 14.6vw, 214px); letter-spacing: -.055em;
  white-space: nowrap; overflow: hidden; margin-bottom: 36px; line-height: 1.12; padding-bottom: .04em; opacity: .92; }
.fg-foot-meta { display: grid !important; grid-template-columns: 1fr auto; gap: 14px 24px; align-items: center;
  padding: 24px 0 8px; border-top: 1px solid rgba(236, 232, 225, .14); }
.fg-foot-copy { margin: 0; }
.fg-foot-meta-links { display: flex; align-items: center; gap: 10px 22px; flex-wrap: wrap; justify-content: flex-end; }
.fg-foot-meta-links a { font-size: 14px; color: rgba(236, 232, 225, .78); text-decoration: none; }
.fg-foot-meta-links a:hover { color: var(--fg-paper); text-decoration: underline; text-underline-offset: 3px; }
.fg-complaints { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px;
  border: 1px solid rgba(236, 232, 225, .3); }
.fg-complaints:hover { border-color: var(--fg-paper); text-decoration: none !important; }
.fg-foot-pay { grid-column: 1 / -1; margin: 0; }
@media (max-width: 1199px) {
  .fg-footer { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fg-foot-brand { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 14px 32px; }
  .fg-foot-brand .fg-foot-logo, .fg-foot-brand .fg-foot-blurb, .fg-foot-brand .fg-foot-fine { grid-column: 1; }
  .fg-foot-brand .fg-lang { grid-column: 2; grid-row: 1; }
  .fg-foot-contact { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px;
    padding-top: 28px; border-top: 1px solid rgba(236, 232, 225, .12); }
  .fg-foot-contact > h2:first-child, .fg-foot-contact > ul { grid-column: 1; }
  .fg-foot-contact > .fg-foot-h2, .fg-foot-contact > address { grid-column: 2; }
  .fg-foot-contact > .fg-foot-h2 { grid-row: 1; margin-top: 0 !important; }
  .fg-foot-contact > address { grid-row: 2; }
}
@media (max-width: 767px) {
  .fg-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding: 48px 0 40px; }
  .fg-foot-brand { display: flex; }
  .fg-footer nav.fg-foot-col:nth-of-type(3) { grid-column: 1 / -1; }
  .fg-footer nav.fg-foot-col:nth-of-type(3) ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 20px; }
  .fg-foot-contact { grid-template-columns: 1fr; gap: 0; }
  .fg-foot-contact > .fg-foot-h2, .fg-foot-contact > address { grid-column: 1; grid-row: auto; }
  .fg-foot-contact > .fg-foot-h2 { margin-top: 28px !important; }
  .fg-foot-meta { grid-template-columns: 1fr; }
  .fg-foot-meta-links { justify-content: flex-start; }
  .fg-wordmark.footer_wordmark { margin-bottom: 24px; }
}
@media (max-width: 380px) {
  .fg-footer { grid-template-columns: 1fr; }
  .fg-footer nav.fg-foot-col:nth-of-type(3) ul { grid-template-columns: 1fr; }
}

/* -------------------------------------------------- aviso de cookies */
.fg-cookie { position: fixed; z-index: 1800; left: 20px; bottom: 20px; width: min(440px, calc(100vw - 40px));
  padding: 22px; border-radius: 18px; background: var(--fg-ink); color: var(--fg-paper);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .28); font-size: 14px; line-height: 1.55; }
.fg-cookie-title { margin: 0 0 6px; font-weight: 600; font-size: 16px; }
.fg-cookie-text { margin: 0 0 16px; color: rgba(236, 232, 225, .8); }
.fg-cookie-text a { color: var(--fg-paper); text-decoration: underline; text-underline-offset: 3px; }
.fg-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-ck-btn { flex: 1 1 auto; padding: 11px 16px; border-radius: 999px; font-size: 14px; font-weight: 600;
  background: transparent; color: var(--fg-paper); border: 1px solid rgba(236, 232, 225, .4); }
.fg-ck-primary { background: var(--fg-paper); color: var(--fg-ink); border-color: var(--fg-paper); }
.fg-ck-btn:hover { filter: brightness(.94); }
.fg-ck-link { flex: 1 1 100%; padding: 6px; border: 0; text-decoration: underline; text-underline-offset: 3px;
  font-weight: 500; color: rgba(236, 232, 225, .85); }
.fg-cookie-prefs { display: flex; flex-direction: column; gap: 12px; margin: 0 0 16px; padding: 14px 0;
  border-top: 1px solid rgba(236, 232, 225, .16); border-bottom: 1px solid rgba(236, 232, 225, .16); }
.fg-ck-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.fg-ck-name { margin: 0; font-weight: 600; }
.fg-ck-desc { margin: 2px 0 0; font-size: 13px; color: rgba(236, 232, 225, .65); }
.fg-ck-on { font-size: 12px; white-space: nowrap; color: rgba(236, 232, 225, .65); }
.fg-switch { position: relative; flex: none; display: inline-block; width: 44px; height: 26px; cursor: pointer; }
.fg-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.fg-switch-ui { position: absolute; inset: 0; border-radius: 999px; background: rgba(236, 232, 225, .25); transition: background .2s; }
.fg-switch-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--fg-paper); transition: transform .2s var(--fg-ease); }
.fg-switch input:checked + .fg-switch-ui { background: var(--fg-green); }
.fg-switch input:checked + .fg-switch-ui::after { transform: translateX(18px); }
.fg-switch input:focus-visible + .fg-switch-ui { outline: 2px solid var(--fg-paper); outline-offset: 2px; }
@media (max-width: 520px) {
  .fg-cookie { left: 10px; right: 10px; bottom: 10px; width: auto; padding: 18px; }
}
.fg-toast { position: fixed; z-index: 1900; left: 50%; bottom: 24px; transform: translateX(-50%);
  width: max-content; max-width: calc(100vw - 32px); padding: 13px 20px; border-radius: 12px;
  background: var(--fg-ink); color: var(--fg-paper); font-size: 14px; line-height: 1.5;
  box-shadow: 0 14px 36px rgba(0, 0, 0, .25); }

/* ---------------------------------------------------------- animação */
/* Só o que está fora do ecrã ao carregar fica escondido, e só se o JS correu:
   sem JS, ou com movimento reduzido, tudo aparece de imediato. */
.fg-pre { opacity: 0; transform: translateY(22px); }
.fg-in { opacity: 1; transform: none; transition: opacity .8s var(--fg-ease), transform .8s var(--fg-ease); }
@media (prefers-reduced-motion: no-preference) {
  .fg-js .is-hero-a .hero_trust-row, .fg-js .is-hero-a .heading-style-h1, .fg-js .is-hero-a .hero_subcopy,
  .fg-js .is-hero-a .hero_cta-row, .fg-js .is-hero-a .hero_strip-photo {
    animation: fg-rise .9s var(--fg-ease) both; }
  .fg-js .is-hero-a .heading-style-h1 { animation-delay: .08s; }
  .fg-js .is-hero-a .hero_subcopy { animation-delay: .18s; }
  .fg-js .is-hero-a .hero_cta-row { animation-delay: .26s; }
  .fg-js .is-hero-a .hero_strip-photo { animation-delay: .34s; }
  .fg-js .is-hero-a .hero_strip-photo:nth-child(2) { animation-delay: .42s; }
  .fg-js .is-hero-a .hero_strip-photo:nth-child(3) { animation-delay: .5s; }
}
@keyframes fg-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .logo-marquee_list, .fg-stats .stats_row { animation: none; }
  .fg-pre { opacity: 1; transform: none; }
  .button .button_text, .fg-slider .services_slide, .accordion_block { transition: none; }
}
