/* ==========================================================================
   ANANDJIRA — estilo público (inspirado no template Welowe)
   As cores principais vêm do painel (Definições → Aparência) via :root no <head>.
   ========================================================================== */

:root {
  --primary: #E36955;
  --dark: #1E2436;
  --accent: #E9C138;
  --soft: #F3F0EC;
  --text: #5E6270;
  --heading: var(--ink);
  --white: #fff;
  --bg: #fff;
  --surface: #fff;
  --ink: var(--dark);
  --input: #fbfaf8;
  --border: #E2DCD5;
  --primary-soft: color-mix(in srgb, var(--primary) 12%, white);
  --dark-2: color-mix(in srgb, var(--dark) 88%, black);
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hand: "Gloria Hallelujah", cursive;
  --container: 1240px;
  --radius: 6px;
  --radius-lg: 14px;
  --shadow: 0 10px 30px rgba(30, 36, 54, .08);
  --shadow-lg: 0 24px 60px rgba(30, 36, 54, .14);
  --ease: cubic-bezier(.4, 0, .2, 1);
  --header-h: 88px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.7; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: var(--ink); }
h1, h2, h3, h4 { color: var(--heading); line-height: 1.25; margin: 0 0 .6em; font-weight: 700; letter-spacing: -.015em; text-wrap: balance; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: var(--ink); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 55%, transparent); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: 8px; z-index: 999; background: var(--dark); color: #fff; padding: 10px 16px; border-radius: var(--radius); }
.skip-link:focus { left: 8px; color: #fff; }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.muted { color: #9a9ca5; font-size: .9rem; }
.ico { width: 1.1em; height: 1.1em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.15em; }

.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.container--narrow { width: min(100% - 40px, 860px); }

.section { padding: clamp(52px, 7vw, 92px) 0; position: relative; }
.section--tight { padding: clamp(40px, 6vw, 64px) 0; }
.section--soft { background: var(--soft); }
.section-head { max-width: 680px; margin: 0 auto clamp(28px, 4vw, 46px); text-align: center; }
.section-head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; text-align: left; }
.section-head--row .section-title { margin-bottom: 0; }
.section-title { font-size: clamp(1.8rem, 3.6vw, 2.75rem); font-weight: 800; }
.section-title--sm { font-size: clamp(1.35rem, 2.4vw, 1.75rem); margin-top: 2.2rem; }
.lead { font-size: 1.12rem; color: var(--ink); }

.kicker { display: inline-flex; align-items: center; gap: 10px; color: var(--primary); font-weight: 600; font-size: .95rem; margin-bottom: .8rem; font-family: var(--hand); letter-spacing: .01em; }
.kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.section-head .kicker::after { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.section-head--row .kicker::after { display: none; }
.kicker--light { color: var(--accent); }
.kicker--hand { font-size: 1.05rem; }

/* ---------- Botões ---------- */
.btn { --b: var(--primary); display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 28px; border-radius: var(--radius); border: 2px solid var(--b); background: var(--b); color: #fff; font-weight: 600; font-size: .98rem; line-height: 1.2; white-space: nowrap; transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s, box-shadow .25s; }
.btn:hover { color: #fff; background: var(--dark); border-color: var(--ink); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(30, 36, 54, .18); }
.btn--sm { padding: 10px 18px; font-size: .9rem; }
.btn--block { width: 100%; }
.btn--dark { --b: var(--dark); }
.btn--dark:hover { background: var(--primary); border-color: var(--primary); }
.btn--white { --b: #fff; color: var(--primary); }
.btn--white:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn--outline { background: transparent; color: var(--ink); border-color: var(--border); }
.btn--outline:hover { background: var(--primary); border-color: var(--primary); }
.btn--ghost-light { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.btn--ghost-light:hover { background: var(--surface); color: var(--ink); border-color: #fff; }
.btn--whatsapp { --b: #25D366; }
.link-more { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); font-size: .95rem; }
.link-more .ico { transition: transform .25s var(--ease); color: var(--primary); }
.link-more:hover { color: var(--primary); }
.link-more:hover .ico, a:hover > .link-more .ico { transform: translateX(4px); }
.icon-btn { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--soft); color: var(--ink); display: inline-grid; place-items: center; transition: background .2s, color .2s; }
.icon-btn:hover { background: var(--primary); color: #fff; }

/* ---------- Topbar ---------- */
.topbar { background: var(--dark); color: #cfd2da; font-size: .85rem; }
.topbar__in { display: flex; justify-content: space-between; align-items: center; min-height: 44px; gap: 16px; }
.topbar__info { display: flex; gap: 26px; flex-wrap: wrap; }
.topbar__info a, .topbar__info span { color: inherit; display: inline-flex; align-items: center; gap: 8px; }
.topbar__info .ico { color: var(--primary); }
.topbar__info a:hover { color: #fff; }
.topbar__social { display: flex; gap: 6px; }
.topbar__social a { width: 30px; height: 30px; display: grid; place-items: center; color: #cfd2da; border-radius: 50%; }
.topbar__social a:hover { background: var(--primary); color: #fff; }

/* ---------- Cabeçalho ---------- */
.header { position: sticky; top: 0; z-index: 100; background: var(--surface); box-shadow: 0 1px 0 var(--border); transition: box-shadow .3s; }
.header.is-scrolled { box-shadow: 0 8px 30px rgba(30, 36, 54, .1); }
.header__in { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); }
.brand { display: flex; align-items: center; gap: 12px; color: var(--ink); flex: none; }
.brand img { width: 56px; height: 56px; object-fit: contain; }
.brand__txt { display: flex; flex-direction: column; line-height: 1.1; }
.brand__txt small { font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; color: var(--text); font-weight: 600; }
.brand__txt strong { font-size: 1.35rem; font-weight: 800; letter-spacing: .02em; color: var(--ink); }
.brand:hover strong { color: var(--primary); }

.nav { margin-left: auto; }
.nav__list { list-style: none; display: flex; align-items: center; gap: 2px; }
.nav__item { position: relative; }
.nav__link { display: flex; align-items: center; gap: 6px; white-space: nowrap; padding: 30px 14px; color: var(--ink); font-weight: 600; font-size: .95rem; position: relative; }
.nav__link::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 22px; height: 2px; background: var(--primary); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav__item:hover > .nav__link, .nav__item.is-active > .nav__link { color: var(--primary); }
.nav__item:hover > .nav__link::after, .nav__item.is-active > .nav__link::after { transform: scaleX(1); }
.nav__caret { width: 14px; height: 14px; transition: transform .25s; }
.nav__item:hover .nav__caret { transform: rotate(180deg); }
.nav__toggle { display: none; }
.nav__mobile-extra { display: none; }

.sub { position: absolute; top: 100%; left: 0; min-width: 290px; background: var(--surface); border-top: 3px solid var(--primary); border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow-lg); padding: 12px; opacity: 0; visibility: hidden; transform: translateY(12px); transition: all .25s var(--ease); z-index: 10; }
.nav__item:hover > .sub, .nav__item.is-open > .sub, .nav__item:focus-within > .sub { opacity: 1; visibility: visible; transform: none; }
.sub__link { display: block; padding: 10px 14px; border-radius: var(--radius); color: var(--ink); }
.sub__link strong { display: block; font-weight: 600; font-size: .95rem; }
.sub__link small { display: block; color: var(--text); font-size: .8rem; line-height: 1.4; }
.sub__link:hover { background: var(--soft); color: var(--primary); }
.sub__link:hover strong { color: var(--primary); }
.sub--mega { left: 50%; transform: translate(-50%, 12px); width: min(640px, 92vw); padding: 20px; }
.nav__item:hover > .sub--mega, .nav__item.is-open > .sub--mega, .nav__item:focus-within > .sub--mega { transform: translate(-50%, 0); }
.sub__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.sub__card { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: var(--radius); color: var(--ink); font-weight: 600; font-size: .93rem; line-height: 1.3; }
.sub__card:hover { background: var(--soft); color: var(--primary); }
.sub__ico { width: 40px; height: 40px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.sub__more { display: flex; align-items: center; gap: 8px; justify-content: center; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); font-weight: 600; font-size: .9rem; }
.sub__cols { display: grid; grid-template-columns: 1.2fr 1fr; gap: 20px; }
.sub__title { font-family: var(--hand); color: var(--primary); margin: 0 0 6px; padding-left: 14px; }
.sub__col .sub__link { padding: 8px 14px; font-weight: 600; font-size: .92rem; }

.header__actions { display: flex; align-items: center; gap: 12px; }
.burger { display: none; width: 46px; height: 46px; border: 0; background: var(--dark); border-radius: var(--radius); padding: 13px 12px; flex-direction: column; justify-content: space-between; }
.burger span { display: block; height: 2px; background: var(--surface); border-radius: 2px; transition: transform .3s, opacity .3s; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Pesquisa ---------- */
.search-modal { position: fixed; inset: 0; z-index: 300; background: rgba(30, 36, 54, .92); display: grid; place-items: start center; padding-top: 18vh; }
.search-modal[hidden] { display: none; }
.search-modal__box { width: min(92vw, 720px); display: flex; align-items: center; gap: 14px; background: var(--surface); border-radius: 60px; padding: 8px 8px 8px 26px; box-shadow: var(--shadow-lg); }
.search-modal__box > .ico { color: var(--primary); width: 22px; height: 22px; }
.search-modal__box input { flex: 1; border: 0; outline: 0; font-size: 1.15rem; padding: 12px 0; background: none; }

/* ---------- Hero (slider) ---------- */
.hero { position: relative; min-height: clamp(560px, 82vh, 780px); background: var(--dark); overflow: hidden; display: grid; }
.hero__slide { grid-area: 1 / 1; position: relative; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity 1s var(--ease), visibility 1s; }
.hero__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero__bg { position: absolute; inset: 0; transform: scale(1.08); transition: transform 7s linear; }
.hero__bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__slide.is-active .hero__bg { transform: scale(1); }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 24, 38, .9) 0%, rgba(20, 24, 38, .65) 45%, rgba(20, 24, 38, .15) 100%); }
.hero__content { position: relative; z-index: 2; padding: 90px 0 150px; color: #fff; max-width: var(--container); }
.hero__content > * { max-width: 700px; }
.hero__title { color: #fff; font-size: clamp(2.3rem, 5.6vw, 4.2rem); font-weight: 800; line-height: 1.08; margin-bottom: 22px; }
.hero__text { font-size: clamp(1rem, 1.6vw, 1.15rem); color: rgba(255, 255, 255, .86); max-width: 620px; margin-bottom: 34px; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__slide.is-active .hero__content > * { animation: heroIn .9s var(--ease) both; }
.hero__slide.is-active .hero__content > *:nth-child(2) { animation-delay: .12s; }
.hero__slide.is-active .hero__content > *:nth-child(3) { animation-delay: .24s; }
.hero__slide.is-active .hero__content > *:nth-child(4) { animation-delay: .36s; }
@keyframes heroIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
.hero__nav { position: absolute; left: 0; right: 0; bottom: 110px; z-index: 3; display: flex; align-items: center; gap: 16px; }
.hero__arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .4); background: transparent; color: #fff; display: grid; place-items: center; transition: background .2s, border-color .2s; }
.hero__arrow:hover { background: var(--primary); border-color: var(--primary); }
.hero__dots { display: flex; gap: 8px; }
.hero__dots button { width: 10px; height: 10px; border-radius: 10px; border: 0; padding: 0; background: rgba(255, 255, 255, .45); transition: width .3s, background .3s; }
.hero__dots button.is-active { width: 34px; background: var(--primary); }

/* ---------- Cartões sobre o hero ---------- */
.feature-cards { position: relative; z-index: 5; margin-top: -80px; }
.feature-cards__grid { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--surface); box-shadow: var(--shadow-lg); border-radius: var(--radius-lg); overflow: hidden; }
.feature-card { padding: 34px 28px; color: var(--text); border-right: 1px solid var(--border); position: relative; transition: background .3s var(--ease), color .3s; }
.feature-card:last-child { border-right: 0; }
.feature-card::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--primary); transform: scaleX(0); transition: transform .35s var(--ease); }
.feature-card:hover { background: var(--dark); color: #cfd2da; }
.feature-card:hover::before { transform: scaleX(1); }
.feature-card:hover h3, .feature-card:hover .link-more { color: #fff; }
.feature-card__ico { width: 62px; height: 62px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; margin-bottom: 18px; transition: background .3s, color .3s; }
.feature-card__ico .ico { width: 28px; height: 28px; }
.feature-card:hover .feature-card__ico { background: var(--primary); color: #fff; }
.feature-card h3 { font-size: 1.2rem; margin-bottom: 8px; transition: color .3s; }
.feature-card p { font-size: .94rem; margin-bottom: 14px; }

/* ---------- Sobre ---------- */
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 90px); align-items: center; }
.about__media { position: relative; padding: 0 40px 50px 0; }
.about__img1 { width: 100%; height: auto; aspect-ratio: 5 / 5.4; object-fit: cover; border-radius: var(--radius-lg); }
.about__img2 { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-lg); border: 8px solid var(--bg); box-shadow: var(--shadow); }
.about__media::before { content: ""; position: absolute; left: -24px; top: -24px; width: 140px; height: 140px; background-image: radial-gradient(var(--primary) 2px, transparent 2px); background-size: 16px 16px; opacity: .35; z-index: -1; }
.about__badge { position: absolute; left: -10px; bottom: 80px; background: var(--primary); color: #fff; border-radius: var(--radius-lg); padding: 20px 24px; display: flex; align-items: center; gap: 12px; box-shadow: var(--shadow-lg); animation: float 5s ease-in-out infinite; }
.about__badge strong { font-size: 2.6rem; font-weight: 800; line-height: 1; }
.about__badge span { font-size: .85rem; line-height: 1.3; font-weight: 500; }
@keyframes float { 50% { transform: translateY(-10px); } }
.about__foot { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 30px; }
.about__call { display: flex; align-items: center; gap: 14px; color: var(--ink); }
.about__call > span:first-child { width: 52px; height: 52px; border-radius: 50%; border: 2px dashed var(--primary); color: var(--primary); display: grid; place-items: center; }
.about__call small { display: block; font-size: .8rem; color: var(--text); }
.about__call strong { font-size: 1.05rem; }

.check-list { list-style: none; display: grid; gap: 10px; margin: 20px 0; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; color: var(--ink); font-weight: 500; }
.check-list .ico { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--primary); color: #fff; stroke-width: 3; margin-top: 2px; }
.check-list--2 { grid-template-columns: 1fr 1fr; }
.check-list--boxed li { background: var(--soft); padding: 14px 16px; border-radius: var(--radius); }

/* ---------- Áreas ---------- */
.areas__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.area-card { position: relative; background: var(--surface); border-radius: var(--radius-lg); padding: 36px 32px; color: var(--text); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease); isolation: isolate; }
.area-card::before { content: ""; position: absolute; inset: auto 0 0 0; height: 0; background: var(--dark); transition: height .45s var(--ease); z-index: -1; }
.area-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); color: #cfd2da; }
.area-card:hover::before { height: 100%; }
.area-card:hover h3, .area-card:hover .link-more { color: #fff; }
.area-card__num { position: absolute; right: 24px; top: 18px; font-size: 3.4rem; font-weight: 800; color: transparent; -webkit-text-stroke: 1px var(--border); line-height: 1; }
.area-card__ico { width: 70px; height: 70px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; margin-bottom: 22px; transition: background .3s, color .3s; }
.area-card__ico .ico { width: 30px; height: 30px; }
.area-card:hover .area-card__ico { background: var(--primary); color: #fff; }
.area-card h3 { font-size: 1.3rem; transition: color .3s; }
.area-card p { font-size: .95rem; }

/* ---------- Destaque ---------- */
.feature__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.feature__media { position: relative; }
.feature__media > img:first-child { width: 100%; height: auto; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--radius-lg); }
.feature__seal { position: absolute; left: -36px; bottom: -36px; width: 150px; aspect-ratio: 1; object-fit: contain; background: transparent; border-radius: 50%; padding: 0; box-shadow: 0 18px 40px rgba(30, 36, 54, .22); animation: spin 30s linear infinite; }
:root[data-theme="dark"] .feature__seal { filter: none; box-shadow: 0 18px 44px rgba(0, 0, 0, .6); }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Números ---------- */
.stats { background: var(--dark) url("../img/map-dots.svg") center / cover no-repeat; padding: clamp(60px, 8vw, 90px) 0; color: #cfd2da; }
.stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.stat { text-align: center; padding: 10px; position: relative; }
.stat + .stat::before { content: ""; position: absolute; left: -12px; top: 15%; bottom: 15%; width: 1px; background: rgba(255, 255, 255, .12); }
.stat__ico { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .35); color: var(--accent); display: grid; place-items: center; }
.stat__ico .ico { width: 28px; height: 28px; }
.stat__num { display: block; font-size: clamp(2.4rem, 4.6vw, 3.4rem); font-weight: 800; color: #fff; line-height: 1.1; }
.stat__label { font-weight: 500; }

/* ---------- Cartões ---------- */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.card { background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 0 0 1px var(--border); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.post-card, .project-card { display: flex; flex-direction: column; }
.post-card__img, .project-card__img { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10.5; background: var(--soft); }
.post-card__img img, .project-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .post-card__img img, .card:hover .project-card__img img { transform: scale(1.07); }
.post-card__body, .project-card__body { padding: 26px 28px 30px; display: flex; flex-direction: column; flex: 1; }
.post-card__body h3, .project-card__body h3 { font-size: 1.18rem; line-height: 1.35; }
.post-card__body h3 a, .project-card__body h3 a { color: var(--ink); }
.post-card__body h3 a:hover, .project-card__body h3 a:hover { color: var(--primary); }
.post-card__body p, .project-card__body p { font-size: .94rem; flex: 1; }
.post-card__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .85rem; margin-bottom: 10px; }
.post-card__meta span { display: inline-flex; align-items: center; gap: 6px; }
.post-card__meta .ico { color: var(--primary); }
.date-badge { position: absolute; left: 20px; bottom: 0; background: var(--primary); color: #fff; text-align: center; padding: 8px 12px 6px; border-radius: var(--radius) var(--radius) 0 0; font-size: .78rem; text-transform: uppercase; font-weight: 600; line-height: 1.1; }
.date-badge strong { display: block; font-size: 1.4rem; }
.pill { position: absolute; top: 16px; left: 16px; padding: 6px 12px; border-radius: 30px; font-size: .78rem; font-weight: 700; color: #fff; background: var(--dark); display: inline-flex; align-items: center; gap: 6px; }
.pill--live { background: #1f9d55; }
.pill--live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--surface); animation: pulse 1.6s infinite; }
.side-box .pill { position: static; margin-bottom: 12px; }
@keyframes pulse { 50% { opacity: .3; } }

/* ---------- Porquê apoiar ---------- */
.why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.why__media img { width: 100%; height: auto; aspect-ratio: 1 / 1.05; object-fit: cover; border-radius: var(--radius-lg); }
.why__list { display: grid; gap: 22px; margin: 26px 0 34px; }
.why__item { display: flex; gap: 18px; }
.why__ico { width: 56px; height: 56px; flex: none; border-radius: var(--radius); background: var(--surface); color: var(--primary); display: grid; place-items: center; box-shadow: var(--shadow); }
.why__ico .ico { width: 26px; height: 26px; }
.why__item h3 { font-size: 1.12rem; margin-bottom: 4px; }
.why__item p { font-size: .95rem; margin: 0; }

/* ---------- Eventos ---------- */
.event-list { display: grid; gap: 20px; }
.event-row { display: grid; grid-template-columns: 220px 96px 1fr auto; gap: 26px; align-items: center; background: var(--surface); border-radius: var(--radius-lg); padding: 16px; box-shadow: 0 0 0 1px var(--border); transition: box-shadow .3s, transform .3s; }
.event-row:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.event-row__img { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; }
.event-row__img img { width: 100%; height: 100%; object-fit: cover; }
.event-row__date { text-align: center; border-right: 1px solid var(--border); padding-right: 20px; }
.event-row__date strong { display: block; font-size: 2.6rem; color: var(--primary); line-height: 1; font-weight: 800; }
.event-row__date span { font-size: .85rem; text-transform: uppercase; font-weight: 600; color: var(--ink); }
.event-row__body h3 { font-size: 1.2rem; margin-bottom: 6px; }
.event-row__body h3 a { color: var(--ink); }
.event-row__body p { margin: 0; font-size: .94rem; }
.event-row__btn { margin-right: 10px; }
.event-list--past .event-row { opacity: .85; }

/* ---------- Testemunhos ---------- */
.quote-card { margin: 0; background: var(--soft); border-radius: var(--radius-lg); padding: 34px; position: relative; }
.quote-card__mark { width: 46px; height: 46px; color: var(--primary); opacity: .9; margin-bottom: 12px; }
.quote-card blockquote { margin: 0 0 22px; color: var(--ink); font-size: 1.04rem; font-style: italic; }
.quote-card figcaption { display: flex; align-items: center; gap: 12px; }
.quote-card figcaption img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.quote-card figcaption strong { display: block; color: var(--ink); }
.quote-card figcaption small { font-size: .85rem; }

/* ---------- Parceiros (marquee) ---------- */
.partners { padding: 60px 0; border-top: 1px solid var(--border); }
.partners__title { text-align: center; font-weight: 600; color: var(--ink); margin-bottom: 30px; }
.marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marquee__track { display: flex; gap: 60px; width: max-content; animation: marquee 40s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__item { display: grid; place-items: center; height: 80px; }
.marquee__item img { max-height: 70px; max-width: 170px; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s; }
.marquee__item:hover img { filter: none; opacity: 1; }
@keyframes marquee { to { transform: translateX(calc(-50% - 30px)); } }

/* ---------- Contacto (teaser) ---------- */
.contact-teaser { padding-top: 0; }
.contact-teaser__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.contact-teaser__box { background: var(--primary); color: rgba(255, 255, 255, .9); border-radius: var(--radius-lg); padding: clamp(32px, 5vw, 56px); position: relative; overflow: hidden; }
.contact-teaser__box::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; border: 40px solid rgba(255, 255, 255, .08); }
.contact-teaser__box h2 { color: #fff; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.contact-teaser__box--light { background: var(--soft); color: var(--text); }
.contact-teaser__box--light h2 { color: var(--ink); }
.contact-teaser__box--light::after { border-color: rgba(227, 105, 85, .07); }
.contact-teaser__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 10px; }

/* ---------- Cabeçalho das páginas interiores ---------- */
.page-hero { position: relative; background: var(--dark); color: #fff; overflow: hidden; padding: clamp(80px, 11vw, 140px) 0 clamp(60px, 8vw, 100px); isolation: isolate; }
.page-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.page-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 24, 38, .93), rgba(20, 24, 38, .7)); z-index: -1; }
.page-hero::after { content: ""; position: absolute; right: 0; bottom: 0; width: 45%; height: 100%; background: url("../img/map-dots-plain.svg") right center / contain no-repeat; opacity: .5; z-index: -1; }
.page-hero h1 { color: #fff; font-size: clamp(2rem, 4.8vw, 3.4rem); font-weight: 800; max-width: 860px; }
.page-hero__lead { color: rgba(255, 255, 255, .82); font-size: 1.08rem; max-width: 720px; }
.crumbs { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 22px; font-size: .92rem; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .12); padding: 8px 18px; border-radius: 40px; width: fit-content; max-width: 100%; }
.crumbs a { color: #fff; }
.crumbs a:hover { color: var(--accent); }
.crumbs span[aria-current] { color: var(--accent); }
.crumbs span[aria-hidden] { opacity: .5; }

/* ---------- Faixa de apelo ---------- */
.cta-band { background: var(--primary); padding: clamp(50px, 7vw, 80px) 0; color: rgba(255, 255, 255, .9); position: relative; overflow: hidden; }
.cta-band::before { content: ""; position: absolute; inset: 0; background: url("../img/map-dots.svg") center / cover no-repeat; opacity: .25; }
.cta-band__in { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.cta-band h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.4rem); margin-bottom: 8px; }
.cta-band p { margin: 0; max-width: 640px; }
.cta-band .kicker { color: #fff; }
.cta-band__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Detalhe (notícia, projecto, área) ---------- */
.detail { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(30px, 5vw, 60px); align-items: start; }
.detail__img { width: 100%; height: auto; border-radius: var(--radius-lg); margin-bottom: 30px; aspect-ratio: 16 / 9; object-fit: cover; }
.detail__side { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 24px; }
.side-box { background: var(--soft); border-radius: var(--radius-lg); padding: 28px; }
.side-box h3 { font-size: 1.15rem; margin-bottom: 14px; }
.side-box--dark { background: var(--dark); color: #cfd2da; }
.side-box--dark h3 { color: #fff; }
.side-box--dark .btn + .btn { margin-top: 10px; }
.side-box__ico { width: 56px; height: 56px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; margin-bottom: 16px; }
.side-box__ico .ico { width: 26px; height: 26px; }
.side-links { list-style: none; display: grid; gap: 4px; }
.side-links a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius); background: var(--surface); color: var(--ink); font-weight: 500; font-size: .94rem; }
.side-links a .ico { color: var(--primary); }
.side-links a:hover { background: var(--primary); color: #fff; }
.side-links a:hover .ico { color: #fff; }
.facts { margin: 0 0 18px; display: grid; gap: 12px; }
.facts div { display: grid; gap: 2px; padding-bottom: 12px; border-bottom: 1px dashed var(--border); }
.facts dt { display: flex; align-items: center; gap: 8px; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.facts dt .ico { color: var(--primary); }
.facts dd { margin: 0; color: var(--ink); font-weight: 600; }
.article-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: .92rem; margin-bottom: 22px; }
.article-meta span, .article-meta a { display: inline-flex; align-items: center; gap: 7px; }
.article-meta .ico { color: var(--primary); }
.mini-posts { list-style: none; display: grid; gap: 14px; }
.mini-posts a { display: flex; gap: 12px; align-items: center; color: var(--ink); }
.mini-posts img { width: 74px; height: 64px; object-fit: cover; border-radius: var(--radius); flex: none; }
.mini-posts strong { display: block; font-size: .9rem; line-height: 1.35; font-weight: 600; }
.mini-posts small { font-size: .8rem; color: var(--text); }
.mini-posts a:hover strong { color: var(--primary); }

.prose { color: var(--text); font-size: 1.04rem; }
.prose > *:first-child { margin-top: 0; }
.prose h2, .prose h3 { margin-top: 1.8em; }
.prose h2 { font-size: 1.6rem; }
.prose h3 { font-size: 1.3rem; }
.prose strong { color: var(--ink); }
.prose ul, .prose ol { padding-left: 1.3em; margin-bottom: 1.2em; }
.prose li { margin-bottom: .4em; }
.prose img { border-radius: var(--radius-lg); margin: 1.5em 0; }
.prose blockquote { margin: 1.6em 0; padding: 20px 26px; border-left: 4px solid var(--primary); background: var(--soft); border-radius: 0 var(--radius) var(--radius) 0; color: var(--ink); font-style: italic; }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; }
.prose th, .prose td { border: 1px solid var(--border); padding: 10px 12px; text-align: left; }
.prose iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius-lg); }

.video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; margin: 2rem 0; background: #000; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; margin-top: 1rem; }
.gallery a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius); position: relative; }
.gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.gallery a:hover img { transform: scale(1.08); }
.gallery--big { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.share { display: flex; align-items: center; gap: 10px; margin: 36px 0 26px; padding-top: 26px; border-top: 1px solid var(--border); font-weight: 600; color: var(--ink); }
.share a { width: 40px; height: 40px; border-radius: 50%; background: var(--soft); color: var(--ink); display: grid; place-items: center; }
.share a:hover { background: var(--primary); color: #fff; }
.prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.prevnext a { display: block; padding: 18px 20px; background: var(--soft); border-radius: var(--radius); color: var(--ink); }
.prevnext a small { display: flex; align-items: center; gap: 6px; color: var(--primary); font-weight: 600; margin-bottom: 4px; }
.prevnext a span { font-weight: 600; font-size: .95rem; line-height: 1.4; display: block; }
.prevnext__next { text-align: right; }
.prevnext__next small { justify-content: flex-end; }
.prevnext a:hover { background: var(--dark); color: #fff; }

.band { background: var(--dark); color: #cfd2da; padding: 30px 0; }
.band__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; text-align: center; }
.band__item strong { display: block; font-size: 2rem; color: #fff; font-weight: 800; line-height: 1.2; }
.band__item span { font-size: .9rem; }
.intervencoes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.intervencao { display: flex; gap: 16px; align-items: flex-start; background: var(--soft); border-radius: var(--radius); padding: 18px; }
.intervencao span { font-weight: 800; color: var(--primary); font-size: 1.3rem; line-height: 1.2; }
.intervencao p { margin: 0; color: var(--ink); font-weight: 500; }
.results { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin-bottom: 30px; }
.results__item { background: var(--primary); color: #fff; border-radius: var(--radius-lg); padding: 22px; }
.results__item strong { display: block; font-size: 2rem; font-weight: 800; line-height: 1.1; }
.results__item span { font-size: .9rem; opacity: .92; }

/* ---------- Listas de áreas ---------- */
.area-rows { display: grid; gap: clamp(40px, 6vw, 70px); }
.area-row { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(30px, 5vw, 60px); align-items: center; }
.area-row--rev .area-row__img { order: 2; }
.area-row__img { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4 / 3; display: block; background: var(--soft); }
.area-row__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.area-row:hover .area-row__img img { transform: scale(1.05); }
.area-row__num { font-family: var(--hand); color: var(--primary); }
.area-row h2 { display: flex; align-items: center; gap: 14px; font-size: clamp(1.5rem, 2.6vw, 2rem); margin-top: 6px; }
.area-row__ico { width: 54px; height: 54px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.area-row__ico .ico { width: 26px; height: 26px; }

/* ---------- Filtros / paginação ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 40px; }
.filter { padding: 10px 18px; border-radius: 40px; border: 1px solid var(--border); color: var(--ink); font-weight: 600; font-size: .9rem; display: inline-flex; gap: 8px; align-items: center; }
.filter span { background: var(--soft); border-radius: 20px; padding: 0 8px; font-size: .78rem; }
.filter:hover, .filter.is-active { background: var(--primary); border-color: var(--primary); color: #fff; }
.filter.is-active span, .filter:hover span { background: rgba(255, 255, 255, .25); }
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 50px; }
.pagination a, .pagination span { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--border); color: var(--ink); font-weight: 600; }
.pagination span[aria-current], .pagination a:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.empty { text-align: center; padding: 40px 20px; background: var(--soft); border-radius: var(--radius-lg); }

/* ---------- Institucional ---------- */
.mvv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.mvv__card { background: var(--surface); border-radius: var(--radius-lg); padding: 38px 32px; box-shadow: var(--shadow); }
.mvv__card--dark { background: var(--dark); color: #cfd2da; }
.mvv__card--dark h3 { color: #fff; }
.mvv__ico { width: 64px; height: 64px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; margin-bottom: 20px; }
.mvv__ico .ico { width: 28px; height: 28px; }
.mvv__card h3 { font-size: 1.4rem; }
.mvv__card .check-list li { font-size: .95rem; }
.chips-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.chip-card { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-radius: var(--radius); background: var(--soft); color: var(--ink); font-weight: 600; }
.chip-card span { width: 44px; height: 44px; border-radius: 50%; background: var(--surface); color: var(--primary); display: grid; place-items: center; flex: none; }
.chip-card:hover { background: var(--primary); color: #fff; }
.links-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.link-card { display: block; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 34px; color: var(--text); transition: transform .3s, box-shadow .3s, border-color .3s; }
.link-card > .ico { width: 40px; height: 40px; color: var(--primary); margin-bottom: 16px; }
.link-card h3 { font-size: 1.2rem; }
.link-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: transparent; color: var(--text); }

.timeline { list-style: none; position: relative; display: grid; gap: 30px; padding-left: 0; }
.timeline::before { content: ""; position: absolute; left: 60px; top: 10px; bottom: 10px; width: 2px; background: var(--border); }
.timeline__item { display: grid; grid-template-columns: 120px 1fr; gap: 24px; position: relative; }
.timeline__item::before { content: ""; position: absolute; left: 53px; top: 44px; width: 16px; height: 16px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 5px var(--primary-soft); }
.timeline__year { background: var(--dark); color: #fff; font-weight: 800; border-radius: var(--radius); text-align: center; padding: 6px; height: fit-content; font-size: 1.05rem; position: relative; z-index: 1; }
.timeline__item > div { background: var(--surface); border-radius: var(--radius-lg); padding: 22px 26px; box-shadow: 0 0 0 1px var(--border); }
.timeline__item h3 { font-size: 1.12rem; margin-bottom: 6px; }
.timeline__item p { margin: 0; }
.timeline--compact { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.timeline--compact::before, .timeline--compact .timeline__item::before { display: none; }
.timeline--compact .timeline__item { grid-template-columns: 1fr; gap: 0; }
.timeline--compact .timeline__year { width: fit-content; padding: 6px 16px; border-radius: var(--radius) var(--radius) 0 0; }
.timeline--compact .timeline__item > div { border-radius: 0 var(--radius-lg) var(--radius-lg) var(--radius-lg); }

.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 26px; }
.team-card { background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 0 0 1px var(--border); text-align: center; transition: transform .3s, box-shadow .3s; }
.team-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.team-card__img { aspect-ratio: 1 / 1.05; background: var(--soft); display: grid; place-items: center; overflow: hidden; }
.team-card__img img { width: 100%; height: 100%; object-fit: cover; }
.team-card__initials { font-size: 4rem; font-weight: 800; color: var(--primary); }
.team-card__body { padding: 22px; }
.team-card__body h3 { font-size: 1.12rem; margin-bottom: 2px; }
.team-card__role { color: var(--primary); font-weight: 600; font-size: .9rem; margin-bottom: 10px; }
.team-card__body p { font-size: .9rem; }

.dd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.dd-card { padding: 34px; }
.dd-card__title { display: flex; align-items: center; gap: 10px; font-size: 1.3rem; }
.dd-card__title .ico { color: var(--primary); }
.dl { margin: 0; display: grid; }
.dl div { display: grid; grid-template-columns: 180px 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--border); }
.dl dt { font-weight: 600; font-size: .9rem; }
.dl dd { margin: 0; color: var(--ink); font-weight: 600; }
.principles { display: grid; gap: 14px; margin-top: 20px; }
.principle { display: flex; gap: 14px; }
.principle > span { width: 36px; height: 36px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; flex: none; }
.principle h3 { font-size: 1.02rem; margin-bottom: 2px; }
.principle p { margin: 0; font-size: .94rem; }
.docs-group { display: flex; align-items: center; gap: 10px; font-size: 1.15rem; margin: 30px 0 14px; }
.docs-group .ico { color: var(--primary); }
.docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.doc { display: flex; align-items: center; gap: 16px; background: var(--surface); border-radius: var(--radius); padding: 16px 18px; color: var(--ink); box-shadow: 0 0 0 1px var(--border); transition: box-shadow .25s, transform .25s; }
.doc:hover { box-shadow: var(--shadow); transform: translateY(-2px); color: var(--ink); }
.doc__ext { width: 52px; height: 58px; border-radius: 6px; background: var(--primary); color: #fff; font-weight: 800; font-size: .78rem; display: grid; place-items: center; flex: none; }
.doc__body { flex: 1; display: grid; }
.doc__body strong { font-size: .96rem; line-height: 1.35; }
.doc__body small { color: var(--text); font-size: .82rem; }
.doc__dl { color: var(--primary); width: 22px; height: 22px; }
.logo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.logo-grid__item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); height: 110px; display: grid; place-items: center; padding: 16px; }
.logo-grid__item img { max-height: 70px; object-fit: contain; }
.notice { display: flex; align-items: center; gap: 24px; background: var(--soft); border-radius: var(--radius-lg); padding: 30px 34px; flex-wrap: wrap; }
.notice > .ico { width: 46px; height: 46px; color: var(--primary); }
.notice > div { flex: 1; min-width: 240px; }
.notice h3 { margin-bottom: 4px; font-size: 1.2rem; }
.notice p { margin: 0; }
.section--soft .notice { background: var(--surface); }
.partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.partner-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; text-align: center; color: var(--ink); display: grid; gap: 6px; transition: box-shadow .3s, transform .3s; }
.partner-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); color: var(--ink); }
.partner-card__logo { height: 100px; display: grid; place-items: center; }
.partner-card__logo img { max-height: 84px; max-width: 170px; object-fit: contain; }
.partner-card small { color: var(--text); font-size: .85rem; }
.albums { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.album { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4 / 3; display: block; }
.album img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.album::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 40%, rgba(20, 24, 38, .9)); }
.album__body { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; color: #fff; display: grid; }
.album__body strong { font-size: 1.15rem; }
.album__body small { display: flex; align-items: center; gap: 6px; opacity: .85; }
.album:hover img { transform: scale(1.06); }

/* ---------- Doações ---------- */
.donate { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(30px, 5vw, 60px); align-items: start; }
.donate__sub { font-size: 1.15rem; margin-top: 36px; }
.amounts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 24px 0 14px; }
.amount { padding: 16px 10px; border-radius: var(--radius); border: 2px solid var(--border); background: var(--surface); color: var(--ink); font-weight: 800; font-size: 1.15rem; transition: all .2s; }
.amount small { font-size: .75rem; font-weight: 600; color: var(--text); }
.amount:hover, .amount.is-active { border-color: var(--primary); background: var(--primary); color: #fff; }
.amount.is-active small, .amount:hover small { color: rgba(255, 255, 255, .85); }
.impact { display: flex; align-items: center; gap: 10px; background: var(--primary-soft); color: var(--ink); padding: 14px 18px; border-radius: var(--radius); font-weight: 600; }
.impact .ico { color: var(--primary); }
.usage { display: grid; gap: 14px; }
.usage__row { display: grid; grid-template-columns: 1.2fr 2fr 50px; gap: 14px; align-items: center; font-size: .94rem; color: var(--ink); }
.bar { height: 8px; background: var(--soft); border-radius: 8px; overflow: hidden; }
.bar i { display: block; height: 100%; width: var(--w); background: var(--primary); border-radius: 8px; }
.usage__row strong { text-align: right; }
.donate__methods { display: grid; gap: 20px; }
.pay-card { background: var(--surface); border-radius: var(--radius-lg); padding: 26px; box-shadow: var(--shadow); border-top: 4px solid var(--primary); }
.pay-card__head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.pay-card__head h3 { margin: 0; font-size: 1.15rem; }
.pay-card__head small { color: var(--primary); font-weight: 600; }
.pay-card__ico { width: 50px; height: 50px; border-radius: 50%; background: var(--dark); color: #fff; display: grid; place-items: center; }
.pay-card__ico--mpesa { background: #E30613; }
.pay-row { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--border); }
.pay-row span { font-size: .88rem; }
.pay-row strong { color: var(--ink); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1rem; word-break: break-all; }
.copy { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--soft); color: var(--ink); display: grid; place-items: center; transition: background .2s; }
.copy:hover, .copy.is-done { background: var(--primary); color: #fff; }
.pay-card__note { margin: 12px 0 0; font-size: .9rem; }
.pay-note { display: flex; gap: 10px; font-size: .9rem; margin: 0; }
.pay-note .ico { color: var(--primary); margin-top: 4px; }
.mini-card { background: var(--surface); border-radius: var(--radius-lg); padding: 30px; box-shadow: 0 0 0 1px var(--border); transition: box-shadow .3s, transform .3s; }
.section--soft .mini-card { box-shadow: none; }
.mini-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.mini-card > span { width: 56px; height: 56px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; margin-bottom: 16px; }
.mini-card > span .ico { width: 26px; height: 26px; }
.mini-card h3 { font-size: 1.15rem; }
.mini-card p { margin: 0; font-size: .95rem; }
.steps { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; counter-reset: s; }
.step { background: var(--surface); border-radius: var(--radius-lg); padding: 30px; position: relative; }
.step > span { width: 48px; height: 48px; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 800; font-size: 1.2rem; display: grid; place-items: center; margin-bottom: 16px; }
.step h3 { font-size: 1.1rem; }
.step p { margin: 0; font-size: .94rem; }
.faq { display: grid; gap: 12px; }
.faq__item { background: var(--surface); border-radius: var(--radius); box-shadow: 0 0 0 1px var(--border); }
.faq__item summary { list-style: none; cursor: pointer; padding: 18px 22px; font-weight: 600; color: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary .ico { color: var(--primary); transition: transform .25s; flex: none; }
.faq__item[open] summary .ico { transform: rotate(45deg); }
.faq__item p { padding: 0 22px 20px; margin: 0; }
.faq--compact { margin-top: 24px; }

/* ---------- Formulários ---------- */
.form-wrap { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 5vw, 60px); align-items: start; }
.form { padding: clamp(26px, 4vw, 40px); display: grid; gap: 16px; }
.form.card:hover { transform: none; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form__row:has(.tel-field) { grid-template-columns: 1fr 1.5fr; }
.form label { display: grid; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--ink); }
.form input:not([type=checkbox]):not(.hp), .form select, .form textarea { width: 100%; padding: 13px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--input); font-weight: 400; font-size: .98rem; transition: border-color .2s, box-shadow .2s, background .2s; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 0; border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 4px var(--primary-soft); }
.form textarea { resize: vertical; min-height: 110px; }
.form .check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.form .check input { margin-top: 5px; accent-color: var(--primary); width: 18px; height: 18px; }
.alert { display: flex; gap: 14px; padding: 16px 18px; border-radius: var(--radius); font-size: .95rem; }
.alert .ico { width: 24px; height: 24px; flex: none; margin-top: 2px; }
.alert--ok { background: #e8f6ee; color: #14633a; }
.alert--err { background: #fdecea; color: #a12b1c; }
.contact-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.contact-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 30px 24px; text-align: center; transition: box-shadow .3s, transform .3s; }
.contact-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.contact-card > span { width: 64px; height: 64px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; margin: 0 auto 16px; }
.contact-card > span .ico { width: 26px; height: 26px; }
.contact-card h3 { font-size: 1.1rem; margin-bottom: 6px; }
.contact-card p { margin: 0; color: var(--ink); word-break: break-word; }
.map { display: grid; gap: 16px; }
.map iframe, .map__ph { width: 100%; min-height: 420px; border: 0; border-radius: var(--radius-lg); background: var(--soft); }
.map__ph { display: grid; place-items: center; text-align: center; padding: 20px; }
.map__ph .ico { width: 48px; height: 48px; color: var(--primary); }
.logo-strip { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.logo-strip img { height: 46px; width: auto; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: .75; }
.search-inline { display: flex; gap: 10px; margin-bottom: 30px; }
.search-inline input { flex: 1; padding: 14px 18px; border: 1px solid var(--border); border-radius: var(--radius); }
.results-list { list-style: none; display: grid; gap: 14px; }
.results-list a { display: grid; gap: 4px; padding: 20px 22px; border-radius: var(--radius); background: var(--soft); color: var(--text); }
.results-list small { color: var(--primary); font-weight: 700; text-transform: uppercase; font-size: .75rem; letter-spacing: .08em; }
.results-list strong { color: var(--ink); font-size: 1.08rem; }
.results-list a:hover { background: var(--surface); box-shadow: var(--shadow); }
.notfound { text-align: center; }
.notfound__code { font-size: clamp(6rem, 18vw, 11rem); font-weight: 800; line-height: 1; color: var(--primary); margin: 0; }
.notfound .search-inline { max-width: 480px; margin: 26px auto; }

/* ---------- Rodapé (estilo Welowe) ---------- */
.footer { background: var(--dark); color: #c9ccd4; position: relative; }
.footer__main { position: relative; padding: clamp(70px, 9vw, 100px) 0 70px; }
.footer__main::before { content: ""; position: absolute; inset: 0; background: url("../img/map-dots.svg") center / 90% auto no-repeat; opacity: .55; pointer-events: none; }
.footer__grid { position: relative; display: grid; grid-template-columns: 1.15fr 1fr .8fr 1.25fr; gap: 50px; }
.footer__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #fff; }
.footer__brand img { width: 64px; height: 64px; object-fit: contain; background: var(--surface); border-radius: 50%; padding: 4px; }
.footer__brand span { display: flex; flex-direction: column; line-height: 1.1; }
.footer__brand small { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: #a9adb8; font-weight: 600; }
.footer__brand strong { font-size: 1.55rem; font-weight: 800; letter-spacing: .02em; }
.footer__about p { line-height: 1.75; margin-bottom: 28px; }
.footer__title { color: #fff; font-size: 1.35rem; font-weight: 700; padding-bottom: 16px; margin-bottom: 26px; position: relative; display: flex; align-items: center; gap: 12px; }
.footer__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; background: var(--primary); border-radius: 3px; }
.footer__title--plain::after { display: none; }
.footer__arrow { width: 30px; height: auto; margin-top: 10px; }
.footer__contacts { list-style: none; display: grid; gap: 18px; }
.footer__contacts li { display: flex; gap: 14px; align-items: flex-start; line-height: 1.6; }
.footer__contacts .ico { color: var(--primary); width: 20px; height: 20px; margin-top: 3px; }
.footer__contacts a, .footer__links a { color: #c9ccd4; }
.footer__contacts a:hover, .footer__links a:hover { color: var(--primary); }
.footer__links { list-style: none; display: grid; gap: 14px; }
.footer__links a { display: inline-block; transition: transform .25s var(--ease), color .2s; }
.footer__links a:hover { transform: translateX(6px); }
.footer__news { background: rgba(0, 0, 0, .18); padding: 40px; align-self: start; margin-top: -40px; }
.footer__news p { line-height: 1.7; }
.footer__ok { display: flex; gap: 8px; align-items: center; color: #7fdca4; font-weight: 600; }
.newsletter { display: flex; align-items: center; background: var(--surface); padding: 10px 10px 10px 20px; margin-top: 22px; }
.newsletter input[type=email] { flex: 1; min-width: 0; border: 0; outline: 0; padding: 12px 0; background: transparent; font-size: 1rem; }
.newsletter button { width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; display: grid; place-items: center; flex: none; transition: background .2s, transform .2s; }
.newsletter button:hover { background: var(--dark); transform: rotate(-12deg); }
.footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); background: color-mix(in srgb, var(--dark) 92%, black); }
.footer__bottom-in { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 96px; flex-wrap: wrap; padding: 18px 0; }
.footer__bottom p { margin: 0; }
.footer__legal { display: block; margin-top: 4px; font-size: .78rem; opacity: .75; }
.footer__bottom p a { color: #c9ccd4; }
.footer__bottom p a:hover { color: var(--primary); }
.footer__social { display: flex; gap: 12px; }
.footer__social a { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .7); color: #fff; display: grid; place-items: center; transition: background .25s, border-color .25s, transform .25s; }
.footer__social a:hover { background: var(--primary); border-color: var(--primary); transform: translateY(-3px); }

/* ---------- Extras ---------- */
.to-top { position: fixed; right: 22px; bottom: 22px; z-index: 90; width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; display: grid; place-items: center; box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(20px); transition: all .3s var(--ease); }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--dark); }
.cookies { position: fixed; left: 20px; bottom: 20px; z-index: 95; max-width: 420px; background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 20px 22px; display: flex; gap: 16px; align-items: center; font-size: .9rem; }
.cookies p { margin: 0; }
.lightbox { position: fixed; inset: 0; z-index: 400; background: rgba(12, 14, 22, .94); display: grid; place-items: center; }
.lightbox img { max-width: 92vw; max-height: 86vh; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; }
.lightbox button:hover { background: var(--primary); }
.lightbox__close { top: 20px; right: 20px; }
.lightbox__prev { left: 20px; top: 50%; }
.lightbox__next { right: 20px; top: 50%; }
.lightbox__count { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); color: #fff; font-size: .9rem; }

.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: var(--d, 0ms); }
.js .reveal.is-visible { opacity: 1; transform: none; }

/* ==========================================================================
   Página "Sobre Nós" (ab-)
   ========================================================================== */
.ab-intro { padding: clamp(14px, 1.8vw, 26px) 0 clamp(70px, 8vw, 110px); }
.ab-intro__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 6vw, 90px); align-items: center; }
.ab-intro__title { font-size: clamp(2rem, 3.6vw, 3.05rem); font-weight: 800; line-height: 1.12; letter-spacing: -.025em; margin-bottom: 26px; }
.ab-intro__body p { font-size: 1.06rem; line-height: 1.8; }
.ab-intro__body strong { color: var(--ink); }
.ab-ficha { margin: 34px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.ab-ficha div { background: var(--surface); padding: 18px 20px; }
.ab-ficha dt { display: flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #9a9ca5; margin-bottom: 4px; }
.ab-ficha dt .ico { color: var(--primary); width: 16px; height: 16px; }
.ab-ficha dd { margin: 0; color: var(--ink); font-weight: 700; font-size: 1.02rem; }

.ab-intro__media { position: relative; padding: 0 0 0 50px; }
.ab-intro__main img { width: 100%; height: auto; aspect-ratio: 4 / 4.6; object-fit: cover; object-position: var(--pos, center); border-radius: 22px; }
.ab-intro__second { position: relative; flex: none; width: 48%; z-index: 2; border: 8px solid var(--bg); border-radius: 20px; overflow: hidden; box-shadow: var(--shadow-lg); }
.ab-intro__second img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: var(--pos, center); display: block; }
/* três fotos: a principal, a formação (por cima do canto) e a equipa à frente do escritório, desfasada para baixo */
.ab-intro__row { position: relative; z-index: 1; display: flex; align-items: flex-start; margin: -90px 0 0 -50px; }
.ab-intro__third { position: relative; z-index: 1; flex: none; width: 58%; margin: 64px 0 0 -6%; border: 8px solid var(--bg); border-radius: 20px; overflow: hidden; box-shadow: var(--shadow-lg); }
.ab-intro__third img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: var(--pos, center); display: block; }
.ab-intro__row > .ab-intro__third:first-child { margin: 0 0 0 auto; }
.ab-intro__media::before { content: ""; position: absolute; right: -26px; bottom: 20px; width: 150px; height: 150px; background-image: radial-gradient(var(--primary) 2px, transparent 2px); background-size: 16px 16px; opacity: .35; z-index: -1; }
.ab-name { position: absolute; top: 34px; right: -28px; width: 240px; margin: 0; background: var(--dark); color: #cfd2da; border-radius: 18px; padding: 22px 24px; box-shadow: var(--shadow-lg); }
.ab-name__word { display: block; color: #fff; font-weight: 800; letter-spacing: .14em; font-size: .95rem; }
.ab-name__lang { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #8f94a3; margin-top: 2px; }
.ab-name blockquote { margin: 12px 0 8px; font-family: var(--hand); color: var(--accent); font-size: 1.45rem; line-height: 1.25; }
.ab-name figcaption { font-size: .82rem; line-height: 1.5; }

.ab-numbers { background: linear-gradient(to bottom, var(--bg) 50%, var(--dark) 50%); position: relative; z-index: 2; }
.ab-numbers__grid { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--surface); border-radius: 22px; box-shadow: var(--shadow-lg); }
.ab-num { padding: 34px 28px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 16px; align-items: center; position: relative; }
.ab-num + .ab-num::before { content: ""; position: absolute; left: 0; top: 26%; bottom: 26%; width: 1px; background: var(--border); }
.ab-num__ico { grid-row: span 2; width: 56px; height: 56px; border-radius: 16px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.ab-num__ico .ico { width: 26px; height: 26px; }
.ab-num strong { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; color: var(--ink); line-height: 1.05; letter-spacing: -.02em; }
.ab-num > span:last-child { font-size: .9rem; color: var(--text); }

.ab-purpose { background: var(--dark) url("../img/map-dots-plain.svg") center top / 110% auto no-repeat; color: #b9bdc8; padding: clamp(70px, 9vw, 110px) 0 clamp(80px, 10vw, 120px); margin-top: -1px; }
.ab-purpose__statements { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.ab-statement { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .03); border-radius: 22px; padding: clamp(30px, 4vw, 46px); }
.ab-statement__label { display: inline-flex; align-items: center; gap: 8px; background: rgba(227, 105, 85, .14); color: var(--primary); font-weight: 700; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; padding: 7px 14px; border-radius: 30px; margin-bottom: 20px; }
.ab-statement__label .ico { width: 16px; height: 16px; }
.ab-statement p { color: #fff; font-size: clamp(1.15rem, 1.7vw, 1.4rem); line-height: 1.55; font-weight: 500; margin: 0; letter-spacing: -.005em; }
.ab-statement--vision { background: var(--primary); border-color: var(--primary); }
.ab-statement--vision .ab-statement__label { background: rgba(255, 255, 255, .18); color: #fff; }
.ab-values { margin-top: clamp(60px, 8vw, 90px); }
.ab-values__head { text-align: center; margin-bottom: 36px; }
.ab-values__head .kicker::after { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.ab-values__head h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; }
.ab-values__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.ab-value { background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .08); border-radius: 18px; padding: 26px 22px; transition: transform .3s var(--ease), border-color .3s, background .3s; }
.ab-value:hover { transform: translateY(-6px); border-color: var(--primary); background: rgba(255, 255, 255, .07); }
.ab-value__ico { width: 50px; height: 50px; border-radius: 14px; background: var(--primary); color: #fff; display: grid; place-items: center; margin-bottom: 18px; }
.ab-value__ico .ico { width: 24px; height: 24px; }
.ab-value h3 { color: #fff; font-size: 1.05rem; margin-bottom: 8px; }
.ab-value p { font-size: .9rem; line-height: 1.6; margin: 0; }

.ab-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ab-area { display: flex; align-items: center; gap: 18px; padding: 22px; border: 1px solid var(--border); border-radius: 18px; background: var(--surface); color: var(--text); transition: border-color .3s, box-shadow .3s, transform .3s var(--ease); }
.ab-area:hover { border-color: transparent; box-shadow: var(--shadow-lg); transform: translateY(-4px); color: var(--text); }
.ab-area__ico { width: 58px; height: 58px; flex: none; border-radius: 16px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; transition: background .3s, color .3s; }
.ab-area__ico .ico { width: 26px; height: 26px; }
.ab-area:hover .ab-area__ico { background: var(--primary); color: #fff; }
.ab-area__body { flex: 1; display: grid; gap: 4px; }
.ab-area__body strong { color: var(--ink); font-size: 1.05rem; line-height: 1.3; }
.ab-area__body small { font-size: .86rem; line-height: 1.5; }
.ab-area__go { color: #c3c0ba; transition: transform .3s var(--ease), color .3s; }
.ab-area:hover .ab-area__go { color: var(--primary); transform: translateX(4px); }

.ab-more { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ab-more__card { display: block; background: var(--soft); border-radius: 20px; padding: 34px; color: var(--text); transition: background .35s var(--ease), color .35s, transform .35s var(--ease); }
.ab-more__ico { width: 58px; height: 58px; border-radius: 16px; background: var(--dark); color: #fff; display: grid; place-items: center; margin-bottom: 22px; transition: background .35s; }
.ab-more__ico .ico { width: 26px; height: 26px; }
.ab-more__card h3 { font-size: 1.25rem; transition: color .35s; }
.ab-more__card p { font-size: .95rem; }
.ab-more__card:hover { background: var(--dark); color: #b9bdc8; transform: translateY(-6px); }
.ab-more__card:hover h3, .ab-more__card:hover .link-more { color: #fff; }
.ab-more__card:hover .ab-more__ico { background: var(--primary); }

@media (max-width: 1080px) {
  .ab-intro__grid { grid-template-columns: 1fr; }
  .ab-intro__media { max-width: 620px; }
  .ab-name { right: 0; }
  .ab-numbers__grid { grid-template-columns: 1fr 1fr; }
  .ab-num:nth-child(3)::before { display: none; }
  .ab-values__grid { grid-template-columns: repeat(3, 1fr); }
  .ab-areas, .ab-more { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .ab-ficha { grid-template-columns: 1fr; }
  .ab-intro__media { padding: 0 0 50px 24px; }
  .ab-name { position: relative; top: auto; right: auto; width: auto; margin: 22px 0 0 -24px; }
  .ab-numbers__grid { grid-template-columns: 1fr; }
  .ab-num::before { display: none; }
  .ab-num + .ab-num { border-top: 1px solid var(--border); }
  .ab-purpose__statements, .ab-values__grid, .ab-areas, .ab-more { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Idiomas, modo nocturno e avisos
   ========================================================================== */
.lang-switch { display: inline-flex; align-items: center; padding: 3px; border-radius: 40px; background: var(--soft); border: 1px solid var(--border); }
.lang-switch__item { min-width: 36px; height: 32px; padding: 0 10px; border-radius: 30px; display: grid; place-items: center; font-weight: 700; font-size: .8rem; letter-spacing: .06em; color: var(--text); transition: background .2s, color .2s; }
a.lang-switch__item:hover { color: var(--primary); }
.lang-switch__item.is-current { background: var(--surface); color: var(--ink); box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }
.lang-switch--block { display: flex; width: 100%; margin-bottom: 14px; }
.lang-switch--block .lang-switch__item { flex: 1; }
.lang-notice { background: color-mix(in srgb, var(--accent) 18%, var(--surface)); border-bottom: 1px solid var(--border); color: var(--ink); font-size: .92rem; }
.lang-notice .container { display: flex; align-items: center; gap: 10px; padding-block: 12px; }
.lang-notice .ico { color: var(--primary); }
.lang-hint { position: fixed; right: 20px; bottom: 84px; z-index: 96; max-width: 360px; background: var(--surface); color: var(--ink); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 14px 14px 14px 18px; display: flex; align-items: center; gap: 12px; animation: hintIn .4s var(--ease); }
.lang-hint[hidden] { display: none; }
.lang-hint > .ico { color: var(--primary); width: 22px; height: 22px; }
.lang-hint p { margin: 0; font-size: .9rem; font-weight: 500; flex: 1; }
.lang-hint .icon-btn { width: 34px; height: 34px; }
@keyframes hintIn { from { opacity: 0; transform: translateY(14px); } }

.theme-btn .theme-btn__sun { display: none; }
:root[data-theme="dark"] .theme-btn .theme-btn__sun { display: block; }
:root[data-theme="dark"] .theme-btn .theme-btn__moon { display: none; }

/* ---------- Tema escuro ---------- */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #10131B;
  --surface: #181C27;
  --soft: #141824;
  --ink: #F1F2F5;
  --text: #AEB3C2;
  --border: rgba(255, 255, 255, .09);
  --input: #1D2230;
  --dark: #0A0D14;
  --primary-soft: color-mix(in srgb, var(--primary) 20%, var(--surface));
  --shadow: 0 10px 30px rgba(0, 0, 0, .35);
  --shadow-lg: 0 24px 60px rgba(0, 0, 0, .55);
}
body { transition: background-color .3s var(--ease), color .3s var(--ease); }
:root[data-theme="dark"] .header { box-shadow: 0 1px 0 var(--border); }
:root[data-theme="dark"] .brand img,
.footer__brand img { background: #fff; border-radius: 50%; padding: 3px; }
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .footer__bottom { background: #07090E; }
:root[data-theme="dark"] .marquee__item,
:root[data-theme="dark"] .logo-grid__item,
:root[data-theme="dark"] .partner-card__logo,
:root[data-theme="dark"] .logo-strip img { background: #F4F2EE; border-radius: 12px; }
:root[data-theme="dark"] .marquee__item { padding: 8px 18px; }
:root[data-theme="dark"] .logo-strip img { padding: 6px 10px; }
:root[data-theme="dark"] .marquee__item img { filter: grayscale(1) contrast(1.05); opacity: .85; }
:root[data-theme="dark"] .cta-band .kicker { color: #fff; }
:root[data-theme="dark"] .alert--ok { background: rgba(31, 157, 85, .15); color: #7fdca4; }
:root[data-theme="dark"] .alert--err { background: rgba(196, 54, 42, .16); color: #ff9c90; }
:root[data-theme="dark"] .area-card__num { -webkit-text-stroke-color: rgba(255, 255, 255, .12); }
:root[data-theme="dark"] .timeline__year { background: var(--primary); }
:root[data-theme="dark"] img:not([src$=".svg"]):not(.brand img):not(.footer__brand img) { filter: brightness(.94); }
:root[data-theme="dark"] .copy, :root[data-theme="dark"] .share a, :root[data-theme="dark"] .icon-btn { background: var(--input); color: var(--ink); }
:root[data-theme="dark"] .contact-teaser__box--light::after { border-color: rgba(255, 255, 255, .04); }

/* ==========================================================================
   Página "Contactos" (ct-), estilo Welowe
   ========================================================================== */
.ct { padding: clamp(60px, 8vw, 110px) 0; position: relative; overflow: hidden; overflow: clip; }
.ct::before { content: ""; position: absolute; left: -80px; top: 18%; width: 260px; height: 60%; background: color-mix(in srgb, var(--accent) 16%, transparent); border-radius: 0 60% 60% 0 / 0 40% 40% 0; filter: blur(2px); z-index: -1; }
.ct__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(36px, 6vw, 80px); align-items: center; }
.ct__media { position: relative; }
.ct__photo { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: var(--pos, center); border-radius: 6px; display: block; }
.ct__card-wrap { position: relative; z-index: 1; margin: -56px 5% 0; }  /* largo, por baixo da foto: só entra na base (pernas), nunca nas caras */
.ct__shape { position: absolute; inset: -8px -10px -14px -10px; background: var(--primary); border-radius: 6px; transform: rotate(-2deg); }
.ct__card { position: relative; list-style: none; margin: 0; padding: 22px 24px; background: var(--surface); border-radius: 10px; box-shadow: var(--shadow-lg); display: grid; grid-template-columns: 1fr 1fr; gap: 18px 22px; }
.ct__card li { display: flex; gap: 16px; align-items: flex-start; }
.ct__ico { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--primary) 45%, transparent); color: var(--primary); display: grid; place-items: center; }
.ct__ico .ico { width: 20px; height: 20px; }
.ct__card strong { display: block; color: var(--ink); font-size: 1rem; line-height: 1.3; }
.ct__val { display: block; color: var(--text); font-size: .94rem; line-height: 1.55; word-break: break-word; }
.ct__val a { color: var(--text); }
.ct__val a:hover { color: var(--primary); }
.ct__title { font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 800; margin-bottom: 6px; }
.ct__lead { margin-bottom: 26px; }
.ct-form { display: grid; gap: 16px; }
.ct-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ct-form label { display: block; }
.ct-form input:not(.hp):not([type=radio]):not([type=checkbox]), .ct-form select, .ct-form textarea { width: 100%; padding: 14px 16px 14px 46px; border: 1px solid var(--border); border-radius: 12px; background: var(--input); color: var(--ink); font-size: .96rem; transition: border-color .2s, background .2s, box-shadow .2s; }
.ct-form textarea { min-height: 150px; resize: vertical; padding: 14px 16px 30px; }
.ct-form input::placeholder, .ct-form textarea::placeholder { color: color-mix(in srgb, var(--text) 75%, transparent); }
.ct-form input:focus, .ct-form select:focus, .ct-form textarea:focus { outline: 0; background: var(--surface); border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-soft); }
.ct-form__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 6px; }
.ct-wa { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: #1f9d55; }
.ct-wa:hover { color: #167a42; }
.ct-map { position: relative; height: clamp(380px, 45vw, 560px); background: var(--soft); }
.ct-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.ct-map .map__ph { height: 100%; min-height: 0; border-radius: 0; }
.ct-map__route { position: absolute; right: 20px; top: 20px; box-shadow: var(--shadow-lg); }
:root[data-theme="dark"] .ct-map iframe { filter: invert(.9) hue-rotate(180deg) saturate(.85) brightness(.95); }
@media (max-width: 1080px) {
  .ct__grid { grid-template-columns: 1fr; }
  .ct__media { max-width: 620px; }
}
@media (max-width: 760px) {
  .ct__card-wrap { margin: -36px 12px 0; }
  .ct__card { grid-template-columns: 1fr; }
  .ct-form__row { grid-template-columns: 1fr; }
  .ct-map__route { right: 12px; top: 12px; }
}

/* ==========================================================================
   "Onde estamos": mapa de Moçambique (mz-)
   ========================================================================== */
.mz.section { padding: clamp(40px, 4.5vw, 64px) 0; }
.mz { --map-land: #DDD7CF; --map-stroke: #F3F0EC; --map-ctx: #E8E3DC; overflow: hidden; }
:root[data-theme="dark"] .mz { --map-land: #262C3B; --map-stroke: #141824; --map-ctx: #1F2431; }
.mz__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 5vw, 70px); align-items: center; }
.mz__lead { font-size: 1.05rem; line-height: 1.8; }
.mz__places { list-style: none; margin: 26px 0 30px; display: grid; gap: 14px; }
.mz__place { display: flex; gap: 16px; align-items: flex-start; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 16px 18px; transition: border-color .25s, box-shadow .25s, transform .25s var(--ease); cursor: default; }
.mz__place:hover, .mz__place.is-on { border-color: color-mix(in srgb, var(--primary) 50%, transparent); box-shadow: var(--shadow); transform: translateX(4px); }
.mz__pin { width: 42px; height: 42px; flex: none; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.mz__place strong { display: block; color: var(--ink); font-size: 1.04rem; }
.mz__place small { display: block; font-size: .9rem; line-height: 1.55; margin-top: 2px; }
.mz__actions { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.mz__map { margin: 0; position: relative; }
.mz__map svg { width: 100%; height: auto; display: block; overflow: visible; }
.mz__map figcaption { font-size: .66rem; color: #9a9ca5; text-align: right; margin-top: 4px; opacity: .75; }
.mz__km { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: .8rem; font-weight: 700; color: var(--primary); background: var(--primary-soft); padding: 4px 11px; border-radius: 99px; }
.mz__km .ico { width: 15px; height: 15px; }
.mz__dist { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.mz__dist .mz__km { margin-top: 0; }
.mz__ico-boat, .is-boat .mz__ico-car { display: none; }
.is-boat .mz__ico-boat { display: inline-block; }
.mz__mode { width: 30px; height: 30px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--primary) 35%, transparent); background: var(--surface); color: var(--primary); display: grid; place-items: center; cursor: pointer; transition: background .25s, color .25s, transform .25s var(--ease); }
.mz__mode .ico { width: 15px; height: 15px; }
.mz__mode:hover, .mz__mode:focus-visible { background: var(--primary); color: #fff; transform: rotate(-8deg) scale(1.06); }
.mz__km-val { transition: opacity .2s; }
.mz__note { font-size: .84rem; margin: -14px 0 26px; color: #9a9ca5; }
.mz-pin, .mz-route { cursor: pointer; }
.mz-route__base { fill: none; stroke: var(--primary); stroke-width: 1.6; stroke-dasharray: 2 4; opacity: .55; stroke-linecap: round; }
.mz-route__line { fill: none; stroke: var(--primary); stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset .7s var(--ease); }
.mz-route.is-on .mz-route__line { stroke-dashoffset: 0; }
.mz-chip { opacity: 0; transition: opacity .3s; pointer-events: none; }
.mz-route.is-on .mz-chip { opacity: 1; }
.mz-chip rect { fill: var(--primary); }
.mz-chip text { font-family: var(--font); font-size: 12px; font-weight: 700; fill: #fff; }
.mz-pin .mz-dot { transition: r .25s; }

.mz-prov { fill: var(--map-land); stroke: var(--map-stroke); stroke-width: 1.2; transition: fill .3s; }
.mz-prov:hover { fill: color-mix(in srgb, var(--map-land) 85%, var(--ink)); }
.mz-sofala, .mz-sofala:hover { fill: var(--primary); }
.mz-label { font-family: var(--font); fill: var(--ink); }
.mz-label--country { font-size: 13px; font-weight: 800; letter-spacing: .35em; fill: color-mix(in srgb, var(--ink) 40%, transparent); }
.mz-label--ocean { font-size: 13px; font-style: italic; font-weight: 500; letter-spacing: .08em; fill: color-mix(in srgb, var(--ink) 35%, transparent); }
.mz-label--prov { font-size: 10px; font-weight: 800; letter-spacing: .12em; fill: #fff; pointer-events: none; }
.mz-label--inset { font-size: 11px; font-weight: 800; letter-spacing: .16em; fill: var(--primary); }
.mz-label--pin { font-size: 15px; font-weight: 700; paint-order: stroke; stroke: var(--surface); stroke-width: 4px; stroke-linejoin: round; }
.mz-link { fill: none; stroke: var(--primary); stroke-width: 1.6; stroke-dasharray: 5 5; opacity: .8; }
.mz-link-dot { fill: var(--surface); stroke: var(--primary); stroke-width: 3; }
.mz-inset-bg { fill: var(--surface); filter: drop-shadow(0 18px 30px rgba(30, 36, 54, .14)); }
.mz-inset-border { fill: none; stroke: var(--border); }
.mz-dist { fill: var(--map-ctx); stroke: var(--surface); stroke-width: 1.4; }
.mz-dist--on { fill: color-mix(in srgb, var(--primary) 28%, var(--surface)); stroke: var(--primary); stroke-width: 1.2; }
.mz-dot { fill: var(--primary); stroke: #fff; stroke-width: 2.5; }
.mz-halo { fill: var(--primary); opacity: .22; }
.mz-pulse { fill: none; stroke: var(--primary); stroke-width: 2; opacity: 0; transform-origin: center; transform-box: fill-box; animation: mzPulse 2.4s ease-out infinite; }
.mz-pin--dondo .mz-pulse { animation-delay: .8s; }
.mz-pin--buzi .mz-pulse { animation-delay: 1.6s; }
.mz-pin.is-on .mz-halo { opacity: .45; }
.mz-pin.is-on .mz-dot { r: 8; }
.mz-scale path { stroke: var(--ink); stroke-width: 2; opacity: .55; }
.mz-scale path { fill: none; }
.mz-scale text { font-size: 10px; font-weight: 600; fill: var(--ink); opacity: .6; font-family: var(--font); }
.mz-scale .mz-scale__cap { font-size: 9px; text-transform: uppercase; letter-spacing: .12em; opacity: .45; }
@keyframes mzPulse { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mz-pulse { animation: none; } }
@media (max-width: 1080px) { .mz__grid { grid-template-columns: 1fr; } }

/* ---------- "O nosso percurso": linha do tempo (ab-tl) ---------- */
.ab-path.section { padding: clamp(48px, 5.5vw, 72px) 0; }
.ab-path { background: var(--dark); color: #b9bdc9; position: relative; overflow: hidden; }
.ab-path::before { content: ""; position: absolute; inset: 0; background: url("../img/map-dots-plain.svg") center / cover no-repeat; opacity: .06; pointer-events: none; }
.ab-path .container { position: relative; }
.ab-path .section-title { color: #fff; }
.ab-path .kicker { color: var(--primary); }
.ab-path__lead { max-width: 560px; margin: 10px 0 0; color: #b9bdc9; }
.ab-tl { --n: 6; list-style: none; margin: clamp(26px, 3vw, 40px) 0 0; padding: 0 28px; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); grid-template-rows: auto 40px auto; position: relative; }
.ab-tl::before, .ab-tl::after { content: ""; position: absolute; left: 0; right: 0; top: var(--mid, 50%); height: 2px; margin-top: -1px; }
.ab-tl::before { background: rgba(255, 255, 255, .12); }
.ab-tl::after { background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, #fff)); transform: scaleX(0); transform-origin: left; transition: transform 1.8s var(--ease) .2s; }
.ab-tl.is-visible::after { transform: scaleX(1); }
.js .ab-tl.reveal { opacity: 1; transform: none; }
.ab-tl__item { grid-row: 1 / 4; display: grid; grid-template-rows: subgrid; position: relative; justify-items: center; }
.ab-tl__dot { grid-row: 2; align-self: center; width: 18px; height: 18px; border-radius: 50%; background: var(--dark); border: 3px solid var(--primary); position: relative; z-index: 1; transition: transform .3s var(--ease), background .3s; }
.ab-tl__card { width: calc(100% + 56px); max-width: 300px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .09); border-radius: 16px; padding: 16px 18px 17px; position: relative; opacity: 0; transform: translateY(16px); transition: transform .35s var(--ease), border-color .35s, background .35s; }
.ab-tl__card::after { content: ""; position: absolute; left: 50%; width: 1px; height: 12px; background: rgba(255, 255, 255, .22); }
.ab-tl__item:nth-child(odd) .ab-tl__card { grid-row: 1; align-self: end; margin-bottom: 4px; }
.ab-tl__item:nth-child(odd) .ab-tl__card::after { top: 100%; }
.ab-tl__item:nth-child(even) .ab-tl__card { grid-row: 3; align-self: start; margin-top: 4px; }
.ab-tl__item:nth-child(even) .ab-tl__card::after { bottom: 100%; }
.ab-tl.is-visible .ab-tl__card { opacity: 1; transform: none; transition: opacity .7s var(--ease) calc(.3s + var(--i) * .16s), transform .7s var(--ease) calc(.3s + var(--i) * .16s), border-color .35s, background .35s; }
.ab-tl__year { display: block; font-size: 1.85rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1.2px var(--primary); margin-bottom: 8px; transition: color .35s; }
.ab-tl__title { color: #fff; font-size: .98rem; font-weight: 700; line-height: 1.32; margin: 0 0 6px; }
.ab-tl__text { margin: 0; font-size: .85rem; line-height: 1.55; color: #a4a9b7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ab-tl.is-visible .ab-tl__item:hover .ab-tl__card { transform: translateY(-4px); border-color: color-mix(in srgb, var(--primary) 60%, transparent); background: rgba(255, 255, 255, .07); }
.ab-tl__item:hover .ab-tl__year { color: var(--primary); }
.ab-tl__item:hover .ab-tl__dot { transform: scale(1.3); background: var(--primary); }
.ab-tl__item:last-child .ab-tl__card { background: var(--primary); border-color: var(--primary); box-shadow: 0 20px 40px color-mix(in srgb, var(--primary) 30%, transparent); }
.ab-tl.is-visible .ab-tl__item:last-child:hover .ab-tl__card { background: var(--primary); }
.ab-tl__item:last-child .ab-tl__year, .ab-tl__item:last-child:hover .ab-tl__year { color: #fff; -webkit-text-stroke: 0; }
.ab-tl__item:last-child .ab-tl__text { color: rgba(255, 255, 255, .9); }
.ab-tl__item:last-child .ab-tl__dot { background: var(--primary); box-shadow: 0 0 0 6px color-mix(in srgb, var(--primary) 30%, transparent); }
.ab-tl__badge { position: absolute; top: 14px; right: 16px; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; background: rgba(255, 255, 255, .22); color: #fff; padding: 4px 10px; border-radius: 99px; }
@media (prefers-reduced-motion: reduce) { .ab-tl::after { transform: none; transition: none; } .ab-tl__card { opacity: 1; transform: none; } }
@media (max-width: 1080px) {
  .ab-tl { grid-template-columns: 1fr; grid-template-rows: none; padding: 0 0 0 36px; gap: 16px; }
  .ab-tl::before, .ab-tl::after { left: 8px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; margin: 0; }
  .ab-tl::after { transform: scaleY(0); transform-origin: top; }
  .ab-tl.is-visible::after { transform: scaleY(1); }
  .ab-tl__item { grid-row: auto; display: block; }
  .ab-tl__dot { position: absolute; left: -36px; top: 26px; }
  .ab-tl__item:nth-child(n) .ab-tl__card { width: 100%; max-width: none; margin: 0; }
  .ab-tl__card::after { display: none; }
  .ab-tl__text { -webkit-line-clamp: unset; }
}
/* ---------- Mapa ampliado "Como chegar" (mzd-) ---------- */
.mzd { --sea: #CFE3EC; --land: #F4EFE8; --land-line: #D9CFC2; --water: #A9CEDE; --river: #7FB3CB; --wet: #DCE8D5; --road: #FFFFFF; --road-line: #CDBFAE; --boat: #2C7DA0;
  border: 0; padding: 0; width: min(1120px, calc(100vw - 32px)); max-width: none; height: min(860px, calc(100dvh - 32px)); max-height: none; border-radius: 22px; background: var(--surface); color: var(--text); box-shadow: 0 40px 90px rgba(10, 13, 20, .45); overflow: hidden; }
:root[data-theme="dark"] .mzd { --sea: #12202B; --land: #1C2130; --land-line: #2C3344; --water: #1D3A4B; --river: #2F6A86; --wet: #1E2C27; --road: #3A4152; --road-line: #11141C; --boat: #5FB4D9; }
.mzd::backdrop { background: rgba(10, 13, 20, .72); backdrop-filter: blur(3px); }
.mzd[open] { animation: mzdIn .35s var(--ease); }
@keyframes mzdIn { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
.mzd__box { display: grid; grid-template-columns: minmax(0, 1fr) 300px; height: 100%; }
.mzd__map { background: var(--sea); position: relative; overflow: hidden; min-height: 0; }
.mzd__map svg { display: block; width: 100%; height: 100%; }
.mzd__side { padding: 22px 20px 18px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; border-left: 1px solid var(--border); }
.mzd__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mzd__head h2 { font-size: 1.15rem; line-height: 1.25; margin: 0; }
.mzd__head .kicker { margin: 0; }
.mzd__close { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: background .2s, color .2s; }
.mzd__close:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.mzd__intro { font-size: .9rem; line-height: 1.6; margin: 0; }
.mzd__routes { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mzd__route { width: 100%; text-align: left; display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; font: inherit; transition: border-color .25s, box-shadow .25s, transform .25s var(--ease); }
.mzd__route:hover, .mzd__route.is-on { border-color: color-mix(in srgb, var(--rc, var(--primary)) 60%, transparent); box-shadow: var(--shadow); transform: translateX(3px); }
.mzd__route--boat { --rc: var(--boat); }
.mzd__route-ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in srgb, var(--rc, var(--primary)) 14%, var(--surface)); color: var(--rc, var(--primary)); }
.mzd__route-ico .ico { width: 18px; height: 18px; }
.mzd__route strong { display: inline; color: var(--ink); font-size: .92rem; }
.mzd__route strong em { font-style: normal; font-weight: 500; color: var(--text); font-size: .82rem; }
.mzd__route b { float: right; color: var(--rc, var(--primary)); font-size: .84rem; white-space: nowrap; }
.mzd__route small { display: block; clear: both; font-size: .78rem; line-height: 1.4; margin-top: 2px; }
.mzd__legend { list-style: none; margin: 2px 0 0; padding: 12px 0 0; border-top: 1px solid var(--border); display: grid; grid-template-columns: 1fr; gap: 7px; font-size: .78rem; }
.mzd__legend li { display: flex; align-items: center; gap: 8px; }
.mzd__sw { width: 22px; height: 10px; border-radius: 3px; flex: none; }
.mzd__sw--car { height: 4px; background: var(--primary); }
.mzd__sw--boat { height: 0; border-top: 3px dashed var(--boat); border-radius: 0; }
.mzd__sw--road { height: 5px; background: var(--road); box-shadow: 0 0 0 1px var(--road-line); }
.mzd__sw--water { background: var(--water); }
.mzd__sw--wet { background: var(--wet); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--river) 40%, transparent); }
.mzd__sw--line { height: 0; border-top: 1px dashed var(--land-line); border-radius: 0; filter: brightness(.8); }
.mzd__credit { font-size: .68rem; color: #9a9ca5; margin: auto 0 0; }
.mzd__author { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font-size: .72rem; color: var(--text); margin-bottom: 6px; }
.mzd__author-link { position: relative; display: inline-flex; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; font-size: .86rem; }
.mzd__author-link strong { font-weight: 700; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size .35s var(--ease), color .25s; padding-bottom: 1px; }
.mzd__author-in { width: 15px; height: 15px; color: #0A66C2; flex: none; transition: transform .3s var(--ease); }
.mzd__author-ext { width: 12px; height: 12px; opacity: 0; transform: translate(-4px, 2px); transition: opacity .25s, transform .3s var(--ease); }
.mzd__author-link:hover, .mzd__author-link:focus-visible { color: #0A66C2; }
.mzd__author-link:hover strong, .mzd__author-link:focus-visible strong { background-size: 100% 1.5px; }
.mzd__author-link:hover .mzd__author-in, .mzd__author-link:focus-visible .mzd__author-in { transform: scale(1.15) rotate(-6deg); }
.mzd__author-link:hover .mzd__author-ext, .mzd__author-link:focus-visible .mzd__author-ext { opacity: 1; transform: none; }
.mzd__author-link::after { content: attr(data-tip); position: absolute; left: -4px; bottom: calc(100% + 10px); transform: translateY(4px); white-space: nowrap; background: #0A66C2; color: #fff; font: 600 .72rem var(--font); padding: 6px 10px; border-radius: 8px; box-shadow: 0 8px 20px rgba(10, 102, 194, .3); opacity: 0; pointer-events: none; transition: opacity .2s, transform .25s var(--ease); }
.mzd__author-link:hover::after, .mzd__author-link:focus-visible::after { opacity: 1; transform: none; }
:root[data-theme="dark"] .mzd__author-in, :root[data-theme="dark"] .mzd__author-link:hover { color: #4DA3F0; }

.mzd-sea { fill: var(--sea); }
.mzd-land path { fill: var(--land); stroke: var(--land-line); stroke-width: 1; stroke-dasharray: 4 3; }
.mzd-wet { fill: var(--wet); }
.mzd-water { fill: var(--water); }
.mzd-river { fill: none; stroke: var(--river); stroke-width: 1.3; stroke-linejoin: round; stroke-linecap: round; }
.mzd-road { fill: none; stroke: var(--road); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; paint-order: stroke; filter: drop-shadow(0 0 .6px var(--road-line)) drop-shadow(0 0 .6px var(--road-line)); }
.mzd-road--trunk { stroke-width: 4; }
.mzd-lbl { font-family: var(--font); pointer-events: none; }
.mzd-lbl--sea { font-size: 15px; font-style: italic; letter-spacing: .14em; fill: color-mix(in srgb, var(--boat) 70%, var(--ink)); opacity: .7; }
.mzd-lbl--water { font-size: 12px; font-style: italic; fill: color-mix(in srgb, var(--boat) 80%, var(--ink)); opacity: .85; }
.mzd-lbl--road { font-size: 10px; font-weight: 800; fill: var(--ink); opacity: .55; letter-spacing: .08em; }
.mzd-lbl--dist { font-size: 11px; font-weight: 800; letter-spacing: .22em; fill: var(--ink); opacity: .28; }
.mzd-route { cursor: pointer; transition: opacity .3s; }
.mzd-route__casing { fill: none; stroke: var(--surface); stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }
.mzd-route__line { fill: none; stroke: var(--primary); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.mzd-route--car .mzd-route__line { stroke-dasharray: 100; stroke-dashoffset: 0; }
.mzd-route--boat .mzd-route__line { stroke: var(--boat); stroke-dasharray: 9 7; animation: mzdFlow 1.4s linear infinite; }
@keyframes mzdFlow { to { stroke-dashoffset: -32; } }
.mzd-chip rect { fill: var(--primary); }
.mzd-route--boat .mzd-chip rect { fill: var(--boat); }
.mzd-chip text { font-family: var(--font); font-size: 12.5px; font-weight: 700; fill: #fff; }
.mzd-map.has-focus .mzd-route { opacity: .18; }
.mzd-map.has-focus .mzd-route.is-on { opacity: 1; }
.mzd-route.is-on .mzd-route__line { stroke-width: 5; }
.mzd-map.is-drawing .mzd-route--car .mzd-route__line { animation: mzdDraw 1.6s var(--ease) both; }
@keyframes mzdDraw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
.mzd-town circle { fill: var(--surface); stroke: var(--ink); stroke-width: 1.6; }
.mzd-town text { font-family: var(--font); font-size: 12px; font-weight: 600; fill: var(--ink); opacity: .75; paint-order: stroke; stroke: var(--land); stroke-width: 3.5px; stroke-linejoin: round; }
.mzd-town--main circle { fill: var(--primary); stroke: #fff; stroke-width: 2.5; }
.mzd-town--main text, .mzd-town--hq text { font-size: 16px; font-weight: 800; opacity: 1; }
.mzd-town--hq .mzd-town__sub { font-size: 11px; font-weight: 600; fill: var(--primary); }
.mzd-hq__dot { fill: var(--primary); stroke: #fff; stroke-width: 2.5; }
.mzd-hq__ring { fill: var(--primary); opacity: .25; }
.mzd-hq__pulse { fill: none; stroke: var(--primary); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: mzPulse 2.4s ease-out infinite; }
.mzd-scale path { fill: none; stroke: var(--ink); stroke-width: 2; opacity: .6; }
.mzd-scale text, .mzd-north text { font-family: var(--font); font-size: 11px; font-weight: 700; fill: var(--ink); opacity: .65; }
.mzd-north path { fill: var(--ink); opacity: .6; }
@media (prefers-reduced-motion: reduce) { .mzd[open], .mzd-route--boat .mzd-route__line, .mzd-hq__pulse, .mzd-map.is-drawing .mzd-route--car .mzd-route__line { animation: none; } }
@media (max-width: 900px) {
  .mzd { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; inset: 0; border-radius: 0; }
  .mzd__box { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); max-height: none; height: 100%; }
  .mzd__map { height: 56vh; overflow: hidden; }
  .mzd__map svg { width: 100%; height: 100%; }
  .mzd__side { border-left: 0; border-top: 1px solid var(--border); padding: 18px 16px; }
  .mzd__legend { grid-template-columns: 1fr 1fr; }
}

/* ícone "ver em detalhe" no canto do mapa pequeno */
.mz__canvas { position: relative; }
.mz__zoom { position: absolute; right: calc(.53% + 10px); top: calc(35.76% + 10px); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--ink); display: grid; place-items: center; cursor: pointer; box-shadow: var(--shadow); transition: background .2s, color .2s, transform .25s var(--ease); }
.mz__zoom .ico { width: 20px; height: 20px; }
.mz__zoom:hover, .mz__zoom:focus-visible { background: var(--primary); color: #fff; border-color: var(--primary); transform: scale(1.08); }
.mz__zoom::after { content: attr(data-tip); position: absolute; right: calc(100% + 10px); top: 50%; transform: translateY(-50%); white-space: nowrap; background: var(--dark); color: #fff; font: 600 .76rem var(--font); padding: 6px 10px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .2s; }
.mz__zoom:hover::after, .mz__zoom:focus-visible::after { opacity: 1; }
/* ---------- Contactos: mapa interactivo (Leaflet + satélite) ---------- */
.ct-map__canvas { position: absolute; inset: 0; z-index: 0; background: #1d2a1f; }
.ct-map__canvas .map__ph { position: absolute; inset: 0; }
.ct-map__canvas.is-ready .map__ph { display: none; }
.ct-map__route { z-index: 500; }
.ct-pin { position: relative; display: flex; align-items: center; gap: 10px; padding: 7px 14px 7px 7px; background: #fff; color: #1E2436; border-radius: 40px; box-shadow: 0 10px 28px rgba(0, 0, 0, .35); white-space: nowrap; font-family: var(--font); transform: translate(-50%, 16px); width: max-content; animation: ctPinIn .6s var(--ease) both; }
.ct-pin::after { content: ""; position: absolute; left: 50%; top: -7px; width: 16px; height: 16px; background: #fff; transform: translateX(-50%) rotate(45deg); border-radius: 4px 0 0 0; }
.ct-pin__ico { width: 38px; height: 38px; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; flex: none; position: relative; z-index: 1; }
.ct-pin__ico .ico { width: 20px; height: 20px; }
.ct-pin__txt { position: relative; z-index: 1; line-height: 1.2; }
.ct-pin__txt strong { display: block; font-size: .92rem; font-weight: 800; }
.ct-pin__txt small { display: block; font-size: .74rem; color: #6b6f7c; }
.ct-pin__dot { position: absolute; left: 50%; top: -16px; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--primary); border: 3px solid #fff; box-shadow: 0 0 0 0 color-mix(in srgb, var(--primary) 60%, transparent); animation: ctPulse 2.2s ease-out infinite; }
@keyframes ctPinIn { from { opacity: 0; transform: translate(-50%, 34px); } }
@keyframes ctPulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--primary) 60%, transparent); } 100% { box-shadow: 0 0 0 22px transparent; } }
.ct-layers { position: absolute; left: 20px; top: 20px; z-index: 500; display: inline-flex; padding: 4px; background: rgba(255, 255, 255, .95); border-radius: 40px; box-shadow: var(--shadow-lg); }
.ct-layers button { border: 0; background: none; padding: 8px 16px; border-radius: 30px; font: 700 .82rem var(--font); color: #5E6270; cursor: pointer; transition: background .2s, color .2s; }
.ct-layers button[aria-pressed="true"] { background: var(--primary); color: #fff; }
.ct-hint { position: absolute; left: 50%; bottom: 26px; z-index: 500; transform: translateX(-50%); background: rgba(20, 24, 38, .82); color: #fff; font: 600 .8rem var(--font); padding: 8px 14px; border-radius: 30px; opacity: 0; transition: opacity .3s; pointer-events: none; }
.ct-hint.is-on { opacity: 1; }
.ct-map .leaflet-control-zoom { border: 0; box-shadow: var(--shadow-lg); border-radius: 12px; overflow: hidden; margin: 0 20px 26px 0; }
.ct-map .leaflet-control-zoom a { width: 38px; height: 38px; line-height: 38px; color: #1E2436; }
.ct-map .leaflet-control-attribution { font-size: .62rem; background: rgba(255, 255, 255, .75); }
.ct-map .leaflet-div-icon { background: none; border: 0; }
.ct-route-flow { animation: ctFlow 1.2s linear infinite; }
@keyframes ctFlow { to { stroke-dashoffset: -28; } }
.ct-start { position: relative; }
.ct-start__dot { position: absolute; left: -9px; top: -9px; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 5px solid #1E2436; box-shadow: 0 2px 8px rgba(0, 0, 0, .4); }
.ct-start__lbl { position: absolute; right: 16px; top: -16px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; background: #1E2436; color: #fff; font: 700 .78rem var(--font); padding: 7px 12px; border-radius: 30px; box-shadow: 0 8px 20px rgba(0, 0, 0, .35); }
.ct-start__lbl .ico { width: 14px; height: 14px; color: var(--accent, #F5C04E); }
.ct-route-chip { position: absolute; left: -64px; top: -50px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; background: var(--primary); color: #fff; font: 700 .8rem var(--font); padding: 7px 12px; border-radius: 30px; box-shadow: 0 8px 20px rgba(0, 0, 0, .35); }
.ct-route-chip .ico { width: 16px; height: 16px; }
.ct-route-chip .ico + .ico { margin-left: -2px; }
.ct-pin--alt { transform: translate(14px, calc(-100% - 14px)); padding: 6px 13px 6px 6px; animation-name: ctPinIn2; }
.ct-pin--alt::after { left: -5px; top: auto; bottom: -5px; width: 12px; height: 12px; transform: rotate(45deg); border-radius: 2px; }
.ct-pin--alt .ct-pin__ico { width: 32px; height: 32px; background: #F5A524; }
.ct-pin--alt .ct-pin__ico .ico { width: 17px; height: 17px; }
.ct-pin--alt .ct-pin__txt strong { font-size: .82rem; }
.ct-pin--alt .ct-pin__dot { left: -14px; top: calc(100% + 14px); background: #F5A524; }
@keyframes ctPinIn2 { from { opacity: 0; transform: translate(14px, calc(-100% - 34px)); } }
.ct-map__detail { position: absolute; right: 20px; top: 72px; z-index: 500; box-shadow: var(--shadow-lg); }
.ct-more { position: absolute; left: 50%; top: 20px; z-index: 500; transform: translate(-50%, -10px); display: inline-flex; align-items: center; gap: 8px; background: #1E2436; color: #fff; font: 600 .8rem var(--font); padding: 9px 16px; border-radius: 30px; box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transition: opacity .3s, transform .3s var(--ease); }
.ct-more .ico { width: 16px; height: 16px; color: var(--accent, #F5C04E); }
.ct-more.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.ct-more:hover { background: var(--primary); color: #fff; }
.ct-legend { display: none; position: absolute; left: 12px; right: 12px; bottom: 26px; z-index: 500; flex-direction: column; gap: 5px; background: rgba(20, 24, 38, .9); color: #fff; border-radius: 14px; padding: 9px 13px; font: 600 .76rem var(--font); box-shadow: var(--shadow-lg); }
.ct-legend span { display: flex; align-items: center; gap: 6px; }
.ct-legend .ico { width: 15px; height: 15px; flex: none; color: var(--primary); }
.ct-legend__school .ico { color: #F5A524; }
:root[data-theme="dark"] .ct-layers { background: rgba(24, 28, 39, .95); }
:root[data-theme="dark"] .ct-streets { filter: invert(.92) hue-rotate(180deg) saturate(.7) brightness(.95); }
:root[data-theme="dark"] .ct-layers button { color: #AEB3C2; }
@media (max-width: 760px) {
  .ct-layers { left: 12px; top: 12px; }
  .ct-layers button { padding: 7px 12px; }
  .ct-pin__txt small { display: none; }
  .ct-map .leaflet-control-zoom { display: none; }      /* no telemóvel aproxima-se com dois dedos */
  .ct-start__lbl { right: auto; left: -18px; top: -48px; }  /* por cima do ponto, para não sair do ecrã */
  .ct-map { height: 440px; }
  .ct-pin { gap: 8px; padding: 5px 12px 5px 5px; }
  .ct-pin__ico { width: 32px; height: 32px; }
  .ct-pin__ico .ico { width: 17px; height: 17px; }
  .ct-pin__txt strong { font-size: .8rem; }
  .ct-hint { bottom: auto; top: 50%; transform: translate(-50%, -50%); text-align: center; max-width: 80%; }
  .ct-wa-card { padding: 12px 14px; gap: 12px; }
  .ct-wa-card__ico { width: 40px; height: 40px; }
  .ct-wa-card__txt strong { font-size: .9rem; }
  .ct-wa-card__hours { display: none; }
  .ct-more { display: none; }
  .ct-map__detail { top: 64px; right: 12px; width: 40px; height: 40px; padding: 0; gap: 0; font-size: 0; justify-content: center; border-radius: 50%; }
  .ct-map__detail .ico { width: 18px; height: 18px; margin: 0; }
  .ct-route-chip { display: none; }
  .ct-legend { display: flex; }
  .ct-pin--alt { transform: translate(-50%, -50%); padding: 3px; border-radius: 50%; animation: none; }
  .ct-pin--alt .ct-pin__txt, .ct-pin--alt::after, .ct-pin--alt .ct-pin__dot { display: none; }
  .ct-pin--alt .ct-pin__ico { width: 30px; height: 30px; }
  .ct-route-chip { left: -40px; top: 14px; }                 /* por baixo da linha, longe do nome da estrada */
}
@media (prefers-reduced-motion: reduce) { .ct-pin, .ct-pin__dot, .ct-route-flow { animation: none; } }
/* ---------- Contactos: formulário (cartão, assuntos, campos com ícone) ---------- */
.ct--top { padding-top: clamp(36px, 4.5vw, 64px); }
.ct__grid:has(.ct-card) { align-items: start; }
@media (min-width: 1081px) { .ct__grid:has(.ct-card) .ct__media { position: sticky; top: calc(var(--header-h, 90px) + 24px); } }
.ct-card { background: var(--surface); border: 1px solid var(--border); border-radius: 22px; padding: clamp(24px, 3vw, 40px); box-shadow: 0 24px 60px rgba(30, 36, 54, .08); }
.ct-form { gap: 18px; }
.ct-topics { border: 0; margin: 0; padding: 0; min-width: 0; }
.ct-topics legend { font-size: .82rem; font-weight: 700; color: var(--ink); margin-bottom: 10px; padding: 0; }
.ct-topics__list { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-topic { position: relative; cursor: pointer; }
.ct-topic input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct-topic span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 30px; font-size: .84rem; font-weight: 600; color: var(--text); background: var(--surface); transition: border-color .2s, background .2s, color .2s, transform .2s var(--ease); }
.ct-topic span .ico { width: 15px; height: 15px; color: var(--primary); }
.ct-topic:hover span { border-color: color-mix(in srgb, var(--primary) 50%, transparent); transform: translateY(-1px); }
.ct-topic input:checked + span { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 8px 18px color-mix(in srgb, var(--primary) 30%, transparent); }
.ct-topic input:checked + span .ico { color: #fff; }
.ct-topic input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.ct-field label { display: flex; align-items: baseline; gap: 6px; font-size: .82rem; font-weight: 700; color: var(--ink); margin-bottom: 7px; }
.ct-field label b { color: var(--primary); }
.ct-opt { font-weight: 500; color: #9a9ca5; font-size: .76rem; }
.ct-field__box { position: relative; }
.ct-field__box > .ico { position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: #9a9ca5; pointer-events: none; transition: color .2s; }
.ct-field__box:focus-within > .ico { color: var(--primary); }
.ct-field__box--area .ct-chars { position: absolute; right: 14px; bottom: 10px; font-size: .72rem; color: #9a9ca5; pointer-events: none; }
.ct-chars.is-near { color: var(--primary); font-weight: 700; }
.ct-form input:user-invalid, .ct-form textarea:user-invalid { border-color: #d64545; box-shadow: 0 0 0 4px rgba(214, 69, 69, .12); }
.ct-form .ct-consent { display: flex; gap: 12px; align-items: flex-start; font-size: .84rem; line-height: 1.5; cursor: pointer; }
.ct-consent input { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; margin: 1px 0 0; flex: none; border: 2px solid color-mix(in srgb, var(--ink) 28%, transparent); border-radius: 6px; background: var(--input) center / 14px no-repeat; cursor: pointer; transition: background-color .2s, border-color .2s, box-shadow .2s, transform .15s; }
.ct-consent input:hover { border-color: var(--primary); }
.ct-consent input:checked { background-color: var(--primary); border-color: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); animation: ctTick .25s var(--ease); }
.ct-consent input:focus-visible { outline: 0; box-shadow: 0 0 0 4px var(--primary-soft); border-color: var(--primary); }
.ct-consent input:user-invalid { border-color: #d64545; box-shadow: 0 0 0 4px rgba(214, 69, 69, .12); }
@keyframes ctTick { 50% { transform: scale(1.15); } }
.ct-consent a { color: var(--primary); font-weight: 600; }
.ct-submit { position: relative; width: 100%; justify-content: center; padding-block: 15px; }
.ct-or { display: flex; align-items: center; gap: 14px; color: #9a9ca5; font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin: 2px 0; }
.ct-or::before, .ct-or::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.ct-wa-card { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid color-mix(in srgb, #25D366 35%, var(--border)); border-radius: 14px; background: color-mix(in srgb, #25D366 7%, var(--surface)); color: var(--ink); text-decoration: none; transition: border-color .25s, box-shadow .25s, transform .25s var(--ease), background .25s; }
.ct-wa-card:hover { border-color: #25D366; background: color-mix(in srgb, #25D366 12%, var(--surface)); box-shadow: 0 12px 26px rgba(37, 211, 102, .18); transform: translateY(-2px); color: var(--ink); }
.ct-wa-card__ico { width: 44px; height: 44px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; flex: none; box-shadow: 0 6px 14px rgba(37, 211, 102, .35); }
.ct-wa-card__ico .ico { width: 22px; height: 22px; }
.ct-wa-card__txt { flex: 1; min-width: 0; line-height: 1.3; }
.ct-wa-card__txt strong { display: block; font-size: .95rem; font-weight: 700; }
.ct-wa-card__txt small { display: block; font-size: .78rem; color: var(--text); margin-top: 2px; }
.ct-wa-card__go { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #1f9d55; background: var(--surface); border: 1px solid var(--border); flex: none; transition: transform .25s var(--ease), background .25s, color .25s; }
.ct-wa-card__go .ico { width: 16px; height: 16px; }
.ct-wa-card:hover .ct-wa-card__go { transform: translateX(4px); background: #25D366; color: #fff; border-color: #25D366; }
.ct-submit__busy { display: none; align-items: center; gap: 10px; }
.ct-submit.is-sending .ct-submit__txt { display: none; }
.ct-submit.is-sending .ct-submit__busy { display: inline-flex; }
.ct-spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; animation: ctSpin .7s linear infinite; }
@keyframes ctSpin { to { transform: rotate(360deg); } }
.ct-safe { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; font-size: .78rem; color: #9a9ca5; }
.ct-safe .ico { width: 15px; height: 15px; color: #1f9d55; }
:root[data-theme="dark"] .ct-card { box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }
@media (max-width: 760px) {
  .ct-card { padding: 22px 18px; border-radius: 18px; }
  .ct-topic span { padding: 7px 12px; font-size: .8rem; }
  .ct-submit { width: 100%; }
}
/* ==========================================================================
   Página "Serviços" (sv-): alugueres, serviços digitais e formação
   ========================================================================== */
.sv-intro { padding-bottom: clamp(30px, 4vw, 50px); }
.sv-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.sv-cat { display: flex; flex-direction: column; gap: 8px; padding: 26px; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; color: var(--text); transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.sv-cat:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--primary) 45%, transparent); color: var(--text); }
.sv-cat__ico { width: 54px; height: 54px; border-radius: 16px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; margin-bottom: 6px; transition: background .3s, color .3s; }
.sv-cat__ico .ico { width: 26px; height: 26px; }
.sv-cat:hover .sv-cat__ico { background: var(--primary); color: #fff; }
.sv-cat strong { color: var(--ink); font-size: 1.12rem; }
.sv-cat small { font-size: .9rem; line-height: 1.55; flex: 1; }
.sv-cat__n { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .85rem; color: var(--primary); margin-top: 6px; }
.sv-cat__n .ico { width: 15px; height: 15px; transition: transform .25s var(--ease); }
.sv-cat:hover .sv-cat__n .ico { transform: translateX(4px); }

.sv-group .section-title { font-size: clamp(1.4rem, 2.4vw, 1.9rem); max-width: 760px; }
.sv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.sv-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.sv-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.sv-card--hl { border-color: color-mix(in srgb, var(--primary) 55%, transparent); box-shadow: 0 18px 40px color-mix(in srgb, var(--primary) 14%, transparent); }
.sv-card__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--soft); }
.sv-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.sv-card:hover .sv-card__img img { transform: scale(1.05); }
.sv-card__badge { position: absolute; left: 18px; bottom: -22px; width: 48px; height: 48px; border-radius: 14px; background: var(--primary); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 22px color-mix(in srgb, var(--primary) 35%, transparent); }
.sv-card__img + .sv-card__body { padding-top: 34px; }
.sv-card__img { overflow: visible; }
.sv-card__img img { border-radius: 20px 20px 0 0; }
.sv-card__badge .ico, .sv-card__ico .ico { width: 24px; height: 24px; }
.sv-card__top { padding: 26px 26px 0; }
.sv-card__ico { width: 58px; height: 58px; border-radius: 16px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.sv-card__body { padding: 20px 26px 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.sv-card h3 { font-size: 1.2rem; margin: 0; color: var(--ink); }
.sv-card__txt { margin: 0; font-size: .93rem; line-height: 1.6; }
.sv-price { margin: 2px 0 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.sv-price strong { font-size: 1.6rem; font-weight: 800; color: var(--primary); letter-spacing: -.02em; line-height: 1.1; }
.sv-price span { font-size: .86rem; color: #9a9ca5; font-weight: 600; }
.sv-opts { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.sv-opts li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; font-size: .9rem; }
.sv-opts li + li { border-top: 1px solid var(--border); }
.sv-opts li span { color: var(--ink); font-weight: 600; line-height: 1.35; }
.sv-opts li small { display: block; color: #9a9ca5; font-weight: 500; font-size: .78rem; margin-top: 2px; }
.sv-opts li b { color: var(--primary); white-space: nowrap; font-size: .92rem; }
.sv-inc { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .88rem; }
.sv-inc li { display: flex; gap: 9px; align-items: flex-start; line-height: 1.45; }
.sv-inc .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: #1f9d55; }
.sv-card__actions { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 8px; }
.sv-card__actions .btn { flex: 1; justify-content: center; }
.sv-wa { width: 42px; height: 42px; border-radius: 50%; flex: none; display: grid; place-items: center; background: color-mix(in srgb, #25D366 12%, var(--surface)); color: #1f9d55; border: 1px solid color-mix(in srgb, #25D366 35%, var(--border)); transition: background .25s, color .25s, transform .25s var(--ease); }
.sv-wa .ico { width: 20px; height: 20px; }
.sv-wa:hover { background: #25D366; color: #fff; transform: translateY(-2px); }

.sv-steps { list-style: none; margin: 0 0 clamp(28px, 4vw, 44px); padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: sv; }
.sv-step { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; }
.sv-step__n { position: absolute; right: 16px; top: 12px; font-size: 1.8rem; font-weight: 800; color: transparent; -webkit-text-stroke: 1.2px color-mix(in srgb, var(--primary) 55%, transparent); line-height: 1; }
.sv-step__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; margin-bottom: 4px; }
.sv-step__ico .ico { width: 20px; height: 20px; }
.sv-step strong { color: var(--ink); font-size: .98rem; }
.sv-step small { font-size: .84rem; line-height: 1.5; }

.sv-impact { background: var(--primary); color: rgba(255, 255, 255, .92); padding: clamp(40px, 5vw, 64px) 0; position: relative; overflow: hidden; }
.sv-impact::before { content: ""; position: absolute; inset: 0; background: url("../img/map-dots-plain.svg") center / cover no-repeat; opacity: .14; pointer-events: none; }
.sv-impact__in { position: relative; display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.sv-impact__in > div { flex: 1; min-width: 260px; }
.sv-impact__ico { width: 64px; height: 64px; border-radius: 50%; background: rgba(255, 255, 255, .18); display: grid; place-items: center; color: #fff; flex: none; }
.sv-impact__ico .ico { width: 30px; height: 30px; }
.sv-impact h2 { color: #fff; font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin: 0 0 6px; }
.sv-impact p { margin: 0; max-width: 720px; }

@media (max-width: 1080px) { .sv-steps, .sv-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
  .sv-steps { grid-template-columns: 1fr; }
  .sv-grid { grid-template-columns: minmax(0, 1fr); }
  .sv-card__body { padding: 18px 20px 22px; }
  .sv-impact__in { flex-direction: column; align-items: flex-start; }
}
/* ---------- Serviços: versão compacta e com fundos com profundidade ---------- */
.sv-intro.section { padding: clamp(36px, 4vw, 56px) 0 clamp(20px, 2.5vw, 30px); }
.sv-intro .section-head { margin-bottom: 24px; }
.sv-cats { gap: 14px; }
.sv-cat { flex-direction: row; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 14px; }
.sv-cat__ico { width: 44px; height: 44px; border-radius: 12px; margin: 0; flex: none; }
.sv-cat__ico .ico { width: 22px; height: 22px; }
.sv-cat strong { font-size: .98rem; flex: 1; line-height: 1.3; }
.sv-cat small { display: none; }
.sv-cat__n { margin: 0; white-space: nowrap; font-size: .8rem; }

.sv-group.section { padding: clamp(40px, 4.5vw, 64px) 0; overflow: hidden; isolation: isolate; }
.sv-group .section-head { margin-bottom: clamp(20px, 2.5vw, 30px); }
.sv-group .section-title { font-size: clamp(1.25rem, 2vw, 1.6rem); max-width: 680px; }
.sv-group::before, .sv-group::after { content: ""; position: absolute; z-index: -1; pointer-events: none; }
/* alugueres: claro, com brilho coral e pontos */
.sv-group--aluguer { background: linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--primary) 4%, var(--bg))); }
.sv-group--aluguer::before { width: 520px; height: 520px; right: -160px; top: -200px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 16%, transparent), transparent 70%); }
.sv-group--aluguer::after { left: 0; bottom: 0; width: 240px; height: 200px; background-image: radial-gradient(color-mix(in srgb, var(--primary) 45%, transparent) 1.6px, transparent 1.8px); background-size: 18px 18px; opacity: .35; mask-image: linear-gradient(45deg, #000, transparent 75%); }
/* digitais: tom suave azulado, textura de pontos do mapa */
.sv-group--digital { background: linear-gradient(135deg, color-mix(in srgb, #2C7DA0 7%, var(--soft)), var(--soft) 55%); }
.sv-group--digital::before { inset: 0; background: url("../img/map-dots-plain.svg") right -120px center / 900px auto no-repeat; opacity: .07; }
.sv-group--digital::after { width: 460px; height: 460px; left: -180px; bottom: -220px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, #2C7DA0 16%, transparent), transparent 70%); }
/* gestão: faixa escura, cartões a destacar */
.sv-group--gestao { background: var(--dark); }
.sv-group--gestao::before { inset: 0; background: radial-gradient(800px 380px at 85% 0%, color-mix(in srgb, var(--primary) 28%, transparent), transparent 70%), radial-gradient(600px 300px at 0% 100%, color-mix(in srgb, var(--accent, #F5C04E) 14%, transparent), transparent 70%); }
.sv-group--gestao::after { inset: 0; background: url("../img/map-dots-plain.svg") center / cover no-repeat; opacity: .05; }
.sv-group--gestao .section-title { color: #fff; }
.sv-group--gestao .sv-card { border-color: rgba(255, 255, 255, .06); box-shadow: 0 20px 44px rgba(0, 0, 0, .28); }
/* formação: quente, com brilho dourado */
.sv-group--formacao { background: linear-gradient(180deg, var(--soft), color-mix(in srgb, var(--accent, #F5C04E) 8%, var(--soft))); }
.sv-group--formacao::before { width: 520px; height: 520px; right: -200px; bottom: -260px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--accent, #F5C04E) 22%, transparent), transparent 70%); }

/* cartões mais baixos */
.sv-grid { gap: 20px; }
.sv-card { border-radius: 18px; backdrop-filter: blur(2px); }
.sv-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 30%, #F5C04E)); opacity: 0; transition: opacity .3s; z-index: 2; }
.sv-card { position: relative; }
.sv-card:hover::before, .sv-card--hl::before { opacity: 1; }
.sv-card__img { aspect-ratio: 16 / 8.5; }
.sv-card__img + .sv-card__body { padding-top: 30px; }
.sv-card__badge { width: 42px; height: 42px; border-radius: 12px; bottom: -20px; }
.sv-card__top { padding: 20px 22px 0; display: flex; align-items: center; gap: 14px; }
.sv-card__ico { width: 46px; height: 46px; border-radius: 13px; }
.sv-card__ico .ico, .sv-card__badge .ico { width: 21px; height: 21px; }
.sv-card__body { padding: 14px 22px 20px; gap: 10px; }
.sv-card h3 { font-size: 1.08rem; }
.sv-card__txt { font-size: .88rem; line-height: 1.55; }
.sv-price strong { font-size: 1.35rem; }
.sv-opts li { padding: 8px 12px; font-size: .86rem; }
.sv-inc { gap: 5px; font-size: .84rem; }
.sv-card__actions { padding-top: 4px; }
.sv-card__actions .btn { padding-block: 10px; }
.sv-wa { width: 38px; height: 38px; }

/* passos: faixa fina numa linha */
.sv-steps { gap: 0; margin-bottom: clamp(20px, 2.5vw, 28px); background: var(--surface); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.sv-step { flex-direction: row; align-items: center; gap: 12px; padding: 14px 16px; border: 0; border-radius: 0; background: none; }
.sv-step + .sv-step { border-left: 1px solid var(--border); }
.sv-step__n { position: static; order: -1; font-size: 1.4rem; -webkit-text-stroke-width: 1px; flex: none; }
.sv-step__ico { display: none; }
.sv-step strong { font-size: .9rem; display: block; }
.sv-step small { display: block; font-size: .78rem; line-height: 1.4; color: #9a9ca5; }
.sv-step > strong, .sv-step > small { flex: 1; }
.sv-step { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; }
.sv-step__n { grid-row: 1 / 3; }

.sv-impact { padding: clamp(32px, 4vw, 48px) 0; }
@media (max-width: 1080px) { .sv-step:nth-child(3) { border-left: 0; } .sv-step:nth-child(n+3) { border-top: 1px solid var(--border); } }
@media (max-width: 760px) {
  .sv-cat { padding: 12px 14px; }
  .sv-step + .sv-step { border-left: 0; border-top: 1px solid var(--border); }
  .sv-group--aluguer::before, .sv-group--formacao::before { width: 320px; height: 320px; }
}
/* ==========================================================================
   Campanhas de doação (cp-) e modal de campanha urgente (urg-)
   ========================================================================== */
.cp-home { overflow: hidden; }
.cp-home .section-head { text-align: center; margin-inline: auto; }
.cp-carousel { position: relative; }
.cp-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * 28px) / 3); gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 20px; scrollbar-width: none; }
.cp-track::-webkit-scrollbar { display: none; }
.cp-track > * { scroll-snap-align: start; }
.cp-nav { position: absolute; top: 40%; z-index: 2; width: 46px; height: 46px; border: 0; border-radius: 10px; background: var(--surface); color: var(--ink); box-shadow: var(--shadow-lg); display: grid; place-items: center; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.cp-nav:hover { background: var(--primary); color: #fff; }
.cp-nav[disabled] { opacity: 0; pointer-events: none; }
.cp-nav--prev { left: -22px; }
.cp-nav--next { right: -22px; }
.cp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.cp-list__done { margin-top: clamp(40px, 5vw, 64px); }

.cp-card { background: color-mix(in srgb, var(--accent, #F5C04E) 7%, var(--soft)); padding: 18px; border-radius: 4px; display: flex; flex-direction: column; transition: transform .3s var(--ease), box-shadow .3s; }
.cp-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.cp-card.is-done { opacity: .85; }
.cp-card__img { position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; }
.cp-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.cp-card:hover .cp-card__img img { transform: scale(1.05); }
.cp-card__tag { position: absolute; left: -6px; top: 18px; background: var(--primary); color: #fff; font-size: .78rem; font-weight: 600; padding: 6px 14px; }
.cp-card__tag::after { content: ""; position: absolute; left: 0; bottom: -6px; border-top: 6px solid color-mix(in srgb, var(--primary) 60%, #000); border-left: 6px solid transparent; }
.cp-card__state { position: absolute; right: 14px; top: 16px; display: inline-flex; align-items: center; gap: 6px; background: var(--surface); color: var(--ink); font-size: .76rem; font-weight: 700; padding: 6px 10px; border-radius: 4px; }
.cp-card__state .ico { width: 14px; height: 14px; color: var(--primary); }
.cp-card__body { padding: 20px 0 0; display: flex; flex-direction: column; gap: 16px; flex: 1; }
.cp-card h3 { font-size: 1.16rem; line-height: 1.35; margin: 0; flex: 1; }
.cp-card h3 a { color: var(--ink); }
.cp-card h3 a:hover { color: var(--primary); }
.cp-card__nums { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border); padding-top: 14px; }
.cp-card__nums > div { display: flex; align-items: center; gap: 10px; }
.cp-card__nums > div + div { border-left: 1px solid var(--border); justify-content: flex-end; }
.cp-card__ico { color: var(--primary); display: grid; }
.cp-card__ico .ico { width: 26px; height: 26px; }
.cp-card__nums small { display: block; font-size: .82rem; color: var(--text); }
.cp-card__nums strong { display: block; color: var(--ink); font-size: 1rem; }
.cp-bar { display: flex; align-items: center; gap: 12px; background: var(--surface); padding: 12px 12px; border-radius: 2px; }
.cp-bar__lbl { font-size: .82rem; font-weight: 600; color: var(--ink); }
.cp-bar__track { flex: 1; height: 5px; background: color-mix(in srgb, var(--primary) 16%, var(--surface)); border-radius: 5px; position: relative; }
.cp-bar__fill { position: absolute; left: 0; top: 0; bottom: 0; width: var(--p, 0%); background: var(--primary); border-radius: 5px; transition: width 1.4s var(--ease); }
.cp-bar__fill::after { content: ""; position: absolute; right: -7px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: var(--surface); border: 3px solid var(--primary); }
.cp-bar__pct { font-size: .8rem; color: #9a9ca5; min-width: 42px; text-align: right; }
.cp-bar--big { padding: 0; background: none; }
.cp-bar--big .cp-bar__track { height: 8px; }
.js .reveal:not(.is-visible) .cp-bar__fill { width: 0; }
.cp-side__raised { margin: 12px 0 10px; }
.cp-side__raised strong { font-size: 1.7rem; color: var(--ink); font-weight: 800; }
.cp-side__raised span { color: #9a9ca5; font-weight: 600; }
.cp-side .facts { margin: 18px 0; }
.cp-side__note { display: flex; gap: 8px; align-items: flex-start; font-size: .8rem; margin: 14px 0 0; color: #9a9ca5; }
.cp-side__note .ico { width: 16px; height: 16px; color: #1f9d55; flex: none; margin-top: 2px; }

/* Modal urgente */
.urg { border: 0; padding: 0; width: min(860px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 32px); border-radius: 22px; background: var(--surface); color: var(--text); box-shadow: 0 40px 90px rgba(10, 13, 20, .5); overflow: hidden; }
.urg::backdrop { background: rgba(10, 13, 20, .7); backdrop-filter: blur(3px); }
.urg[open] { animation: urgIn .45s var(--ease); }
@keyframes urgIn { from { opacity: 0; transform: translateY(24px) scale(.97); } to { opacity: 1; transform: none; } }
.urg__box { display: grid; grid-template-columns: 1fr 1.15fr; position: relative; max-height: calc(100dvh - 32px); }
.urg__box:not(:has(.urg__img)) { grid-template-columns: 1fr; }
.urg__img { position: relative; min-height: 100%; }
.urg__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.urg__tag { position: absolute; left: 18px; top: 18px; display: inline-flex; align-items: center; gap: 8px; background: #D93636; color: #fff; font-weight: 800; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; padding: 7px 14px; border-radius: 30px; box-shadow: 0 8px 20px rgba(217, 54, 54, .4); }
.urg__tag--inline { position: static; align-self: flex-start; }
.urg__pulse { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: urgPulse 1.2s ease-in-out infinite; }
@keyframes urgPulse { 50% { opacity: .25; transform: scale(.7); } }
.urg__body { padding: clamp(24px, 3.5vw, 40px); display: flex; flex-direction: column; gap: 14px; overflow-y: auto; }
.urg__body h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); line-height: 1.2; margin: 0; padding-right: 36px; }
.urg__body p { margin: 0; line-height: 1.65; }
.urg__raised strong { font-size: 1.4rem; color: var(--ink); font-weight: 800; }
.urg__raised span { color: #9a9ca5; font-weight: 600; }
.urg__count { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.urg__count > span { background: var(--soft); border-radius: 12px; padding: 10px 6px; text-align: center; }
.urg__count b { display: block; font-size: 1.5rem; font-weight: 800; color: var(--primary); line-height: 1.1; font-variant-numeric: tabular-nums; }
.urg__count small { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #9a9ca5; font-weight: 700; }
.urg__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 4px; }
.urg__close { position: absolute; right: 14px; top: 14px; z-index: 3; width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--surface); color: var(--ink); box-shadow: var(--shadow); display: grid; place-items: center; cursor: pointer; }
.urg__close:hover { background: var(--primary); color: #fff; }
@media (prefers-reduced-motion: reduce) { .urg[open], .urg__pulse { animation: none; } }

@media (max-width: 1080px) {
  .cp-track { grid-auto-columns: calc((100% - 28px) / 2); }
  .cp-grid { grid-template-columns: 1fr 1fr; }
  .cp-nav--prev { left: 4px; } .cp-nav--next { right: 4px; }
}
@media (max-width: 760px) {
  .cp-track { grid-auto-columns: 86%; gap: 16px; }
  .cp-grid { grid-template-columns: minmax(0, 1fr); }
  .cp-nav { display: none; }
  .urg { width: 100%; max-width: 100vw; max-height: 92dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .urg__box { grid-template-columns: 1fr; max-height: 92dvh; }
  .urg__img { min-height: 0; aspect-ratio: 16 / 9; }
  .urg__count b { font-size: 1.25rem; }
}
.cp-home__all { text-align: center; margin: 18px 0 0; }
/* ---------- Responsivo ---------- */
@media (max-width: 1400px) {
  .header__in { gap: 16px; }
  .nav__link { padding-inline: 10px; font-size: .93rem; }
  .nav__link::after { left: 10px; right: 10px; }
  .header__actions { gap: 8px; }
  .brand__txt small { font-size: .62rem; }
}
@media (max-width: 1280px) {
  .nav__link { padding-inline: 8px; font-size: .9rem; }
  .brand__txt { display: none; }
}
@media (max-width: 1200px) {
  .nav__link { padding-inline: 7px; font-size: .9rem; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__news { margin-top: 0; }
}
@media (max-width: 1080px) {
  :root { --header-h: 76px; }
  .burger { display: flex; }
  .nav { position: fixed; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: var(--surface); z-index: 200; transform: translateX(100%); transition: transform .4s var(--ease); overflow-y: auto; padding: 90px 20px 30px; box-shadow: var(--shadow-lg); }
  .nav.is-open { transform: none; }
  body.menu-open { overflow: hidden; }
  body.menu-open::after { content: ""; position: fixed; inset: 0; background: rgba(20, 24, 38, .55); z-index: 150; }
  .header__actions { margin-left: auto; position: relative; z-index: 210; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav__item { border-bottom: 1px solid var(--border); display: flex; flex-wrap: wrap; }
  .nav__link { padding: 16px 6px; flex: 1; }
  .nav__link::after, .nav__caret { display: none; }
  .nav__toggle { display: grid; place-items: center; width: 48px; border: 0; background: none; color: var(--ink); }
  .nav__item.is-open .nav__toggle .ico { transform: rotate(180deg); }
  .sub, .sub--mega { position: static; width: 100%; opacity: 1; visibility: visible; transform: none !important; box-shadow: none; border: 0; padding: 0 0 12px; display: none; min-width: 0; }
  .nav__item:hover > .sub { display: none; }
  .nav__item.is-open > .sub, .nav__item.is-open:hover > .sub { display: block; }
  .sub__grid, .sub__cols { grid-template-columns: 1fr; gap: 0; }
  .sub__link small { display: none; }
  .nav__mobile-extra { display: block; margin-top: 24px; }
  .feature-cards__grid { grid-template-columns: 1fr 1fr; }
  .feature-card:nth-child(2) { border-right: 0; }
  .feature-card:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .about__grid, .feature__grid, .why__grid, .donate, .form-wrap, .dd-grid, .detail { grid-template-columns: 1fr; }
  .detail__side { position: static; }
  .about__media { max-width: 600px; }
  .areas__grid, .grid-3, .mvv, .links-grid { grid-template-columns: 1fr 1fr; }
  .stats__grid { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .stat:nth-child(3)::before { display: none; }
  .contact-cards { grid-template-columns: 1fr 1fr; }
  .event-row { grid-template-columns: 160px 80px 1fr; }
  .event-row__btn { display: none; }
  .area-row, .area-row--rev { grid-template-columns: 1fr; }
  .area-row--rev .area-row__img { order: 0; }
  .chips-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  body { font-size: 15.5px; }
  .lang-hint { left: 12px; right: 12px; bottom: 80px; max-width: none; }
  .topbar__info a:nth-child(2), .hide-md { display: none !important; }
  .topbar__social { display: none; }
  .topbar__info { justify-content: center; width: 100%; }
  .hide-sm { display: none !important; }
  .brand img { width: 46px; height: 46px; }
  .brand__txt strong { font-size: 1.15rem; }
  .hero__content { padding: 70px 0 140px; }
  .hero__nav { bottom: 100px; }
  .feature-cards { margin-top: -60px; }
  .feature-cards__grid, .areas__grid, .grid-3, .mvv, .links-grid, .contact-teaser__grid, .contact-cards, .chips-grid, .intervencoes, .form__row, .check-list--2 { grid-template-columns: 1fr; }
  .feature-card { border-right: 0; border-bottom: 1px solid var(--border); }
  .about__media { padding: 0 20px 40px 0; }
  .about__badge { left: 0; bottom: 60px; padding: 14px 18px; }
  .about__badge strong { font-size: 2rem; }
  .feature__seal { width: 100px; left: -10px; bottom: -20px; }
  .event-row { grid-template-columns: 1fr; text-align: left; }
  .event-row__date { border: 0; padding: 0; display: flex; gap: 8px; align-items: baseline; text-align: left; }
  .event-row__date strong { font-size: 1.6rem; }
  .timeline::before, .timeline__item::before { display: none; }
  .timeline__item { grid-template-columns: 1fr; gap: 8px; }
  .timeline__year { width: fit-content; padding: 6px 16px; }
  .dl div { grid-template-columns: 1fr; gap: 2px; }
  .footer__grid { grid-template-columns: 1fr; gap: 40px; }
  .footer__news { padding: 28px; }
  .footer__bottom-in { justify-content: center; text-align: center; }
  .amounts { grid-template-columns: 1fr 1fr; }
  .usage__row { grid-template-columns: 1fr 1fr 44px; }
  .prevnext { grid-template-columns: 1fr; }
  .cookies { left: 12px; right: 12px; max-width: none; }
  .section-head--row { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal, .js .reveal { opacity: 1; transform: none; }
}
@media print {
  .topbar, .header, .footer, .cta-band, .to-top, .cookies { display: none !important; }
}

/* ==========================================================================
   Responsivo: ajustes finos (telemóvel e tablet)
   ========================================================================== */
.search-inline input { min-width: 0; }
.nav__contact { display: grid; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); font-size: .9rem; }
.nav__contact a, .nav__contact span { display: flex; align-items: center; gap: 10px; color: var(--text); }
.nav__contact a:hover { color: var(--primary); }
.nav__contact .ico { width: 17px; height: 17px; color: var(--primary); flex: none; }
@media (max-width: 1080px) {
  .brand__txt { display: flex; }                       /* com o menu em hambúrguer volta a haver espaço para o nome */
  .feature__seal { left: 0; }
}
@media (max-width: 760px) {
  .topbar { display: none; }                           /* só mostrava o telefone; os contactos estão no menu e no rodapé */
  .header__actions { gap: 6px; }
  .header .icon-btn { width: 42px; height: 42px; }
  .burger { width: 42px; height: 42px; padding: 12px 11px; }
  .brand { gap: 9px; min-width: 0; }
  .brand img { width: 42px; height: 42px; }
  .brand__txt small { font-size: .56rem; letter-spacing: .1em; }
  .brand__txt strong { font-size: 1.05rem; }
  /* "Quem somos": foto principal, foto pequena por cima do canto e o cartão do nome por baixo */
  .ab-intro__media { padding: 0; }
  .ab-intro__media::before { display: none; }
  .ab-intro__row { margin: -48px 0 0; }
  .ab-intro__second { width: 52%; border-width: 6px; }
  .ab-intro__third { width: 56%; margin: 64px 0 0 -8%; border-width: 6px; }
  .ab-name { position: relative; top: auto; right: auto; width: auto; margin: 18px 0 0; padding: 18px 20px; }
  .ab-name blockquote { font-size: 1.3rem; margin: 8px 0 6px; }
}
@media (max-width: 380px) {
  .brand__txt small { display: none; }
  .header .icon-btn { width: 38px; height: 38px; }
  .burger { width: 38px; height: 38px; padding: 11px 10px; }
}
@media (max-width: 760px) {
  .ct__card-wrap { margin-bottom: 44px; }               /* a forma coral inclinada não tapa o título seguinte */
  .pay-row { grid-template-columns: 1fr auto; row-gap: 2px; }
  .pay-row span { grid-column: 1 / -1; }
  .pay-row strong { font-size: .9rem; word-break: normal; overflow-wrap: anywhere; }
  .crumbs { flex-wrap: nowrap; padding: 7px 14px; gap: 8px; font-size: .86rem; }
  .crumbs a { white-space: nowrap; }
  .crumbs span[aria-current] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.footer__col { min-width: 0; }
@media (max-width: 760px) { .footer__grid { grid-template-columns: minmax(0, 1fr); } .footer__news { padding: 24px 20px; } }
@media (max-width: 1080px) {
  body.menu-open .header { z-index: 160; }             /* o menu (dentro do cabeçalho) fica acima do véu escuro */
  .topbar .hide-md { display: none !important; }       /* tablet: telefone, email e redes numa só linha */
}
:root[data-theme="dark"] .burger { background: var(--input); }
:root[data-theme="dark"] .burger span { background: var(--ink); }
.detail__main, .detail__side { min-width: 0; }
@media (max-width: 1080px) { .detail { grid-template-columns: minmax(0, 1fr); } }
.btn--block { white-space: normal; text-align: center; }
@media (max-width: 760px) { .side-box { padding: 22px 18px; } }

/* ── Página de campanha (v1.5) ── */
.pill--done { background: #6b7280; }
.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--primary); }
.link-arrow .ico { width: 16px; height: 16px; transition: transform .2s var(--ease); }
.link-arrow:hover .ico { transform: translateX(3px); }
.cp-detail .section-title--sm { margin-top: 44px; }
.cp-detail .detail__main > .section-title--sm:first-child, .cp-done + .section-title--sm { margin-top: 0; }
.cp-done { display: flex; gap: 18px; align-items: flex-start; padding: 24px; margin-bottom: 36px; border-radius: var(--radius-lg); background: color-mix(in srgb, #1f9d55 10%, var(--surface)); border: 1px solid color-mix(in srgb, #1f9d55 30%, transparent); }
.cp-done__ico { width: 52px; height: 52px; flex: none; border-radius: 50%; background: #1f9d55; color: #fff; display: grid; place-items: center; }
.cp-done__ico .ico { width: 26px; height: 26px; }
.cp-done h2 { font-size: 1.2rem; margin: 4px 0 8px; }
.cp-done p { margin: 0 0 12px; }
.cp-impact { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.cp-impact__item { display: flex; flex-direction: column; gap: 8px; padding: 22px 20px; border-radius: var(--radius-lg); background: var(--soft); border: 2px solid transparent; color: inherit; transition: border-color .25s, transform .25s var(--ease), box-shadow .25s; }
.cp-impact__item strong { font-size: 1.45rem; font-weight: 800; color: var(--primary); }
.cp-impact__item span { flex: 1; line-height: 1.5; }
.cp-impact__item em { font-style: normal; font-size: .85rem; font-weight: 700; color: var(--ink); display: inline-flex; align-items: center; gap: 6px; }
.cp-impact__item em .ico { width: 14px; height: 14px; }
a.cp-impact__item:hover { border-color: var(--primary); transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(30, 36, 54, .35); }
.cp-updates { list-style: none; margin: 0; padding: 0 0 0 26px; border-left: 2px solid color-mix(in srgb, var(--primary) 30%, transparent); display: grid; gap: 26px; }
.cp-updates li { position: relative; }
.cp-updates li::before { content: ""; position: absolute; left: -34px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 3px solid var(--primary); }
.cp-updates time { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--primary); }
.cp-updates h3 { font-size: 1.05rem; margin: 4px 0 6px; }
.cp-updates p { margin: 0; }
.share .share__copy { width: 40px; height: 40px; }
.cp-side__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.cp-side__top .pill { margin: 0; }
.cp-side__days { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--ink); }
.cp-side__days .ico { width: 16px; height: 16px; color: var(--primary); }
.cp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin: 20px 0; }
.cp-stats:empty { display: none; }
.cp-stats div { background: var(--surface); border-radius: 12px; padding: 10px 12px; }
.cp-stats dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: #9a9ca5; }
.cp-stats dd { margin: 2px 0 0; font-weight: 800; color: var(--ink); font-variant-numeric: tabular-nums; }
.cp-count { margin-bottom: 20px; }
.cp-count > span { background: var(--surface); }
.cp-count b { font-size: 1.25rem; }
.cp-side__label { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: #9a9ca5; margin: 0 0 8px; }
.cp-quick { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }
.cp-quick a { padding: 10px 8px; text-align: center; border-radius: var(--radius); border: 2px solid var(--border); background: var(--surface); color: var(--ink); font-weight: 700; transition: border-color .2s, color .2s; }
.cp-quick a small { font-weight: 600; color: #9a9ca5; }
.cp-quick a:hover { border-color: var(--primary); color: var(--primary); }
.cp-mbar { display: none; }
@media (max-width: 1080px) {
  .cp-mbar { display: flex; align-items: center; gap: 14px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 92; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--surface); border-top: 1px solid var(--border); box-shadow: 0 -10px 30px -18px rgba(30, 36, 54, .4); transform: translateY(110%); transition: transform .3s var(--ease); }
  .cp-mbar.is-on { transform: none; }
  .cp-mbar__info { flex: 1; min-width: 0; font-size: .85rem; line-height: 1.3; }
  .cp-mbar__info strong { color: var(--ink); font-size: 1rem; }
  .cp-mbar__info > span:first-of-type { color: #9a9ca5; font-weight: 600; }
  .cp-mbar__track { display: block; height: 5px; margin-top: 6px; border-radius: 5px; background: color-mix(in srgb, var(--primary) 16%, var(--surface)); overflow: hidden; }
  .cp-mbar__track span { display: block; height: 100%; width: var(--p, 0%); background: var(--primary); }
  .cp-mbar .btn { padding: 12px 20px; flex: none; }
  body.has-mbar .to-top { bottom: 92px; }
  body.has-mbar { padding-bottom: 76px; }
}
@media (max-width: 760px) {
  .cp-done { flex-direction: column; gap: 12px; padding: 20px 18px; }
  .cp-impact { grid-template-columns: 1fr 1fr; gap: 10px; }
  .cp-impact__item { padding: 16px 14px; }
  .cp-impact__item strong { font-size: 1.2rem; }
}
@media (max-width: 400px) { .cp-impact { grid-template-columns: 1fr; } }

/* ── Página Seja Voluntário (v1.6.1) ── */
.section--line { border-top: 1px solid var(--border); }
.vol-sec { padding: clamp(48px, 6vw, 80px) 0; }
.vol-sec--first { padding-top: clamp(36px, 4.5vw, 60px); }
.vol-sec .section-head { margin-bottom: clamp(26px, 3.5vw, 40px); }
.vol-sec .section-head p:last-child { margin-bottom: 0; }

/* 1 · Introdução */
.vol-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 80px); align-items: center; }
.vol-intro--solo { grid-template-columns: minmax(0, 760px); }
.vol-intro__text .section-title { margin-bottom: 16px; }
.vol-intro__lead { font-size: 1.02rem; }
.vol-intro__quote { display: flex; gap: 16px; align-items: center; margin: 20px 0 24px; padding: 16px 20px; border-left: 3px solid var(--primary); background: var(--soft); border-radius: 0 var(--radius) var(--radius) 0; color: var(--ink); font-weight: 600; }
.vol-intro__quote span { flex: none; width: 50px; height: 50px; border-radius: 50%; border: 2px solid var(--primary); color: var(--primary); display: grid; place-items: center; }
.vol-intro__quote .ico { width: 24px; height: 24px; }
.vol-why { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 16px; }
.vol-why li { display: flex; gap: 14px; align-items: flex-start; }
.vol-why__ico { flex: none; width: 42px; height: 42px; border-radius: 12px; background: color-mix(in srgb, var(--primary) 14%, transparent); color: var(--primary); display: grid; place-items: center; }
.vol-why__ico .ico { width: 20px; height: 20px; }
.vol-why h3 { font-size: 1rem; margin: 2px 0 4px; }
.vol-why p { margin: 0; font-size: .93rem; }
.vol-intro__media { position: relative; padding: 0 0 24px 24px; }
.vol-intro__media::before { content: ""; position: absolute; left: 0; bottom: 0; width: 70%; height: 70%; border-radius: var(--radius-lg); background: repeating-linear-gradient(45deg, color-mix(in srgb, var(--primary) 30%, transparent) 0 2px, transparent 2px 12px); }
.vol-intro__media img { position: relative; width: 100%; aspect-ratio: 4 / 4.2; object-fit: cover; border-radius: var(--radius-lg); box-shadow: 0 30px 60px -30px rgba(30, 36, 54, .45); }
.vol-intro__badge { position: absolute; right: 18px; bottom: 42px; display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border-radius: 999px; background: var(--surface); color: var(--ink); font-weight: 700; font-size: .9rem; box-shadow: 0 14px 30px -14px rgba(30, 36, 54, .45); }
.vol-intro__badge .ico { color: var(--primary); width: 18px; height: 18px; }

/* Cartão coral (colagem, apresentação e faixas) */
.vol-note { border-radius: var(--radius-lg); background: var(--primary); color: #fff; padding: 22px; display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.vol-note > span { width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .18); display: grid; place-items: center; }
.vol-note .ico { width: 24px; height: 24px; }
.vol-note strong { font-size: 1.15rem; line-height: 1.3; }
.vol-note .link-arrow { color: #fff; }

/* 2 · Grelha de voluntários */
.vol-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.vol-card { position: relative; margin: 0; overflow: hidden; display: block; background: var(--soft); }
.vol-card img { width: 100%; aspect-ratio: 4 / 4.3; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.vol-card:hover img { transform: scale(1.05); }
.vol-card figcaption { position: absolute; left: 14px; right: 14px; bottom: 14px; padding: 14px 16px; background: var(--surface); border-radius: var(--radius); display: grid; gap: 2px; box-shadow: 0 14px 30px -16px rgba(30, 36, 54, .5); }
.vol-card figcaption strong { color: var(--ink); font-size: 1rem; }
.vol-card figcaption span { color: var(--primary); font-size: .82rem; font-weight: 600; }
.vol-card figcaption q { font-size: .88rem; margin-top: 6px; display: none; }
.vol-card:hover figcaption q { display: block; }

/* 2 · Colagem dinâmica */
.vol-mosaic__title { text-align: center; font-size: 1.25rem; margin: clamp(36px, 5vw, 52px) 0 22px; }
.vol-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 15vw, 210px); gap: 14px; }
.vol-mosaic:not(.vol-mosaic--6) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vol-mosaic__tile { position: relative; overflow: hidden; display: block; border-radius: var(--radius-lg); background: var(--soft); }
.vol-mosaic__tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), opacity 1s ease; }
.vol-mosaic__tile:hover img { transform: scale(1.06); }
.vol-mosaic__tile img.is-in { opacity: 0; }
.vol-mosaic__tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(20, 24, 38, .35)); pointer-events: none; }
.vol-mosaic--6 .vol-mosaic__tile:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.vol-mosaic--6 .vol-mosaic__tile:nth-child(4) { grid-row: span 2; }
.vol-mosaic--6 .vol-mosaic__tile:nth-child(6) { grid-column: span 2; }

/* 2 · Apresentação: foto grande com efeito lento, barra de progresso e miniaturas */
.vol-show { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; }
.vol-show__stage { position: relative; overflow: hidden; border-radius: var(--radius-lg); aspect-ratio: 16 / 10; background: #1e2436; }
.vol-show__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease; }
.vol-show__slide.is-on { opacity: 1; z-index: 1; }
.vol-show__slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); }
.vol-show__slide.is-on img { animation: volKen 7s ease-out both; }
@keyframes volKen { from { transform: scale(1.12) translate(1.5%, 1%); } to { transform: scale(1.02); } }
.vol-show__stage::after { content: ""; position: absolute; inset: auto 0 0; height: 45%; z-index: 2; background: linear-gradient(180deg, transparent, rgba(16, 19, 27, .7)); pointer-events: none; }
.vol-show__bar { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 3; display: flex; align-items: center; gap: 14px; color: #fff; }
.vol-show__count { font-size: .9rem; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.vol-show__count b { font-size: 1.3rem; }
.vol-show__progress { flex: 1; height: 3px; background: rgba(255, 255, 255, .3); border-radius: 3px; overflow: hidden; }
.vol-show__progress i { display: block; height: 100%; width: 0; background: #fff; }
.vol-show__progress i.is-run { animation: volBar var(--d, 6s) linear forwards; }
@keyframes volBar { to { width: 100%; } }
.vol-show__btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5); background: rgba(16, 19, 27, .35); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s, border-color .2s; }
.vol-show__btn:hover { background: var(--primary); border-color: var(--primary); }
.vol-show__btn .ico { width: 18px; height: 18px; }
.vol-show__side { display: grid; grid-template-rows: 1fr auto; gap: 18px; min-height: 0; }
.vol-show__thumbs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; align-content: start; }
.vol-show__thumb { position: relative; padding: 0; border: 0; border-radius: 10px; overflow: hidden; aspect-ratio: 1; cursor: pointer; background: var(--soft); opacity: .55; transition: opacity .25s, box-shadow .25s; }
.vol-show__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vol-show__thumb:hover { opacity: .85; }
.vol-show__thumb.is-on { opacity: 1; box-shadow: 0 0 0 3px var(--primary); }

/* 2 · Faixas em movimento */
.vol-rails { display: grid; gap: 16px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.vol-rail__track { display: flex; gap: 16px; width: max-content; animation: volRail calc(var(--n, 6) * 6s) linear infinite; }
.vol-rail--rev .vol-rail__track { animation-direction: reverse; }
.vol-rails:hover .vol-rail__track { animation-play-state: paused; }
@keyframes volRail { to { transform: translateX(calc(-50% - 8px)); } }
.vol-rail__item { flex: none; width: clamp(220px, 24vw, 340px); aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; background: var(--soft); }
.vol-rail--rev .vol-rail__item { aspect-ratio: 16 / 10; }
.vol-rail__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.vol-rail__item:hover img { transform: scale(1.06); }
.vol-rails__foot { margin-top: 22px; }
.vol-rails__foot .vol-note { flex-direction: row; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 20px; padding: 16px 22px; }

/* 3 · Passos: o fundo suave fica contido */
.vol-sec.section--soft .steps { margin: 0; }

/* 4 · Perguntas frequentes */
.vol-faq { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: clamp(32px, 5vw, 70px); align-items: start; }
.vol-faq__aside { position: sticky; top: calc(var(--header-h, 90px) + 24px); }
.vol-faq__aside .section-title { margin-bottom: 14px; }
.vol-faq__contact { display: grid; gap: 14px; justify-items: start; margin-top: 22px; }
.vol-faq__contact .link-arrow .ico { width: 18px; height: 18px; }
.vol-faq__list { display: grid; border-top: 1px solid var(--border); }
.vol-q { border-bottom: 1px solid var(--border); }
.vol-q summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 44px minmax(0, 1fr) 36px; align-items: center; gap: 12px; padding: 20px 4px; color: var(--ink); font-weight: 700; font-size: 1.02rem; }
.vol-q summary::-webkit-details-marker { display: none; }
.vol-q__n { font-size: .85rem; font-weight: 800; color: var(--primary); letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.vol-q__i { width: 36px; height: 36px; border-radius: 50%; background: var(--soft); color: var(--ink); display: grid; place-items: center; transition: transform .3s var(--ease), background .25s, color .25s; }
.vol-q__i .ico { width: 16px; height: 16px; }
.vol-q summary:hover .vol-q__i { background: color-mix(in srgb, var(--primary) 16%, var(--soft)); }
.vol-q[open] .vol-q__i { transform: rotate(45deg); background: var(--primary); color: #fff; }
.vol-q[open] summary { color: var(--primary); }
.vol-q__a { padding: 0 52px 22px 60px; }
.vol-q__a p { margin: 0; line-height: 1.7; }

/* 5 · Formulário sobre foto com véu coral */
.vol-join { position: relative; overflow: hidden; padding: clamp(56px, 7vw, 88px) 0 0; background: #f6c9bd; isolation: isolate; }
.vol-join__bg { position: absolute; inset: 0; z-index: -2; }
.vol-join__bg img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35); }
.vol-join::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(255, 255, 255, .9) 0%, color-mix(in srgb, var(--primary) 55%, rgba(255, 255, 255, .7)) 45%, var(--primary) 100%); }
.vol-join__inner { max-width: 820px; }
.vol-join__head { position: relative; text-align: center; max-width: 620px; margin: 0 auto 30px; }
.vol-join__head .kicker::after { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.vol-join__head .section-title { color: #1e2436; }
.vol-join__head p { color: #3a3f4f; margin-bottom: 0; }
.vol-join__doodle { position: absolute; right: -70px; top: 40px; width: 70px; color: var(--primary); }
.vol-form { display: grid; gap: 16px; }
.vol-form .form__row { gap: 16px; }
/* Campos brancos: o navegador desenha a lista de opções e as setas do número também em claro (corrige o texto invisível no modo nocturno) */
.vol-form input:not([type=checkbox]):not(.hp), .vol-form select, .vol-form textarea { background: #fff; color: #1e2436; border-color: transparent; border-radius: 2px; box-shadow: 0 6px 16px -12px rgba(30, 36, 54, .5); color-scheme: light; }
.vol-form input::placeholder, .vol-form textarea::placeholder { color: #8a8d96; opacity: 1; }
.vol-form .check { color: #1e2436; font-weight: 500; }
.vol-form__send { text-align: center; }
.vol-form__send .btn { background: #1e2436; border-color: #1e2436; color: #fff; padding: 14px 34px; }
.vol-form__send .btn:hover { background: #fff; color: #1e2436; border-color: #fff; }

/* 6 · Carrossel de actividades */
.vol-join__end { height: clamp(48px, 6vw, 80px); }
.vol-acts { padding: clamp(40px, 5vw, 60px) 16px; }
.vol-acts__track.cp-track { grid-auto-columns: calc((100% - 4 * 24px) / 5); gap: 24px; padding: 0; }
.vol-acts .cp-nav { top: 50%; margin-top: -23px; border-radius: 2px; }
.vol-acts .cp-nav--prev { left: 6px; }
.vol-acts .cp-nav--next { right: 6px; }
.vol-acts .cp-nav[disabled] { opacity: .5; pointer-events: none; }
.vol-act { position: relative; display: block; overflow: hidden; aspect-ratio: 1; background: #1e2436; }
.vol-act img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s var(--ease); }
.vol-act__cap { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 16px; text-align: center; color: #fff; background: rgba(30, 36, 54, .78); opacity: 0; transition: opacity .35s var(--ease); }
.vol-act__cap strong { font-size: 1.12rem; line-height: 1.3; transform: translateY(10px); transition: transform .35s var(--ease); }
.vol-act__cap small { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; opacity: .85; }
.vol-act:hover img, .vol-act:focus-visible img { transform: scale(1.08); }
.vol-act:hover .vol-act__cap, .vol-act:focus-visible .vol-act__cap { opacity: 1; }
.vol-act:hover .vol-act__cap strong, .vol-act:focus-visible .vol-act__cap strong { transform: none; }
@media (hover: none) {
  .vol-act__cap { opacity: 1; place-content: end start; justify-items: start; text-align: left; background: linear-gradient(180deg, transparent 40%, rgba(20, 24, 38, .85)); }
  .vol-act__cap strong { transform: none; font-size: 1rem; }
}

/* Modo nocturno da secção do formulário: campos escuros, com lista de opções e setas também escuras */
:root[data-theme="dark"] .vol-join { background: #2a2030; }
:root[data-theme="dark"] .vol-join::before { background: linear-gradient(180deg, rgba(18, 21, 32, .92) 0%, color-mix(in srgb, var(--primary) 45%, rgba(18, 21, 32, .85)) 55%, color-mix(in srgb, var(--primary) 75%, #121520) 100%); }
:root[data-theme="dark"] .vol-join__head .section-title, :root[data-theme="dark"] .vol-form .check { color: #fff; }
:root[data-theme="dark"] .vol-join__head p { color: #d6d8e0; }
:root[data-theme="dark"] .vol-form input:not([type=checkbox]):not(.hp), :root[data-theme="dark"] .vol-form select, :root[data-theme="dark"] .vol-form textarea { background: rgba(16, 19, 27, .88); color: #f1f2f5; border-color: rgba(255, 255, 255, .14); color-scheme: dark; }
:root[data-theme="dark"] .vol-form input::placeholder, :root[data-theme="dark"] .vol-form textarea::placeholder { color: #9aa0ad; }
:root[data-theme="dark"] .vol-form__send .btn { background: #fff; border-color: #fff; color: #1e2436; }
:root[data-theme="dark"] .vol-form__send .btn:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .vol-join { background: #2a2030; }
  :root:not([data-theme="light"]) .vol-join::before { background: linear-gradient(180deg, rgba(18, 21, 32, .92) 0%, color-mix(in srgb, var(--primary) 45%, rgba(18, 21, 32, .85)) 55%, color-mix(in srgb, var(--primary) 75%, #121520) 100%); }
  :root:not([data-theme="light"]) .vol-join__head .section-title, :root:not([data-theme="light"]) .vol-form .check { color: #fff; }
  :root:not([data-theme="light"]) .vol-join__head p { color: #d6d8e0; }
  :root:not([data-theme="light"]) .vol-form input:not([type=checkbox]):not(.hp), :root:not([data-theme="light"]) .vol-form select, :root:not([data-theme="light"]) .vol-form textarea { background: rgba(16, 19, 27, .88); color: #f1f2f5; border-color: rgba(255, 255, 255, .14); color-scheme: dark; }
  :root:not([data-theme="light"]) .vol-form input::placeholder, :root:not([data-theme="light"]) .vol-form textarea::placeholder { color: #9aa0ad; }
  :root:not([data-theme="light"]) .vol-form__send .btn { background: #fff; border-color: #fff; color: #1e2436; }
  :root:not([data-theme="light"]) .vol-form__send .btn:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
}

@media (max-width: 1080px) {
  .vol-intro { grid-template-columns: minmax(0, 1fr); }
  .vol-intro__media { max-width: 560px; }
  .vol-join__doodle { display: none; }
  .vol-show { grid-template-columns: minmax(0, 1fr); }
  .vol-show__side { grid-template-rows: auto; }
  .vol-show__thumbs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .vol-faq { grid-template-columns: minmax(0, 1fr); }
  .vol-faq__aside { position: static; }
  .vol-acts__track.cp-track { grid-auto-columns: calc((100% - 2 * 16px) / 3); gap: 16px; }
}
@media (max-width: 760px) {
  .vol-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vol-card figcaption { left: 8px; right: 8px; bottom: 8px; padding: 10px 12px; }
  .vol-card figcaption q { display: none !important; }
  .vol-intro__media { padding: 0 0 16px 16px; }
  .vol-intro__badge { right: 10px; bottom: 30px; font-size: .8rem; padding: 9px 14px; }
  .vol-mosaic, .vol-mosaic:not(.vol-mosaic--6) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 10px; }
  .vol-mosaic--6 .vol-mosaic__tile:nth-child(4) { grid-row: auto; }
  .vol-mosaic .vol-note { grid-column: 1 / -1; flex-direction: row; align-items: center; flex-wrap: wrap; padding: 18px; }
  .vol-show__stage { aspect-ratio: 4 / 3.4; }
  .vol-show__thumbs { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 64px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .vol-show__bar { left: 14px; right: 14px; bottom: 12px; gap: 10px; }
  .vol-show__btn { width: 36px; height: 36px; }
  .vol-show .vol-note { flex-direction: row; align-items: center; flex-wrap: wrap; padding: 16px 18px; }
  .vol-rails { gap: 10px; }
  .vol-rail__track { gap: 10px; }
  .vol-rail__item { width: 200px; }
  @keyframes volRail { to { transform: translateX(calc(-50% - 5px)); } }
  .vol-q summary { grid-template-columns: 30px minmax(0, 1fr) 32px; gap: 10px; padding: 16px 0; font-size: .97rem; }
  .vol-q__i { width: 32px; height: 32px; }
  .vol-q__a { padding: 0 0 18px 40px; }
  .vol-acts__track.cp-track { grid-auto-columns: 72%; gap: 12px; }
  .vol-acts { padding-left: 12px; padding-right: 12px; }
  .vol-acts .cp-nav { width: 38px; height: 38px; margin-top: -19px; border-radius: 50%; }
  .vol-acts .cp-nav .ico { width: 16px; height: 16px; }
  .vol-acts .cp-nav--prev { left: 4px; }
  .vol-acts .cp-nav--next { right: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .vol-mosaic__tile img, .vol-show__slide { transition: none; }
  .vol-show__slide.is-on img { animation: none; }
  .vol-rail__track { animation: none; }
  .vol-rails { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}


/* Caixas de aceitação desenhadas à mão: iguais em todos os navegadores e nos dois modos (a nativa ficava preta no modo nocturno) */
.form .check input[type=checkbox] { -webkit-appearance: none; appearance: none; flex: none; width: 20px; height: 20px; margin: 2px 0 0; border-radius: 5px; border: 2px solid var(--cb-bd, #b9bcc6); background: var(--cb-bg, #fff) center / 14px no-repeat; cursor: pointer; transition: background-color .2s, border-color .2s, box-shadow .2s; }
.form .check input[type=checkbox]:hover { border-color: var(--primary); }
.form .check input[type=checkbox]:focus-visible { outline: 0; box-shadow: 0 0 0 4px var(--primary-soft, color-mix(in srgb, var(--primary) 25%, transparent)); }
.form .check input[type=checkbox]:checked { background-color: var(--primary); border-color: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.vol-form .check input[type=checkbox] { --cb-bg: #fff; --cb-bd: rgba(30, 36, 54, .35); }
:root[data-theme="dark"] .form .check input[type=checkbox] { --cb-bg: #10131b; --cb-bd: rgba(255, 255, 255, .3); }
:root[data-theme="dark"] .vol-form .check input[type=checkbox] { --cb-bg: rgba(16, 19, 27, .88); --cb-bd: rgba(255, 255, 255, .55); }
:root[data-theme="dark"] .form .check input[type=checkbox]:checked { background-color: var(--primary); border-color: var(--primary); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .form .check input[type=checkbox] { --cb-bg: #10131b; --cb-bd: rgba(255, 255, 255, .3); }
  :root:not([data-theme="light"]) .vol-form .check input[type=checkbox] { --cb-bg: rgba(16, 19, 27, .88); --cb-bd: rgba(255, 255, 255, .55); }
  :root:not([data-theme="light"]) .form .check input[type=checkbox]:checked { background-color: var(--primary); border-color: var(--primary); }
}

/* Grelha de voluntários (ao estilo "Meet Expert People"): ao passar o rato, véu escuro com a função escrita à mão, o nome numa pincelada coral e as redes sociais */
.vol-grid { gap: 20px; }
.vol-grid .vol-card img { aspect-ratio: 1 / 1.07; }
.vol-grid figure.vol-card figcaption { inset: 0; left: 0; right: 0; bottom: 0; padding: 20px; border-radius: 0; background: rgba(30, 36, 54, .78); box-shadow: none; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 8px; text-align: center; color: #fff; opacity: 0; transition: opacity .35s var(--ease); }
.vol-grid figure.vol-card:hover figcaption, .vol-grid figure.vol-card:focus-within figcaption { opacity: 1; }
.vol-card__role { font-family: var(--hand); font-style: normal; font-size: 1.05rem; color: #f5c84c; transform: translateY(10px); transition: transform .35s var(--ease); }
.vol-grid .vol-card .vol-card__name { position: relative; color: #fff; font-size: 1.05rem; font-weight: 700; padding: 6px 22px 7px; transform: translateY(10px); transition: transform .35s var(--ease) .05s; isolation: isolate; }
.vol-card__name::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--primary); border-radius: 46% 54% 42% 58% / 62% 48% 52% 38%; transform: rotate(-2deg); }
.vol-grid .vol-card .vol-card__area { color: rgba(255, 255, 255, .8); font-size: .8rem; font-weight: 500; }
.vol-grid .vol-card figcaption q { display: block; color: rgba(255, 255, 255, .85); font-size: .85rem; line-height: 1.45; margin: 2px 0 0; max-width: 32ch; }
.vol-card__social { display: flex; gap: 6px; margin-top: 8px; }
.vol-card__social a { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: #fff; transition: background .2s; }
.vol-card__social a:hover, .vol-card__social a:focus-visible { background: var(--primary); }
.vol-card__social .ico { width: 15px; height: 15px; }
.vol-grid figure.vol-card:hover .vol-card__role, .vol-grid figure.vol-card:focus-within .vol-card__role, .vol-grid figure.vol-card:hover .vol-card__name, .vol-grid figure.vol-card:focus-within .vol-card__name { transform: none; }
.vol-grid figure.vol-card:hover img { transform: scale(1.04); }
/* Ecrãs tácteis (sem rato): nome e função sempre visíveis numa faixa por baixo */
@media (hover: none) {
  .vol-grid figure.vol-card figcaption { opacity: 1; top: auto; background: linear-gradient(180deg, transparent, rgba(20, 24, 38, .88) 38%); padding-top: 44px; }
  .vol-card__role, .vol-grid .vol-card .vol-card__name { transform: none; }
  .vol-grid .vol-card figcaption q { display: none; }
}
@media (max-width: 760px) {
  .vol-grid figure.vol-card figcaption { padding: 34px 8px 12px; gap: 5px; }
  .vol-grid .vol-card .vol-card__name { font-size: .9rem; padding: 4px 14px 5px; }
  .vol-card__role { font-size: .9rem; }
  .vol-card__social { margin-top: 2px; gap: 2px; }
  .vol-card__social a { width: 28px; height: 28px; }
}

/* Página Voluntário no telemóvel: formulário a toda a largura e setas do carrossel de actividades sempre visíveis */
.vol-form.form { padding: 0; }
@media (max-width: 760px) {
  .vol-acts .cp-nav { display: grid; }
  .vol-acts .cp-nav[disabled] { opacity: .45; }
  .vol-join { padding-top: 48px; }
  .vol-join__head { margin-bottom: 22px; }
  .vol-form, .vol-form .form__row { gap: 12px; }
}
@media (max-width: 760px) {
  .vol-rails__foot { margin-top: 16px; }
  .vol-rails__foot .vol-note, .vol-mosaic .vol-note { padding: 14px 16px; gap: 8px 14px; }
  .vol-note > span { width: 38px; height: 38px; }
  .vol-note strong { font-size: 1.02rem; }
}

/* Listas de opções, setas dos números e calendários: o navegador desenha-os no esquema do modo activo.
   Sem cores forçadas nas opções, o realce ao passar o rato fica sempre legível (claro em claro, escuro em escuro). */
:root:not([data-theme="dark"]) { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }

/* ── Página Torne-se Parceiro (v1.7) ── reutiliza .vol-sec, .vol-intro e .vol-faq da página Voluntário */
.pa-points { margin: 18px 0 26px; }
.pa-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.pa-intro__media img { aspect-ratio: 5 / 4.4; }
.pa-badge { position: absolute; left: 0; bottom: 0; display: grid; gap: 2px; max-width: 230px; padding: 18px 22px; border-radius: var(--radius-lg); background: var(--primary); color: #fff; box-shadow: 0 20px 40px -20px rgba(30, 36, 54, .6); }
.pa-badge strong { font-size: 2.2rem; line-height: 1; font-weight: 800; }
.pa-badge span { font-size: .88rem; line-height: 1.35; font-weight: 600; opacity: .95; }
.pa-stats { padding: clamp(44px, 6vw, 70px) 0; }

/* 3 · Formas de parceria */
.pa-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.pa-types--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pa-types--1, .pa-types--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pa-type { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 30px 26px 26px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.pa-type::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--primary); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease); }
.pa-type:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), 0 24px 44px -26px rgba(30, 36, 54, .45); }
.pa-type:hover::after { transform: none; }
.pa-type__n { position: absolute; right: 22px; top: 18px; font-size: 2.6rem; font-weight: 800; line-height: 1; color: color-mix(in srgb, var(--primary) 14%, transparent); }
.pa-type__ico { width: 56px; height: 56px; border-radius: 16px; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); display: grid; place-items: center; margin-bottom: 6px; transition: background .3s, color .3s; }
.pa-type:hover .pa-type__ico { background: var(--primary); color: #fff; }
.pa-type__ico .ico { width: 26px; height: 26px; }
.pa-type h3 { font-size: 1.12rem; margin: 0; }
.pa-type p { margin: 0; flex: 1; font-size: .95rem; }
.pa-type .link-arrow { margin-top: 8px; font-size: .9rem; }

/* 4 · Porquê a ANANDJIRA */
.pa-why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.pa-why__card { display: flex; flex-direction: column; gap: 10px; padding: 30px 26px; border-radius: var(--radius-lg); background: var(--surface); border-top: 3px solid var(--primary); }
.pa-why__ico { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--primary); color: var(--primary); display: grid; place-items: center; }
.pa-why__ico .ico { width: 22px; height: 22px; }
.pa-why__card h3 { font-size: 1.1rem; margin: 4px 0 0; }
.pa-why__card p { margin: 0; flex: 1; font-size: .95rem; }

/* 5 · Logótipos dos parceiros */
.pa-logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.pa-logo { position: relative; display: grid; place-items: center; min-height: 150px; padding: 26px; background: var(--surface); color: inherit; }
.pa-logo img { max-width: 78%; max-height: 74px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s, transform .3s var(--ease); }
.pa-logo:hover img, .pa-logo:focus-visible img { filter: none; opacity: 1; transform: scale(1.04); }
.pa-logo__cap { position: absolute; left: 10px; right: 10px; bottom: 10px; text-align: center; display: grid; gap: 1px; opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s var(--ease); }
.pa-logo__cap strong { font-size: .78rem; color: var(--ink); line-height: 1.25; }
.pa-logo__cap small { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--primary); font-weight: 700; }
.pa-logo:hover .pa-logo__cap, .pa-logo:focus-visible .pa-logo__cap { opacity: 1; transform: none; }
.pa-logo:hover img { transform: translateY(-10px) scale(1.02); }
:root[data-theme="dark"] .pa-logo img { filter: grayscale(1) brightness(1.6); }
:root[data-theme="dark"] .pa-logo { background: #1b1f2b; }
:root[data-theme="dark"] .pa-logo:hover img { filter: none; }

/* 6 · Passos em linha do tempo */
.pa-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; counter-reset: s; position: relative; }
.pa-steps::before { content: ""; position: absolute; left: 30px; right: 30px; top: 27px; height: 2px; background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--primary) 45%, transparent) 0 8px, transparent 8px 16px); }
.pa-steps li { position: relative; }
.pa-steps__n { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 1.25rem; font-weight: 800; display: grid; place-items: center; box-shadow: 0 0 0 8px var(--soft); margin-bottom: 18px; }
.pa-steps h3 { font-size: 1.05rem; margin: 0 0 6px; }
.pa-steps p { margin: 0; font-size: .94rem; }

/* 8 · Formulário com painel escuro de contactos */
.pa-form-sec { background: linear-gradient(180deg, var(--bg, #fff) 0 30%, var(--soft) 30% 100%); }
.pa-form { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 30px 70px -40px rgba(30, 36, 54, .55); }
.pa-form__aside { position: relative; padding: clamp(30px, 4vw, 46px); background: var(--dark, #1e2436) url("../img/map-dots.svg") center / cover no-repeat; color: #cfd2da; }
.pa-form__aside .section-title { color: #fff; margin-bottom: 14px; }
.pa-form__aside > p { margin: 0 0 26px; }
.pa-contacts { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.pa-contacts li { display: flex; gap: 14px; align-items: flex-start; }
.pa-contacts li > span { flex: none; width: 42px; height: 42px; border-radius: 12px; background: rgba(255, 255, 255, .08); color: var(--primary); display: grid; place-items: center; }
.pa-contacts .ico { width: 19px; height: 19px; }
.pa-contacts small { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: #9a9ca5; font-weight: 700; }
.pa-contacts a, .pa-contacts p { color: #fff; font-weight: 600; margin: 0; word-break: break-word; }
.pa-contacts a:hover { color: var(--primary); }
.pa-form__card { background: var(--surface); border-radius: 0; }
:root[data-theme="dark"] .pa-form__aside { background-color: #0c0f16; }

@media (max-width: 1080px) {
  .pa-types, .pa-types--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-why { grid-template-columns: minmax(0, 1fr); }
  .pa-why__card { flex-direction: row; flex-wrap: wrap; align-items: flex-start; column-gap: 18px; }
  .pa-why__card h3, .pa-why__card p, .pa-why__card .link-arrow { flex-basis: calc(100% - 66px); margin-left: 66px; }
  .pa-why__ico { position: absolute; }
  .pa-why__card { position: relative; }
  .pa-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pa-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  .pa-steps::before { display: none; }
  .pa-form { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .pa-types, .pa-types--4, .pa-types--1, .pa-types--2 { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .pa-type { padding: 24px 20px 20px; }
  .pa-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-logo { min-height: 110px; padding: 18px 14px 34px; }
  .pa-logo img { max-height: 54px; filter: none; opacity: 1; }
  .pa-logo__cap { opacity: 1; transform: none; bottom: 8px; }
  .pa-logo__cap small { display: none; }
  .pa-steps { grid-template-columns: minmax(0, 1fr); row-gap: 0; padding-left: 4px; }
  .pa-steps li { display: grid; grid-template-columns: 46px minmax(0, 1fr); column-gap: 16px; padding-bottom: 24px; }
  .pa-steps li::before { content: ""; position: absolute; left: 22px; top: 46px; bottom: 0; width: 2px; background: color-mix(in srgb, var(--primary) 30%, transparent); }
  .pa-steps li:last-child::before { display: none; }
  .pa-steps__n { width: 46px; height: 46px; font-size: 1.05rem; margin: 0; grid-row: span 2; box-shadow: none; }
  .pa-steps h3 { margin-top: 10px; }
  .pa-badge { padding: 14px 16px; max-width: 190px; }
  .pa-badge strong { font-size: 1.7rem; }
  .pa-actions .btn { flex: 1 1 100%; }
  .pa-form { border-radius: var(--radius); }
  .pa-form__aside { padding: 26px 20px; }
  .pa-form__card.form { padding: 22px 18px; }
}

/* Parcerias: logótipos maiores e mais nítidos; título do painel escuro mais compacto */
.pa-logo { min-height: 160px; }
.pa-logo img { max-width: 86%; max-height: 100px; opacity: .9; filter: grayscale(.85); }
.pa-form__aside .section-title { font-size: clamp(1.6rem, 2.4vw, 2.05rem); }

/* Parcerias, modo nocturno: logótipos sobre placas claras (os de letras escuras ficavam invisíveis) */
:root[data-theme="dark"] .pa-logos { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .08); }
:root[data-theme="dark"] .pa-logo { background: #f4f3f0; }
:root[data-theme="dark"] .pa-logo img { filter: grayscale(.85); opacity: .9; }
:root[data-theme="dark"] .pa-logo:hover img { filter: none; opacity: 1; }
:root[data-theme="dark"] .pa-logo__cap strong { color: #1e2436; }
@media (max-width: 760px) { .pa-logo img, :root[data-theme="dark"] .pa-logo img { filter: none; opacity: 1; max-height: 64px; } }
.mz-pin--nhamatanda .mz-pulse { animation-delay: .4s; }
.mz-pin--gorongosa .mz-pulse { animation-delay: 1.2s; }
.mz-pin--marromeu .mz-pulse { animation-delay: 2s; }

/* Onde estamos (v1.8): 6 distritos. Lista compacta em 2 colunas, o mapa com mais destaque e o botão do detalhe no canto de baixo */
.mz__grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: start; }
.mz__map { position: sticky; top: calc(var(--header-h, 90px) + 20px); }
.mz__places { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 22px 0 24px; }
.mz__place { padding: 14px 15px; gap: 12px; }
.mz__place strong { font-size: .98rem; }
.mz__place small { font-size: .84rem; line-height: 1.5; }
.mz__zoom { top: auto; bottom: calc(3.03% + 12px); right: calc(.53% + 12px); }
@media (max-width: 1080px) { .mz__map { position: static; } }
@media (max-width: 560px) { .mz__places { grid-template-columns: minmax(0, 1fr); } }

/* Áreas principais e transversais (v1.8) */
.sub__grid-title { grid-column: 1 / -1; margin: 6px 12px 0; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--primary); }
.sub__grid-title:not(:first-child) { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.area-card__tag { position: absolute; right: 22px; top: 22px; padding: 4px 10px; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); transition: background .3s, color .3s; }
.area-card:hover .area-card__tag { background: rgba(255, 255, 255, .14); color: #fff; }
.area-card--trans { background: color-mix(in srgb, var(--primary) 4%, var(--surface)); }
.ab-area__tag { margin-left: 6px; padding: 2px 8px; border-radius: 999px; font-style: normal; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; vertical-align: 2px; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }

/* Organograma (v1.8): caixas ligadas por linhas, na vertical no telemóvel */
.org-sec { padding-bottom: clamp(40px, 5vw, 64px); }
.org { --line: color-mix(in srgb, var(--primary) 45%, transparent); display: grid; gap: 34px; max-width: 900px; margin: 0 auto; }
.org__lvl { position: relative; display: grid; justify-content: center; gap: 34px; }
.org__lvl--1 { grid-template-columns: minmax(0, 440px); }
.org__lvl--2 { grid-template-columns: repeat(2, minmax(0, 400px)); }
.org__lvl + .org__lvl::before { content: ""; position: absolute; left: 50%; top: -34px; height: 34px; border-left: 2px solid var(--line); }
.org__lvl--2::after { content: ""; position: absolute; top: -17px; left: 25%; right: 25%; border-top: 2px solid var(--line); }
.org__lvl--2 + .org__lvl::before { top: -34px; }
.org__lvl--2 > .org__box { position: relative; }
.org__lvl--2 > .org__box::before { content: ""; position: absolute; left: 50%; top: -17px; height: 17px; border-left: 2px solid var(--line); }
.org__lvl--2::before { height: 17px !important; }
.org__box { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 22px 22px 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 18px 36px -28px rgba(30, 36, 54, .45); }
.org__ico { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
.org__ico .ico { width: 22px; height: 22px; }
.org__name { color: var(--ink); font-size: 1.08rem; }
.org__role { font-size: .86rem; line-height: 1.45; max-width: 34ch; }
.org__people { list-style: none; margin: 10px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--border); width: 100%; display: grid; gap: 8px; }
.org__people li { display: grid; gap: 1px; font-size: .9rem; }
.org__people b { color: var(--ink); }
.org__people span { font-size: .78rem; color: var(--primary); font-weight: 600; }
.org__more { font-size: .8rem; color: #9a9ca5; }
.org__box--top { background: var(--dark, #1e2436); color: #cfd2da; box-shadow: none; }
.org__box--top .org__name, .org__box--top .org__people b { color: #fff; }
.org__box--top .org__ico { background: rgba(255, 255, 255, .1); }
.org__box--top .org__people { border-top-color: rgba(255, 255, 255, .15); }
.org__box--exec { background: var(--primary); color: #fff; box-shadow: 0 22px 40px -26px var(--primary); }
.org__box--exec .org__name, .org__box--exec .org__people b, .org__box--exec .org__people span { color: #fff; }
.org__box--exec .org__ico { background: rgba(255, 255, 255, .18); color: #fff; }
.org__box--exec .org__people { border-top-color: rgba(255, 255, 255, .35); }
.org__box--side { border: 2px dashed var(--line); box-shadow: none; }
.org__box--soft { background: var(--soft); box-shadow: none; }
.org__box .link-arrow { margin-top: 6px; font-size: .88rem; }
:root[data-theme="dark"] .org__box--top { background: #0c0f16; box-shadow: 0 0 0 1px rgba(255, 255, 255, .08); }
@media (max-width: 760px) {
  .org { gap: 22px; }
  .org__lvl, .org__lvl--1, .org__lvl--2 { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .org__lvl + .org__lvl::before { top: -22px; height: 22px; }
  .org__lvl--2::after, .org__lvl--2 > .org__box::before { display: none; }
  .org__lvl--2 > .org__box + .org__box::after { content: ""; position: absolute; left: 50%; top: -22px; height: 22px; border-left: 2px solid var(--line); }
  .org__lvl--2::before { height: 22px !important; }
}

/* Parceiros sem logótipo (v1.8): cartão com a sigla ou um ícone */
.partner-card__logo--text { display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 8%, var(--surface)); }
.partner-card__logo--text b { font-size: 1.5rem; font-weight: 800; letter-spacing: .06em; color: var(--ink); }
.partner-card__logo--text .ico { width: 34px; height: 34px; color: var(--primary); }
.pa-logo__text { font-weight: 800; font-size: 1.05rem; letter-spacing: .04em; color: var(--ink); text-align: center; line-height: 1.3; }
:root[data-theme="dark"] .pa-logo__text { color: #1e2436; }

/* Janela do mapa (v1.8.1): separadores e mapa da província */
.mzd__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--soft); }
.mzd__tab { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 8px; border: 0; border-radius: 9px; background: none; color: var(--text); font: 600 .82rem var(--font); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.mzd__tab .ico { width: 15px; height: 15px; }
.mzd__tab:hover { color: var(--ink); }
.mzd__tab.is-on { background: var(--surface); color: var(--primary); box-shadow: 0 2px 8px -4px rgba(30, 36, 54, .35); }
.mzd__routes > li[hidden] { display: none; }
.mzd-land--out path { fill: color-mix(in srgb, var(--land) 70%, var(--sea)); stroke: var(--land-line); stroke-dasharray: none; stroke-width: .8; }
.mzd-map--prov .mzd-land path { stroke-width: .8; }
.mzd-map--prov .mzd-land path.mzd-dist-on { fill: color-mix(in srgb, var(--primary) 14%, var(--land)); stroke: color-mix(in srgb, var(--primary) 55%, transparent); stroke-dasharray: none; stroke-width: 1.4; }
.mzd-river--big { stroke-width: 2.2; }
.mzd-lbl--prov { font-size: 12px; font-weight: 800; letter-spacing: .3em; fill: var(--ink); opacity: .22; }
.mzd-map--prov .mzd-lbl--dist { font-size: 10px; opacity: .5; fill: color-mix(in srgb, var(--primary) 70%, var(--ink)); }

/* Onde estamos (v1.8.1): lista compacta só com o nome e a distância */
.mz__places { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.mz__place { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 14px; }
.mz__place .mz__pin { width: 32px; height: 32px; }
.mz__place .mz__pin .ico { width: 16px; height: 16px; }
.mz__place strong { font-size: .95rem; line-height: 1.25; }
.mz__place .mz__dist { margin-top: 6px; }
.mz__place--hq { background: color-mix(in srgb, var(--primary) 7%, var(--surface)); }
@media (max-width: 1080px) { .mz__places { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .mz__places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mz__place .mz__dist { flex-wrap: wrap; gap: 6px; }
.mz__place .mz__km { white-space: nowrap; }
@media (max-width: 1080px) { .mz__grid { grid-template-columns: minmax(0, 1fr); } }

/* Janela do mapa (v1.8.2): separadores e legenda a flutuar sobre o mapa (a legenda fica no canto do oceano) */
.mzd__svg { position: absolute; inset: 0; }
.mzd__svg > svg { display: block; width: 100%; height: 100%; }
.mzd__map > .mzd__tabs, .mzd__map > .mzd__legend { position: absolute; z-index: 3; background: color-mix(in srgb, var(--surface) 88%, transparent); -webkit-backdrop-filter: blur(10px) saturate(1.3); backdrop-filter: blur(10px) saturate(1.3); box-shadow: 0 0 0 1px color-mix(in srgb, var(--border) 80%, transparent), 0 16px 34px -18px rgba(16, 24, 40, .45); }
.mzd__map > .mzd__tabs { top: 16px; left: 16px; display: inline-flex; grid-template-columns: none; gap: 2px; padding: 4px; border-radius: 999px; }
.mzd__map .mzd__tab { gap: 7px; padding: 8px 15px 8px 12px; border-radius: 999px; white-space: nowrap; font-size: .82rem; }
.mzd__map .mzd__tab .ico { width: 15px; height: 15px; flex: none; }
.mzd__map .mzd__tab.is-on { background: var(--primary); color: #fff; box-shadow: 0 6px 14px -8px var(--primary); }
.mzd__map .mzd__tab:not(.is-on):hover { background: color-mix(in srgb, var(--primary) 10%, transparent); color: var(--ink); }
.mzd__map > .mzd__legend { right: 16px; bottom: 16px; margin: 0; padding: 12px 14px 12px; border: 0; border-radius: 14px; min-width: 196px; display: block; }
.mzd__legend-title { margin: 0 0 8px; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #9a9ca5; }
.mzd__map > .mzd__legend ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .78rem; color: var(--ink); }
.mzd__map > .mzd__legend li { display: flex; align-items: center; gap: 10px; }
.mzd__map > .mzd__legend li[hidden] { display: none; }
.mzd__sw--route { height: 4px; border-radius: 4px; background: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent); }
.mzd__sw--river { height: 3px; border-radius: 3px; background: var(--river); }
.mzd__sw--focus { background: color-mix(in srgb, var(--primary) 18%, var(--land)); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--primary) 60%, transparent); }
@media (max-width: 760px) {
  .mzd__map > .mzd__tabs { top: 10px; left: 10px; right: 10px; display: flex; }
  .mzd__map .mzd__tab { flex: 1; justify-content: center; padding: 8px 10px; font-size: .78rem; }
  .mzd__map > .mzd__legend { right: 10px; bottom: 10px; min-width: 0; padding: 9px 11px; }
  .mzd__map > .mzd__legend ul { grid-template-columns: 1fr 1fr; gap: 5px 12px; font-size: .7rem; }
  .mzd__legend-title { display: none; }
  .mzd__map > .mzd__legend .mzd__sw { width: 16px; }
}

/* v1.8.2: separadores sem transição; legenda recolhível no canto do oceano */
.mzd__map .mzd__tab { transition: none; }
.mzd__map > .mzd__legend { padding: 0; min-width: 210px; overflow: hidden; }
.mzd__map > .mzd__legend > summary { list-style: none; display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 14px; cursor: pointer; color: var(--ink); font-size: .7rem; }
.mzd__map > .mzd__legend > summary::-webkit-details-marker { display: none; }
.mzd__map > .mzd__legend > summary .ico { width: 14px; height: 14px; color: var(--primary); }
.mzd__map > .mzd__legend > summary span { flex: 1; }
.mzd__legend-chev { transition: transform .25s var(--ease); transform: rotate(180deg); color: #9a9ca5 !important; }
.mzd__map > .mzd__legend:not([open]) .mzd__legend-chev { transform: none; }
.mzd__map > .mzd__legend ul { padding: 0 14px 12px; }
.mzd__map > .mzd__legend[open] > summary { border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent); margin-bottom: 10px; }
@media (max-width: 760px) {
  .mzd__legend-title { display: flex; }
  .mzd__map > .mzd__legend { min-width: 0; max-width: calc(100% - 20px); }
  .mzd__map > .mzd__legend ul { padding: 0 11px 10px; }
}

/* v1.8.2: "Onde estamos" num só painel, com linhas e divisórias (estilo lista profissional) */
.mz__places { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 24px 0 18px; padding: 6px; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: 0 18px 40px -32px rgba(30, 36, 54, .45); }
.mz__places .mz__place { flex-direction: row; align-items: center; gap: 12px; margin: 0; padding: 13px 14px; background: none; border: 0; border-radius: 12px; box-shadow: none; transform: none; position: relative; }
.mz__places .mz__place::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; border-bottom: 1px solid var(--border); }
.mz__places .mz__place:nth-last-child(-n+2)::after { display: none; }
.mz__places .mz__place:hover, .mz__places .mz__place.is-on { background: color-mix(in srgb, var(--primary) 6%, var(--soft)); transform: none; box-shadow: none; border: 0; }
.mz__places .mz__pin { width: 34px; height: 34px; flex: none; }
.mz__places .mz__pin .ico { width: 16px; height: 16px; }
.mz__place-body { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.mz__places .mz__place strong { font-size: .95rem; margin: 0; }
.mz__places .mz__dist { margin: 0; gap: 6px; flex-wrap: nowrap; }
.mz__places .mz__km { padding: 4px 9px; font-size: .76rem; background: color-mix(in srgb, var(--primary) 9%, transparent); }
.mz__places .mz__mode { width: 26px; height: 26px; }
.mz__places .mz__place--hq { background: none; }
.mz__places .mz__place--hq .mz__pin { background: var(--primary); color: #fff; }
.mz__places .mz__place--hq .mz__km { background: var(--primary); color: #fff; }
.mz__places .mz__place--hq .mz__km .ico { color: #fff; }
@media (max-width: 560px) {
  .mz__places { grid-template-columns: minmax(0, 1fr); }
  .mz__places .mz__place:nth-last-child(2)::after { display: block; }
}
/* lista "Onde estamos" numa só coluna: todas as linhas iguais */
.mz__places { grid-template-columns: minmax(0, 1fr); }
.mz__places .mz__place:nth-last-child(2)::after { display: block; }
.mz__places .mz__place-body { flex-wrap: nowrap; }
/* v1.8.3: "Onde estamos" em duas colunas lado a lado (nome em cima, distância por baixo) */
.mz__places { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 4px; }
.mz__places .mz__place { padding: 11px 12px; gap: 11px; }
.mz__places .mz__place-body { flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; flex-wrap: nowrap; }
.mz__places .mz__place strong { font-size: .93rem; line-height: 1.2; }
.mz__places .mz__pin { width: 32px; height: 32px; align-self: center; }
.mz__places .mz__km { padding: 3px 8px; font-size: .72rem; }
.mz__places .mz__mode { width: 24px; height: 24px; }
.mz__places .mz__place::after { left: 12px; right: 12px; }
.mz__places .mz__place:nth-last-child(2)::after { display: none; }
.mz__places .mz__place:nth-child(even)::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; border-left: 1px solid var(--border); }
@media (max-width: 380px) { .mz__places { grid-template-columns: minmax(0, 1fr); } .mz__places .mz__place:nth-last-child(2)::after { display: block; } .mz__places .mz__place:nth-child(even)::before { display: none; } }
@media (max-width: 560px) {
  .mz__places { grid-template-columns: minmax(0, 1fr); }
  .mz__places .mz__place:nth-last-child(2)::after { display: block; }
  .mz__places .mz__place:nth-child(even)::before { display: none; }
  .mz__places .mz__place-body { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* v1.8.5: logótipos dos parceiros sem sobreposição: o logótipo e o nome têm cada um o seu espaço */
.pa-logo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 176px; padding: 22px 18px 16px; }
.pa-logo__img { display: grid; place-items: center; width: 100%; height: 88px; }
.pa-logo .pa-logo__img img { max-width: 86%; max-height: 88px; transform: none; }
.pa-logo:hover .pa-logo__img img, .pa-logo:focus-visible .pa-logo__img img { transform: scale(1.04); }
.pa-logo .pa-logo__cap { position: static; inset: auto; transform: none; width: 100%; min-height: 2.6em; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 3px; }
.pa-logo .pa-logo__cap strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; text-align: center; }
.pa-logo:hover .pa-logo__cap, .pa-logo:focus-visible .pa-logo__cap { transform: none; }
@media (max-width: 760px) {
  .pa-logo { min-height: 150px; padding: 16px 12px 12px; gap: 8px; }
  .pa-logo__img { height: 64px; }
  .pa-logo .pa-logo__img img { max-height: 64px; }
  .pa-logo .pa-logo__cap { min-height: 2.4em; }
}

/* ── Página Fazer uma Doação (v1.9) ── */
.dn-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: clamp(32px, 5vw, 70px); align-items: start; }
.dn-hero__text .section-title { margin-bottom: 16px; }
.dn-hero__lead { font-size: 1.02rem; margin-bottom: 26px; }
.dn-steps { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 14px; counter-reset: s; }
.dn-steps li { display: flex; gap: 14px; align-items: flex-start; }
.dn-steps li > span { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .9rem; color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, transparent); }
.dn-steps strong { display: block; color: var(--ink); font-size: .98rem; }
.dn-steps small { display: block; font-size: .88rem; line-height: 1.5; }
.dn-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-top: 22px; border-top: 1px solid var(--border); }
.dn-trust strong { display: block; font-size: 1.6rem; font-weight: 800; line-height: 1.1; color: var(--ink); }
.dn-trust span { font-size: .82rem; }
.dn-box { position: sticky; top: calc(var(--header-h, 90px) + 20px); padding: clamp(22px, 3vw, 30px); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 30px 60px -34px rgba(30, 36, 54, .5); display: grid; gap: 16px; }
.dn-box__head { display: flex; gap: 14px; align-items: center; }
.dn-box__ico { flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--primary); color: #fff; display: grid; place-items: center; }
.dn-box__ico .ico { width: 22px; height: 22px; }
.dn-box__head h3 { margin: 0; font-size: 1.2rem; }
.dn-box__head small { font-size: .85rem; }
.dn-freq { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--soft); }
.dn-freq button { padding: 10px; border: 0; border-radius: 9px; background: none; font: 700 .9rem var(--font); color: var(--text); cursor: pointer; }
.dn-freq button.is-on { background: var(--surface); color: var(--primary); box-shadow: 0 2px 8px -4px rgba(30, 36, 54, .35); }
.dn-amounts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dn-amount { display: flex; align-items: baseline; justify-content: center; gap: 4px; padding: 13px 6px; border-radius: 12px; border: 2px solid var(--border); background: var(--surface); color: var(--ink); font: 800 1.02rem var(--font); cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.dn-amount small { font-size: .66rem; font-weight: 700; color: #9a9ca5; }
.dn-amount:hover { border-color: color-mix(in srgb, var(--primary) 55%, transparent); }
.dn-amount.is-on { border-color: var(--primary); background: var(--primary); color: #fff; }
.dn-amount.is-on small { color: rgba(255, 255, 255, .8); }
.dn-custom, .dn-dest { display: grid; gap: 6px; font-size: .82rem; font-weight: 700; color: var(--ink); }
.dn-custom__field { position: relative; display: block; }
.dn-custom__field input, .dn-dest select { width: 100%; padding: 12px 54px 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--input); color: var(--ink); font: 600 1rem var(--font); }
.dn-dest select { padding-right: 14px; font-size: .92rem; }
.dn-custom__field input:focus, .dn-dest select:focus { outline: 0; border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-soft); }
.dn-custom__field em { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-style: normal; font-weight: 800; font-size: .78rem; color: #9a9ca5; }
.dn-impact { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, #1f9d55 9%, var(--surface)); color: var(--ink); font-size: .9rem; font-weight: 600; line-height: 1.45; }
.dn-impact .ico { flex: none; width: 18px; height: 18px; color: #1f9d55; margin-top: 1px; }
.dn-go { font-size: 1rem; padding: 15px 18px; }
.dn-go [data-dw-total] { font-weight: 800; }
.dn-go [data-dw-total]:empty { display: none; }
.dn-secure { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .78rem; color: #9a9ca5; line-height: 1.45; }
.dn-secure .ico { flex: none; width: 15px; height: 15px; color: #1f9d55; margin-top: 1px; }

.dn-pay { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; max-width: 1080px; margin: 0 auto; }
.dn-method { padding: 24px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 18px 40px -32px rgba(30, 36, 54, .45); display: grid; gap: 10px; align-content: start; }
.dn-method__head { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
.dn-method__head h3 { margin: 0; font-size: 1.08rem; }
.dn-method__head small { font-size: .82rem; }
.dn-method__logo { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-weight: 900; font-size: 1.3rem; color: #fff; background: var(--dark, #1e2436); }
.dn-method__logo .ico { width: 22px; height: 22px; }
.dn-method__logo--mpesa { background: #e60000; }
.dn-method__logo--emola { background: #f39200; }
.dn-method__how { margin: 4px 0 0; font-size: .82rem; color: #9a9ca5; }
.dn-method--contact { grid-column: 1 / -1; max-width: 760px; width: 100%; margin: 0 auto; text-align: center; justify-items: center; padding: 32px; }
.dn-method--contact .dn-method__head { flex-direction: column; text-align: center; }
.dn-method--contact p { margin: 0; max-width: 52ch; }
.dn-method__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px; }

.dn-confirm { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: start; }
.dn-confirm__aside .check-list { margin: 18px 0 24px; }
.dn-use { padding: 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dn-use h3 { font-size: 1rem; margin: 0 0 12px; }
.dn-use__bar { display: flex; height: 12px; border-radius: 12px; overflow: hidden; gap: 3px; margin-bottom: 14px; }
.dn-use__bar i { width: var(--w); background: color-mix(in srgb, var(--primary) calc(100% - var(--c) * 30%), var(--soft)); }
.dn-use ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 6px; font-size: .88rem; }
.dn-use li { display: flex; gap: 8px; align-items: center; }
.dn-use li::before { content: ""; width: 10px; height: 10px; border-radius: 3px; flex: none; background: color-mix(in srgb, var(--primary) calc(100% - var(--c) * 30%), var(--soft)); }
.dn-use li b { color: var(--ink); min-width: 38px; }
.dn-form { padding: clamp(22px, 3vw, 34px); }

.dn-kind { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
.dn-kind__item { display: flex; gap: 14px; align-items: flex-start; padding: 22px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.dn-kind__item:nth-child(3n) { border-right: 0; }
.dn-kind__item:nth-last-child(-n+3) { border-bottom: 0; }
.dn-kind__item > span { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
.dn-kind__item > span .ico { width: 21px; height: 21px; }
.dn-kind__item h3 { margin: 2px 0 4px; font-size: 1rem; }
.dn-kind__item p { margin: 0; font-size: .9rem; }

@media (max-width: 1080px) {
  .dn-hero, .dn-confirm { grid-template-columns: minmax(0, 1fr); }
  .dn-box { position: static; max-width: 560px; }
  .dn-kind { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dn-kind__item:nth-child(3n) { border-right: 1px solid var(--border); }
  .dn-kind__item:nth-child(2n) { border-right: 0; }
  .dn-kind__item:nth-last-child(-n+3) { border-bottom: 1px solid var(--border); }
  .dn-kind__item:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 560px) {
  .dn-amounts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dn-trust strong { font-size: 1.3rem; }
  .dn-kind { grid-template-columns: minmax(0, 1fr); }
  .dn-kind__item, .dn-kind__item:nth-child(n) { border-right: 0; border-bottom: 1px solid var(--border); }
  .dn-kind__item:last-child { border-bottom: 0; }
  .dn-method { padding: 20px; }
  .dn-method--contact { padding: 24px 18px; }
  .dn-method__cta .btn { flex: 1 1 100%; }
}

/* ── Doações v2.0: formulário único em 3 passos, métodos de pagamento, comprovativo, área do doador ── */
.dn-box { gap: 14px; }
.dn-box .alert { margin: 0; }
.dn-prog { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; counter-reset: p; }
.dn-prog li { counter-increment: p; position: relative; padding-top: 10px; font-size: .74rem; font-weight: 700; color: #9a9ca5; text-align: center; }
.dn-prog li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: 4px; background: var(--soft); }
.dn-prog li.is-on { color: var(--ink); }
.dn-prog li.is-on::before { background: var(--primary); }
.dn-step { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 14px; }
.dn-box.is-js .dn-step:not(.is-on) { display: none; }
.dn-box:not(.is-js) .dn-prog, .dn-box:not(.is-js) [data-dw-next], .dn-box:not(.is-js) [data-dw-prev] { display: none; }
.dn-box:not(.is-js) .dn-step + .dn-step { padding-top: 18px; border-top: 1px solid var(--border); }
.dn-legend { padding: 0; font-weight: 800; font-size: 1.02rem; color: var(--ink); margin-bottom: 2px; }
/* frequência e moeda: botões radio */
.dn-freq, .dn-cur { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--soft); }
.dn-freq label, .dn-cur label { position: relative; margin: 0; }
.dn-freq input, .dn-cur input, .dn-meth input { position: absolute; opacity: 0; pointer-events: none; }
.dn-freq span, .dn-cur span { display: block; padding: 10px 8px; border-radius: 9px; text-align: center; font: 700 .88rem var(--font); color: var(--text); cursor: pointer; transition: background .2s, color .2s; }
.dn-freq input:checked + span, .dn-cur input:checked + span { background: var(--surface); color: var(--primary); box-shadow: 0 2px 8px -4px rgba(30, 36, 54, .35); }
.dn-freq input:focus-visible + span, .dn-cur input:focus-visible + span, .dn-meth input:focus-visible + .dn-meth__card { outline: 3px solid color-mix(in srgb, var(--primary) 50%, transparent); outline-offset: 2px; }
.dn-cur { background: transparent; padding: 0; gap: 8px; }
.dn-cur span { border: 1px solid var(--border); font-size: .8rem; padding: 8px; }
.dn-cur input:checked + span { border-color: var(--primary); box-shadow: none; }
.dn-amounts[hidden] { display: none; }
.dn-conv { display: block; margin-top: 6px; font-weight: 700; color: #1f9d55; font-size: .8rem; }
.dn-conv[hidden] { display: none; }
/* métodos de pagamento */
.dn-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dn-meth { position: relative; margin: 0; cursor: pointer; }
.dn-meth__card { position: relative; display: flex; align-items: center; gap: 10px; height: 100%; padding: 11px 12px; border: 2px solid var(--border); border-radius: 12px; background: var(--surface); transition: border-color .2s, background .2s; }
.dn-meth__card strong { display: block; font-size: .88rem; color: var(--ink); line-height: 1.2; }
.dn-meth__card small { display: block; font-size: .72rem; color: #9a9ca5; }
.dn-meth input:checked + .dn-meth__card { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 6%, var(--surface)); }
.dn-meth__logo { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-weight: 900; font-size: 1rem; color: #fff; background: var(--dark, #1e2436); }
.dn-meth__logo .ico { width: 17px; height: 17px; }
.dn-meth__logo--mpesa { background: #e60000; }
.dn-meth__logo--emola { background: #f39200; }
.dn-meth__logo--bank { background: #0033a1; }
.dn-meth__logo--other { background: var(--primary); }
.dn-meth__logo--sm { width: 24px; height: 24px; border-radius: 7px; font-size: .78rem; display: inline-grid; vertical-align: middle; }
.dn-demo { position: absolute; top: -8px; right: 8px; padding: 2px 7px; border-radius: 999px; background: #fff4d6; color: #8a5a00; font: 800 .62rem var(--font); letter-spacing: .06em; text-transform: uppercase; font-style: normal; box-shadow: 0 0 0 1px #f2d38a; }
.dn-pinfo__title .dn-demo { position: static; margin-left: 6px; vertical-align: middle; }
.dn-pinfo { padding: 14px; border-radius: 12px; background: var(--soft); display: grid; gap: 8px; }
.dn-pinfo[hidden] { display: none; }
.dn-pinfo__title { display: flex; align-items: center; gap: 8px; margin: 0 0 2px; font-weight: 800; color: var(--ink); font-size: .92rem; }
.dn-pinfo__title > .ico { width: 18px; height: 18px; color: var(--primary); }
.dn-pinfo .pay-row { background: var(--surface); padding: 8px 10px; border-radius: 10px; border: 0; gap: 8px; }
.dn-pinfo .pay-row span { font-size: .74rem; min-width: 56px; }
.dn-pinfo .pay-row strong { font-size: .86rem; word-break: break-all; }
.dn-pinfo .copy { width: 32px; height: 32px; flex: none; }
.dn-pinfo__note { margin: 2px 0 0; font-size: .8rem; line-height: 1.5; display: flex; gap: 6px; align-items: flex-start; }
.dn-pinfo__note[hidden] { display: none; }
.dn-pinfo__note .ico { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--primary); }
.dn-paynow { font-weight: 600; font-size: .86rem; }
.dn-nav { display: flex; justify-content: space-between; gap: 10px; }
.dn-nav .btn { flex: 1; justify-content: center; }
.dn-nav .btn--outline { flex: 0 0 auto; }
/* passo 3 */
.dn-step.form { padding: 0; }
.dn-sum { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--primary) 8%, var(--surface)); font-size: .84rem; }
.dn-sum b { font-size: 1.05rem; color: var(--ink); }
.dn-sum:empty { display: none; }
.dn-file { position: relative; display: grid; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--ink); }
.dn-file[hidden] { display: none; }
.dn-file input { position: absolute; inset: 24px 0 0; opacity: 0; cursor: pointer; z-index: 1; }
.dn-file__box { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px 14px; border: 2px dashed color-mix(in srgb, var(--primary) 45%, var(--border)); border-radius: 12px; background: var(--input); text-align: center; transition: border-color .2s, background .2s; }
.dn-file__box .ico { width: 24px; height: 24px; color: var(--primary); }
.dn-file__box b { font-size: .9rem; color: var(--ink); word-break: break-all; }
.dn-file__box small { font-size: .74rem; font-weight: 500; color: #9a9ca5; }
.dn-file:hover .dn-file__box, .dn-file input:focus-visible + .dn-file__box { border-color: var(--primary); }
.dn-file.has-file .dn-file__box { border-style: solid; border-color: #1f9d55; background: color-mix(in srgb, #1f9d55 7%, var(--surface)); }
.dn-file.has-file .dn-file__box .ico { color: #1f9d55; }
.dn-more { border: 1px solid var(--border); border-radius: 12px; padding: 0 14px; }
.dn-more > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0; cursor: pointer; font-weight: 600; font-size: .86rem; color: var(--ink); }
.dn-more > summary::-webkit-details-marker { display: none; }
.dn-more > summary .ico { width: 16px; height: 16px; transition: transform .2s; }
.dn-more[open] > summary .ico { transform: rotate(180deg); }
.dn-more[open] { padding-bottom: 14px; display: grid; gap: 12px; }
.dn-more .form__row { gap: 12px; }
.btn.is-busy { opacity: .7; pointer-events: none; }
.dn-garantias { margin: 22px 0 0; }
/* outras formas de dar */
.dn-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dn-way { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: inherit; transition: transform .3s var(--ease), box-shadow .3s; }
a.dn-way:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), 0 22px 40px -26px rgba(30, 36, 54, .45); }
.dn-way__ico { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); margin-bottom: 4px; }
.dn-way__ico .ico { width: 24px; height: 24px; }
.dn-way h3 { margin: 0; font-size: 1.05rem; }
.dn-way p { margin: 0; flex: 1; font-size: .92rem; }
.dn-way .link-arrow { margin-top: 6px; font-size: .88rem; }
.dn-soon { margin-top: 6px; align-self: flex-start; padding: 3px 10px; border-radius: 999px; background: var(--soft); font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #9a9ca5; }
.dn-way.is-soon { opacity: .85; }
.dn-transp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 60px); align-items: center; }
.dn-transp .section-title { margin-bottom: 12px; }
/* obrigado, entrada e área do doador */
.dn-thanks, .dn-login { max-width: 640px; text-align: center; display: grid; justify-items: center; gap: 4px; }
.dn-thanks__ico { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--primary) 14%, transparent); color: var(--primary); margin-bottom: 10px; }
.dn-thanks__ico.is-ok { background: color-mix(in srgb, #1f9d55 15%, transparent); color: #1f9d55; }
.dn-thanks__ico .ico { width: 34px; height: 34px; }
.dn-thanks__lead { font-size: 1.05rem; max-width: 52ch; }
.dn-thanks__card { width: 100%; margin: 18px 0; padding: 6px 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); text-align: left; }
.dn-thanks__card div { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--border); }
.dn-thanks__card div:last-child { border-bottom: 0; }
.dn-thanks__card dt { color: #9a9ca5; font-size: .88rem; }
.dn-thanks__card dd { margin: 0; font-weight: 700; color: var(--ink); text-align: right; }
.dn-thanks__mail { font-size: .9rem; }
.dn-thanks__mail .ico { width: 16px; height: 16px; vertical-align: -3px; color: var(--primary); }
.dn-thanks__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; margin-top: 14px; }
.dn-state { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .74rem; font-weight: 800; }
.dn-state--pendente { background: #fff4d6; color: #8a5a00; }
.dn-state--confirmada { background: #e8f6ee; color: #14633a; }
.dn-state--rejeitada { background: #fdecea; color: #a12b1c; }
.dn-login__form { width: 100%; max-width: 440px; margin-top: 14px; text-align: left; }
.dnr__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 26px; }
.dnr__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.dnr__stats div { display: grid; gap: 2px; padding: 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dnr__stats span { color: var(--primary); }
.dnr__stats span .ico { width: 22px; height: 22px; }
.dnr__stats strong { font-size: 1.5rem; color: var(--ink); }
.dnr__stats small { font-size: .84rem; }
.dnr__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 22px; align-items: start; }
.dnr__list, .dnr__profile { padding: 24px; display: grid; gap: 14px; align-content: start; }
.dnr__list h2, .dnr__profile h2 { font-size: 1.15rem; margin: 0; }
.dnr__table { display: grid; }
.dnr__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--border); }
.dnr__row strong { display: block; color: var(--ink); }
.dnr__row small { font-size: .8rem; }
.dnr__list > .btn { justify-self: start; }
@media (max-width: 1080px) {
  .dn-ways { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dn-transp, .dnr__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .dn-methods { grid-template-columns: minmax(0, 1fr); }
  .dn-ways { grid-template-columns: minmax(0, 1fr); }
  .dnr__stats { grid-template-columns: minmax(0, 1fr); }
  .dnr__row { grid-template-columns: minmax(0, 1fr) auto; }
  .dnr__row > :last-child { grid-column: 1 / -1; }
  .dnr__head { flex-direction: column; }
  .dn-nav { flex-wrap: wrap; }
}

/* v2.1: logótipos das carteiras, janela de doação em espécie */
.dn-meth__logo--img { background: #fff; padding: 3px; box-shadow: 0 0 0 1px var(--border); width: 38px; height: 38px; }
.dn-meth__logo--img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.dn-meth__logo--sm.dn-meth__logo--img { width: 28px; height: 28px; padding: 2px; }
.dn-linkbtn { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--primary); text-decoration: underline; cursor: pointer; }
.dn-modal { width: min(640px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--surface); color: var(--text); box-shadow: 0 40px 80px -30px rgba(16, 19, 27, .6); }
.dn-modal::backdrop { background: rgba(16, 19, 27, .6); backdrop-filter: blur(3px); }
.dn-modal[open] { animation: mzdIn .3s var(--ease); }
.dn-modal__box { display: grid; gap: 14px; padding: clamp(20px, 3vw, 30px); }
.dn-modal__head { display: flex; gap: 14px; align-items: flex-start; }
.dn-modal__head > div { flex: 1; }
.dn-modal__head h2 { margin: 0; font-size: 1.25rem; }
.dn-modal__head small { font-size: .88rem; }
.dn-modal__close { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.dn-modal__close:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.dn-modal__close .ico { width: 18px; height: 18px; }
@media (max-width: 560px) { .dn-modal .form__row { grid-template-columns: minmax(0, 1fr); } }
/* mKesh: o amarelo da marca enche o quadrado todo */
.dn-meth__logo--img-mkesh { background: #f1cf00; padding: 0; box-shadow: none; overflow: hidden; }
.dn-meth__logo--img-mkesh img { object-fit: cover; }

/* ---------- Apadrinhamento ---------- */
.ap-head { max-width: 820px; text-align: center; }
.ap-head__lead { font-size: 1.08rem; }
.ap-head__lead strong { color: var(--ink); }
.ap-head__price { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 0; padding: 8px 16px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-weight: 700; font-size: .95rem; }
.ap-head__price .ico { width: 16px; height: 16px; }
.ap-filter { position: sticky; top: var(--header-h); z-index: 20; background: var(--dark); color: #fff; }
.ap-filter__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 14px; padding-top: 16px; padding-bottom: 16px; font-weight: 600; }
.ap-filter select { min-width: 0; max-width: 100%; padding: 10px 36px 10px 14px; border-radius: var(--radius); border: 0; background-color: #fff; color: var(--ink); font: inherit; font-weight: 600; }
.ap-filter .btn { padding: 11px 20px; background: var(--primary); border-color: var(--primary); }
.ap-filter .btn:hover { background: #fff; border-color: #fff; color: var(--ink); }
.ap-count { margin: 0 0 18px; font-weight: 600; color: var(--ink); }
.ap-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.ap-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-card { display: flex; flex-direction: column; background: var(--surface); border-radius: var(--radius-lg); box-shadow: 0 0 0 1px var(--border); padding: 22px 20px 20px; text-align: center; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.ap-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.ap-card__photo { position: relative; display: block; width: min(170px, 72%); aspect-ratio: 1; margin: 0 auto 16px; border-radius: 50%; overflow: hidden; background: var(--soft); box-shadow: 0 0 0 5px var(--surface), 0 0 0 7px var(--primary-soft); }
.ap-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.ap-card__tag { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.ap-card__tag .ico { width: 12px; height: 12px; }
.ap-card__tag--inline { position: static; transform: none; margin-bottom: 12px; font-size: .8rem; padding: 5px 12px; }
.ap-card.is-taken .ap-card__photo img { filter: saturate(.6); }
.ap-card__body { flex: 1; }
.ap-card__hello { margin: 0; font-family: var(--hand); color: var(--primary); font-size: .95rem; }
.ap-card__body h2 { margin: 2px 0 8px; font-size: 1.35rem; }
.ap-card__body h2 a { color: var(--ink); }
.ap-card__body h2 a:hover { color: var(--primary); }
.ap-card__body p:not(.ap-card__hello) { margin: 0 0 2px; font-size: .92rem; overflow-wrap: anywhere; }
.ap-card__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.ap-card__btns .btn { padding: 11px 10px; font-size: .9rem; }
.ap-card__btns .btn:only-child { grid-column: 1 / -1; }
.ap-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 32px; }
.ap-pager a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.ap-pager .ico { width: 16px; height: 16px; }
.ap-empty { max-width: 560px; margin: 0 auto; text-align: center; background: var(--surface); border-radius: var(--radius-lg); padding: clamp(28px, 5vw, 48px); box-shadow: 0 0 0 1px var(--border); }
.ap-empty .dn-thanks__ico { margin: 0 auto 16px; }
.ap-inclui { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ap-protect { display: flex; gap: 12px; align-items: flex-start; margin: 28px auto 0; max-width: 820px; padding: 16px 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); font-size: .93rem; }
.ap-protect .ico { flex: none; width: 22px; height: 22px; color: #2f9e6b; margin-top: 2px; }
.ap-form-wrap .ap-protect { margin: 20px 0 0; background: var(--soft); box-shadow: none; }

.ap-profile { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.ap-profile__photo { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4 / 4.6; background: var(--soft); box-shadow: var(--shadow-lg); }
.ap-profile__photo img { width: 100%; height: 100%; object-fit: cover; }
.ap-profile__text h1 { font-size: clamp(2rem, 4.5vw, 3.1rem); margin-bottom: .4em; }
.ap-profile__lead { font-size: 1.12rem; color: var(--ink); }
.ap-profile__quote { margin: 20px 0; padding-left: 18px; border-left: 3px solid var(--accent); font-family: var(--hand); color: var(--ink); font-size: 1.05rem; line-height: 1.8; }
.ap-profile__id { font-size: .85rem; color: var(--text); }
.ap-cta { flex-direction: column; gap: 2px; padding: 14px 30px; white-space: normal; text-align: center; }
.ap-cta small { font-weight: 500; opacity: .9; font-size: .85rem; }
.ap-cards-sec { padding: 0 0 clamp(48px, 6vw, 80px); }
.ap-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ap-info { position: relative; background: var(--surface); border-radius: var(--radius-lg); box-shadow: 0 0 0 1px var(--border); padding: 46px 24px 22px; }
.ap-ribbon { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); padding: 7px 22px; border-radius: 999px; color: #fff; font-weight: 700; font-size: .92rem; white-space: nowrap; box-shadow: var(--shadow); }
.ap-ribbon--green { background: #2f9e6b; }
.ap-ribbon--purple { background: #7353ba; }
.ap-ribbon--orange { background: var(--primary); }
.ap-info dl { margin: 0; display: grid; gap: 14px; }
.ap-info dt { font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text); }
.ap-info dd { margin: 2px 0 0; color: var(--ink); font-weight: 600; overflow-wrap: anywhere; }
.ap-form-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.ap-form { padding: clamp(22px, 3.5vw, 34px); }
.ap-form .check { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; line-height: 1.5; }
.ap-form .check input { margin-top: 3px; flex: none; }

@media (max-width: 1080px) {
  .ap-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ap-inclui { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-profile, .ap-form-wrap { grid-template-columns: minmax(0, 1fr); }
  .ap-profile__photo { max-width: 460px; }
  .ap-cards { grid-template-columns: minmax(0, 1fr); gap: 34px; max-width: 620px; margin: 0 auto; }
}
@media (max-width: 760px) {
  .ap-grid, .ap-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .ap-card { padding: 18px 12px 14px; }
  .ap-card__btns { grid-template-columns: minmax(0, 1fr); }
  .ap-filter { position: static; }
  .ap-filter__in { justify-content: flex-start; }
  .ap-filter__in > span { display: none; }
  .ap-filter select { flex: 1 1 calc(50% - 10px); }
  .ap-filter .btn { flex: 1 1 100%; }
}
@media (max-width: 420px) {
  .ap-grid, .ap-grid--3, .ap-inclui { grid-template-columns: minmax(0, 1fr); }
}
.dnr__apads { margin-bottom: 22px; }
.dnr__apads h2 { font-size: 1.15rem; margin: 0 0 12px; }
.dnr__apads-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.dnr__apad { display: flex; gap: 16px; align-items: flex-start; padding: 18px; }
.dnr__apad-photo { flex: none; width: 84px; height: 84px; border-radius: 50%; overflow: hidden; background: var(--soft); }
.dnr__apad-photo img { width: 100%; height: 100%; object-fit: cover; }
.dnr__apad h3 { margin: 0 0 2px; font-size: 1.1rem; }
.dnr__apad p { margin: 0 0 2px; font-size: .9rem; }
.dnr__apad small { display: block; font-size: .8rem; margin-bottom: 10px; }
.dnr__apad .btn { padding: 10px 16px; font-size: .88rem; }

/* ---------- Fatura (aviso de pagamento) ---------- */
.fat-wrap { max-width: 860px; }
.fat { padding: clamp(22px, 4vw, 40px); display: grid; gap: 22px; }
.fat__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.fat__org { display: flex; gap: 14px; align-items: flex-start; min-width: 0; }
.fat__logo { width: 58px; height: auto; flex: none; }
.fat__org strong { display: block; color: var(--ink); font-size: .98rem; line-height: 1.35; }
.fat__org small { display: block; font-size: .8rem; line-height: 1.5; }
.fat__actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; flex: none; }
.fat__actions .btn { padding: 12px 20px; }
.fat__pay { box-shadow: 0 10px 24px color-mix(in srgb, var(--primary) 35%, transparent); }
.fat__state { text-align: center; padding: 10px 16px; }
.fat__title { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.fat__title h1 { margin: 0; font-size: clamp(1.5rem, 3.5vw, 2rem); }
.fat__title .muted { margin: 4px 0 0; font-size: .9rem; }
.fat__to { display: grid; text-align: right; }
.fat__to span { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.fat__to strong { color: var(--ink); }
.fat__to small { font-size: .85rem; overflow-wrap: anywhere; }
.fat__table { display: grid; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 0 0 1px var(--border); }
.fat__row { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; gap: 14px; padding: 14px 18px; color: var(--ink); }
.fat__row span:last-child { text-align: right; font-weight: 700; white-space: nowrap; }
.fat__row--head { background: var(--soft); font-size: .76rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text); }
.fat__row--head span:last-child { font-weight: 600; }
.fat__total { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; justify-self: end; min-width: min(100%, 300px); padding: 16px 18px; border-radius: var(--radius-lg); background: var(--primary-soft); }
.fat__total span { color: var(--ink); font-weight: 600; }
.fat__total strong { color: var(--primary); font-size: 1.35rem; text-align: right; }
.fat__total small { grid-column: 1 / -1; text-align: right; font-size: .85rem; }
.fat__note { display: flex; gap: 10px; margin: 0; font-size: .9rem; }
.fat__note .ico { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--primary); }
.fat__ref { margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .92rem; }
.fat__ref strong { color: var(--ink); font-family: ui-monospace, Consolas, monospace; }
.fat__back { margin: 16px 0 0; text-align: center; }
.fat__back a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.fat-modal__lead { margin: 0; font-weight: 600; color: var(--ink); }
.fat-modal__methods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) {
  .fat__head { flex-direction: column; }
  .fat__actions { flex-direction: row; width: 100%; }
  .fat__actions > * { flex: 1; }
  .fat__to { text-align: left; }
  .fat__row { grid-template-columns: minmax(0, 1fr) auto; }
  .fat__row span:nth-child(2) { grid-column: 1; grid-row: 2; font-size: .85rem; color: var(--text); }
  .fat__row--head span:nth-child(2) { display: none; }
  .fat-modal__methods { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  .site-header, .topbar, .footer, .fat__actions, .fat__back, .cookie, dialog { display: none !important; }
  .fat { box-shadow: none; }
}
.dnr__due { padding: 22px 24px; margin-bottom: 22px; display: grid; gap: 4px; box-shadow: 0 0 0 2px var(--primary-soft), 0 0 0 1px var(--primary); }
.dnr__due h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 1.15rem; }
.dnr__due h2 .ico { color: var(--primary); }
.dnr__due-row, .dnr__plan { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--border); }
.dnr__due-row strong, .dnr__plan strong { display: block; color: var(--ink); }
.dnr__due-row small, .dnr__plan small { font-size: .82rem; }
.dnr__due-val { font-size: 1.05rem; white-space: nowrap; }
.dnr__due-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.dnr__due-btns .btn { padding: 10px 16px; font-size: .88rem; }
.dnr__plans { padding: 22px 24px; margin-bottom: 22px; }
.dnr__plans h2 { margin: 0 0 4px; font-size: 1.15rem; }
.dnr__plans > .muted { font-size: .88rem; margin: 0 0 8px; }
.dnr__plan { grid-template-columns: minmax(0, 1fr) auto; }
.dnr__plan-end summary { cursor: pointer; font-size: .85rem; font-weight: 600; color: var(--primary); }
.dnr__plan-end form { display: grid; gap: 8px; max-width: 320px; margin-top: 8px; font-size: .88rem; }
.dnr__plan-end p { margin: 0; }
@media (max-width: 640px) {
  .dnr__due-row { grid-template-columns: minmax(0, 1fr) auto; }
  .dnr__due-btns { grid-column: 1 / -1; }
  .dnr__plan { grid-template-columns: minmax(0, 1fr); }
}
.fat-modal [hidden] { display: none !important; }

/* ---------- Leitor de documentos (livro) ---------- */
.doc--view .doc__dl { color: var(--primary); }
.lv { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #16192a; color: #fff; display: none; flex-direction: column; }
.lv[open] { display: flex; }
.lv::backdrop { background: rgba(10, 12, 22, .85); }
.lv__head { display: flex; align-items: center; gap: 12px; padding: 12px clamp(12px, 3vw, 24px); background: rgba(255, 255, 255, .04); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.lv__title { flex: 1; min-width: 0; margin: 0; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv__count { font-size: .88rem; color: #c9ccd8; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lv__btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 8px; border: 1px solid rgba(255, 255, 255, .18); background: transparent; color: #fff; font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; text-decoration: none; }
.lv__btn:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.lv__btn .ico { width: 18px; height: 18px; }
.lv__btn--close { padding: 9px; }
.lv__stage { position: relative; flex: 1; display: grid; place-items: center; overflow: hidden; perspective: 2400px; padding: 12px; }
.lv__status { position: absolute; margin: 0; color: #c9ccd8; }
.lv__book { position: relative; display: flex; transform-style: preserve-3d; cursor: pointer; filter: drop-shadow(0 24px 50px rgba(0, 0, 0, .55)); }
.lv__page { position: relative; flex: 1; height: 100%; background: #fff; overflow: hidden; }
.lv__page img { display: block; width: 100%; height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.lv__page.is-blank { background: transparent; }
.lv__book.is-spread .lv__page--l { border-radius: 4px 0 0 4px; box-shadow: inset -18px 0 24px -18px rgba(0, 0, 0, .35); }
.lv__book.is-spread .lv__page--r { border-radius: 0 4px 4px 0; box-shadow: inset 18px 0 24px -18px rgba(0, 0, 0, .35); }
.lv__book:not(.is-spread) .lv__page { border-radius: 4px; }
.lv__leaf { position: absolute; top: 0; height: 100%; transform-style: preserve-3d; transition: transform .6s cubic-bezier(.45, .05, .25, 1); z-index: 2; }
.lv__leaf .lv__page { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.lv__leaf .lv__back { transform: rotateY(180deg); }
.lv__leaf--r { left: 50%; width: 50%; transform-origin: left center; }
.lv__leaf--r.is-turning { transform: rotateY(-180deg); }
.lv__leaf--l { left: 0; width: 50%; transform-origin: right center; }
.lv__leaf--l.is-turning { transform: rotateY(180deg); }
.lv__leaf--single { left: 0; width: 100%; transform-origin: left center; transition: transform .6s cubic-bezier(.45, .05, .25, 1), opacity .6s; }
.lv__leaf--single.lv__leaf--fwd.is-turning { transform: rotateY(-100deg); opacity: 0; }
.lv__leaf--single.lv__leaf--bwd { transform-origin: right center; }
.lv__leaf--single.lv__leaf--bwd.is-turning { transform: rotateY(100deg); opacity: 0; }
.lv__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; cursor: pointer; z-index: 5; transition: background .2s; }
.lv__nav:hover:not(:disabled) { background: var(--primary); }
.lv__nav:disabled { opacity: .25; cursor: default; }
.lv__nav .ico { width: 22px; height: 22px; }
.lv__nav--prev { left: clamp(6px, 2vw, 28px); }
.lv__nav--next { right: clamp(6px, 2vw, 28px); }
@media (max-width: 700px) {
  .lv__btn span { display: none; }
  .lv__nav { width: 40px; height: 40px; top: auto; bottom: 14px; transform: none; background: rgba(255, 255, 255, .18); }
  .lv__stage { padding-bottom: 66px; }
}
@media (prefers-reduced-motion: reduce) { .lv__leaf { transition: none; } }

/* ---------- Telefone com país ---------- */
.tel-field { display: grid; gap: 6px; min-width: 0; }
.tel-field > label { font-weight: 600; font-size: .9rem; color: var(--ink); }
.tel-field__row { display: flex; align-items: stretch; min-width: 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--input); transition: border-color .2s, box-shadow .2s, background .2s; }
.tel-field__row:focus-within { border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 4px var(--primary-soft); }
.tel-field__cc { position: relative; flex: none; display: flex; align-items: center; border-right: 1px solid var(--border); }
.tel-field__dial { display: flex; align-items: center; gap: 4px; padding: 0 30px 0 14px; font-size: .95rem; font-weight: 600; color: var(--ink); white-space: nowrap; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9ca5' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 11px center / 12px no-repeat; }
.tel-field__cc select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 16px; }
.tel-field__cc:focus-within .tel-field__dial { color: var(--primary); }
.tel-field .tel-field__row input[type=tel][data-tel-num] { flex: 1; min-width: 0; width: auto; border: 0; border-radius: 0 var(--radius) var(--radius) 0; background: transparent; box-shadow: none; padding: 13px 14px; font: inherit; font-size: .98rem; color: inherit; }
.tel-field .tel-field__row input[type=tel][data-tel-num]:focus { outline: 0; box-shadow: none; background: transparent; }
.tel-field--ct > label { font-size: .82rem; font-weight: 700; margin-bottom: 1px; }
.ct-field .tel-field { gap: 7px; }
.ct-form .tel-field__row { border-radius: 12px; }
.tel-field .tel-field__cc select[data-tel-pais] { padding: 0; border: 0; box-shadow: none; }
.dn-login__tabs { display: inline-flex; gap: 4px; padding: 4px; margin-top: 18px; border-radius: 999px; background: var(--soft); }
.dn-login__tabs a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 999px; color: var(--text); font-weight: 600; font-size: .9rem; }
.dn-login__tabs a .ico { width: 16px; height: 16px; }
.dn-login__tabs a.is-on { background: var(--surface); color: var(--ink); box-shadow: var(--shadow); }
.dn-login__hint { margin: 4px 0 0; font-size: .85rem; }
.dnr__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.dnr__tabs a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border-radius: 999px; background: var(--soft); color: var(--ink); font-weight: 600; font-size: .88rem; }
.dnr__tabs a:hover { background: var(--primary-soft); color: var(--primary); }
.dnr__tabs .ico { width: 16px; height: 16px; }
.dnr__grid--2 { grid-template-columns: minmax(0, 1fr) minmax(0, 360px); margin-top: 22px; }
.dnr__msgs, .dnr__sec { padding: 24px; display: grid; gap: 14px; align-content: start; scroll-margin-top: calc(var(--header-h) + 16px); }
.dnr__msgs h2, .dnr__sec h2 { display: flex; align-items: center; gap: 9px; font-size: 1.15rem; margin: 0; }
.dnr__msgs h2 .ico, .dnr__sec h2 .ico { color: var(--primary); }
.dnr__msgs > .muted, .dnr__sec > .muted { margin: 0; font-size: .9rem; }
.dnr__msgs .form { display: grid; gap: 12px; }
.dnr__msgs .btn { justify-self: start; }
.dnr__msgs-h { margin: 6px 0 0; font-size: 1rem; }
.dnr__msgs-list { list-style: none; margin: 0; padding: 0; display: grid; }
.dnr__msgs-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 0; border-top: 1px solid var(--border); }
.dnr__msgs-list strong { display: block; color: var(--ink); font-size: .92rem; }
.dnr__msgs-list small { font-size: .8rem; }
.dnr__msgs-list p { grid-column: 1 / -1; margin: 0; font-size: .88rem; }
#pagamentos, #criancas, #doacoes { scroll-margin-top: calc(var(--header-h) + 16px); }
@media (max-width: 1080px) { .dnr__grid--2 { grid-template-columns: minmax(0, 1fr); } }
/* Carteira: manual ou automático */
.dn-mode { display: grid; gap: 8px; margin-top: 12px; }
.dn-mode[hidden] { display: none; }
.dn-mode__label { margin: 0; font-weight: 700; color: var(--ink); font-size: .92rem; }
.dn-mode__opt { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 13px 14px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); cursor: pointer; transition: box-shadow .2s; }
.dn-mode__opt:has(input:checked) { box-shadow: 0 0 0 2px var(--primary); background: color-mix(in srgb, var(--primary) 5%, var(--surface)); }
.dn-mode__opt input { margin-top: 4px; accent-color: var(--primary); flex: none; }
.dn-mode__opt strong { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--ink); font-size: .93rem; }
.dn-mode__opt strong .ico { width: 16px; height: 16px; color: var(--primary); }
.dn-mode__opt small { display: block; margin-top: 2px; font-size: .82rem; line-height: 1.45; }
.dn-mode__opt.is-off { cursor: not-allowed; opacity: .7; }
.dn-dev { font-style: normal; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; background: #fff4d6; color: #8a5a00; }
.dn-dev[hidden] { display: none; }
.dn-mode__tel { padding: 4px 2px 0; }
.dn-mode__tel[hidden] { display: none; }
/* Grelha das crianças: centrada e com largura certa também quando há poucas */
.ap-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
.ap-grid > .ap-card { flex: 0 1 calc((100% - 66px) / 4); min-width: 230px; }
.ap-grid--3 > .ap-card { flex-basis: calc((100% - 44px) / 3); }
@media (max-width: 1080px) { .ap-grid > .ap-card { flex-basis: calc((100% - 44px) / 3); } }
@media (max-width: 760px) { .ap-grid { gap: 14px; } .ap-grid > .ap-card, .ap-grid--3 > .ap-card { flex-basis: calc(50% - 7px); min-width: 0; } }
@media (max-width: 420px) { .ap-grid > .ap-card, .ap-grid--3 > .ap-card { flex-basis: 100%; } }
.ap-card__prog { display: inline-block; margin: 8px 0 0; padding: 3px 10px; border-radius: 999px; background: var(--soft); color: var(--text); font-size: .74rem; font-weight: 600; }
.pay-row__ok { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #e8f6ee; color: #2f9e6b; }
.pay-row__ok .ico { width: 16px; height: 16px; }

/* ---------- M-Pesa: janela de espera ---------- */
.mp-sec { min-height: 60vh; }
.mp-fundo { text-align: center; opacity: .35; filter: blur(1px); }
.mp { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; background: rgba(16, 19, 32, .62); backdrop-filter: blur(4px); overflow-y: auto; }
.mp__box { position: relative; width: min(100%, 460px); padding: 54px 28px 26px; border-radius: 20px; background: var(--surface); box-shadow: 0 30px 80px rgba(0, 0, 0, .35); text-align: center; margin: 32px 0; }
.mp__logo { position: absolute; top: -36px; left: 50%; transform: translateX(-50%); width: 76px; height: 76px; border-radius: 22px; background: #fff; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(230, 0, 0, .25), 0 0 0 4px var(--surface); overflow: hidden; }
.mp__logo img { width: 64px; height: 64px; object-fit: contain; }
.mp__box h2 { margin: 6px 0 8px; font-size: 1.3rem; }
.mp__lead { margin: 0 0 14px; }
.mp__valor { display: grid; gap: 2px; margin: 0 auto 16px; padding: 12px 16px; border-radius: 14px; background: #fff1f1; }
.mp__valor strong { font-size: 1.7rem; color: #c40000; line-height: 1.2; }
.mp__valor small { font-size: .82rem; color: var(--text); }
.mp__passos { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; text-align: left; }
.mp__passos li { display: flex; gap: 10px; align-items: flex-start; padding: 9px 12px; border-radius: 10px; font-size: .9rem; color: var(--text); transition: background .3s, color .3s; }
.mp__passos li span { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--soft); color: var(--ink); font-weight: 700; font-size: .8rem; }
.mp__passos li.is-on { background: color-mix(in srgb, #e60000 7%, var(--surface)); color: var(--ink); font-weight: 600; }
.mp__passos li.is-on span { background: #e60000; color: #fff; }
.mp__passos li.is-feito span { background: #2f9e6b; color: #fff; }
.mp__barra { height: 6px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.mp__barra i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #e60000, #ff6a3d); transition: width 1s linear; }
.mp__tempo { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 10px 0 12px; font-size: .9rem; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.mp__spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #f3c2c2; border-top-color: #e60000; animation: mp-giro .8s linear infinite; }
@keyframes mp-giro { to { transform: rotate(360deg); } }
.mp__aviso { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 10px; background: #fff8e6; color: #7a5200; font-size: .8rem; text-align: left; line-height: 1.5; }
.mp__aviso .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; }
.mp__estado { width: 64px; height: 64px; margin: 4px auto 6px; border-radius: 50%; display: grid; place-items: center; animation: mp-pop .4s cubic-bezier(.2, 1.4, .4, 1); }
.mp__estado .ico { width: 32px; height: 32px; stroke-width: 3; }
.mp__estado--ok { background: #e8f6ee; color: #2f9e6b; }
.mp__estado--erro { background: #fdecea; color: #c0392b; }
@keyframes mp-pop { from { transform: scale(.4); opacity: 0; } }
.mp__nota { font-size: .86rem; margin: 0 0 16px; }
.mp__btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.mp [hidden] { display: none !important; }
html.mp-aberto, html.mp-aberto body { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .mp__spin { animation-duration: 2s; } .mp__estado { animation: none; } }
:root[data-theme="dark"] .mp__valor { background: rgba(230, 0, 0, .12); }
:root[data-theme="dark"] .mp__valor strong { color: #ff6b6b; }
:root[data-theme="dark"] .mp__aviso { background: rgba(233, 193, 56, .12); color: #f1d27a; }

/* ---------- Área do padrinho e doador: cabeçalho e cartões ---------- */
.dnr__hero { display: flex; justify-content: space-between; align-items: center; gap: 22px; flex-wrap: wrap; margin-bottom: 20px; padding: clamp(22px, 3.5vw, 34px); border-radius: var(--radius-lg); color: #fff;
  background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--primary) 85%, #fff 0%) 0%, transparent 55%), linear-gradient(135deg, var(--dark) 0%, color-mix(in srgb, var(--dark) 70%, var(--primary)) 100%); box-shadow: var(--shadow-lg); }
.dnr__hero-id { display: flex; gap: 18px; align-items: center; min-width: 0; flex: 1 1 420px; }
.dnr__avatar { flex: none; display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .35); font-size: 1.5rem; font-weight: 800; letter-spacing: .02em; }
.dnr__hero-kicker { margin: 0 0 2px; font-family: var(--hand); color: var(--accent); font-size: .95rem; }
.dnr__hero h1 { margin: 0 0 4px; color: #fff; font-size: clamp(1.6rem, 3.6vw, 2.3rem); }
.dnr__hero p { margin: 0; color: rgba(255, 255, 255, .82); font-size: .95rem; max-width: 60ch; }
.dnr__hero-act { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.dnr__hero-act form { margin: 0; }
.dnr .btn--light { --b: #fff; background: #fff; color: var(--ink); border-color: #fff; }
.dnr .btn--light:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.dnr .btn--ghost { background: transparent; border-color: transparent; color: inherit; padding-left: 14px; padding-right: 14px; }
.dnr__hero .btn--ghost { color: rgba(255, 255, 255, .85); }
.dnr__hero .btn--ghost:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.dnr__hero .btn { padding: 12px 20px; font-size: .92rem; }
.dnr__stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dnr__stats div.is-due { box-shadow: 0 0 0 2px var(--primary); }
.dnr__stats div.is-due strong { color: var(--primary); }
.dnr__tabs { position: sticky; top: calc(var(--header-h) + 8px); z-index: 15; padding: 6px; border-radius: 999px; background: color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter: blur(8px); box-shadow: 0 0 0 1px var(--border); width: fit-content; max-width: 100%; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
.dnr__tabs::-webkit-scrollbar { display: none; }
.dnr__tabs a { white-space: nowrap; background: transparent; }
.dnr__apads-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); }
.dnr__apad { gap: 20px; padding: 20px; align-items: stretch; }
.dnr__apad-photo { width: 132px; height: auto; min-height: 150px; border-radius: var(--radius-lg); }
.dnr__apad-body { flex: 1; min-width: 0; display: grid; gap: 8px; align-content: start; }
.dnr__apad-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.dnr__apad-top h3 { margin: 0; font-size: 1.3rem; }
.dnr__apad-meta { margin: 0; font-size: .86rem; }
.dnr__apad-dl { margin: 2px 0 4px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dnr__apad-dl div { padding: 8px 10px; border-radius: 10px; background: var(--soft); }
.dnr__apad-dl dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.dnr__apad-dl dd { margin: 0; color: var(--ink); font-weight: 600; font-size: .86rem; overflow-wrap: anywhere; }
.dnr__apad-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.dnr__apad-btns .btn { padding: 10px 14px; font-size: .86rem; }
.dnr__apad-note { display: flex; gap: 8px; margin: 0; font-size: .86rem; }
@media (max-width: 900px) { .dnr__stats--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .dnr__hero-id { flex-direction: column; align-items: flex-start; gap: 12px; flex-basis: 100%; }
  .dnr__hero-act { width: 100%; } .dnr__hero-act .btn { flex: 1; }
  .dnr__apad { flex-direction: column; }
  .dnr__apad-photo { width: 100%; min-height: 0; aspect-ratio: 16 / 10; }
  .dnr__apad-dl { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .dnr__apad-btns .btn { flex: 1 1 100%; }
  .dnr__tabs { border-radius: 14px; }
}
@media (max-width: 560px) {
  .dnr__stats--4 strong { font-size: 1.2rem; white-space: nowrap; }
  .dnr__stats--4 div { padding: 16px; }
  .dnr__apad-photo { aspect-ratio: 4 / 3; }
  .dnr__apad-photo img { object-position: center 20%; }
}

/* ---------- Voluntário: "Como funciona" em linha do tempo animada ---------- */
.vflow { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 24px; }
.vflow::before, .vflow::after { content: ""; position: absolute; top: 34px; left: calc(100% / var(--n, 4) / 2); right: calc(100% / var(--n, 4) / 2); height: 3px; border-radius: 3px; }
.vflow::before { background: repeating-linear-gradient(90deg, var(--border) 0 10px, transparent 10px 18px); }
.vflow::after { background: linear-gradient(90deg, var(--primary), var(--accent)); transform: scaleX(0); transform-origin: left; transition: transform 1.6s var(--ease) .3s; }
.js .vflow.reveal { opacity: 1; transform: none; }
.vflow.is-visible::after, html:not(.js) .vflow::after { transform: scaleX(1); }
.vflow__step { position: relative; display: grid; justify-items: center; gap: 18px; text-align: center; }
.vflow__dot { position: relative; z-index: 1; width: 70px; height: 70px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--primary); box-shadow: 0 0 0 6px var(--soft), 0 0 0 7px var(--border); transition: background .35s, color .35s, transform .35s var(--ease), box-shadow .35s; }
.vflow__dot .ico { width: 26px; height: 26px; }
.vflow__dot b { position: absolute; top: -4px; right: -4px; width: 24px; height: 24px; border-radius: 50%; background: var(--primary); color: #fff; font-size: .75rem; display: grid; place-items: center; box-shadow: 0 0 0 3px var(--soft); }
.vflow__card { position: relative; width: 100%; padding: 26px 22px 22px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.vflow__card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--primary); transform: scaleX(0); transition: transform .4s var(--ease); }
.vflow__n { position: absolute; right: 14px; top: 6px; font-size: 2.6rem; font-weight: 800; line-height: 1; color: color-mix(in srgb, var(--primary) 12%, transparent); }
.vflow__card h3 { margin: 0 0 8px; font-size: 1.1rem; }
.vflow__card p { margin: 0; font-size: .93rem; }
.vflow__step:hover .vflow__card { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.vflow__step:hover .vflow__card::before { transform: scaleX(1); }
.vflow__step:hover .vflow__dot { background: var(--primary); color: #fff; transform: scale(1.08) rotate(-6deg); box-shadow: 0 0 0 6px var(--soft), 0 0 0 7px var(--primary), 0 12px 26px color-mix(in srgb, var(--primary) 35%, transparent); }
/* entrada em cascata */
.js .vflow .vflow__step { opacity: 0; transform: translateY(30px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i) * 180ms + 150ms); }
.js .vflow.is-visible .vflow__step { opacity: 1; transform: none; }
.js .vflow .vflow__dot { transform: scale(.5); transition: transform .6s cubic-bezier(.2, 1.5, .4, 1), background .35s, color .35s, box-shadow .35s; transition-delay: calc(var(--i) * 180ms + 250ms); }
.js .vflow.is-visible .vflow__dot { transform: none; }
.js .vflow.is-visible .vflow__step:hover .vflow__dot { transform: scale(1.08) rotate(-6deg); transition-delay: 0ms; }
@media (max-width: 900px) {
  .vflow { grid-template-columns: minmax(0, 1fr); gap: 18px; max-width: 560px; margin: 0 auto; }
  .vflow::before, .vflow::after { top: 35px; bottom: 35px; left: 34px; right: auto; width: 3px; height: auto; }
  .vflow::before { background: repeating-linear-gradient(180deg, var(--border) 0 10px, transparent 10px 18px); }
  .vflow::after { background: linear-gradient(180deg, var(--primary), var(--accent)); transform: scaleY(0); transform-origin: top; }
  .vflow.is-visible::after { transform: scaleY(1); }
  .vflow__step { grid-template-columns: 70px minmax(0, 1fr); justify-items: stretch; align-items: start; text-align: left; gap: 16px; }
  .vflow__card { padding: 18px 18px 16px; }
  .vflow__n { font-size: 2rem; }
  .js .vflow .vflow__step { transform: translateX(-20px); }
}
@media (prefers-reduced-motion: reduce) {
  .js .vflow .vflow__step, .js .vflow .vflow__dot, .vflow::after { transition: none; opacity: 1; transform: none; }
}
@media (min-width: 901px) { .vflow__step { grid-template-rows: auto 1fr; } .vflow__card { height: 100%; } }

/* ─── Página Doar: afinações (secção de intenção, carrossel de crianças, janela de espécie) ─── */
.section-head__lead { margin: 10px 0 0; max-width: 54ch; color: var(--text); font-size: .96rem; line-height: 1.55; }
.section-head--row .section-head__lead { width: 100%; }
/* passos "Como doar" com ícone no círculo em vez de só o número */
.dn-steps li > span .ico { width: 18px; height: 18px; }
/* carrossel de crianças: o cartão de apadrinhamento ocupa a coluna inteira do trilho */
.dn-kids__track > .ap-card { height: 100%; }
.dn-kids .ap-card__photo { width: min(150px, 60%); }
/* janela de doação em espécie: compacta, sem necessidade de deslizar */
.dn-modal__box { gap: 12px; }
.dn-modal .form__row { gap: 12px; }
.dn-modal__box > label, .dn-modal .form__row label { margin: 0; }

/* ─── Doar → "Apoie uma causa": campanhas e apadrinhamento ligados por separadores ─── */
.dn-causas .section-head { margin-bottom: 26px; }
.dn-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; max-width: 640px; margin: 0 auto 30px; padding: 6px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 14px 30px -22px rgba(16, 19, 27, .45); }
.dn-tab { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 0; border-radius: 13px; background: transparent; color: var(--text); text-align: left; cursor: pointer; transition: background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease); }
.dn-tab > .ico { flex: none; width: 38px; height: 38px; padding: 9px; border-radius: 50%; background: var(--soft); color: var(--primary); transition: background .25s, color .25s; }
.dn-tab strong { display: block; color: var(--ink); font-size: .98rem; line-height: 1.2; }
.dn-tab small { display: block; font-size: .8rem; color: var(--text); margin-top: 2px; }
.dn-tab:hover { background: var(--soft); }
.dn-tab.is-on { background: var(--primary); box-shadow: 0 10px 22px -12px var(--primary); }
.dn-tab.is-on strong, .dn-tab.is-on small { color: #fff; }
.dn-tab.is-on > .ico { background: rgba(255, 255, 255, .2); color: #fff; }
.dn-tab:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 40%, transparent); outline-offset: 2px; }
.dn-panel.is-in { animation: dnPanelIn .45s var(--ease); }
@keyframes dnPanelIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.dn-panel__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 26px; padding-top: 20px; border-top: 1px dashed var(--border); }
.dn-bridge { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--primary) 7%, var(--surface)); color: var(--primary); font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.dn-bridge .ico { width: 16px; height: 16px; }
.dn-bridge:hover { background: var(--primary); color: #fff; transform: translateY(-1px); }
.dn-kidsbar { display: flex; align-items: center; gap: 12px; max-width: 760px; margin: 0 auto 26px; padding: 14px 18px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); font-size: .94rem; }
.dn-kidsbar > .ico { flex: none; width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
.dn-causas .ap-card { box-shadow: 0 0 0 1px var(--border), 0 18px 34px -28px rgba(16, 19, 27, .5); }
@media (max-width: 560px) {
  .dn-tab { flex-direction: column; text-align: center; gap: 6px; padding: 10px 8px; }
  .dn-tab small { font-size: .74rem; }
  .dn-panel__foot { flex-direction: column; align-items: stretch; text-align: center; }
  .dn-bridge { justify-content: center; }
  .dn-kidsbar { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .dn-panel.is-in { animation: none; } }

/* ═════════ Trabalhe connosco (tc-*) ═════════ */
.tc-top__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.tc-top__lead { font-size: 1.06rem; line-height: 1.7; margin: 0 0 24px; }
.tc-status { display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: var(--text); margin-bottom: 26px; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.tc-status__txt { flex: 1; min-width: 0; }
.tc-status strong { display: block; color: var(--ink); font-size: 1.05rem; }
.tc-status small { display: block; font-size: .9rem; line-height: 1.5; margin-top: 2px; }
.tc-status__dot { position: relative; flex: none; width: 14px; height: 14px; border-radius: 50%; background: #9aa0ad; }
.tc-status.is-open { box-shadow: 0 0 0 1.5px #2f9e62, 0 16px 34px -24px #2f9e62; background: color-mix(in srgb, #2f9e62 6%, var(--surface)); }
.tc-status.is-open .tc-status__dot { background: #2f9e62; }
.tc-status.is-open .tc-status__dot::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid #2f9e62; animation: tcPulse 1.8s var(--ease) infinite; }
.tc-status.is-open strong { color: #1f7a49; }
:root[data-theme="dark"] .tc-status.is-open strong { color: #5fd39a; }
.tc-status.is-open:hover { transform: translateY(-2px); }
.tc-status__go { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #2f9e62; color: #fff; }
.tc-status__go .ico { width: 18px; height: 18px; }
.tc-status.is-closed .tc-status__dot { background: var(--accent); }
@keyframes tcPulse { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(1.6); } }
.tc-top__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.tc-side { position: relative; }
.tc-side__photo { border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 3.4; box-shadow: var(--shadow-lg); }
.tc-side__photo img { width: 100%; height: 100%; object-fit: cover; }
.tc-facts { display: grid; gap: 10px; padding: 24px; border-radius: 20px; background: var(--dark); color: #c9cdd8; box-shadow: var(--shadow-lg); }
.tc-facts--over { position: relative; margin: -90px 24px 0; }
.tc-facts__title { margin: 0 0 6px; font-family: var(--hand); color: var(--accent); font-size: 1rem; }
.tc-fact { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .06); color: #fff; transition: background .2s, transform .2s; }
.tc-fact:hover { background: var(--primary); color: #fff; transform: translateX(4px); }
.tc-fact > span { flex: none; font-weight: 800; font-size: 1.15rem; color: var(--primary); width: 30px; }
.tc-fact:hover > span { color: #fff; }
.tc-fact div { flex: 1; min-width: 0; }
.tc-fact strong { display: block; font-size: .98rem; }
.tc-fact small { display: block; font-size: .82rem; color: rgba(255, 255, 255, .7); }
.tc-fact > .ico { flex: none; width: 18px; height: 18px; opacity: .7; }
.tc-facts__nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 8px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .1); }
.tc-facts__nums strong { display: block; color: #fff; font-size: 1.35rem; }
.tc-facts__nums small { font-size: .76rem; line-height: 1.35; display: block; }
.tc-count { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); font-weight: 700; color: var(--ink); }
.tc-count .ico { width: 16px; height: 16px; color: var(--primary); }
.tc-jobs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
.tc-jobs > .tc-job:only-child { grid-column: 1 / -1; }
.tc-job { position: relative; padding: 26px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 18px 36px -30px rgba(16, 19, 27, .5); transition: box-shadow .3s var(--ease), transform .3s var(--ease); overflow: hidden; }
.tc-job::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--primary); transform: scaleY(0); transform-origin: top; transition: transform .35s var(--ease); }
.tc-job:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); }
.tc-job:hover::before { transform: scaleY(1); }
.tc-job__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.tc-job__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tc-tag { display: inline-block; padding: 4px 11px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .74rem; font-weight: 700; letter-spacing: .02em; }
.tc-tag--soft { background: var(--primary-soft); color: var(--primary); }
.tc-deadline { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; background: var(--soft); color: var(--ink); font-size: .78rem; font-weight: 700; }
.tc-deadline .ico { width: 14px; height: 14px; }
.tc-deadline.is-soon { background: #fdecea; color: #b3261e; }
:root[data-theme="dark"] .tc-deadline.is-soon { background: rgba(179, 38, 30, .25); color: #ffb4ab; }
.tc-job__title { margin: 16px 0 10px; font-size: 1.3rem; line-height: 1.3; }
.tc-job__meta { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .88rem; }
.tc-job__meta li { display: inline-flex; align-items: center; gap: 6px; }
.tc-job__meta .ico { width: 15px; height: 15px; color: var(--primary); }
.tc-job__sum { margin: 0 0 14px; line-height: 1.65; }
.tc-job__more { border-top: 1px dashed var(--border); padding-top: 12px; }
.tc-job__more summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-weight: 700; color: var(--primary); font-size: .92rem; }
.tc-job__more summary::-webkit-details-marker { display: none; }
.tc-job__more summary .ico { width: 16px; height: 16px; transition: transform .25s; }
.tc-job__more[open] summary .ico { transform: rotate(180deg); }
.tc-job__body { padding-top: 10px; }
.tc-job__body h4 { margin: 18px 0 8px; font-size: .95rem; color: var(--ink); }
.tc-job__body .check-list { margin: 8px 0; gap: 8px; }
.tc-job__body .check-list li { font-weight: 400; color: var(--text); font-size: .93rem; }
.tc-job__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.tc-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tc-chips li { display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border-radius: 10px; background: var(--soft); color: var(--ink); font-size: .86rem; font-weight: 600; }
.tc-chips .ico { width: 15px; height: 15px; color: var(--primary); flex: none; }
.tc-chips--list { flex-direction: column; gap: 6px; }
.tc-chips--list li { background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.tc-empty { display: flex; gap: 24px; align-items: flex-start; max-width: 860px; margin: 0 auto; padding: clamp(24px, 4vw, 40px); border-radius: 20px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.tc-empty__ico { flex: none; width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.tc-empty__ico .ico { width: 28px; height: 28px; }
.tc-empty h3 { margin: 0 0 8px; font-size: 1.3rem; }
.tc-empty p { margin: 0 0 18px; line-height: 1.65; }
.tc-empty__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.tc-why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.tc-why__item { padding: 26px 22px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.tc-why__item:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); }
.tc-why__ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--primary-soft); color: var(--primary); margin-bottom: 16px; transition: background .3s, color .3s, transform .3s; }
.tc-why__item:hover .tc-why__ico { background: var(--primary); color: #fff; transform: rotate(-6deg); }
.tc-why__ico .ico { width: 24px; height: 24px; }
.tc-why__item h3 { margin: 0 0 8px; font-size: 1.08rem; }
.tc-why__item p { margin: 0; font-size: .93rem; line-height: 1.6; }
.tc-docs { margin-top: 34px; padding: 24px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.tc-docs__title { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font-weight: 800; color: var(--ink); }
.tc-docs__title .ico { width: 18px; height: 18px; color: var(--primary); }
.tc-docs__note { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 0; font-size: .88rem; }
.tc-docs__note .ico { flex: none; width: 18px; height: 18px; color: #2f9e62; margin-top: 2px; }
.tc-apply__in { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.tc-apply__aside { position: sticky; top: calc(var(--header-h) + 20px); }
.tc-apply__aside > p { line-height: 1.7; }
.tc-apply__label { margin: 22px 0 10px; font-weight: 800; color: var(--ink); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.tc-apply__small { font-size: .92rem; line-height: 1.6; }
.tc-pb { display: grid; gap: 10px; margin-top: 12px; }
.tc-pb > div { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.tc-pb span { flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.tc-pb span .ico { width: 18px; height: 18px; }
.tc-pb p { margin: 0; }
.tc-pb strong { display: block; color: var(--ink); font-size: .93rem; }
.tc-pb small { font-size: .84rem; line-height: 1.5; }
.tc-apply__priv { display: flex; gap: 10px; align-items: flex-start; margin-top: 22px; padding: 14px 16px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 14%, var(--surface)); font-size: .87rem; }
.tc-apply__priv .ico { flex: none; width: 18px; height: 18px; color: var(--ink); margin-top: 1px; }
.tc-apply__box { padding: clamp(18px, 3vw, 30px); border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); }
.tc-tabs { max-width: none; margin: 0 0 22px; background: var(--soft); box-shadow: none; }
.tc-form { display: grid; gap: 14px; }
.tc-form[hidden] { display: none; }
.tc-input-ico { position: relative; display: block; }
.tc-input-ico > .ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: var(--primary); pointer-events: none; }
.tc-input-ico input { padding-left: 42px; }
.tc-hint { display: block; margin-top: 6px; font-size: .8rem; font-weight: 400; color: var(--text); line-height: 1.45; }
@media (max-width: 1080px) { .tc-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .tc-top__in, .tc-apply__in { grid-template-columns: minmax(0, 1fr); }
  .tc-jobs { grid-template-columns: minmax(0, 1fr); }
  .tc-apply__aside { position: static; }
  .tc-facts--over { margin: -60px 14px 0; }
}
@media (max-width: 560px) {
  .tc-why { grid-template-columns: minmax(0, 1fr); }
  .tc-empty { flex-direction: column; }
  .tc-job { padding: 20px 18px; }
  .tc-top__btns .btn, .tc-job__btns .btn, .tc-empty__btns .btn { flex: 1 1 100%; justify-content: center; }
  .tc-facts { padding: 18px; }
  .tc-facts__nums strong { font-size: 1.1rem; }
}
@media (prefers-reduced-motion: reduce) { .tc-status.is-open .tc-status__dot::after { animation: none; } }

/* ═════════ Testemunhos (ts-*) ═════════ */
.ts-preview { margin-bottom: 26px; }
.ts-top__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.ts-top__lead { font-size: 1.06rem; line-height: 1.7; margin: 0 0 26px; }
.ts-stats { display: flex; flex-wrap: wrap; gap: 14px; }
.ts-stats > div { min-width: 120px; padding: 14px 18px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.ts-stats strong { display: block; font-size: 1.8rem; line-height: 1.1; color: var(--primary); }
.ts-stats small { font-size: .84rem; }
.ts-feature { position: relative; margin: 0; padding: clamp(26px, 4vw, 44px); border-radius: 24px; background: var(--dark); color: #c9cdd8; box-shadow: var(--shadow-lg); overflow: hidden; }
.ts-feature::after { content: ""; position: absolute; right: -80px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 45%, transparent), transparent 70%); pointer-events: none; }
.ts-feature__mark { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: var(--primary); color: #fff; margin-bottom: 18px; }
.ts-feature__mark .ico { width: 26px; height: 26px; }
.ts-feature blockquote { margin: 0 0 24px; }
.ts-feature blockquote p { margin: 0; color: #fff; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.55; font-weight: 600; }
.ts-feature figcaption { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.ts-feature figcaption strong { display: block; color: #fff; font-size: 1.05rem; }
.ts-feature figcaption small { font-size: .86rem; color: rgba(255, 255, 255, .7); }
.ts-feature .btn { position: relative; z-index: 1; }
.ts-av { flex: none; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; font-weight: 800; font-size: 1.05rem; color: #fff; background: var(--primary); box-shadow: 0 0 0 3px var(--surface); }
.ts-av img { width: 100%; height: 100%; object-fit: cover; }
.ts-av--lg { width: 64px; height: 64px; font-size: 1.25rem; box-shadow: 0 0 0 3px rgba(255, 255, 255, .15); }
.ts-av--t1 { background: #2f9e62; }
.ts-av--t2 { background: #3b6fd4; }
.ts-av--t3 { background: #c28a12; }
.ts-change { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; margin-bottom: 24px; }
.ts-change p { margin: 0; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .07); color: #e6e8ee; font-size: .9rem; line-height: 1.45; }
.ts-change p.is-now { background: color-mix(in srgb, var(--primary) 30%, transparent); color: #fff; }
.ts-change small { display: block; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; opacity: .75; margin-bottom: 2px; }
.ts-change > span .ico { width: 18px; height: 18px; color: var(--primary); }
.ts-filter { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.ts-filter button { padding: 8px 15px; border: 0; border-radius: 999px; background: transparent; color: var(--text); font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer; transition: background .2s, color .2s; }
.ts-filter button:hover { color: var(--primary); }
.ts-filter button.is-on { background: var(--primary); color: #fff; }
.ts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; }
.ts-card { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.ts-card:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); }
.ts-card[hidden] { display: none; }
.ts-card__head { display: flex; align-items: center; gap: 12px; }
.ts-card__head strong { display: block; color: var(--ink); }
.ts-card__head small { font-size: .82rem; line-height: 1.4; display: block; }
.ts-card__quote { position: relative; margin: 0; padding-left: 34px; }
.ts-card__quote > .ico { position: absolute; left: 0; top: 2px; width: 22px; height: 22px; color: var(--primary); }
.ts-card__quote p { margin: 0; color: var(--ink); font-style: italic; line-height: 1.65; }
.ts-card__now { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: #eaf6ef; color: #1f6c41; font-size: .88rem; line-height: 1.45; }
:root[data-theme="dark"] .ts-card__now { background: rgba(47, 158, 98, .16); color: #8be0b4; }
.ts-card__now .ico { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.ts-card__now small { display: block; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.ts-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--border); }
.ts-card__more { border: 0; background: none; padding: 0; font: inherit; cursor: pointer; }
.ts-list .ap-protect { margin-top: 30px; }
.ts-modal { width: min(720px, calc(100vw - 24px)); }
.ts-modal .dn-modal__head .ts-av { box-shadow: none; }
.ts-modal__quote { position: relative; margin: 0; padding: 16px 18px 16px 50px; border-radius: 14px; background: var(--soft); }
.ts-modal__quote > .ico { position: absolute; left: 16px; top: 16px; width: 22px; height: 22px; color: var(--primary); }
.ts-modal__quote p { margin: 0; color: var(--ink); font-style: italic; font-size: 1.02rem; line-height: 1.6; }
.ts-modal .ts-change { margin-bottom: 0; }
.ts-modal .ts-change p { background: var(--soft); color: var(--ink); }
.ts-modal .ts-change p.is-now { background: var(--primary-soft); color: var(--ink); }
.ts-modal__body { line-height: 1.75; }
.ts-modal__tag { margin: 0; }
@media (max-width: 1080px) { .ts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .ts-top__in { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  .ts-grid { grid-template-columns: minmax(0, 1fr); }
  .ts-change { grid-template-columns: minmax(0, 1fr); }
  .ts-change > span { transform: rotate(90deg); justify-self: center; }
  .ts-filter { border-radius: 16px; }
}
.form .tc-input-ico input { padding-left: 42px; }

/* M-Pesa: aviso de testes (sandbox) e ampulheta antiga que se vira enquanto espera */
.mp__sandbox { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 6px 14px; border-radius: 999px; background: #fff4d6; color: #7a5200; font-size: .8rem; box-shadow: 0 0 0 1px #f1d58a; }
.mp__sandbox .ico { width: 15px; height: 15px; flex: none; }
.mp__sandbox strong { text-transform: uppercase; letter-spacing: .06em; }
:root[data-theme="dark"] .mp__sandbox { background: rgba(233, 193, 56, .14); color: #f1d58a; box-shadow: 0 0 0 1px rgba(233, 193, 56, .35); }
.mp__ampulheta { width: 58px; height: 80px; margin: 2px auto 8px; }
.mp__ampulheta svg { width: 100%; height: 100%; overflow: visible; animation: mp-virar 3.2s cubic-bezier(.6, 0, .3, 1) infinite; transform-origin: 50% 50%; }
.mp__amp-vidro { fill: none; stroke: var(--ink); stroke-width: 2.6; stroke-linecap: round; opacity: .75; }
.mp__amp-tampa { fill: #8a5a2b; }
.mp__amp-cima, .mp__amp-baixo { fill: #e9a23b; }
.mp__amp-cima { transform-origin: 50% 38px; animation: mp-areia-cima 3.2s linear infinite; }
.mp__amp-baixo { transform-origin: 50% 77px; animation: mp-areia-baixo 3.2s linear infinite; }
.mp__amp-fio { stroke: #e9a23b; stroke-width: 1.6; stroke-dasharray: 3 3; animation: mp-fio .4s linear infinite, mp-fio-on 3.2s linear infinite; }
@keyframes mp-virar { 0%, 78% { transform: rotate(0); } 100% { transform: rotate(180deg); } }
@keyframes mp-areia-cima { 0% { transform: scaleY(1); } 75%, 100% { transform: scaleY(0); } }
@keyframes mp-areia-baixo { 0% { transform: scaleY(0); } 75%, 100% { transform: scaleY(1); } }
@keyframes mp-fio { to { stroke-dashoffset: -6; } }
@keyframes mp-fio-on { 0%, 74% { opacity: 1; } 76%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mp__ampulheta svg, .mp__amp-cima, .mp__amp-baixo, .mp__amp-fio { animation: none; } }

/* Janela de candidatura a uma vaga (Trabalhe connosco) */
.tc-modal { width: min(720px, calc(100vw - 24px)); }
.tc-modal .dn-modal__box { gap: 12px; }
.tc-modal__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tc-modal__steps li { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--soft); font-size: .8rem; font-weight: 700; color: var(--text); }
.tc-modal__steps span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--surface); color: var(--ink); font-size: .72rem; flex: none; }
.tc-modal__steps li.is-on { background: var(--primary-soft); color: var(--ink); }
.tc-modal__steps li.is-on span { background: var(--primary); color: #fff; }
.tc-docsup { margin: 0; padding: 14px; border: 1px dashed var(--border); border-radius: 14px; display: grid; gap: 8px; }
.tc-docsup legend { display: flex; align-items: center; gap: 8px; padding: 0 6px; font-weight: 800; color: var(--ink); font-size: .92rem; }
.tc-docsup legend .ico { width: 16px; height: 16px; color: var(--primary); }
.tc-docsup legend small { font-weight: 500; color: var(--text); font-size: .76rem; }
.tc-up { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--input); box-shadow: 0 0 0 1px var(--border); cursor: pointer; transition: box-shadow .2s, background .2s; margin: 0; }
.tc-up:hover { box-shadow: 0 0 0 1.5px var(--primary); }
.tc-up input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.tc-up__ico { flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.tc-up__ico .ico { width: 18px; height: 18px; }
.tc-up__txt { flex: 1; min-width: 0; display: grid; }
.tc-up__txt strong { font-size: .9rem; color: var(--ink); }
.tc-up__txt small { font-size: .78rem; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.tc-up__btn { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--ink); box-shadow: 0 0 0 1px var(--border); }
.tc-up__btn .ico { width: 15px; height: 15px; }
.tc-up.is-ok { background: color-mix(in srgb, #2f9e62 8%, var(--surface)); box-shadow: 0 0 0 1.5px #2f9e62; }
.tc-up.is-ok .tc-up__ico, .tc-up.is-ok .tc-up__btn { background: #2f9e62; color: #fff; }
.tc-up.is-ok small { color: #1f7a49; }
.tc-up.is-big { box-shadow: 0 0 0 1.5px #c0392b; }
.tc-up.is-big small { color: #c0392b; }
.tc-modal__priv { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .8rem; }
.tc-modal__priv .ico { flex: none; width: 15px; height: 15px; margin-top: 2px; }
.tc-form__note { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--primary-soft); color: var(--ink); font-size: .88rem; line-height: 1.5; }
.tc-form__note .ico { flex: none; width: 18px; height: 18px; color: var(--primary); margin-top: 1px; }
.tc-form__note a { font-weight: 700; color: var(--primary); }
.btn.is-busy { opacity: .75; cursor: progress; }
@media (max-width: 560px) { .tc-modal__steps li { flex-direction: column; text-align: center; gap: 4px; } }

/* Histórias de vida: fotografias e vídeo */
.ts-feature__media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; margin: 0 0 22px; padding: 0; border: 0; border-radius: 16px; overflow: hidden; background: rgba(255, 255, 255, .06); cursor: pointer; }
.ts-feature__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ts-feature__media:hover img { transform: scale(1.04); }
.ts-feature__media-vazio { position: absolute; inset: 0; background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 55%, var(--dark)), var(--dark)); }
.ts-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: #fff; box-shadow: 0 0 0 10px color-mix(in srgb, var(--primary) 30%, transparent); transition: transform .25s var(--ease); }
.ts-play .ico { width: 26px; height: 26px; fill: currentColor; margin-left: 3px; }
.ts-feature__media:hover .ts-play, .ts-card__media:hover .ts-play { transform: translate(-50%, -50%) scale(1.08); }
.ts-play--sm { width: 52px; height: 52px; box-shadow: 0 0 0 7px color-mix(in srgb, var(--primary) 30%, transparent); }
.ts-play--sm .ico { width: 20px; height: 20px; }
.ts-media-tag { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: rgba(16, 19, 27, .72); color: #fff; font-size: .76rem; font-weight: 700; backdrop-filter: blur(4px); }
.ts-media-tag .ico { width: 13px; height: 13px; }
.ts-media-tag .ico[href], .ts-play .ico { fill: currentColor; }
.ts-card__media { position: relative; display: block; width: calc(100% + 48px); margin: -24px -24px 0; aspect-ratio: 16 / 10; padding: 0; border: 0; border-radius: 18px 18px 0 0; overflow: hidden; background: var(--soft); cursor: pointer; }
.ts-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ts-card:hover .ts-card__media img { transform: scale(1.05); }
.ts-modal__video { border-radius: 14px; overflow: hidden; background: #000; }
.ts-modal__video video { display: block; width: 100%; max-height: 60vh; background: #000; }
.ts-modal__video.video { aspect-ratio: 16 / 9; }
.ts-modal__video iframe { width: 100%; height: 100%; border: 0; display: block; }
.ts-gal { display: grid; gap: 8px; }
.ts-gal__main { margin: 0; border-radius: 14px; overflow: hidden; background: var(--soft); aspect-ratio: 16 / 10; }
.ts-gal__main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-gal__thumbs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.ts-gal__thumbs button { flex: none; width: 72px; height: 54px; padding: 0; border: 0; border-radius: 10px; overflow: hidden; cursor: pointer; opacity: .6; box-shadow: 0 0 0 2px transparent; transition: opacity .2s, box-shadow .2s; }
.ts-gal__thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.ts-gal__thumbs button:hover { opacity: .9; }
.ts-gal__thumbs button.is-on { opacity: 1; box-shadow: 0 0 0 2px var(--primary); }
.ts-modal .dn-modal__box { max-height: calc(100dvh - 24px); overflow-y: auto; }

/* Janela de candidatura a vaga v2: secções numeradas, documentos com estado e progresso do envio */
.tc-modal { width: min(760px, calc(100vw - 24px)); }
.tc-apform { gap: 0; padding: 0; max-height: calc(100dvh - 24px); overflow-y: auto; }
.tc-ap__head { position: sticky; top: 0; z-index: 2; display: flex; gap: 14px; align-items: flex-start; padding: 20px clamp(18px, 3vw, 28px) 16px; background: var(--surface); border-bottom: 1px solid var(--border); }
.tc-ap__ico { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--primary); color: #fff; }
.tc-ap__ico .ico { width: 22px; height: 22px; }
.tc-ap__tit { flex: 1; min-width: 0; }
.tc-ap__tit small { font-family: var(--hand); color: var(--primary); font-size: .9rem; }
.tc-ap__tit h2 { margin: 0 0 4px; font-size: 1.2rem; line-height: 1.3; }
.tc-ap__tit p { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .82rem; }
.tc-ap__tit p span { display: inline-flex; align-items: center; gap: 5px; }
.tc-ap__tit p .ico { width: 14px; height: 14px; color: var(--primary); }
.tc-ap__tit p .is-soon { color: #b3261e; font-weight: 700; }
.tc-apform [data-tc-msg] { padding: 0 clamp(18px, 3vw, 28px); }
.tc-apform [data-tc-msg] .alert { margin-top: 16px; }
.tc-ap__corpo { display: grid; gap: 0; padding: 4px clamp(18px, 3vw, 28px) 22px; }
.tc-ap__corpo[hidden] { display: none; }
.tc-ap__sec { display: grid; gap: 12px; padding: 18px 0; border-bottom: 1px dashed var(--border); }
.tc-ap__sec:last-child { border-bottom: 0; padding-bottom: 0; }
.tc-ap__sec h3 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: .98rem; }
.tc-ap__sec h3 > span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: .8rem; font-weight: 800; }
.tc-ap__cont { margin-left: auto; padding: 3px 10px; border-radius: 999px; background: var(--soft); color: var(--text); font-style: normal; font-size: .78rem; font-weight: 800; }
.tc-ap__cont.is-done { background: #e8f6ee; color: #1f7a49; }
.tc-ap__nota { margin: -4px 0 0; font-size: .82rem; }
.tc-opt { font-weight: 500; color: var(--text); font-size: .76rem; }
.tc-hint.is-ok { color: #1f7a49; font-weight: 700; }
.tc-docsup { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.tc-up__txt { position: relative; }
.tc-up__bar { display: none; height: 4px; margin-top: 6px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.tc-up__bar i { display: block; height: 100%; width: 0; background: var(--primary); transition: width .3s linear; }
.tc-up.is-up .tc-up__bar, .tc-up.is-sent .tc-up__bar { display: block; }
.tc-up.is-sent .tc-up__bar i { width: 100% !important; background: #2f9e62; }
.tc-up.is-err { box-shadow: 0 0 0 1.5px #c0392b; background: color-mix(in srgb, #c0392b 5%, var(--input)); }
.tc-up__rm { position: relative; z-index: 2; flex: none; width: 30px; height: 30px; border: 0; border-radius: 50%; display: grid; place-items: center; background: transparent; color: var(--text); cursor: pointer; }
.tc-up__rm:hover { background: #fdecea; color: #c0392b; }
.tc-up__rm .ico { width: 15px; height: 15px; }
.tc-up.is-ok .tc-up__btn { display: none; }
.tc-apform.is-sending .tc-up input[type=file], .tc-apform.is-sending .tc-up__rm { pointer-events: none; }
.tc-prog { padding: 14px 16px; border-radius: 14px; background: var(--soft); }
.tc-prog[hidden] { display: none; }
.tc-prog__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 8px; font-size: .9rem; }
.tc-prog__top strong { color: var(--ink); }
.tc-prog__top span { font-weight: 800; color: var(--primary); font-variant-numeric: tabular-nums; }
.tc-prog__bar { height: 10px; border-radius: 999px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); overflow: hidden; }
.tc-prog__bar i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, var(--accent))); background-size: 200% 100%; animation: tcProg 1.2s linear infinite; transition: width .3s linear; }
@keyframes tcProg { to { background-position: -200% 0; } }
.tc-prog small { display: block; margin-top: 6px; font-size: .78rem; font-variant-numeric: tabular-nums; }
.tc-ap__ok { display: grid; justify-items: center; gap: 10px; padding: 34px clamp(18px, 3vw, 28px) 30px; text-align: center; }
.tc-ap__ok[hidden] { display: none; }
.tc-ap__ok h3 { margin: 0; font-size: 1.3rem; }
.tc-ap__ok p { margin: 0 0 8px; max-width: 46ch; line-height: 1.6; }
.tc-ap__okico { width: 70px; height: 70px; border-radius: 50%; display: grid; place-items: center; background: #e8f6ee; color: #2f9e62; animation: mp-pop .45s cubic-bezier(.2, 1.4, .4, 1); }
.tc-ap__okico .ico { width: 34px; height: 34px; stroke-width: 3; }
@media (max-width: 560px) { .tc-ap__head { padding-top: 16px; } .tc-ap__ico { width: 40px; height: 40px; } }
@media (prefers-reduced-motion: reduce) { .tc-prog__bar i { animation: none; } }
.form label.tc-up { display: flex; flex-direction: row; align-items: center; gap: 12px; font-weight: 400; }
.tc-up__rm[hidden], .tc-up__btn[hidden] { display: none; }
.tc-lab { display: block; }
.tc-lab .tc-opt { margin-left: 4px; }
.form .tc-input-ico input:not([type=checkbox]):not(.hp) { padding-left: 44px; }

/* Candidatura a vaga em 2 passos (dados → documentos) */
.tc-ap__passos { list-style: none; margin: 0; padding: 12px clamp(18px, 3vw, 28px) 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tc-ap__passos[hidden] { display: none; }
.tc-ap__passos li { position: relative; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px; background: var(--soft); color: var(--text); font-size: .84rem; font-weight: 700; }
.tc-ap__passos li span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--surface); color: var(--ink); font-size: .74rem; flex: none; }
.tc-ap__passos li.is-on { background: var(--primary-soft); color: var(--ink); }
.tc-ap__passos li.is-on span { background: var(--primary); color: #fff; }
.tc-ap__passos li.is-feito span { background: #2f9e62; color: #fff; }
.tc-ap__passo { display: grid; gap: 12px; padding-top: 16px; }
.tc-ap__passo[hidden] { display: none; }
.tc-ap__corpo { padding-top: 0; }
.tc-apform textarea { min-height: 84px; }
.tc-ap__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.tc-ap__nav .btn[data-tc-send], .tc-ap__nav [data-tc-seguinte] { margin-left: auto; }
.tc-ap__navnota { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; }
.tc-ap__navnota .ico { width: 15px; height: 15px; color: var(--primary); }
.tc-ap__dochead { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tc-ap__dochead p { margin: 0; font-size: .82rem; }
.tc-ap__dochead .tc-ap__cont { margin-left: 0; }
.tc-docsup { gap: 6px; }
.form label.tc-up { padding: 8px 12px; }
.tc-lab .tc-hint { display: inline; margin: 0 0 0 6px; }
@media (max-width: 560px) {
  .tc-ap__nav { flex-direction: column-reverse; align-items: stretch; }
  .tc-ap__nav .btn { width: 100%; justify-content: center; margin-left: 0; }
  .tc-ap__navnota { justify-content: center; }
}

/* Histórias de vida v2: cartões uniformes (mesma altura, imagem ou painel colorido no topo) */
.ts-grid { align-items: stretch; gap: 24px; }
.ts-card { padding: 0; gap: 0; overflow: hidden; }
.ts-card__media { width: 100%; margin: 0; border-radius: 0; aspect-ratio: 16 / 9; }
.ts-card__media--sem { display: grid; place-items: center; background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 55%, var(--dark))); }
.ts-card__media--t1 { background: linear-gradient(135deg, #2f9e62, #1b5e3c); }
.ts-card__media--t2 { background: linear-gradient(135deg, #3b6fd4, #1f3f80); }
.ts-card__media--t3 { background: linear-gradient(135deg, #d39a1c, #8a5a07); }
.ts-card__ini { position: relative; z-index: 1; display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: rgba(255, 255, 255, .18); box-shadow: 0 0 0 6px rgba(255, 255, 255, .1); color: #fff; font-size: 1.8rem; font-weight: 800; letter-spacing: .02em; }
.ts-card__mq { position: absolute; right: 18px; bottom: 6px; color: rgba(255, 255, 255, .16); }
.ts-card__mq .ico { width: 92px; height: 92px; }
.ts-card__area { position: absolute; left: 12px; top: 12px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--dark); font-size: .72rem; font-weight: 800; }
.ts-card__body { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 20px 22px 22px; }
.ts-card__head .ts-av { width: 44px; height: 44px; font-size: .9rem; margin-top: -42px; box-shadow: 0 0 0 4px var(--surface); }
.ts-card__head { align-items: flex-end; }
.ts-card__head strong { font-size: 1.05rem; }
.ts-card__quote { padding: 0; }
.ts-card__quote p { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; font-size: .96rem; }
.ts-card__quote p::before { content: "\201C"; color: var(--primary); font-weight: 800; margin-right: 2px; }
.ts-card__quote p::after { content: "\201D"; color: var(--primary); font-weight: 800; margin-left: 1px; }
.ts-card__now { padding: 10px 12px; font-size: .86rem; }
.ts-card__now span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ts-card__more { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--ink); font: inherit; font-weight: 700; font-size: .88rem; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.ts-card__more .ico { width: 15px; height: 15px; transition: transform .2s; }
.ts-card__more:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.ts-card__more:hover .ico { transform: translateX(3px); }
.ts-list .section-head--row { align-items: center; margin-bottom: 28px; }
.tc-apform, .tc-ap__corpo, .tc-ap__passo, .tc-ap__passo > *, .tc-apform .form__row > * { min-width: 0; }
.tc-apform { overflow-x: hidden; }
.tc-apform select, .tc-apform input, .tc-apform textarea { max-width: 100%; }
@media (max-width: 560px) { .tc-ap__passos li { font-size: .78rem; padding: 8px 10px; } .tc-ap__tit h2 { font-size: 1.05rem; } }
.tc-ap__cont { white-space: nowrap; flex: none; }

/* Pergunta de verificação anti-spam (só aparece quando o formulário a pede) */
.seg-cap { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 6px 10px; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--accent) 12%, var(--surface)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 45%, var(--border)); }
.form .seg-cap__lab { display: grid; gap: 6px; margin: 0; }
.seg-cap__lab > span { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--ink); }
.seg-cap__lab .ico { width: 16px; height: 16px; color: var(--primary); flex: none; }
.form .seg-cap input[name=_cap] { max-width: 120px; font-weight: 700; font-size: 1.05rem; text-align: center; }
.seg-cap__novo { display: inline-flex; align-items: center; gap: 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--ink); font: inherit; font-size: .84rem; cursor: pointer; }
.seg-cap__novo .ico { width: 14px; height: 14px; }
.seg-cap__novo:hover { border-color: var(--primary); color: var(--primary); }
.seg-cap small { grid-column: 1 / -1; font-size: .78rem; color: var(--text); }
@media (max-width: 420px) { .seg-cap__novo span { display: none; } }

.ts-mais { display: flex; justify-content: center; margin-top: 30px; }
.ts-mais[hidden] { display: none; }
.ts-card.is-mais[hidden] { display: none; }
.seg-lim__t { margin: 0 0 8px; font-size: 1.4rem; }

/* "Não sou um robô" v2: cartão no fim do formulário, antes do botão de enviar */
.seg-cap { grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 4px 12px; padding: 12px 14px; margin: 2px 0 4px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 6px 18px -14px rgba(16, 19, 27, .45); }
.seg-cap__ico { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: color-mix(in srgb, #2f9e62 12%, var(--surface)); color: #2f9e62; }
.seg-cap__ico .ico { width: 20px; height: 20px; }
.seg-cap__txt { min-width: 0; display: grid; gap: 1px; }
.seg-cap__txt strong { color: var(--ink); font-size: .94rem; }
.form .seg-cap__lab { display: block; margin: 0; font-weight: 500; font-size: .86rem; color: var(--text); }
.form .seg-cap input.seg-cap__in:not([type=checkbox]):not(.hp) { width: 76px; max-width: 76px; padding: 10px 8px; font-weight: 800; font-size: 1.05rem; text-align: center; }
.seg-cap__novo { width: 40px; height: 40px; padding: 0; justify-content: center; border-radius: 10px; }
.seg-cap__novo .ico { width: 16px; height: 16px; }
.seg-cap__d { grid-column: 2 / -1; font-size: .74rem !important; }
.seg-cap:focus-within { box-shadow: 0 0 0 2px #2f9e62, 0 6px 18px -14px rgba(16, 19, 27, .45); }
@media (max-width: 420px) { .seg-cap { grid-template-columns: auto minmax(0, 1fr) auto; } .seg-cap__novo { grid-column: 3; grid-row: 2; } .seg-cap__in { grid-column: 3; grid-row: 1; } .seg-cap__d { grid-column: 1 / 3; } }
/* o cartão "Não sou um robô" tem as suas medidas em qualquer formulário (alguns formulários têm estilos próprios para os campos) */
.seg-cap { display: grid !important; grid-template-columns: 40px minmax(0, 1fr) 76px 40px !important; }
.seg-cap .seg-cap__in { width: 76px !important; max-width: 76px !important; min-width: 0 !important; height: 44px; padding: 8px 6px !important; font-weight: 800 !important; font-size: 1.05rem !important; text-align: center; }
.seg-cap .seg-cap__txt strong { white-space: nowrap; }
.seg-cap .seg-cap__lab { white-space: nowrap; }
@media (max-width: 420px) {
  .seg-cap { grid-template-columns: 40px minmax(0, 1fr) 64px !important; }
  .seg-cap .seg-cap__in { width: 64px !important; max-width: 64px !important; }
  .seg-cap .seg-cap__novo { grid-column: 3; grid-row: 2; justify-self: end; width: 36px; height: 36px; }
  .seg-cap .seg-cap__d { grid-column: 1 / 3; grid-row: 2; align-self: center; }
}
.seg-cap { width: 100%; box-sizing: border-box; }

/* ═════════ Campanhas (cps-*) ═════════ */
.cps-top__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.cps-top__in--solo { grid-template-columns: minmax(0, 760px); }
.cps-top__lead { font-size: 1.06rem; line-height: 1.7; margin: 0 0 24px; }
.cps-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 26px; }
.cps-nums > div { padding: 14px 16px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.cps-nums strong { display: block; font-size: 1.45rem; line-height: 1.15; color: var(--primary); }
.cps-nums small { font-size: .82rem; }
.cps-top__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.cps-dest { border-radius: 22px; overflow: hidden; background: var(--surface); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); }
.cps-dest__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--soft); }
.cps-dest__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.cps-dest:hover .cps-dest__img img { transform: scale(1.04); }
.cps-dest__selo { position: absolute; left: 14px; top: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--accent); color: var(--dark); font-size: .76rem; font-weight: 800; }
.cps-dest__selo .ico { width: 13px; height: 13px; }
.cps-dest__prazo { position: absolute; right: 14px; top: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(16, 19, 27, .75); color: #fff; font-size: .76rem; font-weight: 700; backdrop-filter: blur(4px); }
.cps-dest__prazo.is-soon { background: #b3261e; }
.cps-dest__prazo .ico { width: 13px; height: 13px; }
.cps-dest__body { display: grid; gap: 12px; padding: 22px 24px 24px; }
.cps-dest__body .tc-tag { justify-self: start; }
.cps-dest__body h3 { margin: 0; font-size: 1.35rem; line-height: 1.3; }
.cps-dest__body h3 a { color: var(--ink); }
.cps-dest__body h3 a:hover { color: var(--primary); }
.cps-dest__body p { margin: 0; line-height: 1.6; }
.cps-prog__nums { display: flex; align-items: baseline; gap: 6px; margin-bottom: 8px; }
.cps-prog__nums strong { font-size: 1.15rem; color: var(--ink); }
.cps-prog__nums span { font-size: .86rem; }
.cps-prog__nums em { margin-left: auto; font-style: normal; font-weight: 800; color: var(--primary); }
.cps-prog__bar { height: 10px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.cps-prog__bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 55%, var(--accent))); }
.cps-dest__btns { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.cps-head { align-items: center; margin-bottom: 26px; }
.cps-vazio { text-align: center; padding: 30px 0; }
.cps-vazio[hidden], .cps-grid .cp-card[hidden] { display: none; }
.cp-card__acts { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 4px; }
.cp-card__mais { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .88rem; color: var(--ink); }
.cp-card__mais .ico { width: 15px; height: 15px; transition: transform .2s; }
.cp-card__mais:hover { color: var(--primary); }
.cp-card__mais:hover .ico { transform: translateX(3px); }
.cps-como { margin-top: clamp(36px, 5vw, 56px); padding: clamp(20px, 3vw, 30px); border-radius: 20px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.cps-como__t { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 1.05rem; }
.cps-como__t .ico { width: 18px; height: 18px; color: #2f9e62; }
.cps-como__l { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cps-como__l li { display: flex; gap: 12px; align-items: flex-start; }
.cps-como__l span { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 800; }
.cps-como__l strong { display: block; color: var(--ink); }
.cps-como__l small { display: block; font-size: .88rem; line-height: 1.5; margin-top: 2px; }
@media (max-width: 900px) { .cps-top__in { grid-template-columns: minmax(0, 1fr); } .cps-como__l { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .cps-top__btns .btn, .cps-dest__btns .btn { flex: 1 1 100%; justify-content: center; } .cps-dest__btns { justify-content: center; } }

/* ═════════ Apadrinhar v2 (apx-*) ═════════ */
.apx-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(30px, 5vw, 64px); align-items: center; }
.apx-top__text .section-title { text-align: left; }
.apx-top__lead { font-size: 1.06rem; line-height: 1.7; margin: 0 0 22px; }
.apx-garantias { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 10px; }
.apx-garantias li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.apx-garantias .ico { flex: none; width: 34px; height: 34px; padding: 8px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); }
.apx-garantias strong { display: block; color: var(--ink); font-size: .95rem; }
.apx-garantias span { font-size: .9rem; line-height: 1.5; }
.apx-top__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.apx-card { position: relative; display: grid; gap: 16px; padding: 26px; border-radius: 22px; background: var(--dark); color: #c9cdd8; box-shadow: var(--shadow-lg); overflow: hidden; }
.apx-card::after { content: ""; position: absolute; right: -70px; top: -70px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 50%, transparent), transparent 70%); pointer-events: none; }
.apx-card__k { margin: 0; font-family: var(--hand); color: var(--accent); }
.apx-card__preco strong { display: block; font-size: 2.2rem; line-height: 1; color: #fff; }
.apx-card__preco span { font-size: .88rem; }
.apx-card__n { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .07); color: #fff; font-size: .92rem; }
.apx-card__n strong { font-size: 1.15rem; }
.apx-card__pulso { position: relative; width: 10px; height: 10px; border-radius: 50%; background: #2f9e62; flex: none; }
.apx-card__pulso::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid #2f9e62; animation: tcPulse 1.8s var(--ease) infinite; }
.apx-card__l { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.apx-card__l li { display: flex; align-items: center; gap: 8px; font-size: .9rem; color: #e6e8ee; }
.apx-card__l .ico { width: 16px; height: 16px; color: var(--primary); flex: none; }
.apx-card .btn { position: relative; z-index: 1; }
.apx-card__nota { display: flex; align-items: center; gap: 6px; font-size: .78rem; color: rgba(255, 255, 255, .65); }
.apx-card__nota .ico { width: 13px; height: 13px; }
.ap-top { padding-bottom: clamp(36px, 5vw, 56px); }
.ap-filter { position: sticky; top: var(--header-h); z-index: 20; box-shadow: 0 10px 24px -18px rgba(0, 0, 0, .5); }
.ap-list .ap-count { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); font-weight: 700; color: var(--ink); }
@media (max-width: 900px) { .apx-top { grid-template-columns: minmax(0, 1fr); } .ap-filter { position: static; } }
@media (max-width: 560px) { .apx-top__btns .btn { flex: 1 1 100%; justify-content: center; } .apx-card__l { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .apx-card__pulso::after { animation: none; } }
.cps-nums { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.apx-card__preco small { display: block; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255, 255, 255, .7); margin-bottom: 4px; }

/* ═════════ Doar na página da campanha: janela de pagamento (cpd-*) ═════════ */
.cpd { width: min(600px, calc(100vw - 24px)); overflow-y: auto; overscroll-behavior: contain; }
.cpd__camp { position: sticky; top: 0; z-index: 2; display: flex; gap: 14px; align-items: center; padding: 14px clamp(18px, 3vw, 28px); background: var(--soft); border-bottom: 1px solid var(--border); }
.cpd__img { flex: none; width: 58px; height: 58px; border-radius: 12px; overflow: hidden; background: var(--border); }
.cpd__img img { width: 100%; height: 100%; object-fit: cover; }
.cpd__info { flex: 1; min-width: 0; display: grid; gap: 3px; }
.cpd__info small { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); }
.cpd__info strong { color: var(--ink); font-size: .98rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cpd__bar { display: block; height: 6px; margin-top: 3px; border-radius: 999px; background: var(--border); overflow: hidden; }
.cpd__bar i { display: block; width: var(--p); height: 100%; border-radius: inherit; background: var(--primary); }
.cpd__nums { font-size: .8rem; line-height: 1.4; }
.cpd__nums b { color: var(--ink); }
.cpd__camp .dn-modal__close { align-self: flex-start; }
.dn-box--modal { position: static; border-radius: 0; box-shadow: none; padding: clamp(18px, 3vw, 28px); }
/* 4 valores sugeridos (os de impacto da campanha): uma só linha em ecrã largo, em vez de 3 + 1 */
@media (min-width: 561px) { .dn-amounts:has(> :nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .cpd { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
  .cpd .form__row { grid-template-columns: minmax(0, 1fr); }
  .cpd__img { width: 48px; height: 48px; }
}

/* Obrigado: a área do doador criada com o email da doação */
.dn-acc { display: flex; gap: 14px; align-items: center; width: 100%; margin: 18px 0 4px; padding: 16px 18px; border-radius: 16px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); text-align: left; }
.dn-acc__ico { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.dn-acc__ico .ico { width: 20px; height: 20px; }
.dn-acc > div { flex: 1; min-width: 0; }
.dn-acc strong { color: var(--ink); }
.dn-acc p { margin: 3px 0 0; font-size: .9rem; line-height: 1.5; }
.dn-acc .btn { flex: none; }
@media (max-width: 560px) { .dn-acc { flex-wrap: wrap; } .dn-acc .btn { flex: 1 1 100%; } }

/* Método de pagamento: nada vem escolhido; aviso quando se tenta continuar sem escolher */
.dn-need { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 10px; background: color-mix(in srgb, #b3261e 9%, var(--surface)); color: #b3261e; font-size: .9rem; font-weight: 600; }
.dn-need[hidden] { display: none; }
.dn-need .ico { flex: none; width: 17px; height: 17px; }
.dn-methods.is-need .dn-meth__card { border-color: color-mix(in srgb, #b3261e 40%, var(--border)); }

/* ═════════ Formulário de doação compacto: o botão "Continuar" fica à vista sem descer a página ═════════ */
.dn-top { padding-top: clamp(18px, 2.4vw, 30px); }
.dn-box { gap: 11px; padding: clamp(18px, 2.4vw, 24px); }
.dn-box .dn-step { gap: 11px; }
.dn-box__ico { width: 40px; height: 40px; border-radius: 12px; }
.dn-box__ico .ico { width: 19px; height: 19px; }
.dn-box__head h3 { font-size: 1.1rem; }
.dn-box__head small { font-size: .8rem; }
.dn-prog li { padding-top: 8px; font-size: .7rem; }
/* frequência e moeda lado a lado (na campanha só a moeda, a toda a largura) */
.dn-opts { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
.dn-opts .dn-freq span, .dn-opts .dn-cur span { padding: 8px 6px; font-size: .86rem; }
.dn-opts .dn-cur { gap: 4px; padding: 4px; background: var(--soft); }
.dn-opts .dn-cur span { border: 0; }
.dn-opts .dn-cur input:checked + span { box-shadow: 0 2px 8px -4px rgba(30, 36, 54, .35); }
.dn-amount { padding: 10px 6px; font-size: 1rem; }
.dn-custom, .dn-dest { gap: 4px; }
.dn-custom__field input, .dn-dest select { padding-top: 10px; padding-bottom: 10px; }
.dn-impact { padding: 9px 12px; font-size: .86rem; }
.dn-go { padding: 13px 18px; }
@media (max-width: 360px) { .dn-opts { grid-auto-flow: row; } }
.dn-top { padding-top: clamp(12px, 1.6vw, 20px); }
/* "Valor a doar": o campo já mostra o valor e a moeda; o rótulo fica para os leitores de ecrã */
.dn-custom > span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* destino: rótulo e lista na mesma linha */
.dn-dest { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; }
@media (max-width: 420px) { .dn-dest { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
/* numa coluna (tablet e telemóvel): o formulário aparece primeiro e a explicação a seguir */
@media (max-width: 1080px) { .dn-hero > .dn-box { order: -1; justify-self: center; width: 100%; } }

/* ═════════ Passo 3 (os seus dados): campos a toda a largura e mais compactos ═════════ */
.dn-box .dn-step.form { gap: 10px; }
.dn-box .dn-step.form > label:not(.check):not(.dn-file), .dn-box .dn-more label { gap: 4px; font-size: .86rem; }
.dn-box .dn-step.form input:not([type=checkbox]):not([type=radio]):not([type=file]):not(.hp):not(.seg-cap__in), .dn-box .dn-more textarea { padding: 10px 14px; }
.dn-box .tel-field { gap: 4px; }
.dn-box .tel-field > label { font-size: .86rem; }
.dn-box .tel-field .tel-field__row input[type=tel][data-tel-num] { padding: 10px 14px; }
.dn-box .dn-sum { padding: 10px 12px; }
.dn-box .dn-file { gap: 4px; font-size: .86rem; }
.dn-box .dn-file input { inset: 22px 0 0; }
.dn-box .dn-file__box { flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 4px 10px; padding: 12px 14px; }
.dn-box .dn-file__box .ico { width: 20px; height: 20px; }
.dn-box .dn-file__box small { flex-basis: 100%; text-align: center; }
.dn-box .dn-more > summary { padding: 10px 0; font-size: .84rem; }
.dn-box .dn-more > summary small { margin-left: 4px; font-weight: 500; color: #9a9ca5; }
.dn-box .form .check { font-size: .86rem; line-height: 1.45; }
.dn-box .seg-cap { margin: 0; padding: 10px 12px; }

/* ═════════ Campanhas: destaque em carrossel (cps-car) ═════════ */
.cps-car { position: relative; min-width: 0; }
.cps-car__track { display: grid; }
.cps-car__slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateX(18px); transition: opacity .55s var(--ease), transform .55s var(--ease), visibility .55s; }
.cps-car__slide.is-on { opacity: 1; visibility: visible; transform: none; }
.cps-car .cps-dest { display: flex; flex-direction: column; }
.cps-car .cps-dest__body { flex: 1; align-content: start; }
.cps-car .cps-dest__btns { margin-top: auto; padding-top: 4px; }
.cps-dest__sem { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--soft); font-size: .88rem; line-height: 1.5; }
.cps-dest__sem .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: var(--primary); }
.cps-car__nav { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.cps-car__dots { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; }
.cps-car__dots button { position: relative; width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--ink) 18%, transparent); cursor: pointer; overflow: hidden; transition: width .35s var(--ease), background .2s; }
.cps-car__dots button:hover { background: color-mix(in srgb, var(--primary) 45%, transparent); }
.cps-car__dots button.is-on { width: 38px; background: color-mix(in srgb, var(--primary) 25%, transparent); }
.cps-car__dots button i { position: absolute; inset: 0; width: 0; border-radius: inherit; background: var(--primary); }
.cps-car__dots button.is-on i { width: 100%; }
/* barra de tempo: enche o ponto activo durante o intervalo; pára quando o carrossel pára */
.cps-car.is-run .cps-car__dots button.is-on i { width: 0; animation: cpsTempo var(--cps-t, 6s) linear forwards; }
.cps-car.is-paused .cps-car__dots button.is-on i { animation-play-state: paused; }
@keyframes cpsTempo { to { width: 100%; } }
.cps-car__n { font-size: .84rem; font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.cps-car__n b { color: var(--ink); }
.cps-car__seta { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.cps-car__seta:hover, .cps-car__seta:focus-visible { background: var(--primary); border-color: var(--primary); color: #fff; }
.cps-car__seta .ico { width: 17px; height: 17px; }
@media (prefers-reduced-motion: reduce) { .cps-car__slide { transition: none; transform: none; } }
/* controlos por cima do fundo da fotografia (16:9), para se verem sempre sem descer; sem suporte fica por baixo do cartão */
@supports (top: 1cqw) {
  .cps-car { container-type: inline-size; }
  .cps-car__nav { position: absolute; z-index: 3; right: 14px; top: calc(56.25cqw - 54px); margin: 0; gap: 8px; padding: 5px 5px 5px 14px; border-radius: 999px; background: rgba(16, 19, 27, .62); backdrop-filter: blur(6px); }
  .cps-car__dots { flex: none; }
  .cps-car__dots button { background: rgba(255, 255, 255, .45); }
  .cps-car__dots button:hover { background: rgba(255, 255, 255, .7); }
  .cps-car__dots button.is-on { background: rgba(255, 255, 255, .3); }
  .cps-car__dots button i { background: #fff; }
  .cps-car__n, .cps-car__n b { color: #fff; }
  .cps-car__seta { width: 34px; height: 34px; border: 0; background: rgba(255, 255, 255, .95); }
}
/* números: no telemóvel, a última caixa sozinha ocupa a linha toda */
@media (max-width: 560px) { .cps-nums > div:last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ═════════ Comprovativo: miniatura, ×, verificação e progresso do envio (dn-file[data-up]) ═════════ */
.dn-file[data-up] { --up-c: var(--primary); }
.dn-file[data-up] .dn-file__box { display: block; padding: 12px 14px; transition: border-color .25s, background .25s; }
.dn-file[data-up] .dn-file__vazio { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 10px; text-align: center; }
.dn-file[data-up] .dn-file__vazio small { flex-basis: 100%; }
.dn-file__cheio { display: flex; align-items: center; gap: 12px; text-align: left; }
.dn-file__cheio[hidden] { display: none; }
.dn-file__thumb { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; overflow: hidden; background: color-mix(in srgb, var(--up-c) 12%, var(--surface)); color: var(--up-c); }
.dn-file__thumb img { width: 100%; height: 100%; object-fit: cover; }
.dn-file__thumb .ico { width: 22px; height: 22px; color: var(--up-c) !important; }
.dn-file__info { flex: 1; min-width: 0; display: grid; gap: 2px; }
.dn-file__info b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .88rem; color: var(--ink); word-break: normal !important; }
.dn-file__info small { font-size: .76rem !important; font-weight: 600 !important; color: var(--text) !important; line-height: 1.35; }
.dn-file__bar { display: none; height: 6px; margin-top: 4px; border-radius: 999px; background: color-mix(in srgb, var(--up-c) 18%, transparent); overflow: hidden; }
.dn-file__bar i { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--up-c); transition: width .25s linear; }
.dn-file__estado { flex: none; display: grid; place-items: center; width: 28px; height: 28px; }
.dn-file__estado > span { display: none; }
.dn-file__ok, .dn-file__mal { width: 26px; height: 26px; border-radius: 50%; place-items: center; color: #fff; }
.dn-file__ok { background: #1f9d55; }
.dn-file__mal { background: #b3261e; }
.dn-file__ok .ico, .dn-file__mal .ico { width: 15px; height: 15px; color: #fff !important; }
.dn-file__roda { width: 22px; height: 22px; border-radius: 50%; border: 3px solid color-mix(in srgb, var(--up-c) 25%, transparent); border-top-color: var(--up-c); animation: dnRoda .8s linear infinite; }
@keyframes dnRoda { to { transform: rotate(360deg); } }
.dn-file__x, .dn-file__troca { position: relative; z-index: 2; flex: none; display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.dn-file__x[hidden], .dn-file__troca[hidden] { display: none; }
.dn-file__x:hover, .dn-file__x:focus-visible { background: #b3261e; border-color: #b3261e; color: #fff; }
.dn-file__troca { color: #1f9d55; border-color: color-mix(in srgb, #1f9d55 35%, var(--border)); }
.dn-file__troca:hover, .dn-file__troca:focus-visible { background: #1f9d55; border-color: #1f9d55; color: #fff; }
.dn-file__x .ico, .dn-file__troca .ico { width: 14px; height: 14px; }
.dn-file__troca .ico { width: 15px; height: 15px; }
.dn-file__cheio .dn-file__troca + .dn-file__x { margin-left: -4px; }
/* estados: escolhido (verde), não serve (vermelho), a enviar e a processar (cor principal), enviado (verde) */
.dn-file.is-file, .dn-file.is-sent { --up-c: #1f9d55; }
.dn-file.is-bad { --up-c: #b3261e; }
.dn-file.is-file .dn-file__box, .dn-file.is-bad .dn-file__box, .dn-file.is-up .dn-file__box, .dn-file.is-proc .dn-file__box, .dn-file.is-sent .dn-file__box, .dn-file.is-drag .dn-file__box { border-style: solid; border-color: var(--up-c); background: color-mix(in srgb, var(--up-c) 7%, var(--surface)); }
.dn-file.is-sent .dn-file__ok, .dn-file.is-bad .dn-file__mal, .dn-file.is-up .dn-file__roda, .dn-file.is-proc .dn-file__roda { display: grid; }
.dn-file.is-bad .dn-file__info small { color: #b3261e !important; }
.dn-file.is-up .dn-file__bar, .dn-file.is-proc .dn-file__bar, .dn-file.is-sent .dn-file__bar { display: block; }
.dn-file.is-up .dn-file__info small, .dn-file.is-proc .dn-file__info small { color: var(--up-c) !important; }
/* a processar: barra cheia com riscas em movimento */
.dn-file.is-proc .dn-file__bar i { width: 100% !important; background: repeating-linear-gradient(-45deg, var(--up-c) 0 10px, color-mix(in srgb, var(--up-c) 70%, #fff) 10px 20px); background-size: 28px 28px; animation: dnRiscas .8s linear infinite; }
@keyframes dnRiscas { to { background-position: 28px 0; } }
.dn-file.is-up input, .dn-file.is-proc input, .dn-file.is-sent input { pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .dn-file__roda, .dn-file.is-proc .dn-file__bar i { animation: none; } }
.dn-file[data-up] .dn-file__vazio[hidden] { display: none; }

/* ═════════ Janela "confirme no telemóvel" (M-Pesa) mais compacta: cabe num portátil sem descer ═════════ */
.mp__box { width: min(100%, 440px); padding: 46px 24px 20px; margin: 26px 0 12px; }
.mp__logo { top: -32px; width: 68px; height: 68px; border-radius: 20px; }
.mp__logo img { width: 56px; height: 56px; }
.mp__sandbox { margin: 0 0 6px; padding: 4px 12px; font-size: .76rem; }
.mp__ampulheta { width: 40px; height: 56px; margin: 0 auto 4px; }
.mp__box h2 { margin: 2px 0 4px; font-size: 1.14rem; line-height: 1.3; }
.mp__lead { margin: 0 0 10px; font-size: .9rem; line-height: 1.5; }
.mp__valor { margin: 0 auto 10px; padding: 8px 14px; border-radius: 12px; }
.mp__valor strong { font-size: 1.45rem; }
.mp__valor small { font-size: .78rem; }
.mp__passos { gap: 4px; margin: 0 0 10px; }
.mp__passos li { align-items: center; gap: 9px; padding: 6px 10px; font-size: .84rem; line-height: 1.4; }
.mp__passos li span { width: 22px; height: 22px; font-size: .74rem; }
.mp__tempo { margin: 8px 0 8px; font-size: .86rem; }
.mp__aviso { padding: 8px 10px; font-size: .76rem; line-height: 1.45; }
.mp__aviso .ico { width: 15px; height: 15px; }
.mp__estado { width: 56px; height: 56px; }
@media (max-width: 420px) { .mp { padding: 10px; } .mp__box { padding: 44px 16px 16px; } }

/* Cabeçalho: com o menu completo (acima de 1400 px) o conteúdo não cabia nos 1240 px do contentor e o botão Doar
   saía para fora (cortado em alguns ecrãs). O cabeçalho tem o seu próprio contentor, um pouco mais largo, e o menu encolhe. */
.header__in, .topbar__in { width: min(100% - 40px, 1400px); } /* a barra de cima alinha com o cabeçalho */
.nav { min-width: 0; }
.header__actions { flex: none; }

/* Campanhas: o botão "Apoiar esta campanha" fica à vista sem descer. A fotografia do destaque acompanha a altura do ecrã
   (entre 190 e 330 px) e o topo da página tem menos espaço por baixo do menu. */
.cps-top { padding-top: clamp(16px, 2vw, 28px); padding-bottom: clamp(32px, 4vw, 48px); }
.cps-car { --img-h: clamp(190px, 32vh, 330px); }
.cps-car .cps-dest__img { aspect-ratio: auto; height: var(--img-h); }
.cps-car .cps-dest__body { gap: 9px; padding: 16px 20px 18px; }
.cps-car .cps-dest__body h3 { font-size: 1.2rem; line-height: 1.3; }
.cps-car .cps-dest__body p { font-size: .92rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@supports (top: 1cqw) { .cps-car__nav { top: calc(var(--img-h) - 54px); } }
.cps-top__in { align-items: start; }
.cps-top__lead { margin-bottom: 18px; }
.cps-nums { gap: 10px; margin-bottom: 20px; }
.cps-nums > div { padding: 11px 14px; }
.cps-nums strong { font-size: 1.3rem; }

/* Campanhas: "Ver mais campanhas" e a mensagem quando já estão todas à vista */
.cps-mais { display: flex; justify-content: center; margin-top: 26px; }
.cps-mais[hidden], .cps-mais [hidden] { display: none !important; }
.cps-mais .btn { gap: 8px; }
.cps-mais__n { font-size: .85rem; font-weight: 700; opacity: .75; }
.cps-mais__fim { display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 12px 18px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); font-size: .9rem; text-align: left; animation: mzdIn .35s var(--ease); }
.cps-mais__fim .ico { flex: none; width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: #1f9d55; color: #fff; }
@media (max-width: 560px) { .cps-mais__fim { border-radius: 14px; } }

/* M-Pesa, à espera da confirmação: dois arcos vermelhos correm à volta do logótipo (a moldura fica parada, só a luz gira)
   e um brilho vermelho pulsa por trás. Pára quando o pagamento é confirmado ou falha. */
@property --mp-ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.mp__logo { isolation: isolate; overflow: visible; } /* o anel fica por fora da moldura */
.mp__logo::before, .mp__logo::after { content: ""; position: absolute; pointer-events: none; border-radius: 25px; }
.mp__logo::before { /* anel com os arcos */
  inset: -6px; z-index: -1; padding: 3px;
  background: conic-gradient(from var(--mp-ang), transparent 0deg, #e60000 60deg, #ff6a3d 95deg, transparent 130deg, transparent 180deg, #e60000 240deg, #ff6a3d 275deg, transparent 310deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.mp__logo::after { /* brilho */
  inset: 0; z-index: -2; border-radius: 20px; box-shadow: 0 0 22px 6px rgba(230, 0, 0, .3); opacity: .45;
}
.mp:has([data-mp-fase="espera"]:not([hidden])) .mp__logo::before { animation: mpAnel 1.6s linear infinite; }
.mp:has([data-mp-fase="espera"]:not([hidden])) .mp__logo::after { animation: mpBrilho 1.6s ease-in-out infinite; }
.mp:has([data-mp-fase="pago"]:not([hidden])) .mp__logo::before { background: #2f9e6b; }
.mp:has([data-mp-fase="falhou"]:not([hidden])) .mp__logo::before, .mp:has([data-mp-fase="falhou"]:not([hidden])) .mp__logo::after { opacity: 0; }
@keyframes mpAnel { to { --mp-ang: 360deg; } }
@keyframes mpBrilho { 50% { opacity: 1; transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) {
  .mp:has([data-mp-fase="espera"]:not([hidden])) .mp__logo::before, .mp:has([data-mp-fase="espera"]:not([hidden])) .mp__logo::after { animation: none; }
}

/* Logótipo: "ASSOCIAÇÃO" por cima do nome, com as letras distribuídas para ocupar exactamente a largura do nome
   (do primeiro ao último A de ANANDJIRA), no cabeçalho e no rodapé */
.brand__txt, .footer__brand > .footer__brand-txt { display: inline-flex; flex-direction: column; align-items: stretch; }
.brand__top { display: block; letter-spacing: 0 !important; line-height: 1.15; }
.brand__letras, .footer__brand .brand__letras { display: flex; flex-direction: row; justify-content: space-between; }
.brand__letras > span, .footer__brand .brand__letras > span { display: inline; }
.brand__txt .brand__top { font-size: .64rem; }
.footer__brand .brand__top { font-size: .7rem; color: #a9adb8; font-weight: 600; }
.brand__txt strong, .footer__brand-txt strong { letter-spacing: .02em; margin-right: -.02em; } /* sem espaço a mais depois do último A */

/* ═════════ Campanhas: faixa dos temas (estilo Welowe) — cada caixa filtra a lista; setas quando não cabem todas ═════════ */
.cps-com-temas { padding-top: 0; }
.cps-temas { position: relative; z-index: 2; margin: -18px 0 clamp(36px, 5vw, 56px); }
/* faixa deslizante: 4 caixas por linha no computador, 2 no tablet, 1 e meia no telemóvel (para se perceber que desliza) */
.cps-cats { --cat-n: 4; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--cat-n) - 1) * 16px) / var(--cat-n)); gap: 16px;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
  padding: 6px 2px 26px; margin: -6px -2px -26px; }
.cps-cats::-webkit-scrollbar { display: none; }
.cps-cat { position: relative; isolation: isolate; overflow: hidden; scroll-snap-align: start; display: flex; flex-direction: column; align-items: flex-start;
  min-height: 330px; padding: 30px 26px 24px; border: 0; border-radius: 6px; background: var(--surface); color: var(--text); text-align: left; font: inherit; cursor: pointer;
  box-shadow: 0 1px 0 var(--border), 0 16px 34px -24px rgba(30, 36, 54, .5); transition: color .35s var(--ease), transform .35s var(--ease), box-shadow .35s; }
/* fundo da cor principal com a fotografia de uma campanha do tema (só no estado escolhido e ao passar o rato) */
.cps-cat::before, .cps-cat::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .45s var(--ease); }
.cps-cat::before { background: var(--cat-foto, none) center / cover no-repeat; transform: scale(1.08); transition: opacity .45s var(--ease), transform 1.2s var(--ease); }
.cps-cat::after { background: linear-gradient(160deg, color-mix(in srgb, var(--primary) 92%, transparent) 0%, color-mix(in srgb, var(--primary) 84%, #1e2436) 100%); }
.cps-cat__num { position: absolute; right: 16px; top: 12px; font-size: 3rem; font-weight: 800; line-height: 1; letter-spacing: -.04em; color: color-mix(in srgb, var(--ink) 6%, transparent); transition: color .35s; pointer-events: none; }
.cps-cat__t { position: relative; color: var(--ink); font-size: 1.14rem; line-height: 1.3; padding-right: 64px; transition: color .35s; }
.cps-cat__ico { display: grid; place-items: center; width: 74px; height: 74px; margin: 22px 0 22px; border-radius: 50%; background: color-mix(in srgb, var(--primary) 10%, var(--surface)); color: var(--primary); transition: background .35s, color .35s, transform .45s var(--ease); }
.cps-cat__ico .ico { width: 40px; height: 40px; stroke-width: 1.5; }
.cps-cat__traco { display: block; width: 24px; height: 3px; margin-bottom: 16px; background: var(--ink); transition: background .35s, width .4s var(--ease); }
.cps-cat__txt { font-size: .92rem; line-height: 1.55; }
.cps-cat__pe { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; margin-top: auto; padding-top: 18px; }
.cps-cat__n { font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); transition: color .35s; }
.cps-cat__ir { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--border); color: var(--ink); transition: background .35s, border-color .35s, color .35s, transform .35s var(--ease); }
.cps-cat__ir .ico { width: 15px; height: 15px; }
.cps-cat.is-vazio .cps-cat__n { color: var(--text); opacity: .75; }
/* escolhida e ao passar o rato */
.cps-cat:hover { transform: translateY(-4px); box-shadow: 0 1px 0 var(--border), 0 26px 44px -26px rgba(30, 36, 54, .55); }
.cps-cat:hover::before, .cps-cat:hover::after, .cps-cat.is-on::before, .cps-cat.is-on::after { opacity: 1; }
.cps-cat:hover::before, .cps-cat.is-on::before { transform: scale(1); }
.cps-cat:hover, .cps-cat.is-on { color: rgba(255, 255, 255, .92); }
.cps-cat:hover .cps-cat__t, .cps-cat.is-on .cps-cat__t, .cps-cat:hover .cps-cat__n, .cps-cat.is-on .cps-cat__n { color: #fff; opacity: 1; }
.cps-cat:hover .cps-cat__num, .cps-cat.is-on .cps-cat__num { color: rgba(255, 255, 255, .16); }
.cps-cat:hover .cps-cat__ico, .cps-cat.is-on .cps-cat__ico { background: rgba(255, 255, 255, .16); color: #fff; transform: rotate(-6deg) scale(1.04); }
.cps-cat:hover .cps-cat__traco, .cps-cat.is-on .cps-cat__traco { width: 60px; background: #fff; }
.cps-cat:hover .cps-cat__ir, .cps-cat.is-on .cps-cat__ir { background: #fff; border-color: #fff; color: var(--primary); transform: translateX(3px); }
.cps-cat.is-on .cps-cat__ir { transform: rotate(90deg); }
.cps-cat:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary) 50%, transparent); outline-offset: 3px; }
/* setas nos lados, por cima das caixas */
.cps-temas__seta { position: absolute; top: calc(50% - 36px); z-index: 3; display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; box-shadow: 0 10px 26px -10px rgba(30, 36, 54, .45), 0 0 0 1px var(--border); transition: background .2s, color .2s, opacity .2s, transform .2s; }
.cps-temas__seta[hidden] { display: none; }
.cps-temas__seta--ant { left: -23px; }
.cps-temas__seta--seg { right: -23px; }
.cps-temas__seta:hover:not(:disabled), .cps-temas__seta:focus-visible { background: var(--primary); color: #fff; }
.cps-temas__seta:disabled { opacity: 0; pointer-events: none; transform: scale(.85); }
.cps-temas__seta .ico { width: 18px; height: 18px; }
.cps-todas { gap: 6px; }
.cps-todas[hidden] { display: none; }
.cps-todas .ico { width: 14px; height: 14px; }
.cps-vazio a { font-weight: 700; }
.cps-vazio .ico { width: 14px; height: 14px; vertical-align: -2px; }
@media (max-width: 1080px) { .cps-cats { --cat-n: 3; } }
@media (max-width: 760px) { .cps-cats { --cat-n: 2; } .cps-temas { margin-top: -12px; } .cps-cat { min-height: 300px; padding: 24px 20px 20px; } .cps-cat__ico { width: 62px; height: 62px; margin: 16px 0; } .cps-cat__ico .ico { width: 32px; height: 32px; } .cps-cat__num { font-size: 2.8rem; } .cps-temas__seta--ant { left: -8px; } .cps-temas__seta--seg { right: -8px; } }
@media (max-width: 480px) { .cps-cats { grid-auto-columns: 72%; } }
@media (prefers-reduced-motion: reduce) { .cps-cat, .cps-cat::before, .cps-cat::after, .cps-cat__ico, .cps-cat__traco, .cps-cat__ir { transition: none; } .cps-cat:hover { transform: none; } .cps-cats { scroll-behavior: auto; } }

/* Campanhas: responsividade em todos os ecrãs */
/* tablets: as setas da faixa dos temas ficam dentro da margem da página (antes saíam 3 px e criavam deslocamento horizontal) */
@media (max-width: 1320px) { .cps-temas__seta--ant { left: -12px; } .cps-temas__seta--seg { right: -12px; } }
/* telemóveis: os botões ocupam a largura toda e o texto quebra em vez de sair do ecrã */
@media (max-width: 560px) {
  .cps-top__btns .btn, .cps-dest__btns .btn { white-space: normal; text-align: center; line-height: 1.3; }
  .cps-top__in { gap: 28px; }
  .cps-head { gap: 14px; }
  .cps-head .cps-todas { align-self: flex-start; }
}
/* telemóveis pequenos (320–360 px): cabeçalho e números mais justos */
@media (max-width: 360px) {
  .header__actions { gap: 6px; }
  .header__actions .icon-btn { width: 40px; height: 40px; }
  .cps-nums strong { font-size: 1.15rem; }
  .cps-nums > div { padding: 10px 12px; }
  .cps-cat__t { font-size: 1.02rem; padding-right: 52px; }
}
@media (max-width: 360px) {
  .header__in { gap: 10px; }
  .brand { gap: 8px; }
  .brand img { width: 40px; height: 40px; }
  .footer__social { flex-wrap: wrap; justify-content: center; }
}

/* ═════════ Página de cada campanha (cpx-*) ═════════ */
.cpx-top { padding: clamp(18px, 2.4vw, 30px) 0 clamp(40px, 6vw, 80px); --fundo-0: var(--primary); --fundo-1: #1e2436; --fundo-2: #e9c138; --fundo-3: #2f9e62; --fundo-4: #3c81c8; --fundo-5: #8a5cc7; }
.cpx-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; font-size: .84rem; color: var(--text); }
.cpx-crumbs a { color: var(--text); }
.cpx-crumbs a:hover { color: var(--primary); }
.cpx-crumbs span { color: var(--ink); font-weight: 600; }
.cpx-crumbs .ico { width: 13px; height: 13px; opacity: .55; }
.cpx-head { max-width: 900px; margin-bottom: 26px; }
.cpx-head__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.cpx-tag { padding: 5px 12px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-size: .76rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.cpx-head__tags .pill .ico { width: 12px; height: 12px; }
.cpx-head__prazo { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; font-weight: 700; color: var(--ink); }
.cpx-head__prazo .ico { width: 15px; height: 15px; color: var(--primary); }
.cpx-head__prazo.is-soon, .cpx-head__prazo.is-soon .ico { color: #b3261e; }
.cpx-title { margin: 0 0 12px; font-size: clamp(1.75rem, 3.6vw, 2.8rem); line-height: 1.15; letter-spacing: -.01em; }
.cpx-lead { max-width: 780px; margin: 0 0 18px; font-size: 1.08rem; line-height: 1.65; }
.cpx-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 24px; font-size: .9rem; }
.cpx-facts li { display: flex; align-items: center; gap: 7px; }
.cpx-facts strong { color: var(--ink); }
.cpx-facts .ico { flex: none; width: 17px; height: 17px; color: var(--primary); }
/* grelha: galeria e corpo à esquerda, cartão de doação fixo à direita */
.cpx-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; grid-template-areas: "media side" "body side"; gap: 0 clamp(28px, 4vw, 52px); align-items: start; }
.cpx-media { grid-area: media; margin-bottom: 22px; min-width: 0; }
.cpx-side { grid-area: side; position: sticky; top: calc(var(--header-h) + 18px); }
.cpx-body { grid-area: body; min-width: 0; }
.cpx-media__main { position: relative; margin: 0; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: var(--soft); }
.cpx-media__img, .cpx-media__img img { display: block; width: 100%; height: 100%; }
.cpx-media__img img { object-fit: cover; transition: opacity .3s; }
.cpx-media__video { position: absolute; inset: 0; background: #000; }
.cpx-media__video iframe { width: 100%; height: 100%; border: 0; }
.cpx-media__video[hidden] { display: none; }
.cpx-media__pct { position: absolute; left: 16px; bottom: 16px; padding: 7px 13px; border-radius: 999px; background: rgba(16, 19, 27, .72); color: rgba(255, 255, 255, .85); font-size: .82rem; backdrop-filter: blur(4px); }
.cpx-media__pct b { color: #fff; }
.cpx-thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.cpx-thumbs::-webkit-scrollbar { display: none; }
.cpx-thumb { flex: none; width: 92px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: var(--soft); cursor: pointer; opacity: .7; transition: opacity .2s, border-color .2s; }
.cpx-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cpx-thumb.is-on, .cpx-thumb:hover, .cpx-thumb:focus-visible { opacity: 1; border-color: var(--primary); }
.cpx-thumb--video { display: grid; place-items: center; align-content: center; gap: 3px; background: var(--dark); color: #fff; font-size: .72rem; font-weight: 700; }
.cpx-thumb--video .ico { width: 20px; height: 20px; }
/* cartão de doação */
.cpx-card { display: grid; gap: 14px; padding: 24px; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 50px -30px rgba(30, 36, 54, .45); }
.cpx-card__fim { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, #1f9d55 10%, var(--surface)); color: #1d6b40; font-weight: 700; font-size: .9rem; }
.cpx-card__fim .ico { flex: none; width: 18px; height: 18px; }
.cpx-card__valor strong { display: block; font-size: 2.05rem; line-height: 1.1; color: var(--ink); letter-spacing: -.01em; }
.cpx-card__valor span { font-size: .9rem; }
.cpx-bar { height: 10px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.cpx-bar i { display: block; width: var(--p); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, var(--accent))); }
.cpx-card__stats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.cpx-card__stats > div { padding: 10px 8px; text-align: center; border-right: 1px solid var(--border); }
.cpx-card__stats > div:last-child { border-right: 0; }
.cpx-card__stats dt { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cpx-card__stats dd { margin: 2px 0 0; font-size: 1.12rem; font-weight: 800; color: var(--ink); }
.cpx-card__label { margin: 0; font-size: .82rem; font-weight: 700; color: var(--ink); }
.cpx-card .cp-quick { margin: -4px 0 0; }
.cpx-card__doar { padding-top: 15px; padding-bottom: 15px; font-size: 1rem; }
.cpx-card__partilhar { gap: 8px; }
.cpx-card__garantias { list-style: none; margin: 2px 0 0; padding: 14px 0 0; border-top: 1px solid var(--border); display: grid; gap: 9px; font-size: .84rem; line-height: 1.45; }
.cpx-card__garantias li { display: flex; gap: 9px; align-items: flex-start; }
.cpx-card__garantias .ico { flex: none; width: 16px; height: 16px; margin-top: 1px; color: #2f9e62; }
.cpx-card__doadores { padding-top: 14px; border-top: 1px solid var(--border); display: grid; gap: 10px; }
.cpx-card__doadores > p { margin: 0; font-size: .82rem; font-weight: 700; color: var(--ink); }
.cpx-card__doadores ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cpx-card__doadores li { display: flex; align-items: center; gap: 10px; font-size: .86rem; }
.cpx-card__doadores li strong { display: block; color: var(--ink); font-size: .88rem; }
.cpx-card__doadores li small { font-size: .76rem; }
.cpx-card__doadores li b { margin-left: auto; color: var(--ink); }
.cpx-card__doadores > a { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; font-weight: 700; }
.cpx-card__doadores > a .ico { width: 14px; height: 14px; }
.cpx-av { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: .8rem; font-weight: 800; }
.cpx-av--lg { width: 72px; height: 72px; font-size: 1.3rem; }
/* menu da página, fixo ao descer */
.cpx-tabs { position: sticky; top: var(--header-h); z-index: 6; display: flex; gap: 4px; margin: 0; padding: 10px 0; overflow-x: auto; scrollbar-width: none; background: var(--surface); box-shadow: 0 1px 0 var(--border); }
.cpx-tabs::-webkit-scrollbar { display: none; }
.cpx-tabs a { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 999px; color: var(--text); font-size: .88rem; font-weight: 700; transition: background .2s, color .2s; }
.cpx-tabs a b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--soft); color: var(--ink); font-size: .72rem; }
.cpx-tabs a:hover { color: var(--ink); background: var(--soft); }
.cpx-tabs a.is-on { background: var(--ink); color: #fff; }
.cpx-tabs a.is-on b { background: rgba(255, 255, 255, .18); color: #fff; }
/* secções */
.cpx-sec { padding: clamp(26px, 3.5vw, 40px) 0; border-bottom: 1px solid var(--border); scroll-margin-top: calc(var(--header-h) + 72px); }
.cpx-sec__t { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: clamp(1.3rem, 2.2vw, 1.65rem); }
.cpx-sec__n { display: inline-grid; place-items: center; min-width: 30px; height: 30px; padding: 0 10px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-size: .88rem; }
.cpx-sec__lead { margin: -6px 0 18px; }
.cpx-sec__nota { margin: 14px 0 0; font-size: .88rem; }
.cpx-ps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.cpx-ps__item { padding: 22px; border-radius: 16px; background: var(--soft); }
.cpx-ps__item h3 { margin: 0 0 8px; font-size: 1.05rem; }
.cpx-ps__item p { margin: 0; font-size: .95rem; line-height: 1.6; }
.cpx-ps__ico { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 12px; border-radius: 12px; }
.cpx-ps__ico .ico { width: 20px; height: 20px; }
.cpx-ps__item--p .cpx-ps__ico { background: color-mix(in srgb, #b3261e 11%, var(--surface)); color: #b3261e; }
.cpx-ps__item--s .cpx-ps__ico { background: color-mix(in srgb, #2f9e62 12%, var(--surface)); color: #2f9e62; }
.cpx-prose { font-size: 1rem; }
.cpx-resp { display: flex; align-items: center; gap: 18px; margin: 26px 0 0; padding: 22px; border-radius: 16px; box-shadow: 0 0 0 1px var(--border); }
.cpx-resp__foto { flex: none; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; }
.cpx-resp__foto img { width: 100%; height: 100%; object-fit: cover; }
.cpx-resp blockquote { margin: 0 0 8px; font-size: 1.02rem; font-style: italic; line-height: 1.55; color: var(--ink); }
.cpx-resp figcaption { font-size: .88rem; }
.cpx-resp figcaption strong { color: var(--ink); }
.cpx-resp figcaption small { display: block; margin-top: 2px; font-size: .78rem; }
/* impacto */
.cpx-imp { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.cpx-imp__item { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px 20px 20px; border-radius: 16px; background: var(--surface); color: var(--text); box-shadow: 0 0 0 1px var(--border); transition: transform .3s var(--ease), box-shadow .3s; }
a.cpx-imp__item:hover { transform: translateY(-3px); box-shadow: 0 0 0 2px var(--primary), 0 18px 34px -24px rgba(30, 36, 54, .45); }
.cpx-imp__n { position: absolute; right: 16px; top: 12px; font-size: 1.8rem; font-weight: 800; color: color-mix(in srgb, var(--ink) 7%, transparent); }
.cpx-imp__item strong { font-size: 1.45rem; line-height: 1.1; color: var(--primary); }
.cpx-imp__txt { font-size: .92rem; line-height: 1.5; }
.cpx-imp__item em { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; font-style: normal; font-size: .84rem; font-weight: 800; color: var(--ink); }
.cpx-imp__item em .ico { width: 14px; height: 14px; transition: transform .2s; }
a.cpx-imp__item:hover em .ico { transform: translateX(3px); }
/* uso dos fundos */
.cpx-fundos { padding: 22px; border-radius: 16px; background: var(--soft); }
.cpx-fundos__barra { display: flex; gap: 3px; height: 16px; margin-bottom: 18px; border-radius: 999px; overflow: hidden; }
.cpx-fundos__barra i { width: var(--w); background: var(--c); }
.cpx-fundos__l { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cpx-fundos__l li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto 58px; align-items: center; gap: 12px; font-size: .93rem; }
.cpx-fundos__cor { width: 12px; height: 12px; border-radius: 4px; background: var(--c); }
.cpx-fundos__l b { color: var(--ink); white-space: nowrap; }
.cpx-fundos__l em { font-style: normal; font-weight: 800; text-align: right; color: var(--ink); }
/* plano e etapas */
.cpx-plano { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.cpx-plano::before { content: ""; position: absolute; left: 15px; top: 8px; bottom: 8px; width: 2px; background: var(--border); }
.cpx-plano__item { position: relative; padding-left: 48px; }
.cpx-plano__dot { position: absolute; left: 5px; top: 1px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--surface); box-shadow: 0 0 0 2px var(--border); }
.cpx-plano__dot .ico { width: 12px; height: 12px; color: #fff; }
.cpx-plano__item.is-feito .cpx-plano__dot { background: #2f9e62; box-shadow: 0 0 0 2px #2f9e62; }
.cpx-plano__item.is-curso .cpx-plano__dot { background: var(--primary); box-shadow: 0 0 0 2px var(--primary), 0 0 0 7px color-mix(in srgb, var(--primary) 18%, transparent); animation: cpxPulso 2s var(--ease) infinite; }
@keyframes cpxPulso { 50% { box-shadow: 0 0 0 2px var(--primary), 0 0 0 11px color-mix(in srgb, var(--primary) 6%, transparent); } }
.cpx-plano__item time { display: block; font-size: .76rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--primary); }
.cpx-plano__item strong { display: block; margin: 2px 0 6px; color: var(--ink); font-size: 1rem; }
.cpx-plano__est { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--soft); font-size: .74rem; font-weight: 700; }
.is-feito .cpx-plano__est { background: color-mix(in srgb, #2f9e62 12%, var(--surface)); color: #1d6b40; }
.is-curso .cpx-plano__est { background: var(--primary-soft); color: var(--primary); }
/* actualizações */
.cpx-upd { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.cpx-upd__item { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 18px; }
.cpx-upd__meta time { display: block; color: var(--ink); font-weight: 800; font-size: .9rem; }
.cpx-upd__meta small { font-size: .8rem; }
.cpx-upd__card { border-radius: 16px; overflow: hidden; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.cpx-upd__img a { display: block; }
.cpx-upd__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cpx-upd__txt { padding: 18px 20px; }
.cpx-upd__txt h3 { margin: 0 0 6px; font-size: 1.06rem; }
.cpx-upd__txt p { margin: 0; line-height: 1.6; }
.cpx-upd__video { margin-top: 14px; }
.cpx-upd__fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; margin-top: 14px; }
.cpx-upd__fotos a { border-radius: 10px; overflow: hidden; aspect-ratio: 1; }
.cpx-upd__fotos img { width: 100%; height: 100%; object-fit: cover; }
/* fotos */
.cpx-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.cpx-gal a { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; }
.cpx-gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.cpx-gal a:hover img { transform: scale(1.05); }
/* doadores */
.cpx-doadores { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.cpx-doadores li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--soft); }
.cpx-doadores__q strong { display: block; color: var(--ink); font-size: .92rem; }
.cpx-doadores__q small { font-size: .78rem; }
.cpx-doadores li b { margin-left: auto; color: var(--ink); font-size: .9rem; }
.cpx-vazio { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; padding: 22px; border-radius: 16px; background: var(--soft); }
.cpx-vazio__ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.cpx-vazio__ico .ico { width: 22px; height: 22px; }
.cpx-vazio > div { flex: 1; min-width: 200px; }
.cpx-vazio strong { color: var(--ink); }
.cpx-vazio p { margin: 4px 0 0; font-size: .9rem; }
/* resultado e partilha */
.cpx-result { display: flex; gap: 16px; margin: 20px 0 0; padding: 22px; border-radius: 16px; background: color-mix(in srgb, #2f9e62 9%, var(--surface)); }
.cpx-result__ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #2f9e62; color: #fff; }
.cpx-result__ico .ico { width: 22px; height: 22px; }
.cpx-result h2 { margin: 0 0 6px; font-size: 1.2rem; }
.cpx-result p { margin: 0 0 8px; }
.cpx-share { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-top: 32px; padding: 22px 24px; border-radius: 16px; background: var(--dark); color: #c9cdd8; }
.cpx-share strong { display: block; color: #fff; font-size: 1.05rem; }
.cpx-share small { font-size: .88rem; }
.cpx-share__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.cpx-share__btns a, .cpx-share__btns button { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .09); color: #fff; cursor: pointer; transition: background .2s, transform .2s; }
.cpx-share__btns button { display: inline-flex; align-items: center; gap: 8px; width: auto; padding: 0 16px; border-radius: 999px; font: 700 .86rem var(--font); }
.cpx-share__btns a:hover, .cpx-share__btns button:hover { background: var(--primary); transform: translateY(-2px); }
.cpx-share__btns .ico { width: 18px; height: 18px; }
/* responsividade */
@media (max-width: 1080px) {
  .cpx-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "side" "body"; }
  .cpx-side { position: static; margin-bottom: 8px; }
  .cpx-card { max-width: 680px; }
}
@media (max-width: 760px) {
  .cpx-ps { grid-template-columns: minmax(0, 1fr); }
  .cpx-upd__item { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .cpx-upd__meta { display: flex; align-items: baseline; gap: 8px; }
  .cpx-media__main { border-radius: 14px; }
  .cpx-thumb { width: 72px; height: 52px; }
  .cpx-resp { flex-direction: column; align-items: flex-start; }
  .cpx-share { padding: 20px; }
}
@media (max-width: 480px) {
  .cpx-card { padding: 18px; }
  .cpx-card__valor strong { font-size: 1.75rem; }
  .cpx-fundos { padding: 16px; }
  .cpx-fundos__l li { grid-template-columns: 12px minmax(0, 1fr) auto; }
  .cpx-fundos__l em { display: none; }
  .cpx-tabs a { padding: 8px 12px; font-size: .84rem; }
}
@media (prefers-reduced-motion: reduce) { .cpx-plano__item.is-curso .cpx-plano__dot { animation: none; } .cpx-imp__item, .cpx-gal img { transition: none; } }
/* campanha: a etiqueta do estado fica na linha dos temas (a .pill é absoluta por defeito, para os cartões) */
.cpx-head__tags .pill { position: static; }
.cpx-card__stats dd small { margin-left: 2px; font-size: .66rem; font-weight: 700; }
/* fotos em mosaico: a primeira grande, as outras à volta (sem fotografias soltas numa linha) */
.cpx-gal { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; }
.cpx-gal a:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
@media (max-width: 560px) { .cpx-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cpx-card__stats dd { white-space: nowrap; font-size: 1.02rem; }
.cpx-card__stats > div { padding-inline: 6px; }

/* v2.15: janela "Quem já apoiou" */
.cpx-linkbtn { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--primary); cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; }
.cpx-linkbtn:hover { text-decoration: underline; }
.cpx-doadores__mais { margin-top: 1rem; }
.cpx-doadores__mais b { background: var(--primary); color: #fff; border-radius: 99px; padding: 0 .5em; font-size: .8em; margin-left: .2rem; }
.cpx-dmodal { width: min(560px, calc(100vw - 24px)); }
.cpx-dmodal .dn-modal__box { grid-template-columns: minmax(0, 1fr); }
.cpx-dmodal .dn-modal__head > div { min-width: 0; }
.cpx-doadores--lista li { padding: 9px 14px; }
.cpx-doadores--lista { grid-template-columns: 1fr; max-height: min(55vh, 460px); overflow-y: auto; margin: 0 0 1rem; padding-right: .25rem; gap: .5rem; }
.cpx-doadores--lista li { opacity: 1; transform: none; }
.cpx-dmodal__nota { display: flex; gap: .5rem; align-items: flex-start; font-size: .85rem; color: var(--text); opacity: .85; margin: 0 0 1rem; }
.cpx-dmodal__nota .ico { flex: none; width: 1rem; height: 1rem; margin-top: .15rem; }

/* v2.16: aviso de pré-visualização quando as campanhas estão desligadas */
.cps-preview { padding-top: 18px; }
.cps-preview .alert { margin: 0; }

/* v2.17: no site em inglês, os meticais por baixo dos dólares */
.mt-eq { display: block; font-size: .5em; font-weight: 600; letter-spacing: 0; opacity: .7; margin-top: .15em; }

/* ═════════ v2.18: carrinho do apadrinhamento ═════════ */
/* botões "Apadrinhar" / "Juntar ao carrinho": no carrinho ficam verdes com um visto */
.apc-add .apc-add__ok { display: none; }
.apc-add.is-in { background: #1f9d63; border-color: #1f9d63; color: #fff; }
.apc-add.is-in .apc-add__ok { display: inline-block; }
.apc-add.is-in .apc-add__ok ~ span { color: inherit; }
.apc-add.is-in > .ico:not(.apc-add__ok) { display: none; }
[data-apc].is-busy { cursor: progress; }

/* botão flutuante */
.apc-fab { position: fixed; right: 22px; bottom: 84px; z-index: 95; display: flex; align-items: center; gap: 12px; padding: 10px 16px 10px 10px; border: 0; border-radius: 999px; background: var(--dark); color: #fff; box-shadow: 0 18px 40px -12px rgba(16, 19, 27, .55); cursor: pointer; font: inherit; text-align: left; transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.apc-fab:hover { transform: translateY(-2px); box-shadow: 0 24px 50px -14px rgba(16, 19, 27, .6); }
.apc-fab[hidden] { display: none; }
.apc-fab.is-pop { animation: apcPop .5s var(--ease); }
@keyframes apcPop { 0% { transform: scale(.6); opacity: 0; } 60% { transform: scale(1.06); opacity: 1; } 100% { transform: none; } }
.apc-fab__ico { position: relative; width: 44px; height: 44px; border-radius: 50%; background: var(--primary); display: grid; place-items: center; flex: none; }
.apc-fab__ico .ico { width: 20px; height: 20px; }
.apc-fab__ico b { position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #fff; color: var(--dark); font-size: .75rem; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--dark); }
.apc-fab__txt { display: grid; line-height: 1.2; }
.apc-fab__txt small { font-size: .72rem; opacity: .7; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.apc-fab__txt strong { font-size: 1.02rem; white-space: nowrap; }
.apc-fab__go { width: 16px; height: 16px; opacity: .7; }
[data-apc-reload] .apc-fab { display: none; } /* no checkout o resumo já está à vista */

/* painel lateral */
.apc-drawer { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(440px, 100vw); max-width: 100vw; height: 100%; max-height: 100%; padding: 0; overflow: hidden; border: 0; background: var(--surface); color: var(--text); box-shadow: -30px 0 60px -20px rgba(16, 19, 27, .45); }
.apc-drawer::backdrop { background: rgba(16, 19, 27, .55); backdrop-filter: blur(2px); }
.apc-drawer[open] { animation: apcIn .32s var(--ease); }
@keyframes apcIn { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.apc-drawer__box { height: 100%; display: flex; flex-direction: column; }
.apc-head { display: flex; align-items: center; gap: 12px; padding: 20px 22px; border-bottom: 1px solid var(--border); }
.apc-head > div { flex: 1; min-width: 0; }
.apc-head h2 { margin: 0; font-size: 1.15rem; }
.apc-head small { font-size: .85rem; }
.apc-head__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.apc-x { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--ink); display: grid; place-items: center; cursor: pointer; }
.apc-x:hover { border-color: var(--primary); color: var(--primary); }
.apc-body { flex: 1; overflow-y: auto; padding: 16px 22px 22px; display: grid; align-content: start; gap: 16px; }
.apc-cur { display: flex; align-items: center; gap: 6px; font-size: .85rem; }
.apc-cur span { margin-right: auto; font-weight: 600; color: var(--ink); }
.apc-cur button, .apc-seg button { border: 1px solid var(--border); background: var(--surface); color: var(--ink); padding: 6px 12px; border-radius: 999px; font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; transition: all .2s var(--ease); }
.apc-cur button.is-on, .apc-seg button.is-on { background: var(--dark); border-color: var(--dark); color: #fff; }
.apc-cur button:not(.is-on):hover, .apc-seg button:not(.is-on):hover { border-color: var(--primary); color: var(--primary); }
.apc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.apc-it { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 14px; border-radius: 14px; background: var(--soft); }
.apc-it__foto { width: 64px; height: 80px; border-radius: 10px; overflow: hidden; background: var(--border); }
.apc-it__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apc-it__main { display: grid; gap: 10px; min-width: 0; }
.apc-it__top { display: flex; align-items: flex-start; gap: 8px; }
.apc-it__top > span { flex: 1; min-width: 0; display: grid; }
.apc-it__top strong a { color: var(--ink); font-size: 1.02rem; }
.apc-it__top small { font-size: .8rem; }
.apc-it__rm { width: 28px; height: 28px; flex: none; border-radius: 50%; border: 0; background: transparent; color: var(--text); display: grid; place-items: center; cursor: pointer; }
.apc-it__rm:hover { background: var(--surface); color: var(--primary); }
.apc-it__rm .ico { width: 14px; height: 14px; }
.apc-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.apc-it__price { display: flex; align-items: baseline; gap: 6px; }
.apc-it__price b { color: var(--ink); font-size: 1.1rem; }
.apc-it__price small { font-size: .8rem; }
.apc-it__val { display: grid; gap: 4px; margin: 0; font-size: .8rem; font-weight: 600; color: var(--ink); }
.apc-it__field { display: flex; align-items: center; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); max-width: 200px; }
.apc-it__field input { border: 0; background: transparent; padding: 9px 12px; width: 100%; min-width: 0; font: inherit; font-weight: 700; color: var(--ink); }
.apc-it__field input:focus { outline: none; }
.apc-it__field:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.apc-it__field em { font-style: normal; font-size: .78rem; padding-right: 12px; color: var(--text); }
.apc-it__nota { margin: 0; font-size: .8rem; line-height: 1.45; }
.apc-empty { text-align: center; padding: 30px 10px; display: grid; justify-items: center; gap: 8px; }
.apc-empty[hidden] { display: none; }
.apc-empty__ico { width: 64px; height: 64px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.apc-empty__ico .ico { width: 28px; height: 28px; }
.apc-empty strong { color: var(--ink); font-size: 1.05rem; }
.apc-empty p { margin: 0 0 6px; font-size: .9rem; }
.apc-sug h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; margin: 4px 0 10px; color: var(--text); }
.apc-sug ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.apc-sug li { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--border); border-radius: 12px; }
.apc-sug li > span { flex: 1; min-width: 0; display: grid; }
.apc-sug strong { color: var(--ink); font-size: .92rem; }
.apc-sug small { font-size: .78rem; }
.apc-sug__foto { width: 42px; height: 42px; border-radius: 50%; overflow: hidden; background: var(--soft); flex: none; }
.apc-sug__foto img { width: 100%; height: 100%; object-fit: cover; }
.apc-sug__add { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; cursor: pointer; flex: none; transition: all .2s var(--ease); }
.apc-sug__add:hover { background: var(--primary); color: #fff; }
.apc-foot { border-top: 1px solid var(--border); padding: 16px 22px calc(18px + env(safe-area-inset-bottom)); display: grid; gap: 10px; background: var(--surface); }
.apc-foot[hidden] { display: none; }
.apc-tot { margin: 0; display: grid; gap: 4px; }
.apc-tot div { display: flex; justify-content: space-between; gap: 10px; }
.apc-tot dt { font-size: .9rem; }
.apc-tot dd { margin: 0; font-weight: 700; color: var(--ink); }
.apc-tot div:first-child dd { font-size: 1.3rem; }
.apc-more { border: 0; background: none; font: inherit; font-size: .88rem; font-weight: 600; color: var(--ink); cursor: pointer; padding: 4px; }
.apc-more:hover { color: var(--primary); }
.apc-safe { margin: 0; display: flex; gap: 6px; justify-content: center; align-items: center; font-size: .76rem; text-align: center; }
.apc-safe .ico { width: 14px; height: 14px; flex: none; color: #1f9d63; }

/* aviso "está no seu carrinho" */
.apc-toast { position: fixed; left: 50%; bottom: 24px; z-index: 120; display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 16px; border-radius: 14px; background: var(--dark); color: #fff; box-shadow: var(--shadow-lg); transform: translate(-50%, 20px); opacity: 0; transition: all .3s var(--ease); max-width: calc(100vw - 32px); font-size: .92rem; }
.apc-toast.is-on { transform: translate(-50%, 0); opacity: 1; }
.apc-toast > .ico { color: #5fd69c; flex: none; }
.apc-toast.is-err > .ico { color: var(--primary); }
.apc-toast button { border: 0; background: rgba(255, 255, 255, .12); color: #fff; padding: 7px 12px; border-radius: 9px; font: inherit; font-weight: 700; font-size: .84rem; cursor: pointer; white-space: nowrap; }
.apc-toast button:hover { background: var(--primary); }
.apc-toast.is-err button { display: none; }

/* ficha da criança: preço e os dois botões */
.apx-buy { margin-top: 22px; padding: 20px; border-radius: var(--radius-lg); background: var(--soft); display: grid; gap: 14px; max-width: 560px; }
.apx-buy__preco { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.apx-buy__preco strong { font-size: 1.45rem; color: var(--ink); }
.apx-buy__preco span { font-size: .9rem; }
.apx-buy__btns { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; }
.apx-buy__btns .btn { white-space: normal; text-align: center; justify-content: center; }
.apx-buy__nota { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; }
.apx-buy__nota .ico { width: 14px; height: 14px; margin-top: 3px; flex: none; }
.pa-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-outras__lead { margin: 6px 0 0; }

/* checkout */
.apf-head { margin: 8px 0 26px; }
.apf-head h1 { margin: 0 0 6px; }
.apf-head p { margin: 0; font-size: 1.05rem; }
.apf-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(22px, 3vw, 40px); align-items: start; }
.apf-main .dn-box { position: static; }
.apf-side { position: sticky; top: calc(var(--header-h, 88px) + 20px); display: grid; gap: 16px; }
.apf-card { padding: 22px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 30px 60px -40px rgba(30, 36, 54, .45); }
.apf-card__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.apf-card__head h2 { margin: 0; font-size: 1.1rem; }
.apf-list { list-style: none; margin: 0; padding: 0; display: grid; }
.apf-list li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px dashed var(--border); }
.apf-list__foto { width: 56px; height: 68px; border-radius: 10px; overflow: hidden; background: var(--soft); }
.apf-list__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apf-list__q { display: grid; gap: 2px; min-width: 0; }
.apf-list__q strong { color: var(--ink); }
.apf-list__q small { font-size: .8rem; }
.apf-modo { justify-self: start; font-style: normal; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 3px 8px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); }
.apf-modo--anual { background: color-mix(in srgb, #7a4fd6 14%, transparent); color: #7a4fd6; }
.apf-modo--unico { background: color-mix(in srgb, #1f9d63 14%, transparent); color: #1f9d63; }
.apf-list__v { text-align: right; display: grid; }
.apf-list__v b { color: var(--ink); white-space: nowrap; }
.apf-list__v small { font-size: .75rem; }
.apf-tot { margin: 14px 0 0; display: grid; gap: 6px; }
.apf-tot div { display: flex; justify-content: space-between; gap: 10px; font-size: .92rem; }
.apf-tot dd { margin: 0; font-weight: 700; color: var(--ink); }
.apf-tot__hoje { padding-bottom: 8px; border-bottom: 1px solid var(--border); margin-bottom: 4px; }
.apf-tot__hoje dt { font-weight: 700; color: var(--ink); font-size: 1rem; }
.apf-tot__hoje dd { font-size: 1.45rem; color: var(--primary) !important; }
.apf-mais { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; font-size: .9rem; }
.apf-mais .ico { width: 16px; height: 16px; }
.apf-garantias { list-style: none; margin: 0; padding: 0 4px; display: grid; gap: 14px; }
.apf-garantias li { display: flex; gap: 12px; align-items: flex-start; font-size: .86rem; line-height: 1.45; }
.apf-garantias li > .ico { width: 18px; height: 18px; flex: none; color: var(--primary); margin-top: 2px; }
.apf-garantias strong { display: block; color: var(--ink); font-size: .92rem; }
.apf-empty { margin: 20px auto 40px; }
.dn-cko { display: grid; gap: 10px; }
.dn-cko__l { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: var(--soft); }
.dn-cko__l img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.dn-cko__l span { display: grid; min-width: 0; }
.dn-cko__l strong { color: var(--ink); }
.dn-cko__l small { font-size: .8rem; }
.dn-cko__l b { color: var(--ink); white-space: nowrap; }
.dn-cko__tot { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 4px 0; }
.dn-cko__tot strong { font-size: 1.4rem; color: var(--ink); }
.dn-cko__nota { margin: 0; display: flex; gap: 8px; font-size: .84rem; align-items: flex-start; }
.dn-cko__nota .ico { width: 15px; height: 15px; flex: none; margin-top: 3px; color: var(--primary); }
.dn-cko__alt { justify-self: start; display: inline-flex; gap: 6px; align-items: center; text-decoration: none; font-size: .88rem; }
.dn-cko__alt .ico { width: 15px; height: 15px; }

@media (max-width: 1080px) {
  .apf-grid { grid-template-columns: 1fr; }
  .apf-side { position: static; order: -1; }
}
@media (max-width: 760px) {
  .pa-steps--3 { grid-template-columns: 1fr; }
  .apx-buy__btns { grid-template-columns: 1fr; }
  .apc-fab { right: 14px; bottom: 78px; padding-right: 12px; }
  .apc-fab__go { display: none; }
  .apc-drawer { width: 100vw; }
  .apc-head, .apc-body, .apc-foot { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .apc-fab.is-pop, .apc-drawer[open] { animation: none; }
}
.dn-cko__quem { margin: 0; display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--soft); font-size: .92rem; color: var(--ink); font-weight: 600; }
.dn-cko__quem .ico { width: 18px; height: 18px; flex: none; color: var(--primary); margin-top: 1px; }
.dn-cko__tot { border-top: 1px dashed var(--border); padding-top: 12px; }

/* ═════════ v2.19: área do doador e padrinho, em painel ═════════ */
/* topo próprio da conta */
.acc-top { position: sticky; top: 0; z-index: 80; background: var(--surface); border-bottom: 1px solid var(--border); }
.acc-top__in { display: flex; align-items: center; gap: 18px; min-height: 72px; }
.acc-top .brand img { width: 48px; height: 48px; }
.acc-top__area { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: var(--soft); color: var(--ink); font-weight: 700; font-size: .86rem; }
.acc-top__area .ico { width: 16px; height: 16px; color: var(--primary); }
.acc-top__act { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.acc-top__link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .9rem; color: var(--ink); }
.acc-top__link:hover { color: var(--primary); }
.acc-top__link .ico { width: 16px; height: 16px; }
.acc-av { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: var(--primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .85rem; flex: none; }
.acc-menu { position: relative; }
.acc-menu summary { list-style: none; display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 4px 10px 4px 4px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); }
.acc-menu summary::-webkit-details-marker { display: none; }
.acc-menu[open] summary, .acc-menu summary:hover { border-color: var(--primary); }
.acc-menu__n { font-weight: 700; color: var(--ink); font-size: .9rem; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-menu__c { width: 14px; height: 14px; transition: transform .2s var(--ease); }
.acc-menu[open] .acc-menu__c { transform: rotate(180deg); }
.acc-menu__pop { position: absolute; right: 0; top: calc(100% + 8px); width: 240px; padding: 8px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); display: grid; z-index: 90; }
.acc-menu__who { margin: 4px 10px 8px; padding-bottom: 8px; border-bottom: 1px solid var(--border); font-size: .9rem; color: var(--ink); overflow-wrap: anywhere; }
.acc-menu__pop a, .acc-menu__pop button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; border-radius: 9px; background: none; font: inherit; font-size: .9rem; color: var(--ink); text-align: left; cursor: pointer; }
.acc-menu__pop a:hover, .acc-menu__pop button:hover { background: var(--soft); color: var(--primary); }
.acc-menu__pop .ico { width: 16px; height: 16px; }
.acc-menu__pop form { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid var(--border); }

/* painel */
.dnx { background: var(--soft); padding: 28px 0 70px; }
.dnx__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 24px; align-items: start; }
.dnx__side { position: sticky; top: 96px; display: grid; gap: 14px; }
.dnx__me { display: flex; gap: 12px; align-items: center; padding: 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dnx__me > div { min-width: 0; display: grid; gap: 1px; }
.dnx__me strong { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dnx__me small { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dnx__av { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; background: var(--primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.05rem; flex: none; }
.dnx__role { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-size: .74rem; font-weight: 600; color: var(--primary); }
.dnx__role .ico { width: 13px; height: 13px; }
.dnx__nav { display: grid; padding: 8px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dnx__nav a { position: relative; display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 10px; color: var(--ink); font-weight: 600; font-size: .93rem; transition: background .2s var(--ease), color .2s var(--ease); }
.dnx__nav a .ico { width: 18px; height: 18px; color: var(--text); }
.dnx__nav a span { flex: 1; }
.dnx__nav a b { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 11px; background: var(--primary); color: #fff; font-size: .74rem; display: grid; place-items: center; }
.dnx__nav a:hover { background: var(--soft); }
.dnx__nav a.is-on { background: var(--primary-soft); color: var(--primary); }
.dnx__nav a.is-on .ico { color: var(--primary); }
.dnx__nav a.is-on::before { content: ""; position: absolute; left: -8px; top: 9px; bottom: 9px; width: 3px; border-radius: 3px; background: var(--primary); }
.dnx__out button { width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); font: inherit; font-weight: 600; font-size: .9rem; cursor: pointer; }
.dnx__out button:hover { border-color: var(--primary); color: var(--primary); }
.dnx__out .ico { width: 16px; height: 16px; }
.dnx__help { padding: 16px 18px; border-radius: var(--radius-lg); background: var(--dark); color: rgba(255, 255, 255, .75); font-size: .86rem; }
.dnx__help strong { color: #fff; }
.dnx__help p { margin: 4px 0 10px; }
.dnx__help a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 700; }
.dnx__help a .ico { width: 15px; height: 15px; color: var(--primary); }
.dnx__main { min-width: 0; display: grid; gap: 16px; }
.dnx__main > .alert { margin: 0; }
.dnx__sec { display: grid; gap: 16px; animation: dnxIn .25s var(--ease); }
.dnx__sec[hidden] { display: none; }
@keyframes dnxIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.dnx__sec > .alert { margin: 0; }
.dnx__h { padding: 4px 4px 0; }
.dnx__h h2 { margin: 0 0 4px; font-size: 1.5rem; }
.dnx__h p { margin: 0; font-size: .92rem; }
.dnx__h--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.dnx-box { padding: 20px 22px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dnx-box h3 { margin: 0 0 12px; font-size: 1.02rem; }
.dnx-box > .form, form.dnx-box { display: grid; gap: 14px; }
form.dnx-box label, .dnx-box .form label { margin: 0; }

/* visão geral */
.dnx-hello { display: flex; align-items: center; gap: 18px; padding: 24px; border-radius: var(--radius-lg); background: linear-gradient(120deg, var(--dark), color-mix(in srgb, var(--dark) 70%, var(--primary))); color: rgba(255, 255, 255, .8); }
.dnx-hello__av { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: rgba(255, 255, 255, .14); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.4rem; flex: none; box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); }
.dnx-hello h1 { margin: 0 0 4px; color: #fff; font-size: clamp(1.5rem, 3vw, 2rem); }
.dnx-hello p { margin: 0; font-size: .93rem; max-width: 640px; }
.dnx-quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; }
.dnx-quick a { display: grid; justify-items: center; gap: 8px; padding: 18px 10px; text-align: center; font-weight: 600; font-size: .9rem; color: var(--ink); transition: background .2s var(--ease); }
.dnx-quick a + a { border-left: 1px solid var(--border); }
.dnx-quick a:hover { background: var(--soft); color: var(--primary); }
.dnx-quick span { width: 46px; height: 46px; border-radius: 14px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.dnx-quick span .ico { width: 22px; height: 22px; }
.dnx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dnx-stats a { display: grid; gap: 4px; padding: 16px 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: var(--text); transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
.dnx-stats a:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--border), var(--shadow); }
.dnx-stats span { color: var(--primary); }
.dnx-stats span .ico { width: 20px; height: 20px; }
.dnx-stats strong { font-size: 1.3rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dnx-stats small { font-size: .8rem; }
.dnx-stats a.is-due { box-shadow: 0 0 0 2px var(--primary); }
.dnx-stats a.is-due strong { color: var(--primary); }
.dnx-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dnx-card { padding: 20px 22px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); display: grid; align-content: start; gap: 12px; }
.dnx-card--wide, .dnx-cards > .dnx-card:only-child { grid-column: 1 / -1; }
.dnx-card .btn { justify-self: start; }
.dnx-card__h { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.dnx-card__h h2 { margin: 0; font-size: 1.05rem; }
.dnx-card__h a { display: inline-flex; align-items: center; gap: 2px; font-size: .84rem; font-weight: 600; color: var(--text); }
.dnx-card__h a:hover { color: var(--primary); }
.dnx-card__h a .ico { width: 14px; height: 14px; }
.dnx-due { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; background: var(--primary-soft); }
.dnx-due > div { flex: 1; min-width: 0; display: grid; }
.dnx-due strong { color: var(--ink); font-size: .92rem; }
.dnx-due small { font-size: .8rem; }
.dnx-due b { color: var(--primary); white-space: nowrap; }
.dnx-due__ico { width: 38px; height: 38px; border-radius: 10px; background: var(--surface); color: var(--primary); display: grid; place-items: center; flex: none; }
.dnx-ok { margin: 0; display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: var(--ink); }
.dnx-ok .ico { width: 20px; height: 20px; flex: none; color: #1f9d63; }
.dnx-kids { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.dnx-kids li { display: flex; align-items: center; gap: 12px; }
.dnx-kids li > span:nth-child(2) { flex: 1; min-width: 0; display: grid; }
.dnx-kids strong { color: var(--ink); }
.dnx-kids small { font-size: .8rem; }
.dnx-kids__f { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; flex: none; background: var(--soft); }
.dnx-kids__f img { width: 100%; height: 100%; object-fit: cover; }
.dnx-rows { list-style: none; margin: 0; padding: 0; }
.dnx-rows li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--border); }
.dnx-rows li:last-child { border-bottom: 0; }
.dnx-rows li > span:first-child { min-width: 0; display: grid; }
.dnx-rows strong { color: var(--ink); }
.dnx-rows small { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* linhas das listas (pagamentos, compromissos, doações) */
.dnx-line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px 16px; align-items: center; padding: 14px 0; border-bottom: 1px dashed var(--border); }
.dnx-line:first-of-type { padding-top: 4px; }
.dnx-line:last-child { border-bottom: 0; padding-bottom: 0; }
.dnx-line > div:first-child { display: grid; min-width: 0; }
.dnx-line strong { color: var(--ink); }
.dnx-line small { font-size: .8rem; overflow-wrap: anywhere; }
.dnx-line > b { color: var(--ink); white-space: nowrap; }
.dnx-line__btns { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dnx-line .dnr__plan-end { grid-column: 2 / -1; justify-self: end; }

/* mensagens */
.dnx-msgs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dnx-msgs li { padding: 14px 16px; border-radius: 12px; background: var(--soft); }
.dnx-msgs__top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.dnx-msgs strong { color: var(--ink); }
.dnx-msgs small { font-size: .78rem; }
.dnx-msgs p { margin: 8px 0 0; font-size: .9rem; }

/* fotografia e senha */
.dnx-photo { display: flex; gap: 20px; align-items: center; }
.dnx-photo h3 { margin: 0 0 4px; }
.dnx-photo p { margin: 0 0 12px; font-size: .88rem; }
.dnx-photo__av { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; background: var(--primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.8rem; flex: none; }
.dnx-photo__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.dnx-photo__btns form { margin: 0; }
.dnx-photo__btns label { cursor: pointer; margin: 0; }
.dnx-pass { max-width: 520px; }

@media (max-width: 1080px) {
  .dnx__grid { grid-template-columns: 1fr; }
  .dnx__side { position: static; }
  .dnx__me { display: none; }
  .dnx__nav { display: flex; overflow-x: auto; gap: 4px; scrollbar-width: none; }
  .dnx__nav::-webkit-scrollbar { display: none; }
  .dnx__nav a { flex: none; white-space: nowrap; padding: 9px 12px; }
  .dnx__nav a.is-on::before { display: none; }
  .dnx__out, .dnx__help { display: none; }
  .dnx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .acc-top__area, .acc-menu__n { display: none; }
  .acc-top__in { gap: 10px; min-height: 64px; }
  .acc-top .brand__txt { display: none; }
  .dnx { padding-top: 16px; }
  .dnx-hello { padding: 18px; gap: 14px; }
  .dnx-hello__av { width: 56px; height: 56px; font-size: 1.1rem; }
  .dnx-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dnx-quick a:nth-child(3) { border-left: 0; }
  .dnx-quick a:nth-child(n+3) { border-top: 1px solid var(--border); }
  .dnx-cards { grid-template-columns: 1fr; }
  .dnx-line { grid-template-columns: minmax(0, 1fr) auto; }
  .dnx-line__btns { grid-column: 1 / -1; justify-content: flex-start; }
  .dnx-line .dnr__plan-end { grid-column: 1 / -1; justify-self: start; }
  .dnx-photo { flex-direction: column; text-align: center; }
  .dnx-photo__btns { justify-content: center; }
  .dnx-box { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) { .dnx__sec { animation: none; } }
.dnx-box > .form { padding: 0; margin: 0; background: none; box-shadow: none; border: 0; max-width: none; }
.dnx .form__row { align-items: start; }
.dnx .form__row label > small { display: block; margin-top: 6px; font-weight: 400; }

/* v2.19.1: "A doar como …" (sessão da área do doador aberta) */
.dn-eu { margin: 0; display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--soft); font-size: .86rem; color: var(--ink); }
.dn-eu .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--primary); }
.dn-eu a { font-weight: 700; }

/* ═════════ v2.20: área do doador → Mensagens (caixa como a do email) ═════════ */
.mbx { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); min-height: 560px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; }
.mbx__list { display: flex; flex-direction: column; border-right: 1px solid var(--border); min-width: 0; }
.mbx__tools { padding: 14px; display: grid; gap: 10px; border-bottom: 1px solid var(--border); }
.mbx__search { display: flex; align-items: center; gap: 8px; padding: 0 12px; border-radius: 10px; background: var(--soft); margin: 0; }
.mbx__search .ico { width: 16px; height: 16px; flex: none; }
.mbx__search input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 10px 0; font: inherit; font-size: .9rem; color: var(--ink); }
.mbx__search input:focus { outline: none; }
.mbx__filters { display: flex; gap: 6px; flex-wrap: wrap; }
.mbx__filters button { border: 1px solid var(--border); background: var(--surface); color: var(--ink); padding: 5px 10px; border-radius: 999px; font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.mbx__filters button b { font-size: .7rem; padding: 0 6px; border-radius: 9px; background: var(--soft); }
.mbx__filters button b.is-hot { background: var(--primary); color: #fff; }
.mbx__filters button.is-on { background: var(--dark); border-color: var(--dark); color: #fff; }
.mbx__filters button.is-on b:not(.is-hot) { background: rgba(255, 255, 255, .15); }
.mbx__items { list-style: none; margin: 0; padding: 6px; overflow-y: auto; flex: 1; max-height: 620px; }
.mbx__item { display: flex; gap: 10px; padding: 12px 12px 12px 10px; border-radius: 10px; color: var(--text); transition: background .15s var(--ease); }
.mbx__item:hover { background: var(--soft); }
.mbx__item.is-on { background: var(--primary-soft); }
.mbx__dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 7px; flex: none; background: transparent; }
.mbx__item.is-unread .mbx__dot { background: var(--primary); }
.mbx__main { flex: 1; min-width: 0; display: grid; gap: 3px; }
.mbx__row { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.mbx__row strong { color: var(--ink); font-size: .9rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbx__item.is-unread .mbx__row strong { font-weight: 800; }
.mbx__row time { font-size: .74rem; flex: none; }
.mbx__snip { font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbx__tag { justify-self: start; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; margin-top: 2px; }
.mbx__tag--porler { background: var(--primary); color: #fff; }
.mbx__tag--respondida { background: color-mix(in srgb, #1f9d63 14%, transparent); color: #1f9d63; }
.mbx__tag--espera { background: var(--soft); color: var(--text); }
.mbx__none, .mbx__empty { padding: 30px 16px; text-align: center; font-size: .88rem; }
.mbx__empty .ico { width: 30px; height: 30px; color: var(--primary); }
.mbx__pane { min-width: 0; display: flex; flex-direction: column; }
.mbx__blank { flex: 1; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 40px; text-align: center; color: var(--text); }
.mbx__blank .ico { width: 40px; height: 40px; color: var(--border); }
.mbx__blank[hidden], .mbx__conv[hidden] { display: none; }
.mbx__conv { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.mbx__head { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.mbx__head h3 { margin: 0; font-size: 1.08rem; }
.mbx__head small { font-size: .8rem; }
.mbx__back { display: none; width: 36px; height: 36px; flex: none; border-radius: 50%; border: 1px solid var(--border); background: var(--surface); color: var(--ink); place-items: center; cursor: pointer; }
.mbx__thread { flex: 1; overflow-y: auto; padding: 20px; display: grid; align-content: start; gap: 14px; max-height: 480px; background: color-mix(in srgb, var(--soft) 55%, var(--surface)); }
.mbx__msg { max-width: 82%; padding: 12px 16px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.mbx__msg.is-me { justify-self: end; background: var(--primary-soft); box-shadow: none; border-bottom-right-radius: 4px; }
.mbx__msg.is-team { justify-self: start; border-bottom-left-radius: 4px; }
.mbx__msg.is-new { box-shadow: 0 0 0 2px var(--primary); }
.mbx__who { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: .8rem; }
.mbx__who strong { color: var(--ink); }
.mbx__who time { margin-left: auto; padding-left: 8px; font-size: .74rem; }
.mbx__av { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; background: var(--primary); color: #fff; display: grid; place-items: center; font-size: .62rem; font-weight: 700; flex: none; }
.mbx__av--team { background: var(--dark); }
.mbx__novo { font-style: normal; font-size: .68rem; font-weight: 700; padding: 1px 7px; border-radius: 8px; background: var(--primary); color: #fff; }
.mbx__body { font-size: .92rem; color: var(--ink); line-height: 1.55; overflow-wrap: anywhere; }
.mbx__wait { margin: 4px 0 0; display: flex; gap: 8px; align-items: center; justify-content: center; font-size: .84rem; text-align: center; }
.mbx__wait .ico { width: 16px; height: 16px; flex: none; }
.mbx__reply { padding: 14px 20px 18px; border-top: 1px solid var(--border); display: grid; gap: 10px; background: var(--surface); }
.mbx__reply textarea { min-height: 70px; }
.mbx__form { padding: 20px; display: grid; gap: 14px; }
.mbx__form label, .mbx__reply label { margin: 0; }

@media (max-width: 860px) {
  .mbx { grid-template-columns: 1fr; min-height: 0; }
  .mbx__list { border-right: 0; }
  .mbx .mbx__pane { display: none; }
  .mbx.is-open .mbx__list { display: none; }
  .mbx.is-open .mbx__pane { display: flex; }
  .mbx__back { display: grid; }
  .mbx__blank { display: none; }
  .mbx__msg { max-width: 92%; }
  .mbx__thread { max-height: none; padding: 14px; }
  .mbx__head, .mbx__reply, .mbx__form { padding-left: 14px; padding-right: 14px; }
}
.mbx__compose .ico { width: 16px; height: 16px; }
.mbx__head-ico { width: 38px; height: 38px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.mbx__head-ico .ico { width: 18px; height: 18px; }

/* v2.20: recolher o menu da área (fica uma barra estreita com os ícones; o conteúdo ganha a largura toda) */
.dnx__fold { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); color: var(--text); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; transition: color .2s var(--ease), border-color .2s var(--ease); }
.dnx__fold:hover { color: var(--primary); border-color: var(--primary); }
.dnx__fold .ico { width: 16px; height: 16px; flex: none; transition: transform .25s var(--ease); }
.dnx__grid { transition: grid-template-columns .25s var(--ease); }
@media (min-width: 1081px) {
  .dnx.is-fold .dnx__grid { grid-template-columns: 72px minmax(0, 1fr); }
  .dnx.is-fold .dnx__fold { justify-content: center; padding: 10px; }
  .dnx.is-fold .dnx__fold .ico { transform: rotate(180deg); }
  .dnx.is-fold .dnx__fold span, .dnx.is-fold .dnx__nav a span, .dnx.is-fold .dnx__out span, .dnx.is-fold .dnx__help, .dnx.is-fold .dnx__me > div { display: none; }
  .dnx.is-fold .dnx__me { justify-content: center; padding: 12px 0; }
  .dnx.is-fold .dnx__av { width: 42px; height: 42px; font-size: .85rem; }
  .dnx.is-fold .dnx__nav { padding: 6px; }
  .dnx.is-fold .dnx__nav a { justify-content: center; padding: 12px 0; }
  .dnx.is-fold .dnx__nav a.is-on::before { left: -6px; }
  .dnx.is-fold .dnx__nav a b { position: absolute; top: 6px; right: 8px; min-width: 9px; width: 9px; height: 9px; padding: 0; font-size: 0; box-shadow: 0 0 0 2px var(--surface); }
  .dnx.is-fold .dnx__out button { padding: 11px 0; }
}
@media (max-width: 1080px) { .dnx__fold { display: none; } }
/* v2.20.1: a lista de mensagens não pode alargar com o texto (cortava os cartões e criava uma barra horizontal) */
.mbx__items { min-width: 0; overflow-x: hidden; }
.mbx__items li { min-width: 0; }
.mbx__item { min-width: 0; width: 100%; box-sizing: border-box; }
.mbx__row strong, .mbx__snip { min-width: 0; }
.mbx__thread { overflow-x: hidden; }

/* v2.20.1: filtros das mensagens (separadores numa linha, assunto e ordem) */
.mbx__main { grid-template-columns: minmax(0, 1fr); }
.mbx__filters { display: none; }
.mbx__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; padding: 3px; border-radius: 11px; background: var(--soft); }
.mbx__tabs button { position: relative; display: grid; justify-items: center; gap: 3px; padding: 8px 4px 7px; border: 0; border-radius: 9px; background: transparent; color: var(--text); font: inherit; font-size: .72rem; font-weight: 600; cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease); min-width: 0; }
.mbx__tabs button span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mbx__tabs button .ico { width: 17px; height: 17px; }
.mbx__tabs button:hover { color: var(--ink); }
.mbx__tabs button.is-on { background: var(--surface); color: var(--primary); box-shadow: 0 1px 3px rgba(16, 19, 27, .12); }
.mbx__tabs button b { position: absolute; top: 3px; right: 6px; min-width: 17px; height: 17px; padding: 0 5px; border-radius: 9px; background: var(--border); color: var(--ink); font-size: .64rem; display: grid; place-items: center; }
.mbx__tabs button b.is-hot { background: var(--primary); color: #fff; }
.mbx__tabs button b[hidden] { display: none; }
.mbx__more { display: flex; gap: 8px; align-items: center; }
.mbx__sel { flex: 1; min-width: 0; margin: 0; }
.mbx__sel select { width: 100%; padding: 7px 10px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); font: inherit; font-size: .8rem; }
.mbx__sort { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.mbx__sort:hover { border-color: var(--primary); color: var(--primary); }
.mbx__sort .ico { width: 14px; height: 14px; transform: rotate(180deg); transition: transform .2s var(--ease); }
.mbx__sort.is-asc .ico { transform: none; }
.mbx { grid-template-columns: minmax(280px, 370px) minmax(0, 1fr); }
.mbx__tabs button { padding: 8px 2px 7px; font-size: .7rem; letter-spacing: -.01em; }
.mbx__tabs button b { right: 3px; }

/* v2.21: Senha e segurança (pedidos por email) e página da ligação */
.dnx-sec2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.dnx-sec2__h { display: flex; gap: 12px; align-items: center; }
.dnx-sec2__h h3 { margin: 0; }
.dnx-sec2__h p { margin: 2px 0 0; font-size: .86rem; overflow-wrap: anywhere; }
.dnx-sec2__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.dnx-sec2__ico .ico { width: 18px; height: 18px; }
.dnx-sec2__nota { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; }
.dnx-sec2__nota .ico { width: 15px; height: 15px; flex: none; margin-top: 3px; color: var(--primary); }
.dn-conta__mud { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 14px; border-radius: 12px; background: var(--soft); }
.dn-conta__mud dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; }
.dn-conta__mud dd { margin: 2px 0 0; color: var(--ink); overflow-wrap: anywhere; }
.dn-conta__seta .ico { width: 18px; height: 18px; color: var(--primary); }
@media (max-width: 760px) {
  .dnx-sec2 { grid-template-columns: 1fr; }
  .dn-conta__mud { grid-template-columns: 1fr; }
  .dn-conta__seta { transform: rotate(90deg); justify-self: start; }
}
.dn-conta__mud { grid-template-columns: 1fr; text-align: left; }
.dn-conta__seta { transform: rotate(90deg); justify-self: start; margin-left: 4px; }

/* v2.22: Os meus dados */
.pf-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center; background: linear-gradient(120deg, var(--surface) 55%, var(--primary-soft)); }
.pf-card__foto { position: relative; margin: 0; }
.pf-card__av { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; background: var(--primary); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 2rem; box-shadow: 0 0 0 4px var(--surface), 0 10px 24px -12px rgba(16, 19, 27, .5); }
.pf-card__cam { position: absolute; right: 0; bottom: 2px; width: 36px; height: 36px; border-radius: 50%; background: var(--dark); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 0 3px var(--surface); margin: 0; transition: background .2s var(--ease); }
.pf-card__cam:hover { background: var(--primary); }
.pf-card__cam .ico { width: 16px; height: 16px; }
.pf-card__txt { min-width: 0; }
.pf-card__txt h3 { margin: 0 0 4px; font-size: 1.35rem; overflow-wrap: anywhere; }
.pf-card__txt p { margin: 0 0 10px; display: flex; gap: 6px; align-items: center; font-size: .9rem; overflow-wrap: anywhere; }
.pf-card__txt p .ico { width: 15px; height: 15px; flex: none; }
.pf-card__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pf-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .76rem; font-weight: 700; }
.pf-chip .ico { width: 13px; height: 13px; }
.pf-chip--soft { background: var(--soft); color: var(--ink); }
.pf-card__acts { display: grid; gap: 6px; justify-items: end; max-width: 220px; text-align: right; }
.pf-card__acts small { font-size: .76rem; }
.pf-card__acts form { margin: 0; }
.pf-form { display: grid; gap: 16px; padding: 0; background: none; box-shadow: none; }
.pf-grupo { display: grid; gap: 16px; }
.pf-grupo__h { display: flex; gap: 12px; align-items: center; }
.pf-grupo__h h3 { margin: 0; }
.pf-grupo__h p { margin: 2px 0 0; font-size: .85rem; }
.pf-email { display: grid; gap: 6px; align-content: start; }
.pf-email__l { font-weight: 600; color: var(--ink); font-size: .92rem; }
.pf-email__v { display: flex; align-items: center; gap: 10px; padding: 6px 6px 6px 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--soft); min-height: 50px; }
.pf-email__v > .ico { width: 15px; height: 15px; flex: none; color: var(--text); }
.pf-email__v span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); }
.pf-email small { font-size: .78rem; }
.pf-switch { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; margin: 0; }
.pf-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pf-switch__ui { position: relative; width: 46px; height: 26px; flex: none; border-radius: 13px; background: var(--border); transition: background .2s var(--ease); margin-top: 2px; }
.pf-switch__ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .2s var(--ease); }
.pf-switch input:checked + .pf-switch__ui { background: #1f9d63; }
.pf-switch input:checked + .pf-switch__ui::after { transform: translateX(20px); }
.pf-switch input:focus-visible + .pf-switch__ui { box-shadow: 0 0 0 3px var(--primary-soft); }
.pf-switch strong { display: block; color: var(--ink); }
.pf-switch small { font-size: .82rem; }
.pf-save { position: sticky; bottom: 12px; z-index: 5; display: flex; justify-content: flex-end; }
.pf-save .btn { box-shadow: 0 12px 26px -12px rgba(227, 105, 85, .8); }
@media (max-width: 760px) {
  .pf-card { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .pf-card__txt p, .pf-card__chips { justify-content: center; }
  .pf-card__acts { justify-items: center; text-align: center; max-width: none; }
  .pf-save .btn { width: 100%; justify-content: center; }
}
/* v2.22: telefone e email lado a lado (uma coluna no telemóvel); nada alarga para além do ecrã */
.pf-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.pf-grupo > *, .pf-grupo .form__row > *, .pf-duo > * { min-width: 0; }
.pf-form label.pf-switch { display: flex; grid-template-columns: none; }
.pf-switch > span:last-child { display: grid; gap: 2px; }
@media (max-width: 760px) { .pf-duo { grid-template-columns: 1fr; } .pf-card__acts small { max-width: 280px; } }
.pf-email { grid-template-columns: minmax(0, 1fr); }
.pf-email__v .btn { flex: none; }
.pf-switch small { font-weight: 400; color: var(--text); }

/* ═════════ v2.23: entrada na área do doador e padrinho ═════════ */
.dnl { padding: clamp(16px, 2vw, 24px) 0 clamp(40px, 6vw, 72px); background: var(--soft); }
.dnl__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: clamp(20px, 3vw, 36px); align-items: stretch; max-width: 1080px; }
.dnl__side { position: relative; overflow: hidden; padding: clamp(28px, 4vw, 44px); border-radius: 22px; color: rgba(255, 255, 255, .78); background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--primary) 55%, transparent) 0, transparent 55%), linear-gradient(160deg, var(--dark), color-mix(in srgb, var(--dark) 82%, #000)); display: flex; flex-direction: column; gap: 18px; }
.dnl__side::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; border: 30px solid rgba(255, 255, 255, .04); }
.dnl__k { margin: 0; display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .1); color: #fff; font-size: .8rem; font-weight: 700; }
.dnl__k .ico { width: 15px; height: 15px; color: var(--primary); }
.dnl__side h1 { margin: 0; color: #fff; font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.15; }
.dnl__lead { margin: 0; font-size: 1rem; }
.dnl__list { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 14px; }
.dnl__list li { display: flex; gap: 14px; align-items: flex-start; }
.dnl__list strong { display: block; color: #fff; font-size: .95rem; }
.dnl__list small { font-size: .84rem; line-height: 1.45; }
.dnl__ico { width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(255, 255, 255, .08); color: var(--primary); display: grid; place-items: center; }
.dnl__ico .ico { width: 18px; height: 18px; }
.dnl__safe { margin: auto 0 0; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; gap: 8px; align-items: flex-start; font-size: .8rem; }
.dnl__safe .ico { width: 16px; height: 16px; flex: none; color: #5fd69c; margin-top: 1px; }
.dnl__card { height: 100%; padding: clamp(24px, 3.5vw, 36px); border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 30px 60px -40px rgba(16, 19, 27, .45); display: flex; flex-direction: column; gap: 18px; }
.dnl__head h2 { margin: 0 0 4px; font-size: 1.5rem; }
.dnl__head p { margin: 0; font-size: .92rem; }
.dnl__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--soft); }
.dnl__tabs a { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 8px; border-radius: 9px; color: var(--text); font-weight: 600; font-size: .88rem; text-align: center; }
.dnl__tabs a .ico { width: 15px; height: 15px; }
.dnl__tabs a.is-on { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(16, 19, 27, .12); }
.dnl__tabs a.is-on .ico { color: var(--primary); }
.dnl__card > .alert { margin: 0; }
.dnl__form { display: grid; gap: 16px; }
.dnl__field { display: grid; gap: 7px; margin: 0; }
.dnl__field > span:first-child { font-weight: 600; color: var(--ink); font-size: .9rem; }
.dnl__row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.dnl__row a { font-size: .82rem; font-weight: 600; }
.dnl__input { position: relative; display: flex; align-items: center; }
.dnl__input > .ico { position: absolute; left: 14px; width: 17px; height: 17px; color: var(--text); pointer-events: none; }
.dnl__input input { width: 100%; padding: 14px 14px 14px 44px; border-radius: 12px; border: 1px solid var(--border); background: var(--input); color: var(--ink); font: inherit; transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
.dnl__input input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-soft); }
.dnl__input input[data-senha] { padding-right: 50px; }
.dnl__eye { position: absolute; right: 6px; width: 38px; height: 38px; border: 0; border-radius: 9px; background: transparent; color: var(--text); display: grid; place-items: center; cursor: pointer; }
.dnl__eye:hover, .dnl__eye.is-on { color: var(--primary); background: var(--soft); }
.dnl__eye .ico { width: 18px; height: 18px; }
.dnl__go { padding-top: 14px; padding-bottom: 14px; font-size: 1rem; }
.dnl__alt, .dnl__info { margin: 0; font-size: .86rem; }
.dnl__alt a { font-weight: 600; }
.dnl__sent { text-align: center; display: grid; justify-items: center; gap: 10px; padding: 6px 0; }
.dnl__sent-ico { width: 64px; height: 64px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.dnl__sent-ico .ico { width: 28px; height: 28px; }
.dnl__sent h3 { margin: 0; }
.dnl__sent p { margin: 0; font-size: .92rem; }
.dnl__tip { display: flex; gap: 6px; align-items: flex-start; font-size: .82rem !important; text-align: left; }
.dnl__tip .ico { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--primary); }
.dnl__new { margin-top: auto; padding-top: 18px; border-top: 1px dashed var(--border); display: grid; gap: 12px; }
.dnl__new p { margin: 0; font-size: .86rem; }
.dnl__new strong { color: var(--ink); }
.dnl__new-btns { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 900px) {
  .dnl__grid { grid-template-columns: 1fr; max-width: 560px; }
  .dnl__main { order: -1; }
  .dnl__side { gap: 14px; }
  .dnl__list { grid-template-columns: 1fr 1fr; }
  .dnl__list small { display: none; }
}
@media (max-width: 480px) { .dnl__list { grid-template-columns: 1fr; } .dnl__tabs a { font-size: .8rem; } }

/* v2.23.1: a equipa aparece com o logótipo da ANANDJIRA */
.mbx__av--team { background: #fff; object-fit: contain; padding: 2px; box-shadow: 0 0 0 1px var(--border); width: 28px; height: 28px; }
.mbx__av--team { width: 32px; height: 32px; }
/* v2.24.4: carrinho — o escudo junto do texto (centrado), mesmo em duas linhas */
.apc-safe { display: block; text-align: center; line-height: 1.5; padding: 0 6px; }
.apc-safe .ico { display: inline-block; vertical-align: -2px; margin-right: 5px; }

/* v2.25: checkout do apadrinhamento mais cuidado */
.apf { background: var(--soft); }
.apf.vol-sec--first { padding-top: clamp(14px, 1.8vw, 24px); }
.apf .cpx-crumbs { margin-bottom: 10px; }
.apf-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin: 6px 0 18px; }
.apf-head h1 { margin: 0 0 4px; font-size: clamp(1.7rem, 3vw, 2.3rem); letter-spacing: -.02em; }
.apf-head p { margin: 0; }
.apf-seguro { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; background: color-mix(in srgb, #1f9d63 12%, var(--surface)); color: #1f9d63; font-weight: 700; font-size: .84rem; }
.apf-seguro .ico { width: 15px; height: 15px; }
.apf-steps { list-style: none; margin: 0 0 24px; padding: 14px 18px; display: flex; gap: 10px; align-items: center; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); counter-reset: none; overflow-x: auto; }
.apf-steps li { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: .9rem; color: var(--text); white-space: nowrap; }
.apf-steps li + li::before { content: ""; width: clamp(20px, 6vw, 70px); height: 2px; background: var(--border); border-radius: 2px; }
.apf-steps li span { width: 28px; height: 28px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--soft); color: var(--text); font-size: .8rem; font-weight: 700; }
.apf-steps li span .ico { width: 14px; height: 14px; }
.apf-steps li.is-done { color: #1f9d63; }
.apf-steps li.is-done span { background: #1f9d63; color: #fff; }
.apf-steps li.is-done + li::before { background: #1f9d63; }
.apf-steps li.is-on { color: var(--ink); }
.apf-steps li.is-on span { background: var(--primary); color: #fff; box-shadow: 0 0 0 4px var(--primary-soft); }
.apf-main .dn-box { box-shadow: 0 0 0 1px var(--border), 0 30px 60px -44px rgba(16, 19, 27, .45); }
[data-dw-checkout] .dn-prog li:first-child { display: none; }
[data-dw-checkout] .dn-prog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-dw-checkout] .dn-step[data-step="2"] [data-dw-prev] { visibility: hidden; }
/* garantias: cartão com título, ícone em quadrado suave, título e texto em linhas próprias */
.apf-confia { padding: 20px 22px 6px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.apf-confia h2 { margin: 0 0 6px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text); }
.apf-confia .apf-garantias { padding: 0; gap: 0; }
.apf-confia .apf-garantias li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px 0; font-size: .84rem; }
.apf-confia .apf-garantias li + li { border-top: 1px solid var(--border); }
.apf-g__ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.apf-g__ico .ico { width: 17px; height: 17px; margin: 0; }
.apf-confia .apf-garantias strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: .9rem; }
.apf-confia .apf-garantias small { display: block; font-size: .83rem; line-height: 1.5; color: var(--text); }
.apf-confia .apf-garantias small a { font-weight: 600; white-space: nowrap; }
/* ajuda: cartão escuro com ícone e dois botões de contacto */
.apf-ajuda { padding: 20px 22px; border-radius: var(--radius-lg); background: var(--dark); color: rgba(255, 255, 255, .72); display: grid; gap: 16px; }
.apf-ajuda__top { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: center; }
.apf-ajuda__ico { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .08); color: var(--primary); }
.apf-ajuda__ico .ico { width: 19px; height: 19px; }
.apf-ajuda__top strong { display: block; color: #fff; font-size: .95rem; }
.apf-ajuda__top small { display: block; font-size: .83rem; line-height: 1.45; }
.apf-ajuda__links { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.apf-ajuda__links a { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; padding: 10px 12px; border-radius: 10px; background: rgba(255, 255, 255, .07); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); color: #fff; font-weight: 600; font-size: .85rem; transition: background .2s; }
.apf-ajuda__links a:hover { background: rgba(255, 255, 255, .14); }
.apf-ajuda__links a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apf-ajuda__links .ico { width: 15px; height: 15px; flex: none; color: var(--primary); }
.apf-grid { row-gap: 18px; }
@media (max-width: 760px) { .apf-steps li { font-size: .8rem; } .apf-steps li + li::before { width: 16px; } }
/* checkout: resumo · pagamento · garantias (no telemóvel, por esta ordem) */
.apf-grid { grid-template-areas: "main side" "main extra"; grid-template-rows: auto 1fr; }
.apf-main { grid-area: main; }
.apf-side { grid-area: side; position: static; }
.apf-extra { grid-area: extra; display: grid; gap: 16px; align-content: start; }
.apf-steps em { font-style: normal; }
@media (max-width: 1080px) {
  .apf-grid { grid-template-areas: "side" "main" "extra"; grid-template-rows: auto; }
  .apf-steps li:not(.is-on) em { display: none; }
  .apf-steps { justify-content: center; }
}
[data-dw-checkout] .dn-step[data-step="2"] [data-dw-prev] { display: none; }
[data-dw-checkout] .dn-step[data-step="2"] .dn-nav { grid-template-columns: 1fr; }
[data-dw-checkout] .dn-step[data-step="2"] .dn-nav [data-dw-next] { width: 100%; justify-content: center; }
.dn-file.is-file .dn-file__estado { display: none; }
.dn-file__troca .ico, .dn-file__x .ico { color: currentColor !important; }
.dn-file__x { color: var(--primary); }
.dn-file__x:hover, .dn-file__x:focus-visible { color: #fff; }
/* mensagens: carregar mais conversas */
.mbx__mais { display: grid; justify-items: center; gap: 8px; padding: 12px 16px 16px; border-top: 1px solid var(--border); }
.mbx__mais[hidden] { display: none; }
.mbx__mais small { font-size: .78rem; color: var(--text); }
.mbx__mais .btn { width: 100%; justify-content: center; }
.mbx__mais .mbx__roda, .mbx__mais .mbx__mais-load { display: none; }
.mbx__roda { width: 15px; height: 15px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--primary) 25%, transparent); border-top-color: var(--primary); animation: dnRoda .7s linear infinite; }
.mbx__mais.is-loading .mbx__roda, .mbx__mais.is-loading .mbx__mais-load { display: inline-block; }
.mbx__mais.is-loading .mbx__mais-txt, .mbx__mais.is-loading .btn > .ico { display: none; }
.mbx__mais.is-loading .btn { pointer-events: none; opacity: .85; }

/* v2.26: área do doador → Doações e recibos (resumo, filtros e lista em tabela; no telemóvel, cartões) */
.dlx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.dlx-stat { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 16px 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.dlx-stat__ico { width: 40px; height: 40px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.dlx-stat__ico .ico { width: 19px; height: 19px; }
.dlx-stat > div { display: grid; min-width: 0; }
.dlx-stat small { font-size: .76rem; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dlx-stat strong { font-size: 1.15rem; color: var(--ink); letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dlx-stat.is-warn .dlx-stat__ico { background: #fff4d6; color: #8a5a00; }
.dlx { padding: 0; overflow: hidden; }
.dlx__tools { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.dlx__tabs { display: flex; gap: 2px; padding: 3px; border-radius: 11px; background: var(--soft); flex-wrap: wrap; }
.dlx__tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--text); font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s; }
.dlx__tabs button:hover { color: var(--ink); }
.dlx__tabs button b { min-width: 20px; padding: 1px 6px; border-radius: 9px; background: var(--border); color: var(--ink); font-size: .7rem; }
.dlx__tabs button.is-on { background: var(--surface); color: var(--primary); box-shadow: 0 1px 3px rgba(16, 19, 27, .12); }
.dlx__tabs button.is-on b { background: var(--primary); color: #fff; }
.dlx__more { display: flex; gap: 8px; align-items: center; flex: 1; justify-content: flex-end; min-width: 0; }
.dlx__search { flex: 0 1 260px; min-width: 0; }
.dlx__more .mbx__sel { flex: 0 0 auto; }
.dlx__head, .dlx__row { display: grid; grid-template-columns: minmax(0, 2fr) 96px minmax(170px, 1fr) 112px 180px; gap: 14px; align-items: center; }
.dlx__head { padding: 10px 18px; background: var(--soft); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.dlx__list { list-style: none; margin: 0; padding: 0; }
.dlx__row { padding: 14px 18px; border-top: 1px solid var(--border); transition: background .15s; }
.dlx__list .dlx__row:first-child { border-top: 0; }
.dlx__row:hover { background: color-mix(in srgb, var(--soft) 55%, transparent); }
.dlx__row[hidden] { display: none; }
.dlx__what { display: flex; gap: 12px; align-items: center; min-width: 0; }
.dlx__what > div { display: grid; gap: 1px; min-width: 0; }
.dlx__what strong { font-size: .95rem; color: var(--ink); }
.dlx__what small { font-size: .8rem; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dlx__what small.dlx__code { font-size: .72rem; letter-spacing: .02em; opacity: .75; }
.dlx__ico { width: 38px; height: 38px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.dlx__ico .ico { width: 17px; height: 17px; }
.dlx__ico--apd { background: #e7f0fb; color: #2b6cb0; }
.dlx__freq, .dlx__teste { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 6px; font-style: normal; font-size: .66rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; vertical-align: 2px; }
.dlx__freq { background: #e7f0fb; color: #2b6cb0; }
.dlx__teste { background: var(--soft); color: var(--text); }
.dlx__cell { font-size: .84rem; color: var(--ink); min-width: 0; }
.dlx__act { display: flex; justify-content: flex-end; }
.dlx__rec { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; padding: 7px 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface); color: var(--ink); text-decoration: none; transition: border-color .2s, color .2s, box-shadow .2s; }
.dlx__rec:hover { border-color: var(--primary); color: var(--primary); box-shadow: 0 6px 16px -10px rgba(16, 19, 27, .35); }
.dlx__rec > .ico { width: 17px; height: 17px; flex: none; color: var(--primary); }
.dlx__rec > .ico:last-child { width: 13px; height: 13px; color: var(--text); }
.dlx__rec span { display: grid; min-width: 0; line-height: 1.2; }
.dlx__rec b { font-size: .8rem; }
.dlx__rec small { font-size: .7rem; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dlx__wait { display: inline-flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 600; color: var(--text); text-align: right; }
.dlx__wait .ico { width: 14px; height: 14px; flex: none; }
a.dlx__wait:hover { color: var(--primary); }
.dlx .mbx__none { padding: 26px 16px; }
.dlx__empty { display: grid; justify-items: center; gap: 8px; padding: 44px 20px; text-align: center; }
.dlx__empty > span { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.dlx__empty > span .ico { width: 24px; height: 24px; }
.dlx__empty h3 { margin: 6px 0 0; font-size: 1.05rem; }
.dlx__empty p { margin: 0 0 8px; max-width: 40ch; font-size: .88rem; }
@media (max-width: 1200px) {
  .dlx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dlx__head { display: none; }
  .dlx__row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "what est" "data met" "act act"; gap: 8px 12px; }
  .dlx__what { grid-area: what; }
  .dlx__row > .dlx__cell:nth-child(2) { grid-area: data; }
  .dlx__row > .dlx__cell:nth-child(3) { grid-area: met; text-align: right; }
  .dlx__row > .dlx__cell:nth-child(4) { grid-area: est; justify-self: end; align-self: start; }
  .dlx__act { grid-area: act; justify-content: stretch; }
  .dlx__rec { width: 100%; }
  .dlx__rec span { flex: 1; }
  .dlx__cell[data-l]::before { content: attr(data-l) " · "; color: var(--text); font-size: .76rem; }
  .dlx__row > .dlx__cell[data-l] { padding-left: 50px; }
  .dlx__row > .dlx__cell:nth-child(3) { padding-left: 0; }
}
@media (max-width: 560px) {
  .dlx-stats { gap: 10px; }
  .dlx-stat { padding: 12px 14px; gap: 10px; }
  .dlx-stat__ico { width: 34px; height: 34px; border-radius: 10px; }
  .dlx-stat strong { font-size: 1rem; }
  .dlx__tools { padding: 12px; }
  .dlx__tabs { width: 100%; flex-wrap: nowrap; overflow-x: auto; }
  .dlx__tabs button { flex: 1; justify-content: center; padding: 7px 8px; }
  .dlx__more { width: 100%; }
  .dlx__search { flex: 1; }
  .dlx__row { padding: 14px 12px; }
  .dlx__row > .dlx__cell[data-l] { padding-left: 0; }
  .dlx__row { grid-template-areas: "what est" "data data" "met met" "act act"; }
  .dlx__row > .dlx__cell:nth-child(3) { text-align: left; }
}
.dlx__row > .dlx__cell:nth-child(3) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 560px) {
  .dlx__row { grid-template-areas: "what est" "data met" "act act"; }
  .dlx__row > .dlx__cell:nth-child(3) { text-align: right; }
  .dlx__cell[data-l]::before { content: none; }
  .dlx__row > .dlx__cell[data-l] { font-size: .8rem; color: var(--text); }
  .dlx-stat small { white-space: normal; line-height: 1.25; }
}
@media (max-width: 560px) { .dlx__what small { white-space: normal; } }
/* doações: páginas numeradas */
.dlx__pag { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; padding: 14px 18px; border-top: 1px solid var(--border); background: color-mix(in srgb, var(--soft) 45%, var(--surface)); }
.dlx__pag[hidden] { display: none; }
.dlx__pag small { font-size: .8rem; font-weight: 600; color: var(--text); }
.dlx__pages, .dlx__pages > span { display: flex; align-items: center; gap: 4px; }
.dlx__pg { min-width: 36px; height: 36px; padding: 0 10px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--ink); font: inherit; font-size: .84rem; font-weight: 600; cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.dlx__pg:hover:not(:disabled):not(.is-on) { border-color: var(--primary); color: var(--primary); }
.dlx__pg.is-on { background: var(--primary); border-color: var(--primary); color: #fff; cursor: default; }
.dlx__pg:disabled { opacity: .4; cursor: not-allowed; }
.dlx__pg .ico { width: 15px; height: 15px; }
.dlx__gap { min-width: 22px; text-align: center; color: var(--text); }
@media (max-width: 560px) { .dlx__pag { justify-content: center; padding: 12px; } .dlx__pg { min-width: 34px; height: 34px; } }

/* v2.27: área do padrinho → As minhas crianças (resumo, cartões dos activos, listas compactas) */
.dlx-stat__per { font-style: normal; font-size: .72rem; font-weight: 600; color: var(--text); }
.apx-grid { display: grid; gap: 16px; margin-bottom: 16px; }
.apx { display: grid; grid-template-columns: 200px minmax(0, 1fr); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 50px -40px rgba(16, 19, 27, .45); overflow: hidden; }
.apx__photo { position: relative; display: block; min-height: 100%; background: var(--soft); }
.apx__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.apx__badge { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: #1f9d55; color: #fff; font-size: .72rem; font-weight: 700; box-shadow: 0 4px 12px -4px rgba(0, 0, 0, .3); }
.apx__badge .ico { width: 12px; height: 12px; }
.apx__body { display: grid; gap: 16px; padding: 22px 24px; align-content: start; min-width: 0; }
.apx__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px 16px; flex-wrap: wrap; }
.apx__top h3 { margin: 0 0 3px; font-size: 1.35rem; letter-spacing: -.01em; }
.apx__top p { margin: 0; font-size: .86rem; }
.apx__time { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.apx__time .ico { width: 13px; height: 13px; }
.apx__dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.apx__dl > div { padding: 11px 14px; min-width: 0; }
.apx__dl > div + div { border-left: 1px solid var(--border); }
.apx__dl dt { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.apx__dl dd { margin: 3px 0 0; font-size: .9rem; font-weight: 700; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apx__dl dd.apx__code { font-size: .8rem; font-weight: 600; letter-spacing: .02em; }
.apx__btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.apx__ficha { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 8px 6px; border: 0; background: none; color: var(--text); font-weight: 600; font-size: .85rem; }
.apx__ficha:hover { color: var(--primary); }
.apx__ficha .ico { width: 15px; height: 15px; }
.apx-list { padding: 0; overflow: hidden; margin-bottom: 16px; }
.apx-list__h { padding: 16px 20px; border-bottom: 1px solid var(--border); display: grid; gap: 6px; }
.apx-list__h h3 { margin: 0; font-size: 1rem; display: flex; align-items: center; gap: 8px; }
.apx-list__h h3 b { min-width: 22px; padding: 1px 7px; border-radius: 9px; background: #fff4d6; color: #8a5a00; font-size: .74rem; text-align: center; }
.apx-list--fim .apx-list__h h3 b { background: var(--soft); color: var(--text); }
.apx-list__h p { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; }
.apx-list__h p .ico { width: 15px; height: 15px; flex: none; margin-top: 2px; color: #8a5a00; }
.apx-list ul { list-style: none; margin: 0; padding: 0; }
.apx-row { display: grid; grid-template-columns: 48px minmax(0, 1.6fr) minmax(0, 1fr) 96px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 20px; }
.apx-row + .apx-row { border-top: 1px solid var(--border); }
.apx-row__foto { width: 48px; height: 48px; border-radius: 12px; overflow: hidden; background: var(--soft); display: block; }
.apx-row__foto img { width: 100%; height: 100%; object-fit: cover; }
.apx-row__q { display: grid; min-width: 0; }
.apx-row__q strong { font-size: .92rem; color: var(--ink); }
.apx-row__q small { font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apx-row__c { font-size: .84rem; color: var(--ink); min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apx-row__code { font-size: .76rem; color: var(--text); letter-spacing: .02em; }
.apx-list--fim .apx-row { opacity: .75; }
@media (max-width: 1200px) {
  .apx__dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apx__dl > div:nth-child(3) { border-left: 0; }
  .apx__dl > div:nth-child(n+3) { border-top: 1px solid var(--border); }
  .apx-row { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-areas: "foto q est" "foto c1 c2"; row-gap: 4px; }
  .apx-row__foto { grid-area: foto; }
  .apx-row__q { grid-area: q; }
  .apx-row > .dn-state { grid-area: est; justify-self: end; }
  .apx-row__c[data-l]:nth-of-type(1) { grid-area: c1; }
  .apx-row__c[data-l] { font-size: .8rem; color: var(--text); }
  .apx-row > .apx-row__c:nth-child(4) { grid-area: c2; text-align: right; }
  .apx-row__code { display: none; }
}
@media (max-width: 700px) {
  .apx { grid-template-columns: 1fr; }
  .apx__photo { height: 220px; min-height: 0; }
  .apx__body { padding: 18px; }
  .apx__ficha { margin-left: 0; }
  .apx__btns .btn { flex: 1 1 auto; justify-content: center; }
  .apx-row { padding: 12px 14px; }
}
.apx__late, .dlx-stat strong.apx__late { color: #b3261e; }
.apx__late small { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 700px) {
  .dlx-stat strong { white-space: normal; }
  .apx-row { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-areas: "foto q q" "foto c1 c2" "foto est est"; }
  .apx-row > .dn-state { justify-self: start; margin-top: 4px; }
  .apx-row__q small { white-space: normal; }
}
.dlx-stat.is-late .dlx-stat__ico { background: #fdecea; color: #b3261e; }
.apx__dl dd.apx__late { white-space: normal; }
.apx__dl dd.apx__late { color: #b3261e; }
/* aviso de pagamento em aberto no cartão da criança */
.apx__aviso { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 14px; border-radius: 12px; background: #fff8e6; box-shadow: inset 0 0 0 1px #f3dfa6; }
.apx__aviso.is-late { background: #fdf0ee; box-shadow: inset 0 0 0 1px #f4c9c2; }
.apx__aviso-ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #fff; color: #8a5a00; }
.apx__aviso.is-late .apx__aviso-ico { color: #b3261e; }
.apx__aviso-ico .ico { width: 17px; height: 17px; }
.apx__aviso > div { display: grid; min-width: 0; }
.apx__aviso strong { font-size: .88rem; color: #8a5a00; }
.apx__aviso.is-late strong { color: #b3261e; }
.apx__aviso small { font-size: .78rem; color: var(--text); }
.apx__aviso-ver { display: inline-flex; align-items: center; gap: 5px; font-size: .8rem; font-weight: 700; color: var(--ink); white-space: nowrap; }
.apx__aviso-ver:hover { color: var(--primary); }
.apx__aviso-ver .ico { width: 13px; height: 13px; }
@media (max-width: 560px) { .apx__aviso { grid-template-columns: 36px minmax(0, 1fr); } .apx__aviso-ver { grid-column: 2; } }


/* v2.27.2: cartões do resumo das crianças abrem janelas com o detalhe */
.dlx-stat--btn { width: 100%; border: 0; font: inherit; text-align: left; cursor: pointer; transition: box-shadow .2s, transform .2s; }
.dlx-stat--btn > div { flex: 1; }
.dlx-stat--btn > .ico { width: 16px; height: 16px; flex: none; color: var(--text); opacity: .5; transition: opacity .2s, transform .2s; }
.dlx-stat--btn:hover { box-shadow: 0 0 0 1px var(--primary), 0 14px 30px -22px rgba(16, 19, 27, .5); }
.dlx-stat--btn:hover > .ico { opacity: 1; color: var(--primary); transform: translateX(2px); }
.dlx-stat--btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.apm { width: min(620px, calc(100vw - 24px)); }
.apm__list { list-style: none; margin: 0; padding: 0; max-height: min(60vh, 520px); overflow-y: auto; border: 1px solid var(--border); border-radius: 14px; }
.apm__row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 14px; }
.apm__row + .apm__row { border-top: 1px solid var(--border); }
.apm__foto { width: 48px; height: 48px; border-radius: 12px; overflow: hidden; background: var(--soft); display: block; }
.apm__foto img { width: 100%; height: 100%; object-fit: cover; }
.apm__q { display: grid; min-width: 0; }
.apm__q strong { font-size: .95rem; color: var(--ink); }
.apm__q small { font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.apm__v { display: grid; justify-items: end; gap: 4px; text-align: right; }
.apm__v b { font-size: .88rem; color: var(--ink); white-space: nowrap; }
.apm__v b.apx__late { color: #b3261e; }
.apm__v small { font-size: .74rem; color: var(--text); }
.apm__v a:not(.btn) { display: inline-flex; align-items: center; gap: 2px; font-size: .78rem; font-weight: 700; color: var(--primary); }
.apm__v a .ico { width: 12px; height: 12px; }
.apm__v .btn { padding: 6px 12px; font-size: .78rem; }
.apm__total { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--primary-soft); color: var(--ink); font-weight: 600; }
.apm__total b { font-size: 1.1rem; color: var(--primary); }
.apm__vazio { margin: 0; padding: 24px; text-align: center; border-radius: 12px; background: var(--soft); font-size: .9rem; }
@media (max-width: 520px) {
  .apm__row { grid-template-columns: 44px minmax(0, 1fr); }
  .apm__foto { width: 44px; height: 44px; }
  .apm__v { grid-column: 2; justify-items: start; text-align: left; grid-auto-flow: column; justify-content: start; align-items: center; gap: 8px; }
  .apm__q small { white-space: normal; }
}
.dlx-stat--btn small { white-space: normal; line-height: 1.25; }
.apm__v .dn-state { white-space: nowrap; }
@media (max-width: 520px) { .apm__v { display: flex; flex-wrap: wrap; } .apm__v .btn { flex: 1 1 100%; justify-content: center; } }
.dlx-stat--btn strong { white-space: normal; }
/* v2.28: criança em destaque, as outras numa linha que abre a janela; contribuição mista */
.dlx-stat__sub { display: block; font-style: normal; font-size: .72rem; font-weight: 600; color: var(--text); margin-top: 2px; }
.apx-outras { width: 100%; display: flex; align-items: center; gap: 14px; margin: -4px 0 16px; padding: 12px 16px; border: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); font: inherit; text-align: left; cursor: pointer; transition: box-shadow .2s; }
.apx-outras:hover { box-shadow: 0 0 0 1px var(--primary); }
.apx-outras__fotos { display: flex; flex: none; }
.apx-outras__fotos img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--surface); background: var(--soft); }
.apx-outras__fotos img + img { margin-left: -12px; }
.apx-outras__t { flex: 1; display: grid; min-width: 0; }
.apx-outras__t strong { font-size: .92rem; color: var(--ink); }
.apx-outras__t small { font-size: .78rem; }
.apx-outras > .ico { width: 16px; height: 16px; color: var(--text); flex: none; }
.apx-outras:hover > .ico { color: var(--primary); }
.apm__totais { display: grid; gap: 0; border-radius: 12px; overflow: hidden; box-shadow: 0 0 0 1px var(--border); }
.apm__totais > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; font-size: .86rem; }
.apm__totais > div + div { border-top: 1px solid var(--border); }
.apm__totais b { color: var(--ink); text-align: right; }
.apm__totais .apm__total { border-radius: 0; background: var(--primary-soft); font-weight: 600; }
.apm__totais .apm__total b { font-size: 1.05rem; color: var(--primary); }
.apm__ano { color: var(--text); }
.dlx-stat--btn strong { overflow: visible; text-overflow: clip; }
.dlx-stat strong .nw { white-space: nowrap; }
/* ofertas únicas em "As minhas crianças" */
.apx-list--oferta .apx-list__h h3 b { background: var(--primary-soft); color: var(--primary); }
.apx-list--oferta .apx-list__h p .ico { color: var(--primary); }
.apx-row__foto--ico { display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.apx-row__foto--ico .ico { width: 20px; height: 20px; }
.apx-row__code a { color: var(--primary); font-weight: 700; }
/* apadrinhar: "Ver mais crianças" ao centro */
.ap-grid > .ap-card[hidden] { display: none; }
.ap-mais { display: grid; justify-items: center; gap: 12px; margin-top: 34px; text-align: center; }
.ap-mais[hidden] { display: none; }
.ap-mais p { margin: 0; font-size: .86rem; font-weight: 600; color: var(--text); }
.ap-mais .btn { min-width: 240px; justify-content: center; }

/* ficha da criança: mensalidade própria (apoio adaptado) */
.apx-buy__adapt { display: flex; gap: 8px; align-items: flex-start; margin: 2px 0 4px; padding: 10px 12px; border-radius: 10px; background: #e7f0fb; color: var(--ink); font-size: .84rem; line-height: 1.5; }
.apx-buy__adapt .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: #2b6cb0; }
.apx-buy__adapt strong { color: #2b6cb0; }

/* v2.31: ficha da criança mais cuidada (fotografia emoldurada, texto na voz da criança, faixa dos cartões, botão no fim) */
.ap-ficha .cpx-crumbs { margin-bottom: clamp(18px, 3vw, 30px); }
.ap-frame { margin: 0; padding: 14px 14px 0; border-radius: 18px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 40px 70px -46px rgba(16, 19, 27, .55); }
.ap-frame .ap-profile__photo { border-radius: 10px; box-shadow: none; }
.ap-frame figcaption { padding: 12px 6px 14px; text-align: center; font-family: var(--hand); font-size: 1.15rem; color: var(--ink); }
.ap-profile__voz { margin: 14px 0 0; font-size: 1rem; line-height: 1.75; color: var(--text); }
.ap-profile__quote { font-size: 1.15rem; }
.ap-cards-sec { margin-top: clamp(10px, 2vw, 24px); padding: clamp(40px, 5vw, 64px) 0; background: color-mix(in srgb, #2b9fae 14%, var(--soft)); }
.ap-cards-sec .ap-info { box-shadow: 0 24px 40px -30px rgba(16, 19, 27, .45); border: 0; }
.ap-cta2 { display: grid; justify-items: center; gap: 14px; margin-top: clamp(30px, 4vw, 44px); text-align: center; }
.ap-cta2 p { margin: 0; font-size: 1.1rem; font-weight: 700; color: var(--ink); }
.ap-cta2__btn { min-width: min(100%, 340px); padding: 12px 26px; justify-content: center; }
.ap-cta2__btn span { display: grid; line-height: 1.25; text-align: left; }
.ap-cta2__btn strong { font-size: 1.02rem; }
.ap-cta2__btn small { font-size: .8rem; font-weight: 600; opacity: .9; }
@media (max-width: 1080px) { .ap-frame { max-width: 480px; } }
/* mensagens: cartão da criança nas conversas iniciadas pela equipa (aniversário) */
.mbx__kid { display: grid; gap: 10px; margin-top: 12px; padding: 12px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.mbx__kid-q { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.mbx__kid-q > span:nth-child(2) { flex: 1; display: grid; min-width: 0; }
.mbx__kid-q strong { color: var(--ink); }
.mbx__kid-q small { font-size: .78rem; color: var(--primary); font-weight: 600; }
.mbx__kid-q > .ico { width: 16px; height: 16px; color: var(--text); }
.mbx__kid-f { width: 52px; height: 52px; flex: none; border-radius: 50%; overflow: hidden; background: var(--soft); }
.mbx__kid-f img { width: 100%; height: 100%; object-fit: cover; }
.mbx__kid-acts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.mbx__kid-acts a { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 8px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); font-size: .78rem; font-weight: 700; text-align: center; text-decoration: none; }
.mbx__kid-acts a:hover { background: var(--primary); color: #fff; }
.mbx__kid-acts .ico { width: 14px; height: 14px; flex: none; }
@media (max-width: 640px) { .mbx__kid-acts { grid-template-columns: 1fr; } }
.mbx__kid-acts { grid-template-columns: minmax(0, 1fr); }
.mbx__kid-acts a { justify-content: flex-start; padding: 10px 12px; font-size: .84rem; }
/* ficha da criança: menos espaço entre o menu e a secção; fotografia alinhada pelo topo */
.ap-ficha.vol-sec--first { padding-top: clamp(14px, 1.8vw, 24px); }
.ap-ficha .cpx-crumbs { margin-bottom: clamp(12px, 1.6vw, 18px); }
.ap-ficha .ap-profile { align-items: start; }
.ap-ficha .ap-profile__text h1 { margin-top: 0; }

/* privacidade reforçada: fotografia desfocada */
.is-privada { position: relative; }
.is-privada img { filter: blur(14px) saturate(.8); transform: scale(1.08); }
.ap-privada { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(16, 19, 27, .72); color: #fff; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.ap-privada .ico { width: 14px; height: 14px; }
.ap-card__photo.is-privada { overflow: hidden; }

/* v2.35: área do doador → Pagamentos */
.pgx { padding: 0; overflow: hidden; margin-bottom: 16px; }
.pgx__h { padding: 16px 20px; border-bottom: 1px solid var(--border); display: grid; gap: 4px; }
.pgx__h h3 { margin: 0; font-size: 1.02rem; display: flex; align-items: center; gap: 8px; }
.pgx__h h3 b { min-width: 22px; padding: 1px 7px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .74rem; text-align: center; }
.pgx__h h3 b.is-soft { background: var(--soft); color: var(--text); }
.pgx__h p { margin: 0; font-size: .84rem; }
.pgx__list { list-style: none; margin: 0; padding: 0; }
.pgx__list > li { display: grid; gap: 10px 16px; align-items: center; padding: 16px 20px; }
.pgx__list > li + li { border-top: 1px solid var(--border); }
.pgx__fat { grid-template-columns: 44px minmax(0, 1fr) auto auto; }
.pgx__fat.is-late { background: color-mix(in srgb, #b3261e 4%, var(--surface)); box-shadow: inset 3px 0 0 #b3261e; }
.pgx__plan { grid-template-columns: 44px minmax(0, 1fr) auto auto; }
.pgx__ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.pgx__ico .ico { width: 19px; height: 19px; }
.pgx__ico--apd { background: #e7f0fb; color: #2b6cb0; }
.pgx__q { display: grid; gap: 3px; min-width: 0; justify-items: start; }
.pgx__q strong { font-size: .95rem; color: var(--ink); }
.pgx__q small { font-size: .78rem; color: var(--text); }
.pgx__q .dn-state { margin-top: 3px; }
.pgx__v b { font-size: 1.08rem; color: var(--ink); white-space: nowrap; }
.pgx__fat.is-late .pgx__v b { color: #b3261e; }
.pgx__acts { display: flex; align-items: center; gap: 8px; }
.pgx__pdf { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--border); color: var(--text); }
.pgx__pdf:hover { border-color: var(--primary); color: var(--primary); }
.pgx__pdf .ico { width: 16px; height: 16px; }
.pgx__prox { display: grid; justify-items: end; gap: 1px; text-align: right; }
.pgx__prox small { font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text); }
.pgx__prox b { font-size: .9rem; color: var(--ink); white-space: nowrap; }
.pgx__end { position: relative; }
.pgx__end summary { list-style: none; cursor: pointer; padding: 7px 12px; border-radius: 9px; border: 1px solid var(--border); font-size: .8rem; font-weight: 600; color: var(--text); white-space: nowrap; }
.pgx__end summary::-webkit-details-marker { display: none; }
.pgx__end summary:hover, .pgx__end[open] summary { border-color: #b3261e; color: #b3261e; }
.pgx__end form { position: absolute; right: 0; top: calc(100% + 8px); z-index: 5; width: 280px; display: grid; gap: 10px; padding: 14px; border-radius: 12px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 40px -20px rgba(16, 19, 27, .45); }
.pgx__end form p { margin: 0; font-size: .82rem; }
.pgx__ok { display: flex; gap: 14px; align-items: center; padding: 20px; }
.pgx__ok > span { width: 44px; height: 44px; flex: none; border-radius: 50%; display: grid; place-items: center; background: #e8f6ee; color: #14633a; }
.pgx__ok > span .ico { width: 20px; height: 20px; }
.pgx__ok strong { color: var(--ink); }
.pgx__ok p { margin: 2px 0 0; font-size: .86rem; }
.pgx__vazio { margin: 0; padding: 20px; font-size: .88rem; }
.pgx-info { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border-radius: var(--radius-lg); background: color-mix(in srgb, #2b6cb0 7%, var(--surface)); box-shadow: 0 0 0 1px color-mix(in srgb, #2b6cb0 18%, var(--border)); }
.pgx-info > span { color: #2b6cb0; flex: none; }
.pgx-info > span .ico { width: 18px; height: 18px; }
.pgx-info strong { color: var(--ink); font-size: .92rem; }
.pgx-info p { margin: 3px 0 0; font-size: .84rem; line-height: 1.55; }
@media (max-width: 760px) {
  .pgx__list > li { padding: 14px; }
  .pgx__fat, .pgx__plan { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .pgx__ico { width: 40px; height: 40px; }
  .pgx__acts { grid-column: 1 / -1; }
  .pgx__acts .btn { flex: 1; justify-content: center; }
  .pgx__end { grid-column: 1 / -1; justify-self: start; }
  .pgx__end form { left: 0; right: auto; width: min(280px, 80vw); }
}
/* pagamentos: a caixa "terminar" não fica cortada */
.pgx { overflow: visible; }
.pgx__list > li:last-child { border-radius: 0 0 var(--radius-lg) var(--radius-lg); }
/* fotografia protegida: explicação ao passar o rato ou tocar */
.ap-privada { cursor: help; z-index: 2; }
.ap-privada > .ico:last-of-type { width: 13px; height: 13px; opacity: .85; }
.ap-privada__tip { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); width: min(280px, 70vw); padding: 10px 12px; border-radius: 10px; background: var(--dark); color: #fff; font-size: .8rem; font-weight: 500; line-height: 1.5; white-space: normal; text-align: left; box-shadow: 0 16px 30px -14px rgba(0, 0, 0, .5); opacity: 0; visibility: hidden; transition: opacity .2s; pointer-events: none; }
.ap-privada:hover .ap-privada__tip, .ap-privada:focus .ap-privada__tip, .ap-privada:focus-within .ap-privada__tip { opacity: 1; visibility: visible; }
.ap-card__photo { position: relative; }
.ap-card__privada { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; background: rgba(16, 19, 27, .72); color: #fff; font-size: .7rem; font-weight: 700; white-space: nowrap; z-index: 2; }
.ap-card__privada .ico { width: 12px; height: 12px; }

/* v2.36: área do doador em telemóvel e tablet: barra de navegação em baixo e painel "Mais" */
.dnx-tab, .dnx-sheet { display: none; }
@media (max-width: 1080px) {
  .dnx__side { display: none; }
  .dnx__grid { grid-template-columns: minmax(0, 1fr); }
  body:has(.dnx-tab) { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  body:has(.dnx-tab) .to-top { bottom: calc(84px + env(safe-area-inset-bottom)); }
  body:has(.dnx-tab) .cookies { bottom: calc(80px + env(safe-area-inset-bottom)); }
  .dnx-tab { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); padding: 6px max(8px, env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--surface) 94%, transparent); backdrop-filter: blur(12px); box-shadow: 0 -1px 0 var(--border), 0 -10px 30px -18px rgba(16, 19, 27, .35); }
  .dnx-tab > a, .dnx-tab > button { display: grid; justify-items: center; gap: 3px; padding: 6px 2px 4px; border: 0; border-radius: 12px; background: none; color: var(--text); font: inherit; font-size: .68rem; font-weight: 600; text-decoration: none; cursor: pointer; min-width: 0; }
  .dnx-tab > a > span:last-child, .dnx-tab > button > span:last-child { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dnx-tab__i { position: relative; display: grid; place-items: center; width: 46px; height: 28px; border-radius: 14px; transition: background .2s var(--ease); }
  .dnx-tab__i .ico { width: 20px; height: 20px; }
  .dnx-tab__i b { position: absolute; top: -3px; right: 4px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .62rem; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--surface); }
  .dnx-tab .is-on { color: var(--primary); }
  .dnx-tab .is-on .dnx-tab__i { background: var(--primary-soft); }
  .dnx-sheet { position: fixed; inset: 0; z-index: 70; display: block; }
  .dnx-sheet[hidden] { display: none; }
  .dnx-sheet__fundo { position: absolute; inset: 0; background: rgba(16, 19, 27, .5); opacity: 0; transition: opacity .2s; }
  .dnx-sheet__box { position: absolute; left: 0; right: 0; bottom: 0; max-height: 86dvh; overflow-y: auto; padding: 8px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; background: var(--surface); box-shadow: 0 -20px 40px -20px rgba(0, 0, 0, .45); transform: translateY(100%); transition: transform .22s var(--ease); }
  .dnx-sheet.is-open .dnx-sheet__fundo { opacity: 1; }
  .dnx-sheet.is-open .dnx-sheet__box { transform: none; }
  .dnx-sheet__puxa { display: block; width: 42px; height: 5px; margin: 4px auto 10px; border-radius: 3px; background: var(--border); }
  .dnx-sheet__me { display: flex; align-items: center; gap: 12px; padding: 6px 4px 14px; border-bottom: 1px solid var(--border); }
  .dnx-sheet__me .dnx__av { width: 46px; height: 46px; font-size: 1rem; }
  .dnx-sheet__me > div { flex: 1; display: grid; min-width: 0; }
  .dnx-sheet__me strong { color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dnx-sheet__me small { font-size: .78rem; color: var(--primary); font-weight: 600; }
  .dnx-sheet__x { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; }
  .dnx-sheet__x .ico { width: 16px; height: 16px; }
  .dnx-sheet__nav { display: grid; padding: 8px 0; }
  .dnx-sheet__nav a { display: flex; align-items: center; gap: 14px; padding: 13px 8px; border-radius: 12px; color: var(--ink); font-weight: 600; text-decoration: none; }
  .dnx-sheet__nav a > .ico:first-child { width: 20px; height: 20px; color: var(--text); }
  .dnx-sheet__nav a > span { flex: 1; }
  .dnx-sheet__nav a > .ico:last-child { width: 15px; height: 15px; color: var(--text); opacity: .6; }
  .dnx-sheet__nav a b { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 11px; background: var(--primary); color: #fff; font-size: .74rem; display: grid; place-items: center; }
  .dnx-sheet__nav a.is-on { background: var(--primary-soft); color: var(--primary); }
  .dnx-sheet__nav a.is-on > .ico:first-child { color: var(--primary); }
  .dnx-sheet__fim { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 12px; border-top: 1px solid var(--border); }
  .dnx-sheet__fim .btn, .dnx-sheet__fim form, .dnx-sheet__fim form .btn { width: 100%; justify-content: center; }
  .dnx-sheet__sair { border: 1px solid color-mix(in srgb, #b3261e 35%, var(--border)); background: var(--surface); color: #b3261e; }
  html.dnx-trava, html.dnx-trava body { overflow: hidden; }
}
@media (min-width: 761px) and (max-width: 1080px) {
  .dnx-tab { left: 50%; right: auto; bottom: 14px; width: min(560px, calc(100% - 32px)); transform: translateX(-50%); padding: 6px; border-radius: 20px; box-shadow: 0 0 0 1px var(--border), 0 16px 40px -18px rgba(16, 19, 27, .45); }
  body:has(.dnx-tab) { padding-bottom: 90px; }
  .dnx-sheet__box { left: 50%; right: auto; width: min(560px, 100%); transform: translate(-50%, 100%); }
  .dnx-sheet.is-open .dnx-sheet__box { transform: translate(-50%, 0); }
}
/* largura: nada sai do ecrã */
.dnx__main, .dnx__sec, .dnx-sec2 > * { min-width: 0; }
@media (max-width: 900px) { .dnx-sec2 { grid-template-columns: minmax(0, 1fr); } }
.dnx-sec2__h > div { min-width: 0; }
.dnx-sec2 .dnx-box, .dnx-sec2 form { min-width: 0; }
@media (max-width: 560px) {
  .dlx__tabs { flex-wrap: wrap; overflow: visible; }
  .dlx__tabs button { flex: 1 1 auto; }
}
@media (max-width: 1080px) { .dnx-sheet { z-index: 120; } }
form.dnx-box, .dnx-box > .form { grid-template-columns: minmax(0, 1fr); }
/* botões com texto comprido quebram linha em vez de sair do ecrã */
.dnx-sec2 .btn, .dnx__sec .dnx-box .btn { white-space: normal; text-align: center; max-width: 100%; }
@media (max-width: 760px) { .dnx-cards { grid-template-columns: minmax(0, 1fr); } .dnx-hello__t { min-width: 0; } }
@media (max-width: 380px) {
  .dnx-quick a { font-size: .8rem; padding-left: 6px; padding-right: 6px; }
  .dnx-stats { gap: 8px; }
  .dnx-stats a { padding: 14px 12px; min-width: 0; }
  .dnx-stats strong { font-size: 1.05rem; overflow-wrap: anywhere; }
  .dnx-hello h1 { font-size: 1.35rem; }
}
@media (max-width: 1080px) {
  .dnx-sheet__extra { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 0 12px; }
  .dnx-sheet__extra > a, .dnx-sheet__extra > button { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 10px; border: 0; border-radius: 12px; background: var(--soft); color: var(--ink); font: inherit; font-size: .84rem; font-weight: 600; text-decoration: none; cursor: pointer; }
  .dnx-sheet__extra .ico { width: 16px; height: 16px; }
}
@media (min-width: 761px) and (max-width: 1080px) {
  .acc-top__area { display: none; }
  .acc-top__link span { display: none; }
  .acc-top__link { width: 42px; height: 42px; justify-content: center; border-radius: 50%; background: var(--soft); }
}
@media (max-width: 560px) {
  .dlx-stat--btn > .ico:last-child { display: none; }
  .dlx-stat strong .nw { white-space: normal; }
  .dlx-stat { padding: 12px; gap: 10px; }
}
.dnx-sheet__extra .theme-btn__sun { display: none; }
:root[data-theme="dark"] .dnx-sheet__extra .theme-btn__sun { display: block; }
:root[data-theme="dark"] .dnx-sheet__extra .theme-btn__moon { display: none; }
/* mensagens em telemóvel e tablet: a lista ocupa a largura toda; escrever com um botão flutuante (envelope com +) */
.mbx-fab { display: none; }
@media (max-width: 860px) {
  .mbx { grid-template-columns: minmax(0, 1fr); min-height: 0; }
}
@media (max-width: 1080px) {
  .mbx__compose { display: none; }
  .mbx-fab { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(84px + env(safe-area-inset-bottom)); z-index: 59; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: var(--primary); color: #fff; box-shadow: 0 14px 30px -10px color-mix(in srgb, var(--primary) 70%, transparent), 0 4px 10px rgba(16, 19, 27, .18); transition: transform .2s var(--ease); }
  .mbx-fab:active { transform: scale(.94); }
  .mbx-fab > .ico { width: 24px; height: 24px; }
  .mbx-fab__mais { position: absolute; top: 9px; right: 8px; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--primary); box-shadow: 0 0 0 2px var(--primary); }
  .mbx-fab__mais .ico { width: 11px; height: 11px; stroke-width: 3; }
  body:has(.mbx.is-open) .mbx-fab { display: none; } /* a ler ou a escrever: o botão sai */
  body:has(.dnx-tab) .to-top { display: none; } /* a barra de baixo já leva ao topo das secções */
}
@media (min-width: 761px) and (max-width: 1080px) { .mbx-fab { bottom: 104px; right: 24px; } }

/* v2.37: notícias das crianças, apadrinhamento suspenso, declaração anual */
.nwx { padding: 0; overflow: hidden; margin: 16px 0; }
.nwx__h { padding: 16px 20px; border-bottom: 1px solid var(--border); display: grid; gap: 4px; }
.nwx__h h3 { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 1.02rem; }
.nwx__h h3 .ico { width: 18px; height: 18px; color: var(--primary); }
.nwx__h h3 b { min-width: 22px; padding: 1px 7px; border-radius: 9px; background: var(--primary-soft); color: var(--primary); font-size: .74rem; text-align: center; }
.nwx__h p { margin: 0; font-size: .84rem; }
.nwx__item { padding: 18px 20px; display: grid; gap: 8px; }
.nwx__item + .nwx__item, .nwx__mais .nwx__item { border-top: 1px solid var(--border); }
.nwx__who { display: flex; align-items: center; gap: 10px; }
.nwx__av { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex: none; background: var(--soft); }
.nwx__av img { width: 100%; height: 100%; object-fit: cover; }
.nwx__who > div { flex: 1; display: grid; }
.nwx__who strong { font-size: .9rem; color: var(--ink); }
.nwx__who small { font-size: .76rem; color: var(--text); }
.nwx__nova { padding: 2px 9px; border-radius: 999px; background: var(--primary); color: #fff; font-style: normal; font-size: .7rem; font-weight: 700; }
.nwx__item h4 { margin: 4px 0 0; font-size: 1.05rem; color: var(--ink); }
.nwx__item p { margin: 0; font-size: .9rem; line-height: 1.65; }
.nwx__fotos { display: grid; gap: 6px; margin-top: 6px; border-radius: 14px; overflow: hidden; }
.nwx__fotos a { display: block; background: var(--soft); }
.nwx__fotos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nwx__fotos--1 a { aspect-ratio: 16 / 10; max-height: 380px; }
.nwx__fotos--2 { grid-template-columns: 1fr 1fr; }
.nwx__fotos--2 a, .nwx__fotos--4 a { aspect-ratio: 1; }
.nwx__fotos--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; aspect-ratio: 16 / 10; }
.nwx__fotos--3 a:first-child { grid-row: span 2; }
.nwx__fotos--4 { grid-template-columns: 1fr 1fr; }
.nwx__mais summary { list-style: none; cursor: pointer; padding: 14px 20px; border-top: 1px solid var(--border); font-size: .86rem; font-weight: 700; color: var(--primary); text-align: center; }
.nwx__mais summary::-webkit-details-marker { display: none; }
.nwx__mais[open] summary { display: none; }
.nwx__vazio { display: flex; gap: 14px; align-items: center; padding: 20px; }
.nwx__vazio > span { width: 44px; height: 44px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.nwx__vazio > span .ico { width: 20px; height: 20px; }
.nwx__vazio p { margin: 0; font-size: .86rem; }
.nwx-ult__q { display: flex; gap: 14px; align-items: center; color: inherit; text-decoration: none; }
.nwx-ult__f { width: 92px; height: 72px; flex: none; border-radius: 12px; overflow: hidden; background: var(--soft); }
.nwx-ult__f img { width: 100%; height: 100%; object-fit: cover; }
.nwx-ult__t { display: grid; gap: 2px; min-width: 0; }
.nwx-ult__t small { font-size: .76rem; color: var(--primary); font-weight: 700; }
.nwx-ult__t strong { color: var(--ink); }
.nwx-ult__t em { font-style: normal; font-size: .84rem; color: var(--text); }
.apx__badge--susp { background: #b3261e; }
.apx__susp { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: #fdf0ee; box-shadow: inset 0 0 0 1px #f4c9c2; font-size: .84rem; line-height: 1.55; }
.apx__susp .ico { width: 17px; height: 17px; flex: none; color: #b3261e; margin-top: 2px; }
.apx__susp strong { color: #b3261e; }
.dlx-hacts { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.dlx-decl { position: relative; }
.dlx-decl summary { list-style: none; cursor: pointer; }
.dlx-decl summary::-webkit-details-marker { display: none; }
.dlx-decl__menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; width: 280px; display: grid; gap: 4px; padding: 12px; border-radius: 14px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 40px -20px rgba(16, 19, 27, .45); }
.dlx-decl__menu p { margin: 0 0 6px; font-size: .8rem; }
.dlx-decl__menu a { display: flex; align-items: center; gap: 8px; padding: 10px; border-radius: 10px; color: var(--ink); font-weight: 600; font-size: .88rem; text-decoration: none; }
.dlx-decl__menu a:hover { background: var(--primary-soft); color: var(--primary); }
.dlx-decl__menu .ico { width: 16px; height: 16px; color: var(--primary); }
@media (max-width: 560px) { .dlx-decl__menu { left: 0; right: auto; width: min(280px, 86vw); } .nwx__item { padding: 16px 14px; } }

/* v2.38: área do padrinho → Notícias (lista das crianças + actualizações) e janela das fotografias */
.nws { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); min-height: 560px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; }
.nws__list { list-style: none; margin: 0; padding: 8px; border-right: 1px solid var(--border); overflow-y: auto; max-height: 720px; }
.nws__kid { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 12px 12px 16px; border-radius: 12px; color: inherit; text-decoration: none; position: relative; transition: background .15s; }
.nws__kid:hover { background: var(--soft); }
.nws__kid.is-on { background: var(--primary-soft); }
.nws__kid.is-unread::after { content: ""; position: absolute; left: 5px; top: 50%; width: 7px; height: 7px; margin-top: -3px; border-radius: 50%; background: var(--primary); }
.nws__av { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; background: var(--soft); flex: none; display: block; }
.nws__av img { width: 100%; height: 100%; object-fit: cover; }
.nws__av--lg { width: 48px; height: 48px; }
.nws__q { display: grid; gap: 2px; min-width: 0; }
.nws__row { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.nws__row strong { font-size: .95rem; color: var(--ink); }
.nws__kid.is-unread .nws__row strong { color: var(--primary); }
.nws__row time { font-size: .72rem; color: var(--text); white-space: nowrap; }
.nws__q small { font-size: .82rem; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nws__kid.is-unread .nws__q small { color: var(--ink); font-weight: 600; }
.nws__meta { display: flex; align-items: center; gap: 6px; font-size: .72rem; color: var(--text); }
.nws__meta b { padding: 1px 7px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .68rem; }
.nws__pane { display: flex; flex-direction: column; min-width: 0; }
.nws__blank { flex: 1; display: grid; place-content: center; justify-items: center; gap: 10px; padding: 40px; text-align: center; color: var(--text); }
.nws__blank .ico { width: 44px; height: 44px; opacity: .35; }
.nws__blank p { margin: 0; max-width: 34ch; }
.nws__conv { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.nws__conv[hidden], .nws__blank[hidden] { display: none; }
.nws__head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.nws__head > div:not(.nws__acts) { flex: 1; min-width: 0; display: grid; }
.nws__head h3 { margin: 0; font-size: 1.08rem; }
.nws__head small { font-size: .8rem; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nws__acts { display: flex; gap: 8px; flex: none; }
.nws__back { display: none; }
.nws__feed { flex: 1; overflow-y: auto; max-height: 660px; background: color-mix(in srgb, var(--soft) 45%, var(--surface)); }
.nws__feed .nwx__item { margin: 14px 18px; padding: 18px 20px; border-radius: 16px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 14px 30px -26px rgba(16, 19, 27, .45); }
.nws__feed .nwx__item + .nwx__item { border-top: 0; }
.nwx__data { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; color: var(--text); font-weight: 600; flex: 1; }
.nwx__data .ico { width: 14px; height: 14px; }
.nwx__fotos a { position: relative; cursor: zoom-in; overflow: hidden; }
.nwx__fotos a img { transition: transform .3s var(--ease); }
.nwx__fotos a:hover img { transform: scale(1.03); }
.nwx__nfotos { position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; background: rgba(16, 19, 27, .65); color: #fff; font-size: .74rem; font-weight: 700; }
.nwx__nfotos .ico { width: 13px; height: 13px; }
.nwx-link { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: inherit; text-decoration: none; transition: box-shadow .2s; }
.nwx-link:hover { box-shadow: 0 0 0 1px var(--primary); }
.nwx-link__i { position: relative; width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.nwx-link__i .ico { width: 20px; height: 20px; }
.nwx-link__i b { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .66rem; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--surface); }
.nwx-link__t { flex: 1; display: grid; gap: 2px; min-width: 0; }
.nwx-link__t strong { color: var(--ink); }
.nwx-link__t small { font-size: .82rem; color: var(--text); }
.nwx-link > .ico { width: 16px; height: 16px; color: var(--text); }
.nwx-ult__n { margin-left: 6px; padding: 1px 8px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .72rem; vertical-align: 3px; }
@media (max-width: 860px) {
  .nws { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .nws__list { border-right: 0; max-height: none; }
  .nws .nws__pane { display: none; }
  .nws.is-open .nws__list { display: none; }
  .nws.is-open .nws__pane { display: flex; }
  .nws__back { display: grid; }
  .nws__feed { max-height: none; }
  .nws__feed .nwx__item { margin: 12px; padding: 16px; }
  .nws__head { flex-wrap: wrap; padding: 12px 14px; }
  .nws__acts { width: 100%; }
  .nws__acts .btn { flex: 1; justify-content: center; }
}
/* janela das fotografias */
.nlb { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(10, 12, 18, .96); color: #fff; overflow: hidden; }
.nlb::backdrop { background: rgba(10, 12, 18, .9); }
.nlb[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.nlb__top { display: flex; align-items: center; gap: 14px; padding: 14px max(16px, env(safe-area-inset-left)); }
.nlb__cap { flex: 1; font-weight: 700; font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nlb__n { font-size: .85rem; color: rgba(255, 255, 255, .75); font-variant-numeric: tabular-nums; }
.nlb__x { width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; }
.nlb__x .ico { width: 18px; height: 18px; }
.nlb__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior: contain; outline: none; }
.nlb__track::-webkit-scrollbar { display: none; }
.nlb__track figure { flex: 0 0 100%; margin: 0; display: grid; place-items: center; scroll-snap-align: center; padding: 0 max(12px, 4vw); }
.nlb__track img { max-width: 100%; max-height: calc(100dvh - 190px); object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8); }
.nlb__nav { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer; transition: background .2s, opacity .2s; }
.nlb__nav:hover:not(:disabled) { background: rgba(255, 255, 255, .26); }
.nlb__nav:disabled { opacity: .25; cursor: default; }
.nlb__nav .ico { width: 20px; height: 20px; }
.nlb__nav--p { left: 18px; }
.nlb__nav--n { right: 18px; }
.nlb__thumbs { display: flex; justify-content: center; gap: 8px; padding: 12px 16px calc(16px + env(safe-area-inset-bottom)); overflow-x: auto; }
.nlb__thumbs button { width: 64px; height: 48px; flex: none; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: none; opacity: .55; cursor: pointer; transition: opacity .2s, border-color .2s; }
.nlb__thumbs button.is-on { opacity: 1; border-color: #fff; }
.nlb__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.nlb.is-uma .nlb__nav, .nlb.is-uma .nlb__thumbs { display: none; }
@media (max-width: 760px) { .nlb__nav { display: none; } .nlb__track img { max-height: calc(100dvh - 170px); } }
@media (max-width: 860px) { .nws__acts .btn { min-width: 0; padding: 9px 10px; font-size: .82rem; white-space: normal; } .nws__acts .btn .ico { flex: none; } }
/* v2.39: vários padrinhos (partilha) e recuperar um apadrinhamento terminado por atraso */
.ap-card__tag--partilha { background: #e7f0fb; color: #2b6cb0; }
.ap-card__tag--partilha .ico { color: #2b6cb0; }
.apx-buy__partilha { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #e7f0fb; font-size: .84rem; line-height: 1.5; color: var(--ink); }
.apx-buy__partilha .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: #2b6cb0; }
.apx-buy__partilha strong { color: #2b6cb0; }
.apf-partilha { display: flex; gap: 7px; align-items: flex-start; margin-top: 6px; font-size: .76rem; line-height: 1.4; color: var(--text); cursor: pointer; }
.apf-partilha input { margin: 1px 0 0; accent-color: var(--primary); }
.apf-partilha--ja { cursor: default; color: #2b6cb0; font-weight: 600; }
.apf-partilha--ja .ico { width: 13px; height: 13px; flex: none; margin-top: 1px; }
.apx-row__rec { grid-column: 1 / -1; justify-self: start; }
.ap-card__partilha { display: inline-flex; align-items: center; gap: 6px; margin: 2px auto 6px; padding: 4px 11px; border-radius: 999px; background: #e7f0fb; color: #2b6cb0 !important; font-size: .76rem !important; font-weight: 700; }
.ap-card__partilha .ico { width: 13px; height: 13px; }

/* v2.40: selo "já tem padrinho" na borda da fotografia (com explicação); ficha de criança já apadrinhada; partilha */
.ap-card__fw { position: relative; width: min(170px, 72%); margin: 0 auto 16px; }
.ap-card__fw .ap-card__photo { width: 100%; margin: 0; }
.ap-selo { position: absolute; top: 2px; right: -4px; z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #2b6cb0; color: #fff; box-shadow: 0 0 0 3px var(--surface), 0 8px 16px -6px rgba(43, 108, 176, .6); cursor: help; outline: none; }
.ap-selo > .ico { width: 18px; height: 18px; }
.ap-selo > b { position: absolute; right: -4px; bottom: -4px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--primary); color: #fff; font-size: .66rem; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--surface); }
.ap-selo__tip { position: absolute; right: 0; top: calc(100% + 10px); width: 230px; padding: 10px 12px; border-radius: 10px; background: var(--dark); color: #fff; font-size: .78rem; font-weight: 500; line-height: 1.45; text-align: left; box-shadow: 0 16px 30px -14px rgba(0, 0, 0, .5); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .2s, transform .2s; pointer-events: none; }
.ap-selo:hover .ap-selo__tip, .ap-selo:focus .ap-selo__tip { opacity: 1; visibility: visible; transform: none; }
.ap-frame { position: relative; }
.ap-selo--ficha { top: -12px; right: -12px; width: 52px; height: 52px; }
.ap-selo--ficha > .ico { width: 22px; height: 22px; }
.apx-ja { display: flex; gap: 14px; align-items: flex-start; margin-top: 8px; padding: 18px 20px; border-radius: 16px; background: color-mix(in srgb, var(--primary) 7%, var(--surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 22%, var(--border)); }
.apx-ja__ico { width: 44px; height: 44px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--primary); color: #fff; }
.apx-ja__ico .ico { width: 20px; height: 20px; }
.apx-ja strong { font-size: 1.05rem; color: var(--ink); }
.apx-ja p { margin: 4px 0 12px; font-size: .9rem; }
.apx__partilha { margin: 0; padding: 12px 14px; border-radius: 12px; background: #f1f6fd; box-shadow: inset 0 0 0 1px #d7e5f7; }
.apx__partilha .pf-switch { display: flex; gap: 12px; align-items: flex-start; margin: 0; cursor: pointer; }
.apx__partilha .pf-switch > span:last-child { display: grid; gap: 2px; }
.apx__partilha strong { font-size: .88rem; color: var(--ink); }
.apx__partilha small { font-size: .78rem; color: var(--text); }
.apx__partilha--info { display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; color: #2b6cb0; }
.apx__partilha--info .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; }

/* v2.42: página Notícias — destaque, filtros com contagem, pesquisa e cartões (estilo "cartão" e "sobreposto") */
.nwl { background: var(--bg); }
.nwc__data { position: absolute; left: 20px; top: 20px; z-index: 2; display: grid; text-align: center; min-width: 50px; font-weight: 700; line-height: 1; box-shadow: 0 8px 18px -10px rgba(0, 0, 0, .5); }
.nwc__data b { display: block; padding: 8px 10px 6px; background: var(--primary); color: #fff; font-size: 1.15rem; }
.nwc__data span { display: block; padding: 6px 10px; background: #fff; color: #1e2436; font-size: .72rem; letter-spacing: .06em; }
.nwc__area { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 4px; background: var(--primary); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .02em; line-height: 1.3; }

/* destaque */
.nwf { display: grid; grid-template-columns: 1.15fr 1fr; margin-bottom: 56px; background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.nwf__img { position: relative; display: block; min-height: 380px; overflow: hidden; background: var(--soft); }
.nwf__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.nwf:hover .nwf__img img { transform: scale(1.04); }
.nwf__body { padding: 44px 46px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; justify-content: center; }
.nwf__kicker { margin: 0; display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-family: var(--hand); font-size: 1.15rem; }
.nwf__kicker .ico { width: 15px; height: 15px; }
.nwf__title { margin: 0; font-size: clamp(1.4rem, 2.3vw, 1.95rem); line-height: 1.25; }
.nwf__title a { color: var(--ink); }
.nwf__title a:hover { color: var(--primary); }
.nwf__txt { margin: 0; font-size: 1rem; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.nwf__meta { margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .86rem; }
.nwf__meta span, .nwc__meta span, .nwc__foot span { display: inline-flex; align-items: center; gap: 6px; }
.nwf__meta .ico, .nwc__meta .ico, .nwc__foot .ico { width: 15px; height: 15px; color: var(--primary); }

/* barra: filtros + pesquisa */
.nwl__bar { display: flex; gap: 16px 24px; align-items: center; justify-content: space-between; margin-bottom: 34px; }
.nwl__filtros { display: flex; gap: 8px; flex-wrap: wrap; min-width: 0; }
.nwl__chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px 9px 16px; border-radius: 40px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); font-size: .87rem; font-weight: 600; white-space: nowrap; transition: background .2s, color .2s, box-shadow .2s; }
.nwl__chip span { min-width: 22px; padding: 1px 7px; border-radius: 20px; background: var(--soft); color: var(--text); font-size: .74rem; text-align: center; }
.nwl__chip:hover { box-shadow: inset 0 0 0 1px var(--primary); color: var(--primary); }
.nwl__chip.is-active { background: var(--primary); box-shadow: none; color: #fff; }
.nwl__chip.is-active span { background: rgba(255, 255, 255, .25); color: #fff; }
.nwl__busca { position: relative; flex: 0 0 280px; margin: 0; }
.nwl__busca .ico { position: absolute; left: 16px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--text); pointer-events: none; }
.nwl__busca input { width: 100%; height: 46px; padding: 0 16px 0 44px; border-radius: 40px; border: 0; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); font: inherit; font-size: .92rem; }
.nwl__busca input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.nwl__res { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: -14px 0 28px; font-size: .92rem; color: var(--ink); font-weight: 600; }
.nwl__res a { display: inline-flex; align-items: center; gap: 4px; font-size: .84rem; font-weight: 600; color: var(--primary); }
.nwl__res a .ico { width: 14px; height: 14px; }

/* grelha */
.nwl__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.nwc { position: relative; display: flex; flex-direction: column; min-width: 0; }
.nwc__img { position: relative; display: block; overflow: hidden; background: var(--soft); }
.nwc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.nwc:hover .nwc__img img { transform: scale(1.06); }
.nwc__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: .8rem; }
.nwc__title { margin: 0; font-size: 1.12rem; line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nwc__foot { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: .82rem; }
.nwc__foot a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--primary); white-space: nowrap; }
.nwc__foot a .ico { width: 15px; height: 15px; transition: transform .2s; }
.nwc__foot a:hover .ico { transform: translateX(3px); }

/* estilo "cartão": a caixa branca sobe sobre a fotografia */
.nwc--cartao .nwc__img { aspect-ratio: 16 / 11; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.nwc--cartao .nwc__body { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; gap: 12px; margin: -46px 16px 0; padding: 22px 24px 20px; background: var(--surface); border-radius: var(--radius); box-shadow: 0 18px 40px -24px rgba(20, 24, 40, .35); transition: transform .3s var(--ease), box-shadow .3s; }
.nwc--cartao:hover .nwc__body { transform: translateY(-4px); box-shadow: 0 26px 46px -24px rgba(20, 24, 40, .45); }
.nwc--cartao .nwc__title a { color: var(--ink); }
.nwc--cartao .nwc__title a:hover { color: var(--primary); }
.nwc--cartao .nwc__txt { margin: 0; flex: 1; font-size: .92rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nwc--cartao .nwc__foot { padding-top: 14px; border-top: 1px solid var(--border); }

/* estilo "sobreposto": título por cima da fotografia */
.nwc--sobreposto { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4 / 4.4; background: #1e2436; }
.nwc--sobreposto .nwc__img { position: absolute; inset: 0; }
.nwc--sobreposto .nwc__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 24, 40, 0) 30%, rgba(20, 24, 40, .55) 58%, rgba(20, 24, 40, .94) 100%); }
.nwc--sobreposto .nwc__body { position: relative; z-index: 1; margin-top: auto; padding: 26px; display: flex; flex-direction: column; gap: 12px; color: rgba(255, 255, 255, .85); }
.nwc--sobreposto .nwc__title { font-size: 1.22rem; }
.nwc--sobreposto .nwc__title a { color: #fff; }
.nwc--sobreposto .nwc__meta .ico, .nwc--sobreposto .nwc__foot .ico { color: #fff; }
.nwc--sobreposto .nwc__foot { padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .2); }
.nwc--sobreposto .nwc__foot a { color: #fff; }

/* sem resultados */
.nwl__vazio { max-width: 520px; margin: 20px auto; text-align: center; padding: 50px 30px; background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.nwl__vazio > span { width: 64px; height: 64px; margin: 0 auto 14px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.nwl__vazio > span .ico { width: 28px; height: 28px; }
.nwl__vazio h3 { font-size: 1.15rem; margin-bottom: 6px; }
.nwl__vazio p { margin-bottom: 18px; }

@media (max-width: 1080px) {
  .nwl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nwl__bar { flex-direction: column-reverse; align-items: stretch; }
  .nwl__busca { flex: none; }
  .nwf { grid-template-columns: 1fr 1fr; }
  .nwf__body { padding: 32px; }
}
@media (max-width: 760px) {
  .nwf { grid-template-columns: 1fr; margin-bottom: 40px; }
  .nwf__img { min-height: 0; aspect-ratio: 16 / 10; }
  .nwf__body { padding: 24px 22px 28px; }
  .nwl__filtros { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .nwl__filtros::-webkit-scrollbar { display: none; }
  .nwl__grid { grid-template-columns: 1fr; gap: 26px; }
  .nwc--sobreposto { aspect-ratio: 4 / 4.2; }
}

/* v2.43: Notícias — cabeçalho editorial, modelos Revista (mosaico) e Jornal (lista + barra lateral), carregar mais */
.nwh { padding: 40px 0 22px; background: var(--surface); border-bottom: 1px solid var(--border); position: relative; overflow: hidden; }
.nwh::after { content: ""; position: absolute; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, var(--primary-soft), transparent 70%); pointer-events: none; }
.nwh__in { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px 60px; }
.nwh__txt { max-width: 640px; }
.nwh__kicker { margin: 0 0 10px; display: inline-flex; align-items: center; gap: 10px; color: var(--primary); font-family: var(--hand); font-size: 1.25rem; }
.nwh__kicker span { width: 26px; height: 2px; background: var(--primary); }
.nwh__title { margin: 0 0 12px; font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.05; letter-spacing: -.02em; color: var(--ink); }
.nwh__lead { margin: 0; font-size: 1.06rem; max-width: 560px; }
.nwh__stats { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; flex: none; }
.nwh__stats li { padding: 4px 26px; border-left: 1px solid var(--border); display: grid; gap: 4px; }
.nwh__stats li:first-child { border-left: 0; padding-left: 0; }
.nwh__stats b { font-size: 1.55rem; line-height: 1; color: var(--ink); white-space: nowrap; }
.nwh__stats span { font-size: .8rem; color: var(--text); white-space: nowrap; }
.nwl { padding-top: 16px; }

/* Revista: mosaico */
.nwm { display: grid; grid-template-columns: 1.45fr 1fr; grid-template-rows: 1fr 1fr; gap: 22px; margin-bottom: 56px; min-height: 560px; }
.nwm[hidden] { display: none; }
.nwm__item { position: relative; overflow: hidden; border-radius: var(--radius-lg); background: #1e2436; display: flex; min-height: 260px; isolation: isolate; }
.nwm__item--big { grid-row: span 2; }
.nwm__item > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s var(--ease); }
.nwm__item::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 24, 40, .05) 25%, rgba(20, 24, 40, .6) 60%, rgba(20, 24, 40, .95) 100%); }
.nwm__item:hover > img { transform: scale(1.05); }
.nwm__body { margin-top: auto; padding: 26px 28px; display: grid; gap: 10px; color: rgba(255, 255, 255, .85); width: 100%; }
.nwm__item--big .nwm__body { padding: 36px 38px; gap: 14px; }
.nwm__flag { margin: 0; display: inline-flex; align-items: center; gap: 6px; font-family: var(--hand); font-size: 1.15rem; color: #ffd36b; }
.nwm__flag .ico { width: 15px; height: 15px; }
.nwm__title { margin: 0; font-size: 1.2rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nwm__item--big .nwm__title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.2; }
.nwm__title a { color: #fff; }
.nwm__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.nwm__txt { margin: 0; font-size: .98rem; max-width: 560px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nwm__foot { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: .82rem; }
.nwm__foot span, .nwm .nwc__meta span { display: inline-flex; align-items: center; gap: 6px; }
.nwm .ico { width: 15px; height: 15px; }
.nwm .nwc__meta { color: #fff; }

/* zona: carregar mais, estado de carregamento */
.nwl__zona { transition: opacity .2s; }
.nwl__zona.is-loading { opacity: .5; pointer-events: none; }
.nwl__busca .nwl__spin { position: absolute; right: 16px; top: 50%; width: 16px; height: 16px; margin-top: -8px; border-radius: 50%; border: 2px solid var(--border); border-top-color: var(--primary); opacity: 0; }
.nwl__zona.is-loading .nwl__spin { opacity: 1; animation: spin .7s linear infinite; }
.nwl__mais { margin: 46px auto 0; max-width: 340px; display: grid; justify-items: center; gap: 12px; text-align: center; }
.nwl__conta { margin: 0; font-size: .86rem; color: var(--text); }
.nwl__barra { width: 180px; height: 4px; border-radius: 4px; background: var(--border); overflow: hidden; }
.nwl__barra i { display: block; height: 100%; background: var(--primary); border-radius: 4px; transition: width .5s var(--ease); }
.nwl__btn { gap: 10px; margin-top: 6px; }
.nwl__btn .ico { width: 16px; height: 16px; }
.nwl__btn.is-loading .ico { animation: spin .8s linear infinite; }
.nwl__btn.is-loading { pointer-events: none; opacity: .75; }
.is-new { animation: nwEntra .5s var(--ease) both; }
@keyframes nwEntra { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* Jornal: lista em linhas + barra lateral */
.nwj { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 50px; align-items: start; }
.nwj__lista { display: grid; gap: 0; }
.nwr { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 30px; padding: 30px 0; border-bottom: 1px solid var(--border); align-items: center; }
.nwr:first-child { padding-top: 0; }
.nwr__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-lg); background: var(--soft); }
.nwr__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.nwr:hover .nwr__img img { transform: scale(1.06); }
.nwr .nwc__data { left: 14px; top: 14px; }
.nwr__body { display: grid; gap: 10px; }
.nwr__title { margin: 0; font-size: 1.32rem; line-height: 1.3; }
.nwr__title a { color: var(--ink); }
.nwr__title a:hover { color: var(--primary); }
.nwr__txt { margin: 0; font-size: .95rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nwr .nwc__foot { justify-content: flex-start; gap: 24px; }
.nwj__side { position: sticky; top: calc(var(--header-h, 90px) + 20px); display: grid; gap: 22px; }
.nwj__box { padding: 26px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.nwj__box h3 { font-size: 1.05rem; margin: 0 0 14px; }
.nwj__box p { font-size: .9rem; margin: 0 0 16px; }
.nwj__areas { list-style: none; margin: 0; padding: 0; display: grid; }
.nwj__areas a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--border); color: var(--ink); font-size: .92rem; font-weight: 600; }
.nwj__areas li:last-child a { border-bottom: 0; }
.nwj__areas a span { min-width: 26px; padding: 1px 8px; border-radius: 20px; background: var(--soft); font-size: .76rem; text-align: center; color: var(--text); }
.nwj__areas a:hover, .nwj__areas a.is-active { color: var(--primary); }
.nwj__areas a.is-active span { background: var(--primary); color: #fff; }
.nwj__box--news { text-align: left; }
.nwj__ico { width: 46px; height: 46px; margin-bottom: 12px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.nwj__ico .ico { width: 20px; height: 20px; }
.nwj__nl { display: grid; gap: 10px; }
.nwj__nl input[type="email"] { height: 46px; padding: 0 14px; border-radius: var(--radius); border: 0; background: var(--bg); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); font: inherit; font-size: .92rem; }
.nwj__nl input[type="email"]:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.nwj__box--cta { background: #1e2436; box-shadow: none; color: rgba(255, 255, 255, .8); }
.nwj__box--cta h3 { color: #fff; }
.nwl--jornal .nwl__bar .nwl__filtros { display: none; }
.nwl--jornal .nwl__bar { justify-content: flex-end; }
.nwl--jornal .nwl__busca { flex: 1 1 auto; max-width: none; }

@media (max-width: 1080px) {
  .nwh__in { flex-direction: column; align-items: flex-start; }
  .nwm { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; min-height: 0; }
  .nwm__item--big { grid-column: span 2; grid-row: auto; min-height: 420px; }
  .nwj { grid-template-columns: 1fr; }
  .nwj__side { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nwj__side .nwj__box:first-child { display: none; }
  .nwl--jornal .nwl__bar .nwl__filtros { display: flex; }
}
@media (max-width: 760px) {
  .nwh { padding: 28px 0 18px; }
  .nwh__stats { width: 100%; justify-content: space-between; }
  .nwh__stats li { padding: 0 12px; }
  .nwh__stats b { font-size: 1.2rem; }
  .nwh__stats span { font-size: .72rem; white-space: normal; }
  .nwl { padding-top: 12px; }
  .nwm { grid-template-columns: 1fr; gap: 16px; margin-bottom: 40px; }
  .nwm__item--big { grid-column: auto; min-height: 470px; }
  .nwm__item { min-height: 330px; }
  .nwm__item .nwc__data { left: 16px; top: 16px; }
  .nwm__body { padding: 90px 20px 22px; } /* o texto nunca fica por baixo do selo da data */
  .nwm__title { font-size: 1.12rem; }
  .nwh__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nwm__item--big .nwm__body { padding: 96px 22px 24px; }
  .nwr { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
  .nwj__side { grid-template-columns: 1fr; }
}

/* v2.44: Notícias — barra fixa, arquivo por ano, cartões "fantasma" ao carregar, fim da lista e faixa da newsletter */
.nwl__bar { position: sticky; top: var(--header-h); z-index: 20; margin: 0 -16px 30px; padding: 12px 16px; background: var(--bg); border-radius: 0 0 var(--radius-lg) var(--radius-lg); transition: box-shadow .25s, background .25s; }
.nwl__bar.is-stuck { background: color-mix(in srgb, var(--bg) 92%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 14px 28px -20px rgba(20, 24, 40, .35); }
.nwl__ferr { display: flex; gap: 10px; align-items: center; flex: none; margin: 0; }
.nwl__busca { position: relative; display: block; width: 260px; flex: none; }
.nwl__ano { position: relative; display: block; margin: 0; }
.nwl__ano .ico { position: absolute; left: 14px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--primary); pointer-events: none; }
.nwl__ano select { height: 46px; padding: 0 34px 0 38px; border-radius: 40px; border: 0; background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center; box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; -webkit-appearance: none; appearance: none; }
.nwl__ano select:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }

/* cartões "fantasma" enquanto chegam as notícias */
.nwk { border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.nwk i { display: block; aspect-ratio: 16 / 11; }
.nwk > div { padding: 22px 24px; display: grid; gap: 12px; }
.nwk b { display: block; height: 12px; border-radius: 6px; }
.nwk b:nth-child(1) { width: 40%; } .nwk b:nth-child(2) { width: 92%; height: 16px; } .nwk b:nth-child(3) { width: 70%; }
.nwk i, .nwk b { background: linear-gradient(90deg, var(--soft) 0%, color-mix(in srgb, var(--soft) 50%, var(--surface)) 50%, var(--soft) 100%); background-size: 200% 100%; animation: nwBrilho 1.2s linear infinite; }
@keyframes nwBrilho { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.nwj__lista .nwk { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 30px; align-items: center; margin: 30px 0 0; background: none; box-shadow: none; border-radius: 0; }
.nwj__lista .nwk i { aspect-ratio: 4 / 3; border-radius: var(--radius-lg); }
.nwj__lista .nwk > div { padding: 0; }
.nwl--jornal .nwj__side { top: calc(var(--header-h) + 90px); }

/* faixa da newsletter no fim (modelo Revista) */
.nwn { margin-top: 64px; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 420px); gap: 22px 28px; align-items: center; padding: 30px 34px; border-radius: var(--radius-lg); background: #1e2436; color: rgba(255, 255, 255, .78); position: relative; overflow: hidden; }
.nwn::after { content: ""; position: absolute; right: -60px; bottom: -90px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--primary) 45%, transparent), transparent 70%); pointer-events: none; }
.nwn__ico { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; }
.nwn__ico .ico { width: 24px; height: 24px; }
.nwn__txt h2 { margin: 0 0 4px; font-size: 1.3rem; color: #fff; }
.nwn__txt p { margin: 0; font-size: .92rem; }
.nwn__form { position: relative; z-index: 1; display: flex; gap: 8px; margin: 0; }
.nwn__form input[type="email"] { flex: 1; min-width: 0; height: 48px; padding: 0 16px; border-radius: var(--radius); border: 0; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); color: #fff; font: inherit; font-size: .92rem; }
.nwn__form input[type="email"]::placeholder { color: rgba(255, 255, 255, .55); }
.nwn__form input[type="email"]:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.nwn__form .btn { height: 48px; }

/* modo escuro */
:root[data-theme="dark"] .nwc__data span { background: #f3f0ec; }
:root[data-theme="dark"] .nwj__box--cta, :root[data-theme="dark"] .nwn { background: color-mix(in srgb, var(--surface) 70%, #000); box-shadow: inset 0 0 0 1px var(--border); }

@media (max-width: 1080px) {
  .nwl__ferr { width: 100%; }
  .nwl__busca { flex: 1; width: auto; }
  .nwn { grid-template-columns: auto minmax(0, 1fr); }
  .nwn__form { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .nwl__bar { margin-bottom: 22px; padding: 10px 16px; }
  .nwl__ano select { padding-right: 30px; }
  .nwj__lista .nwk { grid-template-columns: 1fr; gap: 14px; }
  .nwn { grid-template-columns: 1fr; padding: 26px 22px; text-align: left; margin-top: 44px; }
  .nwn__form { flex-direction: column; }
}

/* barra colada ao topo: compacta, numa linha (as áreas deslizam) */
.nwl__bar.is-stuck { padding-top: 8px; padding-bottom: 8px; }
.nwl__bar.is-stuck .nwl__filtros { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
.nwl__bar.is-stuck .nwl__filtros::-webkit-scrollbar { display: none; }
.nwl__bar.is-stuck .nwl__chip { padding-top: 7px; padding-bottom: 7px; font-size: .84rem; }
.nwl__bar.is-stuck .nwl__busca input, .nwl__bar.is-stuck .nwl__ano select { height: 40px; }
@media (max-width: 1080px) {
  .nwl__bar.is-stuck { flex-direction: row; }
  .nwl__bar.is-stuck .nwl__ferr { display: none; } /* no telemóvel, colada só mostra as áreas */
}

/* v2.45: página de cada notícia (editorial) e comentários */
.nwp-prog { position: fixed; left: 0; right: 0; top: var(--header-h); height: 3px; z-index: 99; pointer-events: none; }
.nwp-prog i { display: block; height: 100%; width: 0; background: var(--primary); border-radius: 0 3px 3px 0; transition: width .1s linear; }
.nwp-head { padding: 40px 0 30px; background: var(--surface); }
.nwp-head__in { max-width: 920px; }
.nwp-head__topo { margin: 0 0 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.nwp-head__voltar { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 600; color: var(--text); }
.nwp-head__voltar:hover { color: var(--primary); }
.nwp-head__voltar .ico { width: 15px; height: 15px; }
a.nwc__area:hover { filter: brightness(.94); color: #fff; }
.nwp-head__title { margin: 0 0 16px; font-size: clamp(1.9rem, 4.2vw, 3.1rem); line-height: 1.12; letter-spacing: -.02em; color: var(--ink); }
.nwp-head__lead { margin: 0 0 24px; font-size: clamp(1.05rem, 1.6vw, 1.22rem); line-height: 1.6; color: var(--text); max-width: 780px; }
.nwp-head__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 30px; padding-top: 20px; border-top: 1px solid var(--border); }
.nwp-autor { display: inline-flex; align-items: center; gap: 12px; }
.nwp-autor img { width: 44px; height: 44px; border-radius: 50%; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--border); padding: 4px; }
.nwp-autor span { display: grid; line-height: 1.3; }
.nwp-autor strong { font-size: .95rem; color: var(--ink); }
.nwp-autor small { font-size: .82rem; color: var(--text); }
.nwp-head__dados { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: .88rem; }
.nwp-head__dados li, .nwp-head__dados a { display: inline-flex; align-items: center; gap: 6px; color: var(--text); }
.nwp-head__dados a:hover { color: var(--primary); }
.nwp-head__dados .ico { width: 16px; height: 16px; color: var(--primary); }
.nwp-foto { margin: 0 auto; padding-top: 6px; background: linear-gradient(var(--surface) 50%, transparent 50%); }
.nwp-foto img { display: block; width: 100%; max-height: 620px; object-fit: cover; border-radius: var(--radius-lg); box-shadow: 0 30px 60px -40px rgba(20, 24, 40, .5); }
.nwp-foto figcaption { margin-top: 10px; display: flex; align-items: flex-start; gap: 6px; font-size: .84rem; color: var(--text); }
.nwp-foto figcaption .ico { width: 15px; height: 15px; margin-top: 3px; flex: none; }

.nwp { padding-top: 48px; }
.nwp__grid { display: grid; grid-template-columns: 56px minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.nwp__rail { position: sticky; top: calc(var(--header-h) + 30px); display: grid; justify-items: center; gap: 10px; }
.nwp__rail > span { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--text); writing-mode: vertical-rl; transform: rotate(180deg); margin-bottom: 4px; }
.nwp__share { display: flex; gap: 8px; }
.nwp__share--col { flex-direction: column; }
.nwp__share a, .nwp__share button { position: relative; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 0; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.nwp__share .ico { width: 16px; height: 16px; }
.nwp__share a:hover, .nwp__share button:hover { background: var(--primary); color: #fff; box-shadow: none; }
.nwp__share button.is-ok { background: #1f9d63; color: #fff; box-shadow: none; }
.nwp__share button.is-ok::after { content: attr(data-dica); position: absolute; left: calc(100% + 8px); top: 50%; transform: translateY(-50%); white-space: nowrap; padding: 5px 10px; border-radius: 6px; background: var(--dark); color: #fff; font-size: .75rem; font-weight: 600; }
.nwp__partilha .nwp__share button.is-ok::after { left: 50%; top: auto; bottom: calc(100% + 8px); transform: translateX(-50%); }
.nwp__main { min-width: 0; }
.nwp__prose { font-size: 1.08rem; line-height: 1.85; color: var(--text); }
.nwp__prose > p:first-child { font-size: 1.2rem; line-height: 1.75; color: var(--ink); }
.nwp__prose > p:first-child::first-letter { float: left; font-size: 3.6em; line-height: .9; font-weight: 800; margin: 6px 12px 0 0; color: var(--primary); }
.nwp__prose img { border-radius: var(--radius); }
.nwp__video { margin-top: 30px; }
.nwp__gal { margin-top: 40px; }
.nwp__gal h2 { display: flex; align-items: center; gap: 10px; font-size: 1.25rem; margin: 0 0 14px; }
.nwp__gal h2 .ico { width: 20px; height: 20px; color: var(--primary); }
.nwp__gal h2 small { font-size: .82rem; font-weight: 500; color: var(--text); }
.nwp__fotos { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nwp__fotos--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.nwp__fotos--3 a:first-child { grid-row: span 2; }
.nwp__fotos--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nwp__fotos--1 { grid-template-columns: 1fr; }
.nwp__fotos a { position: relative; display: block; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 3; background: var(--soft); }
.nwp__fotos--3 a:first-child { aspect-ratio: auto; }
.nwp__fotos img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.nwp__fotos a:hover img { transform: scale(1.06); }
.nwp__fotos a > span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(20, 24, 40, .55); color: #fff; font-size: 1.6rem; font-weight: 800; }
.nwp__fim { margin-top: 40px; padding: 22px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
.nwp__tags { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nwp__tags > span, .nwp__partilha > span { font-size: .82rem; font-weight: 700; color: var(--ink); }
.nwp__tags a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 30px; background: var(--soft); color: var(--ink); font-size: .84rem; font-weight: 600; }
.nwp__tags a .ico { width: 14px; height: 14px; color: var(--primary); }
.nwp__tags a:hover { background: var(--primary); color: #fff; }
.nwp__tags a:hover .ico { color: #fff; }
.nwp__partilha { display: flex; align-items: center; gap: 12px; }
.nwp__partilha .nwp__share a, .nwp__partilha .nwp__share button { width: 36px; height: 36px; }
.nwp-org { margin-top: 34px; display: flex; gap: 22px; align-items: flex-start; padding: 26px 28px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.nwp-org > img { width: 72px; height: 72px; flex: none; border-radius: 50%; object-fit: contain; background: #fff; padding: 8px; box-shadow: 0 0 0 1px var(--border); }
.nwp-org__k { margin: 0; font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--primary); }
.nwp-org h3 { margin: 2px 0 8px; font-size: 1.12rem; }
.nwp-org p { margin: 0 0 10px; font-size: .93rem; }
.nwp-org__links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 !important; }
.nwp-org__links a { display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 700; }
.nwp-org__links .ico { width: 15px; height: 15px; }
.nwp-pn { margin-top: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nwp-pn__item { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); transition: box-shadow .2s, transform .2s; }
.nwp-pn__item:hover { box-shadow: inset 0 0 0 1px var(--primary), 0 14px 30px -22px rgba(20, 24, 40, .5); transform: translateY(-2px); }
.nwp-pn__item img { width: 76px; height: 76px; flex: none; border-radius: var(--radius); object-fit: cover; }
.nwp-pn__item span { display: grid; gap: 4px; min-width: 0; }
.nwp-pn__item small { display: inline-flex; align-items: center; gap: 4px; font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--primary); }
.nwp-pn__item small .ico { width: 13px; height: 13px; }
.nwp-pn__item strong { font-size: .93rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nwp-pn__item--next { flex-direction: row-reverse; text-align: right; }
.nwp-pn__item--next small { justify-content: flex-end; }
.nwp__side { position: sticky; top: calc(var(--header-h) + 30px); display: grid; gap: 22px; }
.nwp-mini { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 16px; }
.nwp-mini a { display: flex; gap: 12px; align-items: flex-start; color: var(--ink); }
.nwp-mini img { width: 72px; height: 60px; flex: none; border-radius: var(--radius); object-fit: cover; }
.nwp-mini span { display: grid; gap: 4px; min-width: 0; }
.nwp-mini strong { font-size: .88rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nwp-mini a:hover strong { color: var(--primary); }
.nwp-mini small { display: inline-flex; align-items: center; gap: 5px; font-size: .76rem; color: var(--text); }
.nwp-mini small .ico { width: 13px; height: 13px; }
.nwp-mini__todas { display: inline-flex; align-items: center; gap: 6px; font-size: .86rem; font-weight: 700; }
.nwp-mini__todas .ico { width: 14px; height: 14px; }
.nwp-rel { background: var(--soft); }
.nwp-rel__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 34px; }
.nwp-rel__head h2 { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2rem); }

/* comentários */
.cms { margin-top: 50px; }
.cms__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.cms__head h2 { margin: 0; display: inline-flex; align-items: center; gap: 10px; font-size: 1.5rem; }
.cms__head h2 span { min-width: 30px; padding: 2px 10px; border-radius: 30px; background: var(--primary); color: #fff; font-size: .85rem; text-align: center; }
.cms__lista { display: grid; gap: 18px; }
.cms__vazio, .cms__fechado { margin: 0 0 24px; padding: 20px 22px; display: flex; align-items: center; gap: 10px; border-radius: var(--radius-lg); background: var(--soft); color: var(--text); font-size: .95rem; }
.cms__vazio .ico, .cms__fechado .ico { width: 20px; height: 20px; color: var(--primary); flex: none; }
.cm { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 14px; }
.cm__av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: .95rem; color: #fff; overflow: hidden; }
.cm__av img { width: 100%; height: 100%; object-fit: contain; background: #fff; padding: 5px; }
.cm__av--0 { background: #fff; box-shadow: 0 0 0 2px var(--primary); }
.cm__av--1 { background: #e36955; } .cm__av--2 { background: #2b6cb0; } .cm__av--3 { background: #1f9d63; }
.cm__av--4 { background: #7b5cd6; } .cm__av--5 { background: #d69e2e; } .cm__av--6 { background: #4a5568; }
.cm__corpo { min-width: 0; padding: 16px 20px; border-radius: 4px var(--radius-lg) var(--radius-lg) var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.cm__topo { margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.cm__nome { font-size: .95rem; color: var(--ink); }
.cm__topo time { margin-left: auto; font-size: .78rem; color: var(--text); }
.cm__selo { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 20px; background: var(--primary-soft); color: var(--primary); font-size: .72rem; font-weight: 700; }
.cm__selo .ico { width: 12px; height: 12px; }
.cm__selo--pend { background: #fff6e0; color: #a86b00; }
.cm__txt { font-size: .96rem; line-height: 1.7; color: var(--text); overflow-wrap: anywhere; }
.cm__resp { margin-top: 8px; padding: 0; border: 0; background: none; display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: .84rem; font-weight: 700; color: var(--primary); cursor: pointer; }
.cm__resp .ico { width: 14px; height: 14px; }
.cm__respostas { margin-top: 16px; display: grid; gap: 14px; padding-left: 16px; border-left: 2px solid var(--border); }
.cm--resp { grid-template-columns: 36px minmax(0, 1fr); gap: 10px; }
.cm--resp .cm__av { width: 36px; height: 36px; font-size: .8rem; }
.cm--resp .cm__corpo { padding: 12px 16px; background: var(--bg); }
.cm--equipa > .cm__corpo { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 35%, var(--border)); background: color-mix(in srgb, var(--primary) 5%, var(--surface)); }
.cm--pend > .cm__corpo { box-shadow: inset 0 0 0 1px #f0d48a; }

.cmf { margin-top: 34px; padding: 30px 32px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 24px 50px -36px rgba(20, 24, 40, .45), inset 0 0 0 1px var(--border); display: grid; gap: 16px; scroll-margin-top: calc(var(--header-h) + 20px); }
.cmf__head h3 { margin: 0 0 6px; font-size: 1.3rem; }
.cmf__head p { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: .88rem; color: var(--text); }
.cmf__head p .ico { width: 16px; height: 16px; flex: none; margin-top: 3px; color: #1f9d63; }
.cmf__msg:empty { display: none; }
.cmf__msg .alert { margin: 0; }
.cmf__resp { margin: 0; display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: var(--radius); background: var(--primary-soft); color: var(--ink); font-size: .88rem; font-weight: 600; }
.cmf__resp .ico { width: 15px; height: 15px; color: var(--primary); }
.cmf__resp button { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; font: inherit; font-size: .82rem; color: var(--text); cursor: pointer; }
.cmf__modo { display: inline-flex; padding: 4px; gap: 4px; border-radius: 40px; background: var(--soft); justify-self: start; }
.cmf__modo label { margin: 0; cursor: pointer; }
.cmf__modo input { position: absolute; opacity: 0; pointer-events: none; }
.cmf__modo span { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 40px; font-size: .88rem; font-weight: 600; color: var(--text); transition: background .2s, color .2s, box-shadow .2s; }
.cmf__modo span .ico { width: 15px; height: 15px; }
.cmf__modo input:checked + span { background: var(--surface); color: var(--ink); box-shadow: 0 4px 12px -6px rgba(20, 24, 40, .35); }
.cmf__modo input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.cmf__id { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cmf__id[hidden] { display: none; }
.cmf__campo { margin: 0; display: grid; gap: 6px; position: relative; }
.cmf__campo > span { font-size: .85rem; font-weight: 700; color: var(--ink); }
.cmf__campo > span small { font-weight: 500; color: var(--text); }
.cmf__campo input, .cmf__campo textarea { width: 100%; padding: 12px 14px; border-radius: var(--radius); border: 0; background: var(--input, var(--bg)); box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); font: inherit; font-size: .95rem; }
.cmf__campo textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.cmf__campo input:focus, .cmf__campo textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.cmf__conta { justify-self: end; font-size: .76rem; color: var(--text); }
.cmf__anon { margin: 0; display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: var(--radius); background: var(--soft); font-size: .88rem; }
.cmf__anon .ico { width: 16px; height: 16px; color: var(--primary); flex: none; }
.cmf__avisar { margin: 0; display: flex; align-items: center; gap: 10px; font-size: .9rem; cursor: pointer; }
.cmf__avisar[hidden], .cmf__anon[hidden] { display: none; }
.cmf__avisar input { width: 18px; height: 18px; accent-color: var(--primary); }
.cmf__envio { display: flex; justify-content: flex-end; }
.cmf__envio .btn.is-busy { opacity: .7; pointer-events: none; }
.cmf .seg-cap { margin: 0; }

@media (max-width: 1200px) {
  .nwp__grid { grid-template-columns: 48px minmax(0, 1fr) 280px; gap: 30px; }
}
@media (max-width: 1080px) {
  .nwp__grid { grid-template-columns: minmax(0, 1fr); }
  .nwp__rail { display: none; }
  .nwp__side { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nwp__side .nwj__box:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .nwp-head { padding: 26px 0 22px; }
  .nwp-head__meta { flex-direction: column; align-items: flex-start; }
  .nwp { padding-top: 30px; }
  .nwp__prose { font-size: 1.02rem; }
  .nwp__prose > p:first-child { font-size: 1.08rem; }
  .nwp__fotos--4 { grid-template-columns: 1fr 1fr; }
  .nwp-pn { grid-template-columns: 1fr; }
  .nwp-org { flex-direction: column; padding: 22px; }
  .nwp__side { grid-template-columns: 1fr; }
  .nwp-rel__head { flex-direction: column; align-items: flex-start; }
  .cmf { padding: 22px 18px; }
  .cmf__id { grid-template-columns: 1fr; }
  .cmf__modo { justify-self: stretch; }
  .cmf__modo label { flex: 1; }
  .cmf__modo span { justify-content: center; width: 100%; padding: 9px 10px; }
  .cm { grid-template-columns: 38px minmax(0, 1fr); gap: 10px; }
  .cm__av { width: 38px; height: 38px; font-size: .82rem; }
  .cm__corpo { padding: 14px 16px; }
  .cm__respostas { padding-left: 10px; }
}
:root[data-theme="dark"] .cm__selo--pend { background: #3a2f12; color: #f0c45a; }
.cmf__resp[hidden], .cms__vazio[hidden] { display: none; }

/* v2.45: galerias e citações dentro do texto (botões "Galeria" e "Citação" do editor) */
.prose .prose-gal { margin: 1.8em 0; }
.prose-gal__grelha { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prose-gal--3 .prose-gal__grelha { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.prose-gal--3 .prose-gal__grelha a:first-child { grid-row: span 2; aspect-ratio: auto; }
.prose-gal--4 .prose-gal__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prose-gal--5 .prose-gal__grelha { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.prose-gal--5 .prose-gal__grelha a { grid-column: span 2; }
.prose-gal--5 .prose-gal__grelha a:nth-child(-n+2) { grid-column: span 3; aspect-ratio: 16 / 10; }
.prose-gal__grelha a { position: relative; display: block; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 3; background: var(--soft); cursor: zoom-in; }
.prose-gal__grelha a[hidden] { display: none; }
.prose .prose-gal__grelha img { width: 100%; height: 100%; margin: 0; object-fit: cover; border-radius: 0; transition: transform .6s var(--ease); }
.prose-gal__grelha a:hover img { transform: scale(1.05); }
.prose-gal__mais { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(20, 24, 40, .55); color: #fff; font-size: 1.6rem; font-weight: 800; }
.prose figcaption { margin-top: 10px; font-size: .86rem; color: var(--text); text-align: center; font-style: italic; }
.prose figure:not(.prose-gal) { margin: 1.8em 0; }
.prose figure:not(.prose-gal) img { border-radius: var(--radius); }
.prose blockquote { position: relative; margin: 2em 0; padding: 26px 28px 24px 70px; border: 0; border-radius: var(--radius-lg); background: var(--soft); color: var(--ink); font-size: 1.15rem; line-height: 1.65; font-style: normal; }
.prose blockquote::before { content: "\201C"; position: absolute; left: 20px; top: 8px; font-family: Georgia, serif; font-size: 4.2rem; line-height: 1; color: var(--primary); }
.prose blockquote p { margin: 0 0 .4em; font-style: italic; }
.prose blockquote p:last-of-type { margin-bottom: 0; }
.prose blockquote cite { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-size: .9rem; font-style: normal; font-weight: 700; color: var(--ink); }
.prose blockquote cite::before { content: ""; width: 26px; height: 2px; background: var(--primary); }
@media (max-width: 760px) {
  .prose blockquote { padding: 22px 20px 20px 54px; font-size: 1.05rem; }
  .prose blockquote::before { left: 12px; font-size: 3.4rem; }
  .prose-gal--5 .prose-gal__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prose-gal--5 .prose-gal__grelha a, .prose-gal--5 .prose-gal__grelha a:nth-child(-n+2) { grid-column: auto; aspect-ratio: 4 / 3; }
}

/* v2.45.1: faixa da newsletter (Notícias) no telemóvel — campo com altura certa, botão do mesmo tamanho; letra de 16px
   nos campos (o iPhone deixa de aproximar a página ao tocar) */
@media (max-width: 760px) {
  .nwn { gap: 14px; padding: 24px 20px 22px; }
  .nwn__ico { width: 46px; height: 46px; }
  .nwn__ico .ico { width: 20px; height: 20px; }
  .nwn__txt h2 { font-size: 1.18rem; line-height: 1.3; }
  .nwn__txt p { font-size: .9rem; line-height: 1.55; }
  .nwn__form { flex-direction: column; gap: 10px; margin-top: 4px; }
  .nwn__form input[type="email"] { flex: none; width: 100%; height: 52px; padding: 0 16px; font-size: 16px; border-radius: 12px; background: rgba(255, 255, 255, .12); }
  .nwn__form .btn { width: 100%; height: 52px; border-radius: 12px; font-size: 1rem; justify-content: center; }
  .nwj__nl input[type="email"], .cmf__campo input, .cmf__campo textarea, .nwl__busca input, .nwl__ano select { font-size: 16px; }
}

/* v2.45.2: notícia — caixa "Próximos eventos" na barra lateral */
.nwp-ev h3 { display: flex; align-items: center; gap: 8px; }
.nwp-ev h3 .ico { width: 18px; height: 18px; color: var(--primary); }
.nwp-ev ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 14px; }
.nwp-ev a:not(.nwp-mini__todas) { display: flex; gap: 14px; align-items: flex-start; color: var(--ink); }
.nwp-ev__data { width: 54px; flex: none; display: grid; text-align: center; border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px var(--border); line-height: 1; }
.nwp-ev__data b { display: block; padding: 8px 0 6px; background: var(--primary); color: #fff; font-size: 1.2rem; }
.nwp-ev__data small { display: block; padding: 5px 0; background: var(--surface); font-size: .7rem; font-weight: 700; letter-spacing: .06em; color: var(--ink); }
.nwp-ev__data.is-passado b { background: #8a8f9c; }
.nwp-ev__txt { display: grid; gap: 4px; min-width: 0; }
.nwp-ev__txt strong { font-size: .9rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nwp-ev a:hover strong { color: var(--primary); }
.nwp-ev__txt small { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; color: var(--text); }
.nwp-ev__txt small .ico { width: 13px; height: 13px; flex: none; }
.nwp-ev__txt em { font-style: normal; font-size: .72rem; font-weight: 700; color: #8a8f9c; text-transform: uppercase; letter-spacing: .05em; }
.cm__respostas[hidden] { display: none; } /* sem respostas: sem espaço vazio em baixo */
@media (max-width: 760px) {
  /* respostas com mais largura no telemóvel: sem avatar, a linha à esquerda mostra a conversa */
  .cm { grid-template-columns: 34px minmax(0, 1fr); gap: 8px; }
  .cm > .cm__av { width: 34px; height: 34px; font-size: .78rem; }
  .cm__corpo { padding: 14px 14px; }
  .cm__respostas { margin-top: 12px; padding-left: 10px; gap: 10px; }
  .cm--resp { grid-template-columns: minmax(0, 1fr); }
  .cm--resp > .cm__av { display: none; }
  .cm--resp .cm__corpo { padding: 12px 14px; }
  .cm__topo time { margin-left: 0; }
}

/* v2.45.4: selo da equipa nas respostas aos comentários */
.cm--equipa > .cm__av { position: relative; overflow: visible; background: #fff; box-shadow: 0 0 0 2px var(--primary), 0 6px 14px -6px rgba(227, 105, 85, .6); }
.cm--equipa > .cm__av img { border-radius: 50%; }
.cm__av-ok { position: absolute; right: -3px; bottom: -3px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 2px var(--surface); }
.cm__av-ok .ico { width: 10px; height: 10px; stroke-width: 3; }
.cm__nome { display: inline-flex; align-items: center; gap: 6px; }
.cm__verif { width: 17px; height: 17px; flex: none; display: inline-grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; }
.cm__verif .ico { width: 10px; height: 10px; stroke-width: 3.2; }
.cm__mini { display: none; width: 22px; height: 22px; border-radius: 50%; object-fit: contain; background: #fff; padding: 2px; box-shadow: 0 0 0 1.5px var(--primary); }
.cm__selo--oficial { padding: 3px 9px 3px 7px; background: var(--primary); color: #fff; text-transform: uppercase; letter-spacing: .05em; font-size: .64rem; }
.cm__selo--oficial .ico { width: 12px; height: 12px; }
.cm--equipa > .cm__corpo { position: relative; background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 9%, var(--surface)), var(--surface) 70%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 30%, var(--border)); }
.cm--equipa > .cm__corpo::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0; background: var(--primary); }
.cm--equipa .cm__nome { color: var(--primary); }
@media (max-width: 760px) {
  .cm--resp.cm--equipa .cm__mini { display: inline-block; } /* sem avatar nas respostas: o logótipo vai junto ao nome */
}

/* v2.46: Promoções — janela no site (cartão, banner, lado a lado) */
.promo { width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 22px; background: transparent; overflow: visible; color: var(--text); }
.promo--lado { width: min(820px, calc(100vw - 32px)); }
.promo--banner { width: min(560px, calc(100vw - 32px)); }
.promo::backdrop { background: rgba(14, 17, 28, .62); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.promo[open] { animation: promoEntra .45s cubic-bezier(.2, .9, .3, 1.2) both; }
.promo[open]::backdrop { animation: promoFundo .3s ease both; }
@keyframes promoEntra { from { opacity: 0; transform: translateY(24px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes promoFundo { from { opacity: 0; } }
.promo__box { position: relative; max-height: calc(100vh - 40px); overflow: auto; border-radius: 22px; background: var(--surface); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55); }
.promo__fechar { position: absolute; top: 12px; right: 12px; z-index: 3; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #1e2436; cursor: pointer; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4); transition: transform .2s; }
.promo__fechar:hover { transform: rotate(90deg); }
.promo__fechar .ico { width: 18px; height: 18px; }
.promo__prev { margin: 0; padding: 8px 54px 8px 16px; display: flex; align-items: center; gap: 6px; background: #fff3cd; color: #7a5a00; font-size: .78rem; font-weight: 600; }
.promo__prev .ico { width: 15px; height: 15px; flex: none; }
.promo__img { position: relative; background: var(--soft); }
.promo__img img { display: block; width: 100%; max-height: 52vh; object-fit: cover; }
.promo__corpo { padding: 26px 28px 28px; display: grid; gap: 12px; justify-items: start; }
.promo__tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 30px; background: var(--primary-soft); color: var(--primary); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.promo__tag .ico { width: 13px; height: 13px; }
.promo__corpo h2 { margin: 0; font-size: clamp(1.35rem, 3.4vw, 1.75rem); line-height: 1.2; color: var(--ink); }
.promo__txt { margin: 0; font-size: .98rem; line-height: 1.6; }
.promo__cd { display: flex; gap: 8px; margin: 4px 0; }
.promo__cd span { min-width: 62px; padding: 10px 6px 8px; display: grid; justify-items: center; gap: 2px; border-radius: 12px; background: var(--soft); }
.promo__cd b { font-size: 1.45rem; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.promo__cd small { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text); }
.promo__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.promo__btns .ico { width: 16px; height: 16px; }
/* banner: só a imagem (como nas redes sociais) */
.promo__banner { display: block; line-height: 0; background: var(--soft); }
.promo__banner img { display: block; width: 100%; height: auto; max-height: calc(100vh - 140px); object-fit: contain; }
a.promo__banner { cursor: pointer; }
.promo__banner-pe { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; }
.promo__banner-pe .btn { margin-left: auto; }
/* lado a lado */
.promo--lado .promo__box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
.promo--lado .promo__prev { grid-column: 1 / -1; }
.promo--lado .promo__img img { height: 100%; max-height: none; min-height: 380px; }
.promo--lado .promo__corpo { align-content: center; padding: 34px 32px; }
.promo__confetes { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 5; }
@media (max-width: 760px) {
  .promo, .promo__box { border-radius: 18px; }
  .promo__corpo { padding: 20px 20px 22px; }
  .promo__btns { width: 100%; }
  .promo__btns .btn { flex: 1; justify-content: center; }
  .promo__cd span { min-width: 0; flex: 1; }
  .promo--lado .promo__box { grid-template-columns: 1fr; }
  .promo--lado .promo__img img { min-height: 0; max-height: 40vh; }
}
.promo:focus, .promo:focus-visible { outline: none; }
.promo__nao { padding: 12px 18px; border: 0; border-radius: 40px; background: transparent; color: var(--text); font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer; }
.promo__nao:hover { background: var(--soft); color: var(--ink); }
@media (max-width: 760px) { .promo__nao { flex: 1; } }
.promo__fechar:focus:not(:focus-visible) { outline: none; }

/* v2.46.1: a janela da promoção cabe sempre no ecrã, sem deslocamento: a imagem encolhe e o texto mantém-se */
.promo { max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: hidden; }
.promo__box { display: flex; flex-direction: column; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow: hidden; }
.promo__prev, .promo__corpo, .promo__banner-pe { flex: none; }
.promo__img { flex: 1 1 auto; min-height: 90px; overflow: hidden; }
.promo__img img { width: 100%; height: 100%; max-height: 46vh; max-height: 46dvh; object-fit: cover; }
.promo__txt { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.promo--banner .promo__box { background: var(--surface); }
.promo__banner { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.promo__banner img { width: auto; max-width: 100%; height: auto; max-height: calc(100vh - 120px); max-height: calc(100dvh - 120px); object-fit: contain; }
.promo--lado .promo__box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); grid-template-rows: auto minmax(0, 1fr); }
.promo--lado .promo__img { min-height: 0; height: 100%; }
.promo--lado .promo__img img { min-height: 0; max-height: none; height: 100%; }
.promo--lado .promo__corpo { min-height: 0; overflow: hidden; }
/* ecrãs baixos (telemóvel deitado, portáteis pequenos): tudo mais compacto */
@media (max-height: 760px) {
  .promo__corpo { padding: 18px 22px 20px; gap: 9px; }
  .promo__corpo h2 { font-size: 1.3rem; }
  .promo__txt { font-size: .92rem; -webkit-line-clamp: 3; }
  .promo__cd span { padding: 7px 6px 6px; }
  .promo__cd b { font-size: 1.15rem; }
  .promo__btns { margin-top: 2px; }
  .promo__btns .btn, .promo__nao { padding-top: 10px; padding-bottom: 10px; }
  .promo__img img { max-height: 34vh; max-height: 34dvh; }
}
@media (max-height: 560px) {
  .promo__img { display: none; } /* muito pouca altura: fica só o texto e os botões */
  .promo--lado .promo__box { grid-template-columns: 1fr; }
  .promo__txt { -webkit-line-clamp: 2; }
}
@media (max-width: 760px) {
  .promo--lado .promo__box { display: flex; flex-direction: column; }
  .promo--lado .promo__img img { height: 100%; max-height: 40vh; max-height: 40dvh; }
}
.promo__box:focus { outline: none; }

/* v2.46.2: nas notícias (e no texto em geral), uma imagem sozinha fica sempre ao centro */
.prose img:not(.prose-gal__grelha img) { display: block; margin-left: auto; margin-right: auto; max-width: 100%; height: auto; }
.prose p:has(> img:only-child), .prose p:has(> a:only-child > img) { text-align: center; }
.prose figure:not(.prose-gal) { text-align: center; }
.prose figure:not(.prose-gal) img { display: inline-block; }

/* v2.49: página Eventos (agenda) */
.evl { padding-top: 22px; }
/* selo da data */
.evd { display: inline-grid; justify-items: center; min-width: 64px; border-radius: 14px; overflow: hidden; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 10px 22px -16px rgba(20, 24, 40, .5); line-height: 1; text-align: center; }
.evd b { display: block; width: 100%; padding: 10px 0 7px; background: var(--primary); color: #fff; font-size: 1.6rem; }
.evd small { display: block; padding: 6px 8px 2px; font-size: .74rem; font-weight: 800; letter-spacing: .08em; color: var(--ink); }
.evd i { display: block; padding: 0 8px 7px; font-style: normal; font-size: .72rem; color: var(--text); }
.evd--sobre { position: absolute; left: 16px; top: 16px; z-index: 2; min-width: 54px; border-radius: 12px; }
.evd--sobre b { font-size: 1.3rem; padding: 8px 0 6px; }
.evd--sobre small { padding: 6px 8px; }

/* evento em destaque */
.evf { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); margin-bottom: 48px; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); box-shadow: var(--shadow); }
.evf__img { position: relative; display: block; min-height: 420px; overflow: hidden; background: var(--soft); }
.evf__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.evf:hover .evf__img img { transform: scale(1.04); }
.evf__flag { position: absolute; left: 18px; top: 18px; padding: 7px 14px; border-radius: 30px; background: var(--primary); color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .5); }
.evf__body { padding: 38px 40px; display: flex; flex-direction: column; gap: 16px; justify-content: center; }
.evf__quando { display: flex; gap: 18px; align-items: center; }
.evf__dados { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .92rem; }
.evf__dados li { display: flex; align-items: center; gap: 8px; color: var(--ink); }
.evf__dados .ico { width: 16px; height: 16px; color: var(--primary); flex: none; }
.evf__dados a { font-weight: 700; }
.evf__title { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.2; }
.evf__title a { color: var(--ink); }
.evf__title a:hover { color: var(--primary); }
.evf__txt { margin: 0; font-size: 1rem; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.evcd { display: flex; gap: 8px; }
.evcd span { min-width: 66px; padding: 11px 6px 9px; display: grid; justify-items: center; gap: 3px; border-radius: 12px; background: var(--soft); }
.evcd b { font-size: 1.55rem; line-height: 1; color: var(--ink); font-variant-numeric: tabular-nums; }
.evcd small { font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; color: var(--text); }
.evf__btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; margin-top: 4px; }
.evf__btns .ico, .evcal .ico { width: 16px; height: 16px; }
/* adicionar ao calendário */
.evcal { position: relative; }
.evcal summary { list-style: none; cursor: pointer; }
.evcal summary::-webkit-details-marker { display: none; }
.evcal__menu { position: absolute; left: 0; top: calc(100% + 8px); z-index: 20; min-width: 270px; padding: 8px; display: grid; border-radius: 14px; background: var(--surface); box-shadow: 0 24px 48px -18px rgba(20, 24, 40, .45), 0 0 0 1px var(--border); }
.evcal__menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--ink); font-size: .9rem; font-weight: 600; }
.evcal__menu a:hover { background: var(--soft); color: var(--primary); }

/* separadores */
.evl__bar { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.evl__anos { display: flex; gap: 6px; flex-wrap: wrap; }
.evl__anos a { padding: 7px 13px; border-radius: 30px; font-size: .85rem; font-weight: 700; color: var(--text); }
.evl__anos a:hover { color: var(--primary); }
.evl__anos a.is-active { background: var(--ink); color: var(--surface); }
.evl__vazio-btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

/* grelha de cartões */
.evg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.evc { display: flex; flex-direction: column; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); box-shadow: 0 0 0 1px var(--border); transition: box-shadow .3s, transform .3s var(--ease); }
.evc:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), 0 26px 46px -28px rgba(20, 24, 40, .45); }
.evc__img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--soft); }
.evc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.evc:hover .evc__img img { transform: scale(1.06); }
.evc__estado { position: absolute; right: 14px; top: 14px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px; border-radius: 30px; background: rgba(20, 24, 40, .78); color: #fff; font-size: .72rem; font-weight: 700; }
.evc__estado .ico { width: 13px; height: 13px; }
.evc__estado--agora { background: #1f9d63; }
.evc__body { flex: 1; padding: 20px 22px 18px; display: flex; flex-direction: column; gap: 10px; }
.evc__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .82rem; color: var(--text); }
.evc__meta span, .evc__local { display: inline-flex; align-items: center; gap: 6px; }
.evc__meta .ico, .evc__local .ico { width: 15px; height: 15px; color: var(--primary); flex: none; }
.evc__title { margin: 0; font-size: 1.14rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.evc__title a { color: var(--ink); }
.evc__title a:hover { color: var(--primary); }
.evc__local { margin: 0; font-size: .86rem; color: var(--text); align-items: flex-start; }
.evc__local span { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.evc__pe { margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: .86rem; }
.evc__pe a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.evc__pe .ico { width: 15px; height: 15px; }
.evc__cal { padding: 5px 10px; border-radius: 30px; background: var(--soft); color: var(--ink) !important; font-size: .8rem; }
.evc__cal:hover { background: var(--primary); color: #fff !important; }
.evc--passado .evc__img img { filter: saturate(.75); }

@media (max-width: 1080px) {
  .evg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .evf { grid-template-columns: 1fr 1fr; }
  .evf__body { padding: 30px; }
}
@media (max-width: 760px) {
  .evf { grid-template-columns: 1fr; margin-bottom: 36px; }
  .evf__img { min-height: 0; aspect-ratio: 16 / 10; }
  .evf__body { padding: 22px 20px 26px; }
  .evf__quando { align-items: flex-start; }
  .evcd span { min-width: 0; flex: 1; }
  .evf__btns { flex-direction: column; align-items: stretch; }
  .evf__btns .btn, .evcal summary { width: 100%; justify-content: center; }
  .evcal__menu { left: 0; right: 0; min-width: 0; }
  .evg { grid-template-columns: 1fr; gap: 20px; }
}
.evf__dados li > span { min-width: 0; }
.evcal-bloco { margin: 10px 0; }
.evcal-bloco .evcal summary { width: 100%; justify-content: center; }
.evcal-bloco .evcal__menu { left: 0; right: 0; min-width: 0; }
.evmapa { margin-top: 10px; display: flex; justify-content: center; gap: 6px; background: var(--soft); color: var(--ink); }
.evmapa .ico { width: 16px; height: 16px; }
/* v2.49.1: Eventos — menos espaço entre o cabeçalho e os eventos */
.evh { padding: 34px 0 18px; }
.evl { padding-top: 10px; }
@media (max-width: 760px) { .evh { padding: 24px 0 14px; } .evl { padding-top: 8px; } }
/* v2.49.2: "Adicionar ao calendário" — o menu ficava cortado pela caixa do evento em destaque */
.evf { overflow: visible; }
.evf__img { border-radius: var(--radius-lg) 0 0 var(--radius-lg); }
.evf .evcal__menu { top: auto; bottom: calc(100% + 8px); }
.evcal[open] summary { background: var(--soft); }
@media (max-width: 760px) {
  .evf__img { border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
}

/* v2.50: página de cada evento */
.evp-head { padding: 34px 0 26px; background: var(--surface); border-bottom: 1px solid var(--border); }
.evp-head__topo { margin: 0 0 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.evp-estado { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 30px; font-size: .74rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.evp-estado--futuro { background: var(--primary-soft); color: var(--primary); }
.evp-estado--agora { background: #dcf3e7; color: #146c43; }
.evp-estado--passado { background: var(--soft); color: var(--text); }
.evp-head__title { margin: 0 0 16px; max-width: 900px; font-size: clamp(1.9rem, 4.2vw, 3rem); line-height: 1.12; letter-spacing: -.02em; color: var(--ink); }
.evp-head__dados { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: .95rem; color: var(--ink); }
.evp-head__dados li { display: inline-flex; align-items: center; gap: 8px; }
.evp-head__dados .ico { width: 17px; height: 17px; color: var(--primary); flex: none; }
.evp { padding-top: 36px; }
.evp__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 44px; align-items: start; }
.evp__foto { margin: 0 0 26px; }
.evp__foto img { display: block; width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--radius-lg); box-shadow: 0 30px 60px -40px rgba(20, 24, 40, .5); }
.evp__lead { margin: 0 0 18px; font-size: 1.2rem; line-height: 1.65; color: var(--ink); font-weight: 500; }
.evp__prose > p:first-child::first-letter { float: none; font-size: inherit; margin: 0; font-weight: inherit; color: inherit; }
.evp__prose > p:first-child { font-size: inherit; color: var(--text); }
.evp__side { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 20px; }
.evp-card { padding: 24px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 24px 50px -32px rgba(20, 24, 40, .45), inset 0 0 0 1px var(--border); display: grid; gap: 18px; }
.evp-card__topo { display: flex; align-items: center; gap: 16px; }
.evp-card__topo > div { display: grid; gap: 2px; }
.evp-card__topo strong { font-size: 1.1rem; color: var(--ink); }
.evp-card__topo span { font-size: .95rem; color: var(--text); }
.evcd--sm span { min-width: 0; flex: 1; padding: 9px 4px 7px; }
.evcd--sm b { font-size: 1.3rem; }
.evp-card__fim { margin: 0; display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; background: var(--soft); font-size: .9rem; font-weight: 600; color: var(--ink); }
.evp-card__fim .ico { width: 16px; height: 16px; color: #1f9d63; }
.evp-card__dl { margin: 0; display: grid; gap: 0; }
.evp-card__dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 11px 0; border-top: 1px dashed var(--border); }
.evp-card__dl dt { display: inline-flex; align-items: center; gap: 7px; font-size: .84rem; color: var(--text); }
.evp-card__dl dt .ico { width: 15px; height: 15px; color: var(--primary); }
.evp-card__dl dd { margin: 0; font-size: .9rem; font-weight: 600; color: var(--ink); display: grid; gap: 2px; }
.evp-card__dl dd a { font-size: .82rem; font-weight: 700; }
.evp-card__btns { display: grid; gap: 10px; }
.evp-card__btns .btn, .evp-card__btns .evcal summary { width: 100%; justify-content: center; }
.evp-card__btns .evcal__menu { left: 0; right: 0; min-width: 0; }
.evp-card__info { background: var(--soft); color: var(--ink); }
.evp-card__btns .ico { width: 16px; height: 16px; }
/* organização · mapa · local */
.evp-info { margin-top: 50px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.evp-info__box { padding: 34px 32px; display: grid; align-content: start; gap: 10px; }
.evp-info__box h3 { margin: 0 0 4px; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: inherit; opacity: .8; }
.evp-info__nome { margin: 0; font-size: 1.15rem; font-weight: 700; }
.evp-info__morada { margin: 0; font-size: .92rem; opacity: .85; }
.evp-info__box ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.evp-info__box li { display: flex; align-items: center; gap: 10px; font-size: .94rem; }
.evp-info__box li .ico { width: 18px; height: 18px; flex: none; opacity: .9; }
.evp-info__box a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.evp-info__box a:hover { text-decoration-color: currentColor; }
.evp-info__box--org { background: #1e2436; color: #fff; }
.evp-info__box--org .ico { color: var(--primary); }
.evp-info__box--local { background: var(--primary); color: #fff; }
.evp-info__mapa { position: relative; min-height: 300px; background: var(--soft); }
.evp-info__mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.evp-info__abrir { position: absolute; left: 12px; top: 12px; padding: 7px 12px; border-radius: 8px; background: #fff; color: #1a73e8; font-size: .84rem; font-weight: 700; box-shadow: 0 4px 12px -4px rgba(0, 0, 0, .3); }
.evp-pn { margin-top: 34px; }
.nwp-pn__item em { font-style: normal; font-size: .78rem; color: var(--text); }
@media (max-width: 1080px) {
  .evp__grid { grid-template-columns: 1fr; }
  .evp__side { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .evp-info { grid-template-columns: 1fr 1fr; }
  .evp-info__mapa { grid-column: 1 / -1; grid-row: 1; min-height: 280px; }
}
@media (max-width: 760px) {
  .evp-head { padding: 24px 0 20px; }
  .evp-head__dados { flex-direction: column; gap: 8px; }
  .evp { padding-top: 22px; }
  .evp__side { grid-template-columns: 1fr; }
  .evp-info { grid-template-columns: 1fr; margin-top: 34px; }
  .evp-info__box { padding: 26px 22px; }
  .evp-card__dl > div { grid-template-columns: 1fr; gap: 4px; }
}
/* evento no tablet/telemóvel: o cartão da data (contagem, calendário, inscrição) vem logo a seguir ao título */
@media (max-width: 1080px) { .evp__side { order: -1; } }
@media (max-width: 760px) { .evp__side .nwj__box--cta { display: none; } .evp__side { margin-bottom: 4px; } }
.evp-card__info { border: 1px solid var(--border) !important; background: var(--soft) !important; color: var(--ink) !important; box-shadow: none !important; }
.evp-card__info:hover { border-color: var(--primary) !important; color: var(--primary) !important; }

/* v2.51: Galeria — álbuns em grelha, "Todas as fotografias" e visualizador */
.gal .nwl__chip { border: 0; font: inherit; font-size: .87rem; font-weight: 600; cursor: pointer; }
.gal .nwl__chip .ico { width: 15px; height: 15px; }
.evl__anos button { border: 0; background: none; font: inherit; padding: 7px 13px; border-radius: 30px; font-size: .85rem; font-weight: 700; color: var(--text); cursor: pointer; }
.evl__anos button:hover { color: var(--primary); }
.evl__anos button.is-active { background: var(--ink); color: var(--surface); }
.gala-grelha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.gala[hidden], .galf__item[hidden] { display: none; }
.gala { display: flex; flex-direction: column; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); box-shadow: 0 0 0 1px var(--border); transition: transform .3s var(--ease), box-shadow .3s; }
.gala:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--border), 0 26px 46px -28px rgba(20, 24, 40, .45); }
.gala button { border: 0; padding: 0; background: none; font: inherit; color: inherit; cursor: zoom-in; text-align: left; }
.gala__capa { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--soft); }
.gala__capa img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.gala:hover .gala__capa img { transform: scale(1.06); }
.gala__capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(14, 17, 28, .55)); opacity: 0; transition: opacity .3s; }
.gala:hover .gala__capa::after { opacity: 1; }
.gala__n { position: absolute; right: 14px; top: 14px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 30px; background: rgba(14, 17, 28, .72); color: #fff; font-size: .8rem; font-weight: 700; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.gala__n .ico { width: 14px; height: 14px; }
.gala__ver { position: absolute; left: 50%; top: 50%; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 40px; background: #fff; color: #1e2436; font-size: .88rem; font-weight: 700; transform: translate(-50%, -40%); opacity: 0; transition: opacity .3s, transform .3s var(--ease); box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .5); }
.gala__ver .ico { width: 16px; height: 16px; color: var(--primary); }
.gala:hover .gala__ver, .gala__capa:focus-visible .gala__ver { opacity: 1; transform: translate(-50%, -50%); }
.gala__minis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 4px 4px 0; }
.gala__minis button { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: var(--soft); }
.gala__minis img { width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.gala__minis button:hover img { opacity: .8; }
.gala__minis span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(14, 17, 28, .6); color: #fff; font-weight: 800; }
.gala__corpo { padding: 16px 20px 20px; display: grid; gap: 6px; }
.gala__titulo { margin: 0; font-size: 1.12rem; line-height: 1.35; }
.gala__titulo button { cursor: pointer; color: var(--ink); }
.gala__titulo button:hover { color: var(--primary); }
.gala__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .82rem; color: var(--text); }
.gala__meta span { display: inline-flex; align-items: center; gap: 6px; }
.gala__meta .ico { width: 15px; height: 15px; color: var(--primary); }
.gala__txt { margin: 2px 0 0; font-size: .9rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* todas as fotografias: mosaico */
.galf { columns: 4 240px; column-gap: 12px; }
.galf[hidden] { display: none; }
.galf__item { position: relative; display: block; width: 100%; margin: 0 0 12px; padding: 0; border: 0; border-radius: 12px; overflow: hidden; background: var(--soft); cursor: zoom-in; break-inside: avoid; }
.galf__item img { display: block; width: 100%; height: auto; transition: transform .6s var(--ease); }
.galf__item:hover img { transform: scale(1.05); }
.galf__leg { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 10px; background: linear-gradient(transparent, rgba(14, 17, 28, .8)); color: #fff; font-size: .78rem; font-weight: 600; text-align: left; opacity: 0; transition: opacity .25s; }
.galf__item:hover .galf__leg, .galf__item:focus-visible .galf__leg { opacity: 1; }

/* visualizador */
html.vis-aberto { overflow: hidden; }
.vis { position: fixed; inset: 0; z-index: 600; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: rgba(9, 11, 18, .97); color: #fff; opacity: 0; transition: opacity .25s; outline: none; }
.vis.is-on { opacity: 1; }
.vis__topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px 12px 22px; }
.vis__info { display: grid; min-width: 0; }
.vis__info strong { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vis__info span { font-size: .8rem; opacity: .65; }
.vis__acoes { display: flex; align-items: center; gap: 6px; flex: none; }
.vis__n { margin-right: 8px; font-size: .86rem; font-variant-numeric: tabular-nums; opacity: .8; }
.vis button { border: 0; font: inherit; cursor: pointer; }
.vis__acoes button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background .2s; }
.vis__acoes button:hover { background: rgba(255, 255, 255, .22); }
.vis__acoes button b { font-size: 1.25rem; line-height: 1; font-weight: 600; }
.vis__acoes .ico { width: 18px; height: 18px; }
.vis__fechar { background: rgba(255, 255, 255, .16) !important; }
.vis__fechar:hover { background: var(--primary) !important; }
.vis__palco { position: relative; overflow: hidden; display: grid; place-items: center; touch-action: none; cursor: zoom-in; user-select: none; }
.vis.is-zoom .vis__palco { cursor: grab; }
.vis.is-zoom .vis__palco:active { cursor: grabbing; }
.vis__moldura { display: grid; place-items: center; width: 100%; height: 100%; padding: 8px 76px; pointer-events: none; }
.vis__img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8); transform-origin: center center; will-change: transform; pointer-events: auto; transition: opacity .2s; }
.vis.is-carregar .vis__img { opacity: .35; }
.vis__roda { position: absolute; left: 50%; top: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .2); border-top-color: #fff; opacity: 0; animation: spin .8s linear infinite; pointer-events: none; }
.vis.is-carregar .vis__roda { opacity: 1; }
.vis__nav { position: absolute; top: 50%; z-index: 2; width: 54px; height: 54px; margin-top: -27px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; transition: background .2s, transform .2s; }
.vis__nav:hover { background: var(--primary); transform: scale(1.06); }
.vis__nav .ico { width: 22px; height: 22px; }
.vis__nav--ant { left: 14px; }
.vis__nav--seg { right: 14px; }
.vis.is-uma .vis__nav, .vis.is-uma .vis__minis, .vis.is-uma .vis__n { display: none; }
.vis__ajuda { position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); padding: 5px 12px; border-radius: 20px; background: rgba(255, 255, 255, .08); font-size: .74rem; opacity: .7; pointer-events: none; transition: opacity .3s; }
.vis.is-zoom .vis__ajuda { opacity: 0; }
.vis__minis { display: flex; gap: 8px; padding: 10px 16px 14px; overflow-x: auto; scrollbar-width: thin; justify-content: safe center; }
.vis__minis button { flex: none; width: 68px; height: 52px; padding: 0; border-radius: 8px; overflow: hidden; background: #222; opacity: .45; outline: 2px solid transparent; outline-offset: 2px; transition: opacity .2s, outline-color .2s; }
.vis__minis button:hover { opacity: .8; }
.vis__minis button.is-ativa { opacity: 1; outline-color: var(--primary); }
.vis__minis img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.vis__toast { position: absolute; left: 50%; top: 70px; transform: translateX(-50%); padding: 9px 16px; border-radius: 30px; background: #1f9d63; color: #fff; font-size: .86rem; font-weight: 600; }
.vis__toast[hidden] { display: none; }
@media (max-width: 1080px) {
  .gala-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .gala-grelha { grid-template-columns: 1fr; gap: 20px; }
  .gala__ver { opacity: 1; transform: translate(-50%, -50%); padding: 9px 14px; font-size: .82rem; }
  .galf { columns: 2; column-gap: 8px; }
  .galf__item { margin-bottom: 8px; border-radius: 8px; }
  .vis__topo { padding: 10px 10px 10px 14px; }
  .vis__acoes button { width: 38px; height: 38px; }
  .vis__acoes [data-v="mais"], .vis__acoes [data-v="menos"], .vis__acoes [data-v="ecra"] { display: none; } /* no telemóvel: pinça e duplo toque */
  .vis__moldura { padding: 4px 0; }
  .vis__nav { width: 42px; height: 42px; margin-top: -21px; background: rgba(0, 0, 0, .35); }
  .vis__nav--ant { left: 6px; }
  .vis__nav--seg { right: 6px; }
  .vis__minis button { width: 54px; height: 42px; }
}
.vis { background: #0b0d14; transition: opacity .18s; }
.vis__ajuda { white-space: nowrap; animation: visAjuda 4s ease forwards; }
@keyframes visAjuda { 0%, 70% { opacity: .75; } 100% { opacity: 0; } }
@media (max-width: 760px) { .vis__ajuda { font-size: .7rem; bottom: 6px; } }
/* v2.51.1: Galeria e Eventos — cabeçalho mais junto ao menu */
.evh { padding: 20px 0 16px; }
.evh .nwh__kicker { margin-bottom: 6px; }
@media (max-width: 760px) { .evh { padding: 16px 0 12px; } }
/* v2.51.2: visualizador — aviso "ligação copiada" visível e botão confirmado */
.vis__toast { position: fixed; z-index: 20; top: 72px; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .6); pointer-events: none; }
.vis__toast.is-on { animation: visToast 2.2s ease forwards; }
@keyframes visToast { 0% { opacity: 0; transform: translate(-50%, -8px); } 12%, 80% { opacity: 1; transform: translate(-50%, 0); } 100% { opacity: 0; transform: translate(-50%, -4px); } }
.vis__acoes button.is-ok { background: #1f9d63 !important; }
.vis__img { cursor: zoom-in; }
.vis.is-zoom .vis__img { cursor: grab; }
.vis__palco { cursor: default; }

/* v2.52: página Projectos */
.pjl { padding-top: 22px; }
/* áreas de trabalho (caixas com ícone, filtram) */
.pja { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin-bottom: 36px; }
.pja__item { display: grid; justify-items: start; gap: 8px; padding: 20px; border: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 14px 30px -24px rgba(20, 24, 40, .35); font: inherit; text-align: left; cursor: pointer; transition: transform .25s var(--ease), background .25s, box-shadow .25s; }
.pja__item:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px var(--primary), 0 18px 34px -24px rgba(20, 24, 40, .45); }
.pja__ico { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; background: var(--primary-soft); color: var(--primary); }
.pja__ico .ico { width: 24px; height: 24px; }
.pja__item strong { font-size: .95rem; line-height: 1.3; color: var(--ink); }
.pja__item small { font-size: .8rem; color: var(--text); }
.pja__item.is-active { background: var(--primary); box-shadow: 0 18px 34px -20px rgba(227, 105, 85, .7); }
.pja__item.is-active .pja__ico { background: rgba(255, 255, 255, .2); color: #fff; }
.pja__item.is-active strong, .pja__item.is-active small { color: #fff; }
/* projecto em destaque */
.pjf { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); margin-bottom: 44px; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); box-shadow: var(--shadow); }
.pjf__img { position: relative; display: block; min-height: 400px; overflow: hidden; background: var(--soft); }
.pjf__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.pjf:hover .pjf__img img { transform: scale(1.04); }
.pjf__body { padding: 36px 40px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 14px; }
.pjf__tags { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pjf__title { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.2; }
.pjf__title a { color: var(--ink); }
.pjf__title a:hover { color: var(--primary); }
.pjf__txt { margin: 0; line-height: 1.65; }
.pjf__dados { list-style: none; margin: 4px 0 6px; padding: 0; display: flex; flex-wrap: wrap; gap: 14px 26px; }
.pjf__dados li { display: flex; gap: 10px; align-items: flex-start; }
.pjf__dados .ico { width: 18px; height: 18px; color: var(--primary); margin-top: 3px; flex: none; }
.pjf__dados span { display: grid; font-size: .92rem; font-weight: 600; color: var(--ink); }
.pjf__dados small { font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text); }
.pjl__areas { flex-wrap: wrap; }
/* cartões: legenda branca sobreposta e seta laranja (modelo) */
.pjg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 26px; }
.pjc[hidden] { display: none; }
.pjc { position: relative; padding-bottom: 46px; }
.pjc__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-lg); background: var(--soft); }
.pjc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.pjc:hover .pjc__img img { transform: scale(1.06); }
.pjc__estado { display: inline-flex; align-items: center; padding: 5px 11px; border-radius: 30px; font-size: .72rem; font-weight: 800; }
.pjc__img .pjc__estado { position: absolute; left: 14px; top: 14px; }
.pjc__estado--em_curso { background: #1f9d63; color: #fff; }
.pjc__estado--implementado { background: rgba(20, 24, 40, .78); color: #fff; }
.pjc__leg { position: absolute; left: 18px; right: 18px; bottom: 0; display: flex; align-items: stretch; border-radius: var(--radius); background: var(--surface); box-shadow: 0 20px 40px -22px rgba(20, 24, 40, .45); overflow: hidden; transition: transform .3s var(--ease); }
.pjc:hover .pjc__leg { transform: translateY(-4px); }
.pjc__leg-txt { flex: 1; min-width: 0; padding: 16px 18px; display: grid; gap: 6px; }
.pjc__title { margin: 0; font-size: 1.02rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pjc__title a { color: var(--ink); }
.pjc__title a:hover { color: var(--primary); }
.pjc__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .78rem; color: var(--text); }
.pjc__meta span { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.pjc__meta .ico { width: 13px; height: 13px; color: var(--primary); flex: none; }
.pjc__seta { width: 58px; flex: none; display: grid; place-items: center; background: var(--primary); color: #fff; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); transition: width .25s, background .25s; }
.pjc__seta .ico { width: 18px; height: 18px; transition: transform .25s; }
.pjc:hover .pjc__seta { width: 66px; }
.pjc:hover .pjc__seta .ico { transform: translateX(3px); }
/* como trabalhamos */
.pjw { background: var(--soft); }
.pjw__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 50px; align-items: center; }
.pjw__txt h2 { margin: 0 0 14px; font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.15; }
.pjw__txt p { margin: 0; line-height: 1.7; }
.pjw__passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pjw__passos li { display: flex; gap: 14px; padding: 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.pjw__passos span { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 800; }
.pjw__passos strong { display: block; margin-bottom: 4px; color: var(--ink); }
.pjw__passos p { margin: 0; font-size: .88rem; line-height: 1.55; }
/* parceiros e financiadores */
.pjp { padding: 34px 0; border-bottom: 1px solid var(--border); background: var(--surface); }
.pjp__tit { margin: 0 0 14px; text-align: center; font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--text); }
.pjp__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.pjp__lista li { padding: 9px 16px; border-radius: 40px; box-shadow: inset 0 0 0 1px var(--border); font-size: .88rem; font-weight: 700; color: var(--ink); }
@media (max-width: 1080px) {
  .pjg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pjf { grid-template-columns: 1fr 1fr; }
  .pjf__body { padding: 28px; }
  .pjw__in { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 760px) {
  .pja { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 26px; }
  .pja__item { padding: 14px; }
  .pjf { grid-template-columns: 1fr; }
  .pjf__img { min-height: 0; aspect-ratio: 16 / 10; }
  .pjf__body { padding: 22px 20px 26px; }
  .pjg { grid-template-columns: 1fr; }
  .pjw__passos { grid-template-columns: 1fr; }
  .nwh__stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 14px; }
}
@media (max-width: 760px) { .pjl__areas { display: none; } .pjl .nwl__filtros { flex-wrap: nowrap; overflow-x: auto; } }
/* v2.52.1: "Com o apoio de" com os logótipos dos parceiros */
.pjp { padding: 40px 0 44px; }
.pjp__lista { gap: 14px; align-items: stretch; }
.pjp__lista li { padding: 0; box-shadow: none; }
.pjp__item { display: grid; place-items: center; height: 100%; min-height: 84px; padding: 14px 20px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font-size: .9rem; font-weight: 700; color: var(--ink); text-align: center; transition: box-shadow .25s, transform .25s var(--ease); }
a.pjp__item:hover { box-shadow: inset 0 0 0 1px var(--primary), 0 14px 30px -20px rgba(20, 24, 40, .4); transform: translateY(-2px); }
.pjp__item--logo { width: 190px; background: #fff; }
.pjp__item img { display: block; max-width: 150px; max-height: 56px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; }
.pjp__item:hover img { filter: none; opacity: 1; }
@media (max-width: 760px) { .pjp__item--logo { width: calc(50vw - 30px); } .pjp__item img { max-width: 120px; max-height: 46px; } }
.pjp__item img { filter: none; opacity: 1; max-width: 160px; max-height: 62px; }
.pjp__item--logo { width: 200px; min-height: 96px; }
.pjp__item img { max-width: 168px; max-height: 64px; }

/* v2.53: Projectos — mapa "Onde trabalhamos" e resumo nos cartões */
.pjm__in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; align-items: stretch; }
.pjm__txt h2 { margin: 0 0 10px; font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.15; }
.pjm__txt > p { margin: 0 0 20px; }
.pjm__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pjm__lista button { width: 100%; display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 0; border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font: inherit; text-align: left; cursor: pointer; transition: box-shadow .2s, transform .2s; }
.pjm__lista button:hover { box-shadow: inset 0 0 0 1px var(--primary); transform: translateX(3px); }
.pjm__lista button > span:nth-child(2) { flex: 1; display: grid; }
.pjm__lista strong { font-size: .95rem; color: var(--ink); }
.pjm__lista small { font-size: .8rem; color: var(--text); }
.pjm__lista .ico { width: 16px; height: 16px; color: var(--primary); }
.pjm__pin { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--primary); color: #fff; font-size: .82rem; font-weight: 800; }
.pjm__pin { line-height: 1; }
.pjm__mapa { position: relative; min-height: 460px; border-radius: var(--radius-lg); overflow: hidden; background: var(--soft); box-shadow: var(--shadow); z-index: 0; }
.pjm__carregar { position: absolute; inset: 0; display: grid; place-items: center; color: var(--text); font-size: .9rem; }
.pjm__carregar .ico { width: 18px; height: 18px; }
.pjm__marca span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 800; font-size: .9rem; box-shadow: 0 0 0 5px rgba(227, 105, 85, .28), 0 8px 18px -6px rgba(0, 0, 0, .45); }
.pjm__marca { background: none; border: 0; }
.pjm__pop strong { display: block; margin-bottom: 8px; font-size: .95rem; }
.pjm__pop a { display: flex; gap: 10px; align-items: center; padding: 7px 0; border-top: 1px solid #eee; color: #1e2436; text-decoration: none; }
.pjm__pop a:hover b { color: #E36955; }
.pjm__pop img { width: 54px; height: 42px; object-fit: cover; border-radius: 6px; flex: none; }
.pjm__pop span { display: grid; gap: 2px; }
.pjm__pop b { font-size: .84rem; line-height: 1.3; }
.pjm__pop small { font-size: .74rem; color: #6b7080; }
/* resumo do projecto por cima da fotografia, ao passar o rato */
.pjc__resumo { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 22px 24px 70px; background: linear-gradient(180deg, rgba(20, 24, 40, .55), rgba(20, 24, 40, .9)); color: #fff; font-size: .9rem; line-height: 1.55; opacity: 0; transition: opacity .3s; }
.pjc__resumo em { display: inline-flex; align-items: center; gap: 6px; font-style: normal; font-size: .78rem; font-weight: 700; opacity: .85; }
.pjc__resumo em .ico { width: 14px; height: 14px; }
.pjc:hover .pjc__resumo, .pjc__img:focus-visible .pjc__resumo { opacity: 1; }
.pjc__img .pjc__estado { z-index: 2; }
@media (hover: none) { .pjc__resumo { display: none; } }
@media (max-width: 1080px) { .pjm__in { grid-template-columns: 1fr; } .pjm__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .pjm__lista { grid-template-columns: 1fr; } .pjm__mapa { min-height: 360px; } }
.pjm__pin { transform: none; border-radius: 50%; position: relative; }
.pjm__pin::after { content: ""; position: absolute; left: 50%; bottom: -5px; width: 10px; height: 10px; background: var(--primary); transform: translateX(-50%) rotate(45deg); z-index: -1; }
.pjm__pop a, .pjm__pop a:visited { color: #1e2436 !important; }
.pjm__pop a:hover b { color: #E36955; }
.pjm__mapa .leaflet-popup-content { margin: 14px 16px; }
.pjl__mais[hidden], .pjl__mais [hidden] { display: none; }
.pjc.is-new { animation: nwEntra .5s var(--ease) both; }

/* v2.54: mapa "Onde trabalhamos" mais completo */
.pjm__mapa { min-height: 500px; }
.pjm__tela { position: absolute; inset: 0; z-index: 0; }
.pjm__mapa:fullscreen { border-radius: 0; }
.pjm__marca { background: none; border: 0; }
.pjm__marca span { position: relative; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; font-weight: 800; font-size: .95rem; box-shadow: 0 0 0 4px #fff, 0 10px 22px -8px rgba(0, 0, 0, .55); transition: transform .25s var(--ease); }
.pjm__marca span::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--primary); opacity: 0; }
.pjm__marca em { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); padding: 3px 9px; border-radius: 20px; background: rgba(255, 255, 255, .95); color: #1e2436; font-style: normal; font-size: .74rem; font-weight: 700; white-space: nowrap; box-shadow: 0 4px 12px -4px rgba(0, 0, 0, .35); pointer-events: none; }
.pjm__marca.is-on span, .pjm__marca:hover span { transform: scale(1.15); }
.pjm__marca.is-on span::after { animation: pjmPulso 1.2s ease-out infinite; }
@keyframes pjmPulso { from { opacity: .8; transform: scale(1); } to { opacity: 0; transform: scale(1.8); } }
.pjm__sede span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: #fff; box-shadow: 0 0 0 3px #1e2436, 0 10px 22px -8px rgba(0, 0, 0, .55); overflow: hidden; }
.pjm__sede img { width: 30px; height: 30px; object-fit: contain; }
.pjm__sede em { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); padding: 3px 9px; border-radius: 20px; background: #1e2436; color: #fff; font-style: normal; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.pjm__sede { background: none; border: 0; }
.pjm__pop strong { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pjm__pop strong small { min-width: 24px; padding: 1px 8px; border-radius: 20px; background: #E36955; color: #fff; font-size: .74rem; text-align: center; }
.pjm__pop p { margin: 0 0 8px; font-size: .84rem; color: #555; }
.pjm__pop .pjm__pop-link { display: inline; padding: 0; border: 0; font-weight: 700; color: #E36955 !important; font-size: .85rem; }
/* barra: Mapa / Satélite, Ver tudo, Ecrã inteiro */
.pjm__barra { display: flex; gap: 6px; align-items: center; }
.pjm__seg { display: inline-flex; padding: 3px; border-radius: 30px; background: #fff; box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .45); }
.pjm__seg button { padding: 7px 14px; border: 0; border-radius: 30px; background: none; font: inherit; font-size: .8rem; font-weight: 700; color: #555; cursor: pointer; }
.pjm__seg button.is-on { background: #1e2436; color: #fff; }
.pjm__bt { width: 36px; height: 36px; border: 0; border-radius: 50%; background: #fff; color: #1e2436; font-size: 1.05rem; cursor: pointer; box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .45); }
.pjm__bt:hover { background: #E36955; color: #fff; }
.pjm__mapa .leaflet-control-zoom { border: 0 !important; box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .45); border-radius: 12px; overflow: hidden; }
.pjm__mapa .leaflet-control-zoom a { width: 36px; height: 36px; line-height: 36px; color: #1e2436; }
/* legenda */
.pjm__legenda { position: absolute; left: 12px; bottom: 12px; z-index: 500; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; max-width: calc(100% - 90px); padding: 8px 12px; border-radius: 12px; background: rgba(255, 255, 255, .94); box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .4); font-size: .76rem; font-weight: 600; color: #1e2436; pointer-events: none; }
.pjm__legenda span { display: inline-flex; align-items: center; gap: 6px; }
.pjm__leg-pt { width: 12px; height: 12px; border-radius: 50%; background: var(--primary); }
.pjm__leg-sede { width: 12px; height: 12px; border-radius: 3px; background: #fff; box-shadow: 0 0 0 2px #1e2436; }
.pjm__leg-dica { font-weight: 500; color: #6b7080; }
.pjm__mapa.is-activo .pjm__leg-dica, .pjm__mapa.is-sat .pjm__leg-dica { display: none; }
.pjm__mapa.is-pop .pjm__legenda { opacity: 0; transition: opacity .2s; }
.pjm__mapa .leaflet-control-attribution { font-size: 10px; }
/* lista ligada ao mapa */
.pjm__lista button.is-on { box-shadow: inset 0 0 0 2px var(--primary); transform: translateX(3px); }
@media (max-width: 760px) {
  .pjm__mapa { min-height: 420px; }
  .pjm__legenda { left: 8px; bottom: 8px; padding: 6px 10px; }
  .pjm__mapa.is-pop .leaflet-control-zoom { opacity: 0; pointer-events: none; }
  .pjm__seg button { padding: 6px 10px; }
}

/* v2.55: página de cada projecto */
.pjx-kicker { margin: 0 0 8px; display: inline-flex; align-items: center; gap: 10px; color: var(--primary); font-family: var(--hand); font-size: 1.2rem; line-height: 1.2; }
.pjx-kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; }
.pjx-h2 { margin: 0 0 14px; font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.15; letter-spacing: -.02em; color: var(--ink); }
.pjx-head { max-width: 720px; margin: 0 auto 40px; text-align: center; }
.pjx-head > p:not(.pjx-kicker) { margin: 0; color: var(--text); }
.pjx-head--esq { margin-left: 0; text-align: left; }
/* capa */
.pjx-hero { position: relative; min-height: 560px; display: grid; align-content: center; padding: 80px 0 120px; color: #fff; background: var(--dark); overflow: hidden; isolation: isolate; }
.pjx-hero__bg { position: absolute; inset: 0; z-index: -2; }
.pjx-hero__bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.03); }
.pjx-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(16, 20, 33, .92) 0%, rgba(16, 20, 33, .72) 48%, rgba(16, 20, 33, .25) 100%), linear-gradient(0deg, rgba(16, 20, 33, .55), transparent 45%); }
.pjx-hero__txt { max-width: 720px; }
.pjx-hero__voltar { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 22px; font-size: .88rem; font-weight: 600; color: rgba(255, 255, 255, .8); }
.pjx-hero__voltar:hover { color: #fff; }
.pjx-hero__voltar .ico { width: 15px; height: 15px; }
.pjx-hero__tags { margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.pjx-tag { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 30px; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pjx-tag i { width: 8px; height: 8px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgba(74, 222, 128, .25); animation: pjxPisca 1.8s ease-in-out infinite; }
@keyframes pjxPisca { 50% { box-shadow: 0 0 0 7px rgba(74, 222, 128, 0); } }
.pjx-tag--on { background: rgba(31, 157, 99, .9); color: #fff; }
.pjx-tag--done { background: rgba(255, 255, 255, .92); color: #1e2436; }
.pjx-tag--area { background: var(--primary); color: #fff; }
.pjx-tag--area:hover { background: #fff; color: var(--primary); }
.pjx-tag .ico { width: 14px; height: 14px; }
.pjx-hero__title { margin: 0 0 16px; font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.08; letter-spacing: -.025em; color: #fff; }
.pjx-hero__lead { margin: 0 0 30px; max-width: 620px; font-size: 1.12rem; line-height: 1.65; color: rgba(255, 255, 255, .86); }
.pjx-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; }
/* barra de dados por cima da capa */
.pjx-dados-wrap { position: relative; z-index: 2; margin-top: -64px; }
.pjx-dados { margin: 0; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 30px 60px -30px rgba(16, 20, 33, .45); overflow: hidden; }
.pjx-dados--2 { --n: 2; } .pjx-dados--3 { --n: 3; } .pjx-dados--4 { --n: 4; } .pjx-dados--5 { --n: 5; } .pjx-dados--6 { --n: 6; }
.pjx-dado { position: relative; padding: 24px 22px; border-right: 1px solid var(--border); }
.pjx-dado:last-child { border-right: 0; }
.pjx-dado__ico { width: 42px; height: 42px; margin-bottom: 12px; display: grid; place-items: center; border-radius: 12px; background: var(--primary-soft, rgba(227, 105, 85, .12)); color: var(--primary); }
.pjx-dado__ico .ico { width: 20px; height: 20px; }
.pjx-dado dt { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text); }
.pjx-dado dd { margin: 4px 0 0; font-weight: 700; font-size: .98rem; line-height: 1.35; color: var(--ink); }
.pjx-dado--on dd { color: #1f9d63; }
.pjx-dado--on .pjx-dado__ico { background: rgba(31, 157, 99, .12); color: #1f9d63; }
/* resultados em números */
.pjx-num { padding: 50px 0 0; }
.pjx-num__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 20px; }
.pjx-num__lista li { padding: 26px 24px; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--primary), #c94f3c); color: #fff; }
.pjx-num__lista strong { display: block; font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.pjx-num__lista span { display: block; margin-top: 6px; font-size: .95rem; opacity: .92; }
/* contexto */
.pjx-sobre__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: center; }
.pjx-sobre__in--so { grid-template-columns: minmax(0, 820px); }
.pjx-prose { font-size: 1.02rem; }
.pjx-sobre__foto { position: relative; margin: 0 0 30px 20px; }
.pjx-sobre__foto::before { content: ""; position: absolute; inset: 24px -20px -20px 24px; z-index: -1; border-radius: var(--radius-lg); background: var(--primary); opacity: .12; }
.pjx-sobre__foto a { display: block; overflow: hidden; border-radius: var(--radius-lg); aspect-ratio: 4 / 3.4; box-shadow: 0 30px 60px -32px rgba(16, 20, 33, .5); }
.pjx-sobre__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.pjx-sobre__foto a:hover img { transform: scale(1.04); }
.pjx-sobre__selo { position: absolute; left: -20px; bottom: -26px; display: flex; align-items: center; gap: 12px; max-width: 290px; padding: 14px 18px; border-radius: var(--radius); background: var(--surface); box-shadow: 0 20px 40px -20px rgba(16, 20, 33, .45); }
.pjx-sobre__selo-ico { flex: none; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; background: var(--primary); color: #fff; }
.pjx-sobre__selo-ico .ico { width: 22px; height: 22px; }
.pjx-sobre__selo strong { display: block; color: var(--ink); line-height: 1.3; }
.pjx-sobre__selo small { font-size: .78rem; color: var(--text); }
/* vídeo */
.pjx-video { background: var(--soft); }
.pjx-video__box { max-width: 1000px; margin: 0 auto; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: #000; box-shadow: 0 40px 70px -40px rgba(16, 20, 33, .6); }
.pjx-video__box iframe { width: 100%; height: 100%; border: 0; display: block; }
.pjx-video__capa { position: relative; width: 100%; height: 100%; padding: 0; border: 0; cursor: pointer; background: #000; }
.pjx-video__capa img { width: 100%; height: 100%; object-fit: cover; opacity: .7; transition: opacity .3s, transform .6s var(--ease); }
.pjx-video__capa:hover img { opacity: .55; transform: scale(1.03); }
.pjx-video__play { position: absolute; left: 50%; top: 50%; width: 88px; height: 88px; transform: translate(-50%, -50%); display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 14px rgba(255, 255, 255, .22); transition: transform .25s; }
.pjx-video__capa:hover .pjx-video__play { transform: translate(-50%, -50%) scale(1.08); }
.pjx-video__play .ico { width: 30px; height: 30px; margin-left: 4px; }
/* objectivos */
.pjx-obj__geral { max-width: 900px; margin: 0 auto 40px; display: flex; gap: 20px; align-items: center; padding: 26px 30px; border-radius: var(--radius-lg); background: var(--dark); color: #fff; }
.pjx-obj__geral > span { flex: none; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); }
.pjx-obj__geral > span .ico { width: 26px; height: 26px; }
.pjx-obj__geral small { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .65); }
.pjx-obj__geral p { margin: 4px 0 0; font-size: 1.12rem; font-weight: 600; line-height: 1.5; }
.pjx-obj__sub { margin: 0 0 20px; text-align: center; font-size: 1.1rem; color: var(--ink); }
.pjx-obj__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.pjx-obj__lista li { position: relative; display: flex; gap: 16px; align-items: flex-start; padding: 26px 24px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); transition: transform .25s var(--ease), box-shadow .25s; }
.pjx-obj__lista li:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--primary), 0 22px 40px -26px rgba(16, 20, 33, .4); }
.pjx-obj__lista b { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--primary); color: #fff; font-size: .95rem; }
.pjx-obj__lista strong { display: block; color: var(--ink); line-height: 1.45; }
.pjx-obj__lista p { margin: 6px 0 0; font-size: .92rem; line-height: 1.6; color: var(--text); }
/* actividades */
.pjx-act { background: var(--soft); }
.pjx-act__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.pjx-act__lista li { padding: 28px 26px; border-radius: var(--radius-lg); background: var(--surface); transition: transform .25s var(--ease), box-shadow .25s; }
.pjx-act__lista li:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -28px rgba(16, 20, 33, .45); }
.pjx-act__ico { width: 54px; height: 54px; margin-bottom: 18px; display: grid; place-items: center; border-radius: 6px; background: var(--primary); color: #fff; }
.pjx-act__ico .ico { width: 24px; height: 24px; }
.pjx-act__lista strong { display: block; font-size: 1.05rem; color: var(--ink); }
.pjx-act__lista p { margin: 8px 0 0; font-size: .93rem; line-height: 1.6; color: var(--text); }
/* resultados / mudanças (faixa escura) */
.pjx-imp { background: var(--dark); color: #fff; }
.pjx-imp .pjx-h2 { color: #fff; }
.pjx-imp__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.pjx-imp__lista li { padding: 28px 24px; border-radius: var(--radius-lg); background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.pjx-imp__lista b { display: block; margin-bottom: 14px; font-size: 2.2rem; font-weight: 800; line-height: 1; color: var(--primary); }
.pjx-imp__lista strong { display: block; font-size: 1.05rem; line-height: 1.4; }
.pjx-imp__lista p { margin: 8px 0 0; font-size: .92rem; line-height: 1.6; color: rgba(255, 255, 255, .72); }
/* actualizações (linha do tempo) */
.pjx-upd__lista { list-style: none; max-width: 900px; margin: 0 auto; padding: 0; position: relative; display: grid; gap: 22px; }
.pjx-upd__lista::before { content: ""; position: absolute; left: 39px; top: 10px; bottom: 10px; width: 2px; background: var(--border); }
.pjx-upd__lista li { position: relative; display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 22px; align-items: start; }
.pjx-upd__data { position: relative; z-index: 1; width: 80px; padding: 10px 6px; border-radius: var(--radius); background: var(--primary); color: #fff; text-align: center; line-height: 1.1; }
.pjx-upd__data b { display: block; font-size: 1.6rem; }
.pjx-upd__data span { display: block; margin-top: 3px; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pjx-upd__data i { display: block; margin-top: 2px; font-style: normal; font-size: .72rem; opacity: .85; }
.pjx-upd__item { display: flex; gap: 20px; padding: 18px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); color: inherit; transition: box-shadow .25s, transform .25s var(--ease); }
.pjx-upd__item:hover { transform: translateX(4px); box-shadow: inset 0 0 0 1px var(--primary), 0 18px 34px -24px rgba(16, 20, 33, .4); }
.pjx-upd__img { flex: none; width: 150px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; }
.pjx-upd__img img { width: 100%; height: 100%; object-fit: cover; }
.pjx-upd__txt strong { display: block; color: var(--ink); line-height: 1.4; }
.pjx-upd__txt small { display: block; margin-top: 6px; font-size: .9rem; line-height: 1.6; color: var(--text); }
.pjx-upd__txt em { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-style: normal; font-weight: 700; font-size: .88rem; color: var(--primary); }
.pjx-upd__txt em .ico { width: 15px; height: 15px; }
/* momentos */
.pjx-gal { background: var(--soft); }
.pjx-gal__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.pjx-gal__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pjx-gal__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pjx-gal__item { position: relative; display: block; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 3; background: var(--border); }
.pjx-gal__item[hidden] { display: none; }
.pjx-gal__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.pjx-gal__item:hover img { transform: scale(1.07); }
.pjx-gal__item::after { content: ""; position: absolute; inset: 0; background: rgba(227, 105, 85, 0); transition: background .3s; }
.pjx-gal__item:hover::after { background: rgba(227, 105, 85, .18); }
.pjx-gal__item span { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; background: rgba(16, 20, 33, .55); color: #fff; font-size: 1.8rem; font-weight: 800; }
.pjx-gal__album { margin: 28px 0 0; text-align: center; }
/* financiadores e parceiros */
.pjx-apo__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 24px; }
.pjx-apo__bloco { padding: 28px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); border-top: 4px solid var(--primary); }
.pjx-apo__bloco h3 { margin: 0 0 18px; font-size: 1.05rem; color: var(--ink); }
.pjx-apo__bloco ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.pjx-apo__grid:has(> .pjx-apo__bloco:only-child) .pjx-apo__bloco ul { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.pjx-apo__item { height: 128px; display: grid; place-items: center; padding: 12px 16px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--border); transition: transform .25s var(--ease), box-shadow .25s; }
a.pjx-apo__item:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--primary), 0 16px 30px -20px rgba(16, 20, 33, .4); }
.pjx-apo__item img { max-width: 100%; max-height: 96px; object-fit: contain; }
.pjx-apo__item--nome { font-weight: 700; font-size: .92rem; color: #1e2436; text-align: center; line-height: 1.3; }
.pjx-proprios { display: grid; grid-template-columns: auto 1fr auto; gap: 34px; align-items: center; padding: 36px 40px; border-radius: var(--radius-lg); background: var(--soft); }
.pjx-proprios__logo { width: 124px; height: 124px; display: grid; place-items: center; border-radius: 50%; background: #fff; box-shadow: 0 16px 34px -20px rgba(16, 20, 33, .45); }
.pjx-proprios__logo img { width: 88px; height: 88px; object-fit: contain; }
.pjx-proprios .pjx-h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-bottom: 8px; }
.pjx-proprios p:not(.pjx-kicker) { margin: 0; max-width: 620px; }
.pjx-outros { background: var(--soft); }
/* apelo final */
.pjx-cta { position: relative; padding: 100px 0; color: #fff; text-align: center; background: var(--dark); overflow: hidden; isolation: isolate; }
.pjx-cta__bg { position: absolute; inset: 0; z-index: -2; }
.pjx-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.pjx-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(16, 20, 33, .94), rgba(16, 20, 33, .78)); }
.pjx-cta__in { max-width: 760px; }
.pjx-cta .pjx-kicker { justify-content: center; }
.pjx-cta h2 { margin: 0 0 14px; font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.15; color: #fff; }
.pjx-cta__in > p:not(.pjx-kicker) { margin: 0 auto 28px; max-width: 600px; color: rgba(255, 255, 255, .82); }
.pjx-cta__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.pjx-cta__share { margin-top: 34px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; font-size: .9rem; color: rgba(255, 255, 255, .75); }
.pjx-cta__share .nwp__share a, .pjx-cta__share .nwp__share button { background: rgba(255, 255, 255, .1); box-shadow: none; color: #fff; }
.pjx-cta__share .nwp__share a:hover, .pjx-cta__share .nwp__share button:hover { background: var(--primary); }
.pjx-cta__share .nwp__share button.is-ok::after { left: 50%; top: auto; bottom: calc(100% + 8px); transform: translateX(-50%); }
@media (max-width: 1080px) {
  .pjx-dados { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pjx-dados--2, .pjx-dados--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pjx-dado { border-bottom: 1px solid var(--border); }
  .pjx-sobre__in { grid-template-columns: 1fr; gap: 50px; }
  .pjx-sobre__foto { max-width: 620px; }
  .pjx-gal__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pjx-proprios { grid-template-columns: auto 1fr; }
  .pjx-proprios .btn { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 760px) {
  .pjx-hero { min-height: 0; padding: 50px 0 100px; }
  .pjx-hero::before { background: linear-gradient(0deg, rgba(16, 20, 33, .95) 10%, rgba(16, 20, 33, .65)); }
  .pjx-hero__lead { font-size: 1rem; }
  .pjx-hero__btns .btn { flex: 1 1 100%; justify-content: center; }
  .pjx-dados, .pjx-dados--2, .pjx-dados--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pjx-dado { padding: 18px 16px; }
  .pjx-dado:nth-child(2n) { border-right: 0; }
  .pjx-dado:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .pjx-num { padding-top: 30px; }
  .pjx-num__lista { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 10px; }
  .pjx-num__lista li { padding: 16px 14px; }
  .pjx-num__lista strong { font-size: 1.8rem; }
  .pjx-num__lista span { font-size: .8rem; line-height: 1.35; }
  .pjx-dado__ico { width: 36px; height: 36px; margin-bottom: 8px; }
  .pjx-head { margin-bottom: 28px; }
  .pjx-sobre__foto { margin: 0 0 30px; }
  .pjx-sobre__foto::before { inset: 16px -10px -12px 16px; }
  .pjx-sobre__selo { left: 10px; right: 10px; max-width: none; }
  .pjx-video__play { width: 66px; height: 66px; box-shadow: 0 0 0 9px rgba(255, 255, 255, .22); }
  .pjx-obj__geral { flex-direction: column; align-items: flex-start; padding: 22px; }
  .pjx-upd__lista::before { left: 27px; }
  .pjx-upd__lista li { grid-template-columns: 56px minmax(0, 1fr); gap: 12px; }
  .pjx-upd__data { width: 56px; padding: 8px 2px; }
  .pjx-upd__data b { font-size: 1.25rem; }
  .pjx-upd__data span { font-size: .6rem; }
  .pjx-upd__item { flex-direction: column; gap: 12px; padding: 14px; }
  .pjx-upd__img { width: 100%; aspect-ratio: 16 / 9; }
  .pjx-gal__grid, .pjx-gal__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pjx-apo__grid { grid-template-columns: 1fr; }
  .pjx-apo__bloco { padding: 22px 18px; }
  .pjx-apo__bloco ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pjx-proprios { grid-template-columns: 1fr; padding: 26px 22px; gap: 18px; }
  .pjx-proprios__logo { width: 92px; height: 92px; }
  .pjx-proprios__logo img { width: 64px; height: 64px; }
  .pjx-cta { padding: 70px 0; }
}

/* v2.56: vídeos nos "Momentos do projecto" */
.pjx-gal__conta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin: 4px 0 0 !important; font-weight: 600; }
.pjx-gal__conta span { display: inline-flex; align-items: center; gap: 6px; }
.pjx-gal__conta .ico { width: 16px; height: 16px; color: var(--primary); }
.pjx-vids { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.pjx-vids--1 { grid-template-columns: minmax(0, 760px); justify-content: center; }
.pjx-vids--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pjx-vid { display: block; width: 100%; padding: 0; border: 0; border-radius: var(--radius); overflow: hidden; background: var(--dark); color: #fff; font: inherit; text-align: left; cursor: pointer; box-shadow: 0 20px 40px -28px rgba(16, 20, 33, .55); }
.pjx-vid__img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.pjx-vid__img img { width: 100%; height: 100%; object-fit: cover; opacity: .78; transition: transform .6s var(--ease), opacity .3s; }
.pjx-vid:hover .pjx-vid__img img { transform: scale(1.05); opacity: .6; }
.pjx-vid__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%); display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 10px rgba(255, 255, 255, .22); transition: transform .25s; }
.pjx-vid:hover .pjx-vid__play { transform: translate(-50%, -50%) scale(1.1); }
.pjx-vid__play .ico { width: 24px; height: 24px; margin-left: 3px; }
.pjx-vid__t { display: block; padding: 12px 16px; font-weight: 700; font-size: .95rem; line-height: 1.4; }
.pjx-vmodal { width: min(1100px, 94vw); max-width: none; padding: 0; border: 0; background: transparent; overflow: visible; }
.pjx-vmodal::backdrop { background: rgba(10, 12, 20, .88); }
.pjx-vmodal__box { border-radius: var(--radius-lg); overflow: hidden; background: #000; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7); }
.pjx-vmodal__topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; background: var(--dark); color: #fff; }
.pjx-vmodal__topo strong { font-size: .95rem; }
.pjx-vmodal__topo button { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.pjx-vmodal__topo button:hover { background: var(--primary); }
.pjx-vmodal__topo .ico { width: 18px; height: 18px; }
.pjx-vmodal__ecra { aspect-ratio: 16 / 9; }
.pjx-vmodal__ecra iframe { width: 100%; height: 100%; border: 0; display: block; }
html.is-vmodal { overflow: hidden; }
@media (max-width: 1080px) { .pjx-vids { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pjx-vids--1 { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .pjx-vids, .pjx-vids--2 { grid-template-columns: 1fr; } }

/* v2.57: página do projecto mais compacta (menos espaços em branco) */
.section.pjx-sec { padding: 64px 0; }
.pjx-b { background: var(--bg); }
.pjx-s { background: var(--soft); }
.pjx-b + .pjx-b, .pjx-s + .pjx-s { padding-top: 0 !important; }
.pjx-head { margin-bottom: 30px; }
.pjx-h2 { margin-bottom: 10px; }
.pjx-num { padding: 36px 0 0; }
.pjx-num + .pjx-sobre { padding-top: 52px; }
.pjx-dados-wrap + .pjx-sobre { padding-top: 56px; }
.pjx-sobre__in { gap: 52px; }
.pjx-sobre__foto { margin-bottom: 26px; }
.pjx-obj__geral { margin-bottom: 26px; }
.pjx-obj__sub { margin-bottom: 14px; }
.pjx-obj__lista li, .pjx-act__lista li, .pjx-imp__lista li { padding: 22px; }
.pjx-act__lista { grid-template-columns: repeat(var(--c, 3), minmax(0, 1fr)); }
.pjx-act__lista--1 { --c: 1; max-width: 520px; margin-inline: auto !important; }
.pjx-act__lista--2 { --c: 2; } .pjx-act__lista--3 { --c: 3; } .pjx-act__lista--4 { --c: 4; }
.pjx-act__ico { width: 48px; height: 48px; margin-bottom: 14px; }
.pjx-imp .pjx-head { margin-bottom: 26px; }
.pjx-imp__lista { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pjx-imp__lista b { margin-bottom: 10px; font-size: 1.9rem; }
/* título à esquerda, conteúdo à direita (actualizações, financiadores) */
.pjx-lado { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 48px; align-items: start; }
.pjx-lado__head { position: sticky; top: calc(var(--header-h, 80px) + 24px); margin: 0; }
.pjx-lado__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; color: var(--primary); }
.pjx-lado__link .ico { width: 16px; height: 16px; }
.pjx-lado .pjx-upd__lista { max-width: none; margin: 0; }
.pjx-apo__logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.pjx-apo__logos .pjx-apo__item { height: auto; display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 14px 14px 12px; border-radius: var(--radius); }
.pjx-apo__img { height: 96px; display: grid; place-items: center; }
.pjx-apo__img img { max-width: 100%; max-height: 90px; object-fit: contain; }
.pjx-apo__img b { font-size: .95rem; color: #1e2436; text-align: center; line-height: 1.3; }
.pjx-apo__logos small { padding-top: 10px; border-top: 1px solid var(--border); font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--primary); text-align: center; }
.pjx-apo .pjx-lado--apo { align-items: center; }
.pjx-proprios { padding: 30px 34px; }
.pjx-cta { padding: 80px 0; }
@media (max-width: 1080px) {
  .pjx-act__lista--4 { --c: 2; }
  .pjx-act__lista--3 { --c: 2; }
  .pjx-lado { grid-template-columns: 1fr; gap: 24px; }
  .pjx-lado__head { position: static; }
}
@media (max-width: 760px) {
  .section.pjx-sec { padding: 46px 0; }
  .pjx-act__lista--2, .pjx-act__lista--3, .pjx-act__lista--4 { --c: 1; }
  .pjx-apo__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .pjx-apo__img { height: 70px; }
  .pjx-apo__img img { max-height: 64px; }
  .pjx-cta { padding: 60px 0; }
}

.pjx-apo__junte { box-shadow: none !important; border: 2px dashed var(--border); background: transparent !important; color: var(--primary); }
.pjx-apo__junte .pjx-apo__img > span { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; transition: transform .25s; }
.pjx-apo__junte .ico { width: 24px; height: 24px; }
.pjx-apo__junte:hover { border-color: var(--primary); }
.pjx-apo__junte:hover .pjx-apo__img > span { transform: scale(1.08); }
.pjx-apo__junte small { border-top-style: dashed; }
@media (max-width: 760px) {
  .pjx-act__lista { gap: 10px; }
  .pjx-act__lista li { display: grid; grid-template-columns: 42px minmax(0, 1fr); column-gap: 14px; align-items: start; padding: 16px; }
  .pjx-act__ico { grid-row: span 2; width: 42px; height: 42px; margin: 0; }
  .pjx-act__ico .ico { width: 20px; height: 20px; }
  .pjx-act__lista p { margin-top: 4px; }
  .pjx-obj__lista { gap: 10px; }
  .pjx-obj__lista li { padding: 16px; }
  .pjx-imp__lista { gap: 10px; }
  .pjx-imp__lista li { padding: 18px; }
  .pjx-imp__lista b { font-size: 1.5rem; margin-bottom: 6px; }
  .pjx-sobre__in { gap: 34px; }
}
@media (max-width: 760px) { .pjx-upd__img { aspect-ratio: 2 / 1; } .pjx-upd__lista { gap: 14px; } }

/* v2.58: mega menu (computador). O painel abre centrado por baixo do cabeçalho e só ocupa o que o conteúdo precisa. */
@media (min-width: 1081px) {
  .nav, .nav__list, .nav__item.has-mx { position: static; }
  .header__in { position: relative; }
  .sub.mx { left: 50%; right: auto; top: 100%; width: min(1180px, calc(100vw - 40px)); min-width: 0; padding: 0; border-top: 3px solid var(--primary); border-radius: 0 0 18px 18px;
    box-shadow: 0 30px 60px -24px rgba(16, 20, 33, .35), 0 0 0 1px var(--border); transform: translate(-50%, 10px);
    transition: opacity .2s var(--ease), transform .25s var(--ease), visibility 0s linear .2s; }
  .nav__item.has-mx:hover > .sub.mx, .nav__item.has-mx.is-open > .sub.mx, .nav__item.has-mx:focus-within > .sub.mx { transform: translate(-50%, 0); transition-delay: 0s; }
  .nav__item.has-mx:hover > .nav__link::before { content: ""; position: absolute; left: -20px; right: -20px; top: 100%; height: 14px; } /* ponte invisível até ao painel */
  .mx__in { display: grid; grid-template-columns: 250px minmax(0, 1fr) 290px; gap: 26px; padding: 24px; align-items: stretch; }
  .mx__in--sem { grid-template-columns: 250px minmax(0, 1fr); }
  /* apresentação */
  .mx__intro { display: flex; flex-direction: column; padding: 20px; border-radius: 14px; background: var(--soft); }
  .mx__k { margin: 0 0 4px; font-family: var(--hand); font-size: 1rem; color: var(--primary); line-height: 1.2; }
  .mx__t { margin: 0 0 8px; font-size: 1.25rem; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; color: var(--ink); }
  .mx__x { margin: 0 0 14px; font-size: .86rem; line-height: 1.55; color: var(--text); }
  .mx__chips { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 6px; }
  .mx__chips a { padding: 5px 11px; border-radius: 30px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font-size: .78rem; font-weight: 700; color: var(--ink); }
  .mx__chips a:hover { background: var(--primary); color: #fff; box-shadow: none; }
  .mx__ev { display: flex; gap: 10px; align-items: center; margin: 0 0 14px; padding: 10px; border-radius: 10px; background: var(--surface); color: var(--ink); font-size: .84rem; font-weight: 700; line-height: 1.3; }
  .mx__ev-d { flex: none; width: 46px; padding: 5px 0; border-radius: 8px; background: var(--primary); color: #fff; text-align: center; font-size: .66rem; font-weight: 800; text-transform: uppercase; line-height: 1.1; }
  .mx__ev-d b { display: block; font-size: 1.15rem; }
  .mx__ev small { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); }
  .mx__ev:hover { box-shadow: inset 0 0 0 1px var(--primary); }
  .mx__cta { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 700; color: var(--primary); }
  .mx__cta .ico { width: 15px; height: 15px; transition: transform .2s; }
  .mx__cta:hover .ico { transform: translateX(3px); }
  /* ligações: 2 colunas; com poucas (até 3) ficam lado a lado numa linha */
  .mx__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; align-content: start; }
  .mx__links:not(:has(> a:nth-of-type(4))) { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); align-content: center; gap: 12px; }
  .mx__links:not(:has(> a:nth-of-type(4))) .mx__link { flex-direction: column; align-items: flex-start; height: 100%; padding: 18px; box-shadow: inset 0 0 0 1px var(--border); }
  .mx__head { grid-column: 1 / -1; margin: 4px 10px 2px; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--primary); }
  .mx__head:not(:first-child) { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--border); }
  .mx__link { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; color: var(--ink); transition: background .2s, box-shadow .2s; }
  .mx__link:hover { background: var(--soft); }
  .mx__ico { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: var(--primary-soft, rgba(227, 105, 85, .12)); color: var(--primary); transition: background .2s, color .2s; }
  .mx__ico .ico { width: 19px; height: 19px; }
  .mx__link:hover .mx__ico { background: var(--primary); color: #fff; }
  .mx__thumb { flex: none; width: 58px; height: 44px; overflow: hidden; border-radius: 8px; background: var(--soft); }
  .mx__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
  .mx__link:hover .mx__thumb img { transform: scale(1.08); }
  .mx__txt { min-width: 0; }
  .mx__txt strong { display: block; font-size: .92rem; font-weight: 700; line-height: 1.3; }
  .mx__txt small { display: block; margin-top: 2px; font-size: .78rem; line-height: 1.4; color: var(--text); }
  .mx__link:hover .mx__txt strong { color: var(--primary); }
  /* destaque à direita */
  .mx__feat { display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; background: var(--soft); color: var(--ink); }
  .mx__feat-img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--border); }
  .mx__feat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
  .mx__feat:hover .mx__feat-img img { transform: scale(1.05); }
  .mx__feat-img i { position: absolute; left: 10px; top: 10px; padding: 4px 10px; border-radius: 30px; background: var(--primary); color: #fff; font-style: normal; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
  .mx__feat-body { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
  .mx__feat-body strong { font-size: .95rem; line-height: 1.35; }
  .mx__feat-body small { font-size: .8rem; color: var(--text); line-height: 1.45; }
  .mx__feat-body em { margin-top: 4px; display: inline-flex; align-items: center; gap: 6px; font-style: normal; font-size: .84rem; font-weight: 700; color: var(--primary); }
  .mx__feat-body em .ico { width: 14px; height: 14px; }
  .mx__feat--num { position: relative; }
  .mx__feat-num { position: absolute; right: 12px; top: 12px; max-width: 150px; padding: 10px 12px; border-radius: 12px; background: var(--primary); color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.25; box-shadow: 0 12px 24px -12px rgba(0, 0, 0, .5); }
  .mx__feat-num b { display: block; font-size: 1.9rem; line-height: 1; letter-spacing: -.02em; }
  .mx__feat--doar { justify-content: center; padding: 24px; background: linear-gradient(140deg, var(--primary), #c94f3c); color: #fff; }
  .mx__feat-ico { width: 48px; height: 48px; margin-bottom: 14px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .2); }
  .mx__feat-ico .ico { width: 22px; height: 22px; }
  .mx__feat--doar strong { font-size: 1.2rem; line-height: 1.25; }
  .mx__feat--doar small { margin: 8px 0 18px; font-size: .86rem; line-height: 1.5; opacity: .92; }
  .mx__feat-btn { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 6px; background: #fff; color: var(--primary); font-weight: 800; font-size: .88rem; transition: transform .2s; }
  .mx__feat-btn .ico { width: 15px; height: 15px; }
  .mx__feat--doar:hover .mx__feat-btn { transform: translateX(3px); }
}
/* telemóvel e tablet: só as ligações, numa lista simples */
@media (max-width: 1080px) {
  .mx__intro, .mx__feat { display: none; }
  .mx__in { display: block; }
  .mx__links { display: grid; gap: 2px; }
  .mx__head { margin: 10px 6px 4px; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
  .mx__link { display: flex; align-items: center; gap: 12px; padding: 9px 6px; border-radius: 8px; color: var(--ink); font-weight: 600; font-size: .93rem; }
  .mx__link:hover { background: var(--soft); color: var(--primary); }
  .mx__ico, .mx__thumb { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; background: var(--primary-soft, rgba(227, 105, 85, .12)); color: var(--primary); overflow: hidden; }
  .mx__ico .ico { width: 16px; height: 16px; }
  .mx__thumb img { width: 100%; height: 100%; object-fit: cover; }
  .mx__txt small { display: none; }
}
@media (min-width: 1081px) {
  .mx__txt small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .mx__feat--card .mx__feat-img, .mx__feat--num .mx__feat-img { flex: 1 1 auto; aspect-ratio: auto; min-height: 150px; }
  .mx__feat-body { flex: none; }
}
@media (min-width: 1081px) { .mx__mob { display: none !important; } }
@media (max-width: 1080px) { .mx__mob .mx__txt strong { color: var(--primary); } }

/* v2.59: página Áreas de Atuação */
.arx-ab { padding: 60px 0; }
.arx-ab__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.arx-ab__foto { margin: 0; aspect-ratio: 5 / 4; overflow: hidden; border-radius: var(--radius-lg); box-shadow: 0 30px 60px -34px rgba(16, 20, 33, .5); }
.arx-ab__foto img { width: 100%; height: 100%; object-fit: cover; }
.arx-ab__txt > p:not(.pjx-kicker) { margin: 0 0 24px; color: var(--text); line-height: 1.7; }
.arx-ab__nums { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 18px 40px; }
.arx-ab__nums li { display: flex; align-items: center; gap: 14px; }
.arx-ab__nums li > span { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 6px var(--primary-soft, rgba(227, 105, 85, .14)); }
.arx-ab__nums .ico { width: 24px; height: 24px; }
.arx-ab__nums strong { display: block; font-size: .95rem; color: var(--ink); }
.arx-ab__nums b { display: block; font-size: 1.05rem; color: var(--primary); }
.arx-ab__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; padding-top: 22px; border-top: 1px solid var(--border); }
.arx-ab__link { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); }
.arx-ab__link > span:first-child { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--primary); transition: background .2s, color .2s; }
.arx-ab__link .ico { width: 20px; height: 20px; }
.arx-ab__link strong { display: block; font-size: .92rem; }
.arx-ab__link small { font-size: .8rem; color: var(--text); }
.arx-ab__link:hover > span:first-child { background: var(--primary); color: #fff; }
/* grelha com filtro */
.arx-grid-sec { padding: 64px 0; background: var(--soft); }
.arx-filtros { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: -10px 0 30px; }
.arx-filtros button { position: relative; padding: 6px 2px; border: 0; background: none; font: inherit; font-weight: 600; font-size: .95rem; color: var(--text); cursor: pointer; }
.arx-filtros button sup { margin-left: 3px; font-size: .68rem; color: var(--primary); }
.arx-filtros button::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--primary); transform: scaleX(0); transition: transform .25s var(--ease); }
.arx-filtros button.is-active { color: var(--ink); }
.arx-filtros button.is-active::after, .arx-filtros button:hover::after { transform: scaleX(1); }
.arx-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.arx-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); transition: transform .3s var(--ease), box-shadow .3s; }
.arx-card[hidden] { display: none; }
.arx-card.is-new { animation: nwEntra .45s var(--ease) both; }
.arx-card:hover { transform: translateY(-5px); box-shadow: 0 26px 50px -30px rgba(16, 20, 33, .45); }
.arx-card__img { position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; }
.arx-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.arx-card:hover .arx-card__img img { transform: scale(1.06); }
.arx-card__ico { position: absolute; left: 18px; bottom: -1px; width: 54px; height: 54px; display: grid; place-items: center; border-radius: 12px 12px 0 0; background: var(--surface); color: var(--primary); }
.arx-card__ico .ico { width: 24px; height: 24px; }
.arx-card__leg { flex: 1; display: flex; gap: 16px; align-items: flex-end; justify-content: space-between; padding: 16px 18px 20px; }
.arx-card__tipo { margin: 0 0 4px; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--text); }
.arx-card h3 { margin: 0 0 6px; font-size: 1.12rem; line-height: 1.3; }
.arx-card h3 a { color: var(--ink); }
.arx-card h3 a:hover { color: var(--primary); }
.arx-card__txt { margin: 0; font-size: .88rem; line-height: 1.55; color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.arx-card__seta { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--ink); transition: background .2s, color .2s; }
.arx-card__seta .ico { width: 17px; height: 17px; }
.arx-card:hover .arx-card__seta { background: var(--primary); color: #fff; }
/* o que fazemos em cada área (separadores) */
.arx-det { padding: 64px 0; }
.arx-det__in { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 30px; align-items: start; }
.arx-det__tabs { display: grid; gap: 6px; position: sticky; top: calc(var(--header-h, 80px) + 20px); }
.arx-det__tabs button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-radius: 12px; background: var(--soft); font: inherit; text-align: left; color: var(--ink); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.arx-det__tabs button strong { display: block; font-size: .93rem; line-height: 1.3; }
.arx-det__tabs button small { display: block; font-size: .74rem; color: var(--text); }
.arx-det__ico { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: var(--surface); color: var(--primary); }
.arx-det__ico .ico { width: 19px; height: 19px; }
.arx-det__tabs button:hover { box-shadow: inset 0 0 0 1px var(--primary); }
.arx-det__tabs button.is-active { background: var(--dark); color: #fff; }
.arx-det__tabs button.is-active small { color: rgba(255, 255, 255, .65); }
.arx-det__tabs button.is-active .arx-det__ico { background: var(--primary); color: #fff; }
.arx-det__painel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 30px; padding: 30px; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); animation: nwEntra .35s var(--ease) both; }
.arx-det__painel[hidden] { display: none; }
.arx-det__corpo h3 { margin: 0 0 8px; font-size: 1.5rem; color: var(--ink); }
.arx-det__lead { margin: 0 0 18px; color: var(--text); line-height: 1.65; }
.arx-det__nums { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.arx-det__nums li { padding: 10px 16px; border-radius: 10px; background: var(--primary); color: #fff; }
.arx-det__nums b { display: block; font-size: 1.5rem; line-height: 1.1; }
.arx-det__nums span { font-size: .8rem; opacity: .92; }
.arx-det__sub { margin: 0 0 10px; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.arx-det__lista { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
.arx-det__lista li { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; font-weight: 500; color: var(--ink); line-height: 1.45; }
.arx-det__lista .ico { flex: none; width: 18px; height: 18px; padding: 3px; margin-top: 1px; border-radius: 50%; background: var(--primary); color: #fff; }
.arx-det__pj { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.arx-det__pj a { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; background: var(--soft); color: var(--ink); transition: box-shadow .2s; }
.arx-det__pj a:hover { box-shadow: inset 0 0 0 1px var(--primary); }
.arx-det__pj-img { flex: none; width: 52px; height: 40px; overflow: hidden; border-radius: 6px; }
.arx-det__pj-img img { width: 100%; height: 100%; object-fit: cover; }
.arx-det__pj strong { display: block; font-size: .84rem; line-height: 1.3; }
.arx-det__pj small { font-size: .74rem; color: var(--text); }
.arx-det__foto { margin: 0; overflow: hidden; border-radius: var(--radius); min-height: 300px; }
.arx-det__foto img { width: 100%; height: 100%; object-fit: cover; }
/* faixa final */
.arx-cta { padding: 40px 0; background: var(--soft); border-top: 1px solid var(--border); }
.arx-cta__in { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; }
.arx-cta__ico { flex: none; width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--primary); color: var(--primary); }
.arx-cta__ico .ico { width: 30px; height: 30px; }
.arx-cta__k { margin: 0 0 2px; color: var(--primary); font-weight: 600; }
.arx-cta h2 { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.75rem); color: var(--ink); }
.arx-cta__btns { margin-left: auto; display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 1080px) {
  .arx-ab__in { grid-template-columns: 1fr; gap: 34px; }
  .arx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .arx-det__in { grid-template-columns: 1fr; }
  .arx-det__tabs { position: static; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
  .arx-det__tabs button { flex: none; width: auto; scroll-snap-align: start; }
  .arx-det__painel { grid-template-columns: 1fr; }
  .arx-det__foto { order: -1; min-height: 0; aspect-ratio: 16 / 9; }
}
@media (max-width: 760px) {
  .arx-ab, .arx-grid-sec, .arx-det { padding: 46px 0; }
  .arx-grid { grid-template-columns: 1fr; gap: 16px; }
  .arx-det__painel { padding: 18px; }
  .arx-det__lista, .arx-det__pj { grid-template-columns: 1fr; }
  .arx-det__tabs button small { display: none; }
  .arx-cta__btns { margin-left: 0; width: 100%; }
  .arx-cta__btns .btn { flex: 1; justify-content: center; }
}

/* v2.59.1: Áreas — responsividade fina (tablet, telemóvel grande, telemóvel) */
@media (max-width: 1080px) {
  .arx-ab__in { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; }
  .arx-ab__foto { aspect-ratio: 4 / 5; }
  .arx-det__painel { grid-template-columns: minmax(0, 1fr) minmax(0, 260px); }
  .arx-det__foto { order: 0; aspect-ratio: auto; min-height: 260px; }
  .arx-det__lista { grid-template-columns: 1fr; }
  .arx-det__tabs { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 40px; }
  .arx-det__tabs.is-fim { -webkit-mask-image: none; mask-image: none; }
}
@media (max-width: 860px) {
  .arx-ab__in { grid-template-columns: 1fr; gap: 28px; }
  .arx-ab__foto { aspect-ratio: 16 / 10; max-height: 420px; }
}
@media (min-width: 561px) and (max-width: 760px) {
  .arx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .arx-card__leg { padding: 14px; }
  .arx-card h3 { font-size: 1rem; }
}
@media (max-width: 760px) {
  .arx-ab__nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .arx-ab__nums li { gap: 10px; }
  .arx-ab__nums li > span { width: 44px; height: 44px; box-shadow: 0 0 0 4px var(--primary-soft, rgba(227, 105, 85, .14)); }
  .arx-ab__nums .ico { width: 20px; height: 20px; }
  .arx-ab__nums strong { font-size: .84rem; line-height: 1.25; }
  .arx-ab__btns { gap: 14px 20px; }
  .arx-card__img { aspect-ratio: 16 / 10; }
  .arx-det__painel { grid-template-columns: 1fr; }
  .arx-det__foto { order: -1; min-height: 0; aspect-ratio: 16 / 9; }
  .arx-det__corpo h3 { font-size: 1.3rem; }
  .arx-det__nums li { flex: 1 1 calc(50% - 10px); }
  .arx-cta { padding: 32px 0; }
  .arx-cta__in { gap: 14px 18px; }
  .arx-cta__ico { width: 52px; height: 52px; }
  .arx-cta__ico .ico { width: 24px; height: 24px; }
}
@media (max-width: 400px) {
  .arx-filtros { gap: 4px 16px; }
  .arx-filtros button { font-size: .9rem; }
}

/* v2.59.1: entre 1081 e 1280 px o menu completo precisa do espaço do nome (fica só o logótipo) */
@media (min-width: 1081px) and (max-width: 1280px) { .header .brand__txt { display: none; } }

/* ───────────── v2.61: página de cada área de atuação (desenho próprio: ah, an, av, ai, ap, ao, apj, ant, ag, ad) ───────────── */
@media (min-width: 1081px) {
  /* página do projecto: 5 fotografias com a primeira em grande (mosaico sem buracos) */
  .pjx-gal__grid--5 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pjx-gal__grid--5 .pjx-gal__item:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
  .pjx-gal__grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.a-rot { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--primary); }
.a-rot::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.a-h2 { margin: 0; font-size: clamp(1.8rem, 3.2vw, 2.55rem); line-height: 1.12; letter-spacing: -.02em; color: var(--ink); }
.a-cab { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 48px; margin-bottom: 40px; }
.a-cab > p { max-width: 460px; margin: 0; line-height: 1.7; color: var(--text); }
.a-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--primary); padding-bottom: 3px; }
.a-link .ico { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.a-link:hover { color: var(--primary); }
.a-link:hover .ico { transform: translateX(4px); }

/* capa dividida: painel escuro + fotografia a toda a altura */
.ah { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 600px; background: var(--dark); color: #fff; }
.ah__painel { position: relative; display: flex; align-items: center; justify-content: flex-end; padding: 72px 64px 72px 16px; overflow: hidden; isolation: isolate; }
.ah__painel::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(120deg, #000 10%, transparent 70%); -webkit-mask-image: linear-gradient(120deg, #000 10%, transparent 70%); }
.ah__painel::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--primary); }
.ah__txt { width: 100%; max-width: 560px; }
.ah__k { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 26px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.ah__k i { font-style: normal; opacity: .4; }
.ah__ico { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; box-shadow: 0 14px 28px -14px rgba(227, 105, 85, .9); }
.ah__ico .ico { width: 24px; height: 24px; }
.ah__tipo { padding: 6px 12px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); color: #fff; }
.ah__t { margin: 0 0 20px; font-size: clamp(2.4rem, 4.6vw, 4rem); line-height: 1.04; letter-spacing: -.03em; color: #fff; }
.ah__lead { margin: 0 0 32px; font-size: 1.1rem; line-height: 1.7; color: rgba(255, 255, 255, .78); }
.ah__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ah__nums { list-style: none; margin: 44px 0 0; padding: 28px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; border-top: 1px solid rgba(255, 255, 255, .14); }
.ah__nums li { display: flex; flex-direction: column; gap: 6px; }
.ah__nums b { font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1; font-weight: 800; color: #fff; }
.ah__nums span { font-size: .85rem; line-height: 1.35; color: rgba(255, 255, 255, .62); }
.ah__foto { position: relative; margin: 0; min-height: 100%; overflow: hidden; }
.ah__foto > img, .ah__foto > picture, .ah__foto picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ah__foto::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(16, 20, 33, .55), transparent 30%), linear-gradient(0deg, rgba(16, 20, 33, .6), transparent 40%); pointer-events: none; }
.ah__loc { position: absolute; z-index: 2; left: 28px; bottom: 26px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: rgba(255, 255, 255, .95); color: #1e2436; font-size: .86rem; font-weight: 700; box-shadow: 0 16px 30px -18px rgba(0, 0, 0, .6); }
.ah__loc .ico { width: 16px; height: 16px; color: var(--primary); }
.ah__ods { position: absolute; z-index: 2; right: 24px; top: 24px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 10px 8px 14px; border-radius: 14px; background: rgba(16, 20, 33, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.ah__ods small { margin-right: 4px; font-size: .7rem; font-weight: 800; letter-spacing: .12em; color: #fff; }
.ah__ods b { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: #fff; font-size: .95rem; font-weight: 800; }

/* barra fixa com as secções da página */
.an { position: sticky; top: var(--header-h, 88px); z-index: 50; background: var(--surface); box-shadow: 0 1px 0 var(--border), 0 10px 24px -22px rgba(16, 20, 33, .45); }
.an__in { display: flex; align-items: center; gap: 20px; }
.an__lista { flex: 1; min-width: 0; list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.an__lista::-webkit-scrollbar { display: none; }
.an__lista a { position: relative; display: block; padding: 20px 14px; white-space: nowrap; font-size: .92rem; font-weight: 600; color: var(--text); text-decoration: none; transition: color .2s; }
.an__lista a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--primary); transform: scaleX(0); transition: transform .25s var(--ease); }
.an__lista a:hover, .an__lista a.is-on { color: var(--ink); }
.an__lista a.is-on::after { transform: scaleX(1); }
.an__doar { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .9rem; font-weight: 700; text-decoration: none; }
.an__doar .ico { width: 16px; height: 16px; }
.an__doar:hover { background: var(--dark); color: #fff; }

/* visão geral + "Em resumo" */
.av { padding: 96px 0; }
.av__in { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px 72px; align-items: start; }
.av__prose { margin-top: 22px; font-size: 1.04rem; line-height: 1.85; color: var(--text); }
.av__prose > p:first-child { font-size: clamp(1.15rem, 1.8vw, 1.35rem); line-height: 1.6; color: var(--ink); font-weight: 500; }
.av__prose strong { color: var(--ink); }
.av__ficha { position: sticky; top: calc(var(--header-h, 88px) + 90px); padding: 30px; border-radius: 24px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 30px 60px -44px rgba(16, 20, 33, .5); }
.av__ficha-t { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); }
.av__ficha-t .ico { width: 18px; height: 18px; }
.av__ficha dl { margin: 0; }
.av__ficha dl > div { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.av__ficha dt { display: flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 600; color: var(--text); }
.av__ficha dt .ico { width: 15px; height: 15px; color: var(--primary); }
.av__ficha dd { margin: 0; font-weight: 700; line-height: 1.45; color: var(--ink); }
.av__ods { margin-top: 20px; }
.av__ods p { margin: 0 0 12px; font-size: .8rem; font-weight: 600; color: var(--text); }
.av__ods ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.av__ods li { display: flex; align-items: center; gap: 12px; padding: 6px 12px 6px 6px; border-radius: 12px; background: color-mix(in srgb, var(--ods) 10%, transparent); }
.av__ods b { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 9px; background: var(--ods); color: #fff; font-size: 1.05rem; font-weight: 800; }
.av__ods span { font-size: .88rem; font-weight: 700; line-height: 1.3; color: var(--ink); }

/* o que fazemos: fotografia + lista com ícones */
.ai { padding: 96px 0; background: var(--soft); }
.ai__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px 72px; align-items: start; }
.ai__foto { position: sticky; top: calc(var(--header-h, 88px) + 90px); margin: 0; border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: 0 40px 70px -44px rgba(16, 20, 33, .6); }
.ai__foto img { width: 100%; height: 100%; object-fit: cover; }
.ai__foto figcaption { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 18px; background: rgba(16, 20, 33, .72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; }
.ai__foto figcaption b { font-size: 2.6rem; line-height: 1; color: var(--primary); }
.ai__foto figcaption span { font-size: .88rem; line-height: 1.45; color: rgba(255, 255, 255, .85); }
.ai__intro { margin: 16px 0 30px; line-height: 1.7; color: var(--text); }
.ai__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ai__lista li { display: flex; gap: 18px; align-items: flex-start; padding: 22px 24px; border-radius: 18px; background: var(--surface); box-shadow: 0 1px 0 var(--border); transition: transform .25s var(--ease), box-shadow .25s; }
.ai__lista li:hover { transform: translateX(6px); box-shadow: inset 4px 0 0 var(--primary), 0 20px 36px -28px rgba(16, 20, 33, .45); }
.ai__ico { flex: none; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: rgba(227, 105, 85, .12); color: var(--primary); transition: background .25s, color .25s; }
.ai__ico .ico { width: 24px; height: 24px; }
.ai__lista li:hover .ai__ico { background: var(--primary); color: #fff; }
.ai__lista h3 { margin: 2px 0 0; font-size: 1.08rem; line-height: 1.4; color: var(--ink); }
.ai__lista p { margin: 6px 0 0; font-size: .94rem; line-height: 1.65; color: var(--text); }

.a-video { padding: 0 0 96px; background: var(--soft); }

/* como trabalhamos: passos ligados por uma linha */
.ap { padding: 96px 0; background: var(--dark); color: #fff; }
.ap__cab { max-width: 640px; margin: 0 auto 56px; text-align: center; }
.ap__cab .a-rot { justify-content: center; }
.ap .a-h2 { color: #fff; }
.ap__passos { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 32px; }
.ap__passos::before { content: ""; position: absolute; top: 36px; left: calc(100% / var(--n, 4) / 2); right: calc(100% / var(--n, 4) / 2); border-top: 2px dashed rgba(255, 255, 255, .2); }
.ap__passos li { position: relative; text-align: center; }
.ap__ico { position: relative; width: 72px; height: 72px; margin: 0 auto 22px; display: grid; place-items: center; border-radius: 50%; background: var(--dark); box-shadow: inset 0 0 0 2px var(--primary); color: var(--primary); transition: background .3s, color .3s; }
.ap__ico .ico { width: 28px; height: 28px; }
.ap__ico i { position: absolute; top: -4px; right: -4px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; font-style: normal; font-size: .78rem; font-weight: 800; }
.ap__passos li:hover .ap__ico { background: var(--primary); color: #fff; }
.ap__passos h3 { margin: 0 0 10px; font-size: 1.1rem; color: #fff; }
.ap__passos p { margin: 0 auto; max-width: 260px; font-size: .93rem; line-height: 1.65; color: rgba(255, 255, 255, .68); }

/* onde actuamos: cartões por local */
.ao { padding: 96px 0; }
.ao__locais { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.ao__locais > li { position: relative; padding: 28px 26px; border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); overflow: hidden; transition: transform .25s var(--ease), box-shadow .25s; }
.ao__locais > li:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--primary), 0 26px 44px -30px rgba(16, 20, 33, .45); }
.ao__n { position: absolute; right: 20px; top: 14px; font-size: 3.4rem; line-height: 1; font-weight: 800; color: transparent; -webkit-text-stroke: 1px var(--border); }
.ao__pin { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50% 50% 50% 4px; background: var(--primary); color: #fff; }
.ao__pin .ico { width: 20px; height: 20px; }
.ao__locais h3 { margin: 18px 0 2px; font-size: 1.35rem; color: var(--ink); }
.ao__locais small { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
.ao__locais ul { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px dashed var(--border); display: grid; gap: 8px; }
.ao__locais ul a { display: block; font-size: .92rem; font-weight: 600; line-height: 1.4; color: var(--text); text-decoration: none; }
.ao__locais ul a::before { content: "→ "; color: var(--primary); }
.ao__locais ul a:hover { color: var(--primary); }
.ao__vazio { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; padding: 30px; border-radius: 22px; background: var(--soft); }
.ao__vazio > span { flex: none; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 16px; background: var(--primary); color: #fff; }
.ao__vazio > span .ico { width: 28px; height: 28px; }
.ao__vazio > div { flex: 1 1 320px; }
.ao__vazio strong { display: block; margin-bottom: 6px; font-size: 1.15rem; color: var(--ink); }
.ao__vazio p { margin: 0; line-height: 1.65; color: var(--text); }

/* projectos: cartões com a fotografia em cima e o texto a subir */
.apj { padding: 96px 0; background: var(--soft); }
.apj__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.apj__grid--1 { grid-template-columns: minmax(0, 520px); }
.apj__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.apj__c { position: relative; display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; background: var(--surface); color: inherit; text-decoration: none; box-shadow: 0 1px 0 var(--border), 0 24px 44px -38px rgba(16, 20, 33, .5); transition: transform .3s var(--ease), box-shadow .3s; }
.apj__c:hover { transform: translateY(-6px); box-shadow: 0 36px 60px -36px rgba(16, 20, 33, .55); }
.apj__img { aspect-ratio: 16 / 10; overflow: hidden; }
.apj__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.apj__c:hover .apj__img img { transform: scale(1.07); }
.apj__estado { position: absolute; left: 18px; top: 18px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 999px; background: #fff; color: #1e2436; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.apj__estado.is-on { color: #1f9d55; }
.apj__estado i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.apj__txt { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 22px 24px 24px; }
.apj__txt small { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-weight: 600; color: var(--text); }
.apj__txt small .ico { width: 14px; height: 14px; color: var(--primary); }
.apj__txt strong { font-size: 1.2rem; line-height: 1.35; color: var(--ink); }
.apj__txt em { font-style: normal; font-size: .93rem; line-height: 1.6; color: var(--text); }
.apj__ver { margin-top: auto; padding-top: 10px; display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 700; color: var(--primary); }
.apj__ver .ico { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.apj__c:hover .apj__ver .ico { transform: translateX(5px); }

/* notícias: uma em destaque e as outras ao lado */
.ant { padding: 96px 0; }
.ant__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; }
.ant__grid--1 { grid-template-columns: minmax(0, 760px); }
.ant__grid--2 { grid-template-columns: 1fr 1fr; }
.ant__dest { position: relative; display: block; min-height: 420px; border-radius: 24px; overflow: hidden; color: #fff; text-decoration: none; }
.ant__img { position: absolute; inset: 0; }
.ant__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ant__dest:hover .ant__img img { transform: scale(1.05); }
.ant__dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16, 20, 33, .92), rgba(16, 20, 33, .1) 65%); }
.ant__txt { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; display: grid; gap: 10px; padding: 30px; }
.ant time { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
.ant__txt strong { font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.25; }
.ant__txt em { font-style: normal; font-size: .95rem; line-height: 1.6; color: rgba(255, 255, 255, .8); }
.ant__lado { display: grid; gap: 20px; align-content: start; }
.ant__item { display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: center; padding: 14px; border-radius: 20px; background: var(--soft); color: inherit; text-decoration: none; transition: background .25s; }
.ant__item:hover { background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.ant__mini { aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; }
.ant__mini img { width: 100%; height: 100%; object-fit: cover; }
.ant__item > span:last-child { display: grid; gap: 6px; }
.ant__item strong { font-size: 1rem; line-height: 1.4; color: var(--ink); }
.ant__ler { display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--primary); }
.ant__ler .ico { width: 14px; height: 14px; }

/* galeria */
.ag { padding: 0 0 96px; }
.ag__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 200px; gap: 14px; }
.ag__grid--3 { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 320px; }
.ag__grid--4 .ag__item:first-child, .ag__grid--5 .ag__item:first-child, .ag__grid--6 .ag__item:first-child { grid-column: span 2; grid-row: span 2; }
.ag__grid--4 .ag__item:nth-child(4) { grid-column: span 2; }
.ag__grid--6 .ag__item:nth-child(6) { grid-column: span 2; }
.ag__item { position: relative; display: block; border-radius: 18px; overflow: hidden; }
.ag__item[hidden] { display: none; }
.ag__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ag__item > span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(16, 20, 33, .4); color: #fff; opacity: 0; transition: opacity .3s; }
.ag__item > span .ico { width: 28px; height: 28px; }
.ag__item:hover img { transform: scale(1.06); }
.ag__item:hover > span { opacity: 1; }

/* caixa de doação com valores sugeridos */
.ad { padding: 96px 0; background: var(--primary); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.ad::before { content: ""; position: absolute; z-index: -1; width: 620px; height: 620px; left: -220px; bottom: -320px; border-radius: 50%; border: 80px solid rgba(255, 255, 255, .06); }
.ad__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 48px 80px; align-items: center; }
.ad__k { margin: 0 0 12px; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.ad h2 { margin: 0 0 16px; font-size: clamp(1.9rem, 3.6vw, 2.8rem); line-height: 1.1; letter-spacing: -.02em; color: #fff; }
.ad__txt > p:not(.ad__k) { margin: 0; max-width: 520px; font-size: 1.05rem; line-height: 1.7; opacity: .92; }
.ad__garantias { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 12px; }
.ad__garantias li { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.ad__garantias .ico { flex: none; width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.ad__caixa { padding: 32px; border-radius: 26px; background: var(--surface); color: var(--ink); box-shadow: 0 40px 70px -40px rgba(16, 20, 33, .6); }
.ad__caixa-t { margin: 0 0 16px; font-size: 1.15rem; font-weight: 800; color: var(--ink); }
.ad__valores { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ad__valores a { display: grid; gap: 4px; height: 100%; padding: 14px 16px; border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--border); color: inherit; text-decoration: none; transition: box-shadow .2s, background .2s; }
.ad__valores a:hover, .ad__valores a.is-dest { box-shadow: inset 0 0 0 2px var(--primary); background: rgba(227, 105, 85, .06); }
.ad__valores b { font-size: 1.25rem; color: var(--ink); }
.ad__valores b small { font-size: .72rem; color: var(--text); }
.ad__valores span { font-size: .8rem; line-height: 1.4; color: var(--text); }
.ad__parc { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; font-size: .88rem; font-weight: 600; color: var(--text); text-decoration: none; }
.ad__parc .ico { width: 16px; height: 16px; color: var(--primary); }
.ad__parc:hover { color: var(--primary); }

/* índice das outras áreas */
.ar-idx { padding: 88px 0; }
.ar-idx__cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.ar-idx__cab .a-rot { margin: 0; }
.ar-idx__lista { list-style: none; margin: 0; padding: 0; }
.ar-idx__lista a { position: relative; display: grid; grid-template-columns: 54px 1fr auto 52px; gap: 22px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }
.ar-idx__lista li:first-child a { border-top: 1px solid var(--border); }
.ar-idx__ico { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; background: var(--soft); color: var(--primary); transition: background .25s, color .25s; }
.ar-idx__ico .ico { width: 24px; height: 24px; }
.ar-idx__lista strong { font-size: clamp(1.3rem, 2.6vw, 2rem); line-height: 1.15; letter-spacing: -.02em; color: var(--ink); transition: color .25s, transform .3s var(--ease); }
.ar-idx__lista small { font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text); }
.ar-idx__seta { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--border); color: var(--ink); transition: background .25s, color .25s, transform .25s; }
.ar-idx__seta .ico { width: 20px; height: 20px; }
.ar-idx__img { position: absolute; z-index: 2; right: 120px; top: 50%; width: 200px; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; pointer-events: none; opacity: 0; transform: translateY(-50%) rotate(-4deg) scale(.85); transition: opacity .3s, transform .4s var(--ease); box-shadow: 0 30px 50px -24px rgba(16, 20, 33, .55); }
.ar-idx__img img { width: 100%; height: 100%; object-fit: cover; }
.ar-idx__lista a:hover strong { color: var(--primary); transform: translateX(8px); }
.ar-idx__lista a:hover .ar-idx__ico { background: var(--primary); color: #fff; }
.ar-idx__lista a:hover .ar-idx__seta { background: var(--primary); color: #fff; transform: rotate(-45deg); box-shadow: none; }
.ar-idx__lista a:hover .ar-idx__img { opacity: 1; transform: translateY(-50%) rotate(-4deg) scale(1); }

@media (max-width: 1080px) {
  .ah { min-height: 0; }
  .ah__painel { padding: 56px 40px 56px 32px; }
  .av__in, .ai__in, .ad__in { grid-template-columns: 1fr; }
  .av__ficha, .ai__foto { position: static; }
  .ai__foto { aspect-ratio: 16 / 9; }
  .ap__passos { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 44px; }
  .ap__passos::before { display: none; }
  .apj__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ant__grid { grid-template-columns: 1fr; }
  .ar-idx__img { display: none; }
}
@media (max-width: 900px) {
  .ah { grid-template-columns: 1fr; }
  .ah__foto { order: -1; min-height: 0; aspect-ratio: 16 / 10; }
  .ah__painel { justify-content: flex-start; padding: 40px 16px 48px; }
  .ah__painel::after { width: 100%; height: 5px; bottom: auto; }
  .ah__txt { max-width: none; }
}
@media (max-width: 760px) {
  .a-cab { margin-bottom: 28px; }
  .ah__t { font-size: 2.3rem; }
  .ah__lead { font-size: 1rem; }
  .ah__btns .btn { flex: 1 1 auto; justify-content: center; }
  .ah__nums { margin-top: 32px; padding-top: 22px; gap: 12px; }
  .ah__nums b { font-size: 1.8rem; }
  .ah__nums span { font-size: .76rem; }
  .ah__loc { left: 12px; bottom: 12px; font-size: .78rem; padding: 8px 12px; }
  .ah__ods { right: 12px; top: 12px; padding: 6px 8px 6px 10px; }
  .ah__ods b { width: 28px; height: 28px; font-size: .82rem; }
  .an__lista a { padding: 16px 10px; font-size: .86rem; }
  .an__lista a::after { left: 10px; right: 10px; }
  .an__doar { padding: 8px 12px; }
  .av, .ai, .ap, .ao, .apj, .ant, .ad, .ar-idx { padding: 60px 0; }
  .ag, .a-video { padding-bottom: 60px; }
  .av__ficha { padding: 24px 20px; }
  .ai__lista li { padding: 18px; gap: 14px; }
  .ai__ico { width: 44px; height: 44px; }
  .ai__ico .ico { width: 20px; height: 20px; }
  .ap__cab { margin-bottom: 36px; }
  .ap__passos { grid-template-columns: 1fr; row-gap: 30px; }
  .apj__grid, .apj__grid--2 { grid-template-columns: 1fr; }
  .ant__dest { min-height: 340px; }
  .ant__txt { padding: 22px; }
  .ant__item { grid-template-columns: 110px 1fr; gap: 14px; }
  .ag__grid, .ag__grid--3 { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 8px; }
  .ag__grid--3 .ag__item:first-child { grid-column: span 2; }
  .ag__grid--4 .ag__item:nth-child(4), .ag__grid--6 .ag__item:nth-child(6) { grid-column: span 1; }
  .ag__grid--4 .ag__item:first-child, .ag__grid--5 .ag__item:first-child, .ag__grid--6 .ag__item:first-child { grid-column: span 2; grid-row: span 1; }
  .ad__caixa { padding: 24px 18px; }
  .ar-idx__lista a { grid-template-columns: 44px 1fr 40px; gap: 14px; padding: 16px 0; }
  .ar-idx__ico { width: 44px; height: 44px; border-radius: 12px; }
  .ar-idx__ico .ico { width: 20px; height: 20px; }
  .ar-idx__lista small { display: none; }
  .ar-idx__seta { width: 40px; height: 40px; }
}
@media (max-width: 400px) {
  .ad__valores { grid-template-columns: 1fr; }
}
#visao, #intervencoes, #abordagem, #onde, #projectos, #noticias, #galeria, #doar { scroll-margin-top: calc(var(--header-h, 88px) + 70px); }
.ant__txt time { justify-self: start; padding: 5px 10px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .7rem; }
/* v2.64: capa editável no painel (cor do painel, foco da fotografia, botões) */
.ah__foto > img, .ah__foto picture img { object-position: var(--foco, center); }
.ah__b1 { background: var(--primary); border-color: var(--primary); color: #fff; }
.ah__b1:hover { background: #fff; border-color: #fff; color: var(--primary); }
.ah__b2 { background: transparent; border-color: rgba(255, 255, 255, .55); color: #fff; }
.ah__b2:hover { background: #fff; border-color: #fff; color: var(--dark); }
.ah--coral { background: var(--primary); }
.ah--coral .ah__painel::after { background: var(--dark); }
.ah--coral .ah__ico { background: #fff; color: var(--primary); }
.ah--coral .ah__k, .ah--coral .ah__lead, .ah--coral .ah__nums span { color: rgba(255, 255, 255, .9); }
.ah--coral .ah__b1 { background: var(--dark); border-color: var(--dark); }
.ah--coral .ah__b1:hover { background: #fff; border-color: #fff; color: var(--dark); }
.ah--claro { background: var(--soft); color: var(--ink); }
.ah--claro .ah__painel::before { background-image: radial-gradient(rgba(16, 20, 33, .08) 1px, transparent 1px); }
.ah--claro .ah__t, .ah--claro .ah__nums b { color: var(--ink); }
.ah--claro .ah__k, .ah--claro .ah__lead, .ah--claro .ah__nums span { color: var(--text); }
.ah--claro .ah__tipo { color: var(--ink); box-shadow: inset 0 0 0 1px var(--border); }
.ah--claro .ah__nums { border-top-color: var(--border); }
.ah--claro .ah__b2 { border-color: var(--ink); color: var(--ink); }
.ah--claro .ah__b2:hover { background: var(--ink); color: #fff; }
.ah--claro .ah__b1:hover { background: var(--dark); border-color: var(--dark); color: #fff; }
/* v2.64: ícones oficiais dos ODS (Nações Unidas) */
.ah__ods { padding: 8px; gap: 6px; text-decoration: none; }
.ah__ods img { width: 56px; height: 56px; border-radius: 6px; display: block; transition: transform .2s; }
.ah__ods:hover img { transform: translateY(-2px); }
.av__ods ul { display: flex; flex-wrap: wrap; gap: 10px; }
.av__ods li { padding: 0; background: none; }
.av__ods li a { display: block; border-radius: 8px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.av__ods li a:hover { transform: translateY(-3px); box-shadow: 0 12px 24px -14px rgba(16, 20, 33, .6); }
.av__ods img { display: block; width: 72px; height: 72px; }
.aods { padding: 96px 0; }
.aods__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px 72px; align-items: start; }
.aods__cab { position: sticky; top: calc(var(--header-h, 88px) + 90px); }
.aods__cab > p:not(.a-rot) { margin: 16px 0 0; line-height: 1.75; color: var(--text); }
.aods__todos { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; max-width: 400px; }
.aods__todos a { display: block; border-radius: 6px; overflow: hidden; }
.aods__todos img { display: block; width: 100%; height: auto; aspect-ratio: 1; filter: grayscale(1); opacity: .35; transition: filter .25s, opacity .25s, transform .25s; }
.aods__todos li.is-on img { filter: none; opacity: 1; }
.aods__todos a:hover img { filter: none; opacity: 1; transform: scale(1.06); }
.aods__leg { font-size: .85rem !important; }
.aods__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.aods__lista li { display: grid; grid-template-columns: 128px 1fr; gap: 26px; align-items: start; padding: 24px; border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), inset 5px 0 0 var(--ods); }
.aods__lista img { width: 128px; height: 128px; border-radius: 10px; display: block; }
.aods__lista small { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--ods); }
.aods__lista h3 { margin: 6px 0 10px; font-size: 1.35rem; line-height: 1.25; color: var(--ink); }
.aods__lista p { margin: 0 0 14px; line-height: 1.7; color: var(--text); }
.aods__lista a { display: inline-flex; align-items: center; gap: 6px; font-size: .9rem; font-weight: 700; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--ods); padding-bottom: 2px; }
.aods__lista a .ico { width: 14px; height: 14px; }
.aods__lista a:hover { color: var(--ods); }
#ods { scroll-margin-top: calc(var(--header-h, 88px) + 70px); }
@media (max-width: 1080px) {
  .aods__in { grid-template-columns: 1fr; }
  .aods__cab { position: static; }
}
@media (max-width: 760px) {
  .aods { padding: 60px 0; }
  .aods__lista li { grid-template-columns: 84px 1fr; gap: 16px; padding: 18px; }
  .aods__lista img { width: 84px; height: 84px; }
  .aods__lista h3 { font-size: 1.1rem; }
  .ah__ods img { width: 40px; height: 40px; }
  .av__ods img { width: 60px; height: 60px; }
}
.aods + .ao { padding-top: 0; }

/* ───────────── v2.65: página Equipa e Governação (eqh, eql, og, eqm, eqc) ───────────── */
.eqh { position: relative; padding: 64px 0 56px; background: var(--soft); overflow: hidden; }
.eqh::after { content: ""; position: absolute; right: -140px; top: -180px; width: 520px; height: 520px; border-radius: 50%; border: 90px solid rgba(227, 105, 85, .07); pointer-events: none; }
.eqh__in { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px 72px; align-items: center; }
.eqh__t { margin: 0 0 18px; font-size: clamp(2.3rem, 5vw, 3.8rem); line-height: 1.04; letter-spacing: -.03em; color: var(--ink); }
.eqh__lead { margin: 0 0 28px; max-width: 560px; font-size: 1.1rem; line-height: 1.7; color: var(--text); }
.eqh__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
.eqh__ir { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--primary); padding-bottom: 3px; }
.eqh__ir .ico { width: 16px; height: 16px; }
.eqh__ir:hover { color: var(--primary); }
.eqh__nums { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.eqh__nums li { display: grid; gap: 4px; padding: 22px; border-radius: 20px; background: var(--surface); box-shadow: 0 1px 0 var(--border), 0 20px 40px -34px rgba(16, 20, 33, .5); }
.eqh__nums span { width: 40px; height: 40px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 12px; background: rgba(227, 105, 85, .12); color: var(--primary); }
.eqh__nums span .ico { width: 20px; height: 20px; }
.eqh__nums b { font-size: 2.2rem; line-height: 1; color: var(--ink); }
.eqh__nums small { font-size: .86rem; line-height: 1.35; color: var(--text); }

/* representante legal */
.eql { padding: 96px 0; }
.eql__in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px 80px; align-items: center; }
.eql__foto { position: relative; margin: 0; padding: 0 0 30px 30px; }
.eql__foto::before { content: ""; position: absolute; left: 0; bottom: 0; width: 70%; height: 70%; border-radius: 28px; background: radial-gradient(rgba(227, 105, 85, .35) 1.5px, transparent 1.5px); background-size: 16px 16px; }
.eql__retrato { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: 28px; overflow: hidden; background: linear-gradient(150deg, var(--dark), #2c3350); box-shadow: 0 40px 70px -40px rgba(16, 20, 33, .6); }
.eql__retrato img { width: 100%; height: 100%; object-fit: cover; }
.eql__retrato i { font-style: normal; font-size: clamp(5rem, 12vw, 8rem); font-weight: 800; letter-spacing: -.04em; color: #fff; }
.eql__retrato i::after { content: ""; display: block; width: 60px; height: 5px; margin: 10px auto 0; border-radius: 4px; background: var(--primary); }
.eql__selo { position: absolute; right: -14px; bottom: 54px; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 16px; background: var(--primary); color: #fff; box-shadow: 0 20px 36px -18px rgba(227, 105, 85, .9); }
.eql__selo .ico { width: 26px; height: 26px; }
.eql__selo span { display: grid; }
.eql__selo strong { font-size: .95rem; }
.eql__selo small { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.eql__cargo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 8px 0 22px; font-size: 1.05rem; font-weight: 700; color: var(--primary); }
.eql__cargo span { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--text); }
.eql__cargo .ico { width: 15px; height: 15px; }
.eql__bio { position: relative; margin: 0 0 24px; padding: 4px 0 4px 24px; border-left: 3px solid var(--primary); font-size: 1.12rem; line-height: 1.75; color: var(--ink); }
.eql__papeis { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 12px; }
.eql__papeis li { display: flex; align-items: center; gap: 12px; font-weight: 600; color: var(--ink); }
.eql__papeis .ico { flex: none; width: 36px; height: 36px; padding: 9px; border-radius: 10px; background: var(--soft); color: var(--primary); }
.eql__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.eql__intro { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--border); color: var(--text); }

/* organograma em árvore */
.og-sec { padding: 96px 0; background: var(--dark); color: #fff; }
.og-sec__cab { max-width: 680px; margin: 0 auto 56px; text-align: center; }
.og-sec__cab .a-rot { justify-content: center; }
.og-sec .a-h2 { color: #fff; }
.og-sec__cab > p:last-child { margin: 14px 0 0; line-height: 1.7; color: rgba(255, 255, 255, .7); }
.og { --linha: rgba(255, 255, 255, .22); position: relative; display: grid; gap: 48px; max-width: 1080px; margin: 0 auto; }
.og__n { position: relative; display: flex; justify-content: center; align-items: stretch; gap: 28px; }
.og__n + .og__n::before { content: ""; position: absolute; left: 50%; top: -48px; height: 48px; border-left: 2px solid var(--linha); }
.og__n--2::after, .og__n--4::after { content: ""; position: absolute; top: -24px; height: 0; border-top: 2px solid var(--linha); }
.og__n--2::after { left: 25%; right: 25%; }
.og__n--4::after { left: calc(100% / 6); right: calc(100% / 6); }
.og__n--2 > .og__box, .og__n--4 > .og__box { position: relative; }
.og__n--2 > .og__box::before, .og__n--4 > .og__box::before { content: ""; position: absolute; left: 50%; top: -26px; height: 26px; border-left: 2px solid var(--linha); }
.og__n--2 > .og__box { flex: 1 1 0; max-width: 470px; }
.og__n--4 > .og__box { flex: 1 1 0; max-width: 340px; }
.og__n--1 > .og__box, .og__n--3 > .og__box { width: min(100%, 520px); }
.og__box { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); color: #fff; text-decoration: none; transition: transform .25s var(--ease), background .25s; }
.og__box--topo { background: #fff; color: var(--ink); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.og__box--exec { background: var(--primary); box-shadow: 0 30px 60px -30px rgba(227, 105, 85, .8); }
.og__box--fiscal { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3); outline: 2px dashed rgba(255, 255, 255, .16); outline-offset: -8px; }
.og__box--link:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .1); }
.og__cab { display: flex; align-items: center; gap: 12px; }
.og__cab strong { display: block; font-size: 1.08rem; line-height: 1.3; }
.og__cab small { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.og__ico { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: rgba(227, 105, 85, .18); color: var(--primary); }
.og__ico .ico { width: 22px; height: 22px; }
.og__box--topo .og__ico { background: var(--primary); color: #fff; }
.og__box--exec .og__ico { background: #fff; color: var(--primary); }
.og__papel { margin: 0; font-size: .9rem; line-height: 1.55; opacity: .8; }
.og__pessoas { list-style: none; margin: 4px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(255, 255, 255, .14); display: grid; gap: 10px; }
.og__box--topo .og__pessoas { border-top-color: var(--border); grid-template-columns: 1fr 1fr; }
.og__pessoas li { display: flex; align-items: center; gap: 10px; }
.og__pessoas li > span:nth-child(2) { display: grid; min-width: 0; }
.og__pessoas b { font-size: .92rem; line-height: 1.3; }
.og__pessoas em { font-style: normal; font-size: .78rem; line-height: 1.35; opacity: .75; }
.og__av { flex: none; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: rgba(255, 255, 255, .14); }
.og__av img { width: 100%; height: 100%; object-fit: cover; }
.og__av i { font-style: normal; font-size: .8rem; font-weight: 800; letter-spacing: .02em; }
.og__box--topo .og__av { background: var(--soft); color: var(--ink); }
.og__box--exec .og__av { background: #fff; color: var(--primary); }
.og__selo { margin-left: auto; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--primary); }
.og__selo .ico { width: 15px; height: 15px; }
.og__elo { position: absolute; left: 50%; top: 50%; z-index: 1; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: 2px; padding: 8px 10px; border-radius: 12px; background: var(--dark); color: rgba(255, 255, 255, .7); }
.og__elo .ico { width: 18px; height: 18px; color: var(--primary); }
.og__elo small { font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.og__ir { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .86rem; font-weight: 700; color: var(--primary); }
.og__ir .ico { width: 14px; height: 14px; }

/* membros de cada órgão */
.eqm { padding: 96px 0; }
.eqm__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 22px; align-items: start; }
.eqm__orgao { border-radius: 24px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 44px -40px rgba(16, 20, 33, .5); overflow: hidden; }
.eqm__orgao header { display: flex; align-items: center; gap: 14px; padding: 22px 24px; background: var(--soft); }
.eqm__orgao header > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; }
.eqm__orgao header .ico { width: 22px; height: 22px; }
.eqm__orgao--direccao header { background: var(--dark); }
.eqm__orgao--direccao h3 { color: #fff !important; }
.eqm__orgao h3 { margin: 0; font-size: 1.12rem; color: var(--ink); }
.eqm__orgao header small { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--primary); }
.eqm__orgao ul { list-style: none; margin: 0; padding: 8px 24px 14px; }
.eqm__orgao li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.eqm__orgao li:last-child { border-bottom: 0; }
.eqm__av { flex: none; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: linear-gradient(140deg, var(--primary), #f0a08f); color: #fff; }
.eqm__av img { width: 100%; height: 100%; object-fit: cover; }
.eqm__av i { font-style: normal; font-weight: 800; letter-spacing: .02em; }
.eqm__orgao li > div { display: grid; gap: 2px; min-width: 0; }
.eqm__orgao strong { display: flex; align-items: center; gap: 6px; font-size: 1rem; color: var(--ink); }
.eqm__rep { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--primary); color: #fff; }
.eqm__rep .ico { width: 12px; height: 12px; }
.eqm__orgao em { font-style: normal; font-size: .88rem; line-height: 1.4; color: var(--text); }
.eqm__orgao small { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; color: var(--text); opacity: .85; }
.eqm__orgao small .ico { width: 13px; height: 13px; }
.eqm__orgao small a { color: var(--primary); }

/* faixa final */
.eqc { padding: 40px 0; background: var(--soft); border-top: 1px solid var(--border); }
.eqc__in { display: grid; grid-template-columns: auto 1fr auto; gap: 18px 28px; align-items: center; }
.eqc__ico { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 18px; background: var(--primary); color: #fff; }
.eqc__ico .ico { width: 30px; height: 30px; }
.eqc h2 { margin: 0 0 4px; font-size: clamp(1.3rem, 2.4vw, 1.7rem); color: var(--ink); }
.eqc p { margin: 0; color: var(--text); }
.eqc__btns { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 1080px) {
  .eqh__in, .eql__in { grid-template-columns: 1fr; }
  .eql__foto { max-width: 420px; }
  .eqc__in { grid-template-columns: auto 1fr; }
  .eqc__btns { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  /* organograma em coluna, com uma linha à esquerda */
  .og { gap: 18px; padding-left: 22px; }
  .og::before { content: ""; position: absolute; left: 0; top: 20px; bottom: 20px; border-left: 2px solid var(--linha); }
  .og__n { flex-direction: column; gap: 18px; }
  .og__n + .og__n::before, .og__n--2::after, .og__n--4::after, .og__n--2 > .og__box::before, .og__n--4 > .og__box::before { display: none; }
  .og__n > .og__box { width: 100%; max-width: none; position: relative; }
  .og__n > .og__box::after { content: ""; position: absolute; left: -22px; top: 32px; width: 22px; border-top: 2px solid var(--linha); }
  .og__elo { position: static; transform: none; display: flex; align-self: flex-start; gap: 8px; background: transparent; padding: 0; }
}
@media (max-width: 760px) {
  .eqh { padding: 40px 0; }
  .eqh__t { font-size: 2.3rem; }
  .eqh__lead { font-size: 1rem; }
  .eqh__nums li { padding: 16px; }
  .eqh__nums b { font-size: 1.8rem; }
  .eql, .og-sec, .eqm { padding: 60px 0; }
  .eql__selo { right: 0; bottom: 44px; }
  .eql__bio { font-size: 1rem; }
  .og-sec__cab { margin-bottom: 36px; }
  .og__box--topo .og__pessoas { grid-template-columns: 1fr; }
  .eqc__in { grid-template-columns: 1fr; }
  .eqc__btns .btn { flex: 1 1 auto; }
}
.eql__outras { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 10px; }
.eql__outras li { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 16px; background: var(--soft); box-shadow: inset 4px 0 0 var(--primary); }
.eql__outras li > span { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); color: #fff; }
.eql__outras .ico { width: 18px; height: 18px; }
.eql__outras strong { display: block; color: var(--ink); line-height: 1.35; }
.eql__outras p { margin: 4px 0 0; font-size: .92rem; line-height: 1.6; color: var(--text); }
.eqm__outra { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; color: var(--primary) !important; }
.eqm__outra .ico { width: 13px; height: 13px; flex: none; }
@media (min-width: 901px) {
  .og__n--2 { gap: 100px; }
  .og__n--2::after { left: calc(25% - 25px); right: calc(25% - 25px); }
}
.og__outra { font-weight: 700; opacity: 1 !important; color: #ffd0c6; }
.og__box--topo .og__outra { color: var(--primary); }
@media (min-width: 761px) {
  .eqm__grid--2, .eqm__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1081px) {
  .eqm__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ───────────── v2.66: página Parceiros (pcs-) ───────────── */
.pcs-tag { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.pcs-tag .ico { width: 14px; height: 14px; }

/* faixa de logótipos em movimento */
.pcs-faixa { position: relative; overflow: hidden; padding: 26px 0; background: var(--surface); border-bottom: 1px solid var(--border); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pcs-faixa__trilho { display: flex; align-items: center; gap: 64px; width: max-content; animation: pcs-rolar 40s linear infinite; }
.pcs-faixa:hover .pcs-faixa__trilho { animation-play-state: paused; }
.pcs-faixa__logo { flex: none; display: grid; place-items: center; height: 64px; }
.pcs-faixa__logo img { max-height: 64px; max-width: 170px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s; }
.pcs-faixa__logo:hover img { filter: none; opacity: 1; }
@keyframes pcs-rolar { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .pcs-faixa__trilho { animation: none; flex-wrap: wrap; justify-content: center; width: auto; } .pcs-faixa__logo[aria-hidden] { display: none; } }

/* porque trabalhamos em parceria */
.pcs-pq { padding: 96px 0; }
.pcs-pq__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 40px 80px; align-items: center; }
.pcs-pq__txt { margin: 16px 0 0; font-size: 1.05rem; line-height: 1.8; color: var(--text); }
.pcs-pq__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.pcs-pq__lista li { position: relative; display: flex; gap: 18px; align-items: flex-start; padding: 24px 26px; border-radius: 20px; background: var(--soft); overflow: hidden; }
.pcs-pq__n { position: absolute; right: 18px; top: 8px; font-size: 3.4rem; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(227, 105, 85, .3); }
.pcs-pq__ico { flex: none; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; }
.pcs-pq__ico .ico { width: 24px; height: 24px; }
.pcs-pq__lista h3 { margin: 2px 0 6px; font-size: 1.12rem; color: var(--ink); }
.pcs-pq__lista p { margin: 0; line-height: 1.65; color: var(--text); padding-right: 40px; }

/* parceiros em destaque */
.pcs-dest { padding: 0 0 96px; }
.pcs-dest__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.pcs-dest__grid--1 { grid-template-columns: minmax(0, 760px); }
.pcs-dest__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pcs-dc { display: grid; grid-template-columns: 180px 1fr; border-radius: 24px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 26px 50px -42px rgba(16, 20, 33, .55); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.pcs-dc:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--primary), 0 34px 60px -40px rgba(16, 20, 33, .6); }
.pcs-dest__grid--3 .pcs-dc { grid-template-columns: 1fr; }
.pcs-dc__logo { display: grid; place-items: center; padding: 28px; background: #fff; border-right: 1px solid var(--border); }
.pcs-dest__grid--3 .pcs-dc__logo { border-right: 0; border-bottom: 1px solid var(--border); height: 150px; }
.pcs-dc__logo img { max-width: 100%; max-height: 110px; object-fit: contain; }
.pcs-dc__logo b { font-size: 1.8rem; color: var(--primary); }
.pcs-dc__corpo { display: flex; flex-direction: column; gap: 8px; padding: 26px 28px; }
.pcs-dc h3 { margin: 0; font-size: 1.3rem; line-height: 1.25; color: var(--ink); }
.pcs-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; font-size: .84rem; color: var(--text); }
.pcs-meta span { display: inline-flex; align-items: center; gap: 6px; }
.pcs-meta .ico { width: 14px; height: 14px; color: var(--primary); }
.pcs-dc__txt { margin: 4px 0 0; line-height: 1.65; color: var(--text); }
.pcs-dc__sub { margin: 10px 0 0; font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.pcs-dc__pj { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pcs-dc__pj a { display: flex; align-items: center; gap: 10px; padding: 6px 10px 6px 6px; border-radius: 12px; background: var(--soft); font-size: .9rem; font-weight: 600; line-height: 1.35; color: var(--ink); text-decoration: none; transition: background .2s, color .2s; }
.pcs-dc__pj a:hover { background: rgba(227, 105, 85, .12); color: var(--primary); }
.pcs-dc__pj span { flex: none; width: 42px; height: 34px; border-radius: 8px; overflow: hidden; }
.pcs-dc__pj img { width: 100%; height: 100%; object-fit: cover; }
.pcs-dc__site { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .9rem; color: var(--primary); text-decoration: none; }
.pcs-dc__site .ico { width: 14px; height: 14px; }

/* todos os parceiros, com filtro */
.pcs-todos { padding: 96px 0; background: var(--soft); }
.pcs-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.pcs-filtros button { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 999px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font: inherit; font-size: .9rem; font-weight: 600; color: var(--text); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.pcs-filtros button .ico { width: 16px; height: 16px; }
.pcs-filtros sup { top: 0; min-width: 22px; padding: 2px 6px; border-radius: 999px; background: var(--soft); font-size: .72rem; font-weight: 800; color: var(--ink); }
.pcs-filtros button:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--primary); }
.pcs-filtros button.is-active { background: var(--dark); color: #fff; box-shadow: none; }
.pcs-filtros button.is-active sup { background: var(--primary); color: #fff; }
.pcs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 18px; }
.pcs-card { display: flex; flex-direction: column; border-radius: 20px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: inherit; text-decoration: none; overflow: hidden; transition: transform .25s var(--ease), box-shadow .25s; }
.pcs-card[hidden] { display: none; }
.pcs-card.is-new { animation: pcs-entra .35s var(--ease); }
@keyframes pcs-entra { from { opacity: 0; transform: translateY(8px); } }
.pcs-card:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--primary), 0 24px 40px -30px rgba(16, 20, 33, .5); }
.pcs-card__logo { display: grid; place-items: center; height: 130px; padding: 22px; background: #fff; border-bottom: 1px solid var(--border); }
.pcs-card__logo img { max-width: 100%; max-height: 86px; object-fit: contain; filter: grayscale(.2); transition: filter .25s, transform .3s var(--ease); }
.pcs-card:hover .pcs-card__logo img { filter: none; transform: scale(1.04); }
.pcs-card__logo--sigla { background: linear-gradient(140deg, var(--dark), #2c3350); border-bottom: 0; }
.pcs-card__logo--sigla b { font-size: 1.6rem; font-weight: 800; letter-spacing: .02em; color: #fff; }
.pcs-card__logo--sigla b::after { content: ""; display: block; width: 34px; height: 4px; margin: 8px auto 0; border-radius: 3px; background: var(--primary); }
.pcs-card__txt { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 18px 20px 16px; }
.pcs-card__txt strong { font-size: 1.02rem; line-height: 1.35; color: var(--ink); }
.pcs-card__txt em { font-style: normal; font-size: .88rem; line-height: 1.55; color: var(--text); }
.pcs-card__rodape { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: .8rem; color: var(--text); }
.pcs-card__rodape > span { display: inline-flex; align-items: center; gap: 5px; }
.pcs-card__rodape .ico { width: 14px; height: 14px; color: var(--primary); }
.pcs-card__ir { margin-left: auto; width: 30px; height: 30px; justify-content: center; border-radius: 50%; background: var(--soft); transition: background .2s; }
.pcs-card:hover .pcs-card__ir { background: var(--primary); }
.pcs-card:hover .pcs-card__ir .ico { color: #fff; }

/* testemunhos */
.pcs-test { padding: 96px 0; }
.pcs-test__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 22px; }
.pcs-tc { margin: 0; padding: 30px; border-radius: 24px; background: var(--soft); display: flex; flex-direction: column; gap: 18px; }
.pcs-tc__aspas { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; }
.pcs-tc__aspas .ico { width: 22px; height: 22px; }
.pcs-tc blockquote { margin: 0; font-size: 1.08rem; line-height: 1.75; color: var(--ink); }
.pcs-tc figcaption { margin-top: auto; display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--border); }
.pcs-tc__logo { flex: none; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 14px; background: #fff; overflow: hidden; }
.pcs-tc__logo img { max-width: 46px; max-height: 46px; object-fit: contain; }
.pcs-tc figcaption > span:last-child { display: grid; }
.pcs-tc strong { color: var(--ink); }
.pcs-tc small { color: var(--text); }

/* seja nosso parceiro */
.pcs-cta { padding: 96px 0; background: var(--dark); color: #fff; }
.pcs-cta__cab { max-width: 680px; margin: 0 auto 44px; text-align: center; }
.pcs-cta__cab .a-rot { justify-content: center; }
.pcs-cta .a-h2 { color: #fff; }
.pcs-cta__cab > p:last-child { margin: 14px 0 0; line-height: 1.7; color: rgba(255, 255, 255, .72); }
.pcs-cta__formas { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pcs-cta__formas li { padding: 28px; border-radius: 22px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); transition: background .25s, transform .25s var(--ease); }
.pcs-cta__formas li:hover { background: rgba(255, 255, 255, .1); transform: translateY(-4px); }
.pcs-cta__formas span { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 14px; background: var(--primary); color: #fff; }
.pcs-cta__formas .ico { width: 24px; height: 24px; }
.pcs-cta__formas h3 { margin: 0 0 8px; font-size: 1.12rem; color: #fff; }
.pcs-cta__formas p { margin: 0; line-height: 1.65; color: rgba(255, 255, 255, .7); }
.pcs-cta__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

@media (max-width: 1080px) {
  .pcs-pq__in { grid-template-columns: 1fr; }
  .pcs-dest__grid, .pcs-dest__grid--3 { grid-template-columns: 1fr; }
  .pcs-dest__grid--3 .pcs-dc { grid-template-columns: 180px 1fr; }
  .pcs-dest__grid--3 .pcs-dc__logo { border-right: 1px solid var(--border); border-bottom: 0; height: auto; }
  .pcs-cta__formas { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .pcs-pq, .pcs-todos, .pcs-test, .pcs-cta { padding: 60px 0; }
  .pcs-dest { padding-bottom: 60px; }
  .pcs-faixa { padding: 18px 0; }
  .pcs-faixa__trilho { gap: 40px; }
  .pcs-faixa__logo, .pcs-faixa__logo img { max-height: 46px; height: 46px; }
  .pcs-dc, .pcs-dest__grid--3 .pcs-dc { grid-template-columns: 1fr; }
  .pcs-dc__logo, .pcs-dest__grid--3 .pcs-dc__logo { border-right: 0; border-bottom: 1px solid var(--border); height: 130px; }
  .pcs-dc__corpo { padding: 22px; }
  .pcs-filtros { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px 22px; padding: 2px 16px; scrollbar-width: none; }
  .pcs-filtros::-webkit-scrollbar { display: none; }
  .pcs-filtros button { flex: none; }
  .pcs-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .pcs-card__logo { height: 96px; padding: 14px; }
  .pcs-card__logo img { max-height: 62px; }
  .pcs-card__txt { padding: 12px 12px 12px; }
  .pcs-card__txt em { display: none; }
  .pcs-card__txt strong { font-size: .9rem; }
  .pcs-card__logo--sigla b { font-size: 1.25rem; }
  .pcs-pq__lista li { padding: 20px; }
}
@media (max-width: 380px) { .pcs-grid { grid-template-columns: 1fr; } }
/* parceiros sem logótipo nem descrição: cartão compacto (sigla ao lado do nome) */
.pcs-card--mini { flex-direction: row; align-items: center; }
.pcs-card--mini .pcs-card__logo { flex: none; width: 76px; height: auto; align-self: stretch; padding: 10px; border-radius: 0; }
.pcs-card--mini .pcs-card__logo--sigla b { font-size: 1rem; }
.pcs-card--mini .pcs-card__logo--sigla b::after { width: 22px; height: 3px; margin-top: 5px; }
.pcs-card--mini .pcs-card__txt { padding: 14px 16px; gap: 4px; }
.pcs-card--mini .pcs-card__rodape { padding-top: 0; }
.pcs-card--mini .pcs-card__rodape:empty { display: none; }
@media (max-width: 760px) {
  .pcs-card--mini { grid-column: 1 / -1; }
}
.pcs-card--mini .pcs-card__logo { width: 100px; }
.pcs-card--mini .pcs-card__logo--sigla b { font-size: .82rem; letter-spacing: .03em; }
/* v2.66.1: Parceiros em telemóveis pequenos */
@media (max-width: 480px) {
  .pcs-pq__lista li { flex-direction: column; gap: 12px; padding: 20px 18px; }
  .pcs-pq__lista p { padding-right: 0; }
  .pcs-pq__n { font-size: 2.4rem; top: 14px; right: 14px; }
  .pcs-pq__ico { width: 44px; height: 44px; }
  .pcs-dc__logo, .pcs-dest__grid--3 .pcs-dc__logo { height: 110px; padding: 18px; }
  .pcs-dc__logo img { max-height: 80px; }
  .pcs-dc__corpo { padding: 18px; }
  .pcs-dc h3 { font-size: 1.15rem; }
  .pcs-card--mini .pcs-card__logo { width: 84px; }
  .pcs-cta__formas li { padding: 22px; }
  .pcs-cta__btns .btn { flex: 1 1 100%; }
  .pcs-h .eqh__btns .btn { flex: 1 1 100%; }
}
@media (max-width: 360px) {
  .pcs-h .eqh__nums { gap: 10px; }
  .pcs-h .eqh__nums li { padding: 14px 12px; }
  .pcs-h .eqh__nums b { font-size: 1.6rem; }
  .pcs-h .eqh__nums small { font-size: .78rem; }
  .pcs-dc__pj a { font-size: .84rem; }
}
/* cartões compactos no ecrã grande: etiqueta numa linha */
@media (min-width: 761px) {
  .pcs-card--mini .pcs-tag { font-size: .64rem; letter-spacing: .06em; }
}

/* ───────────── v2.67: página A Nossa História (hh, hn, hnum, hc, hf) ───────────── */
.hh { position: relative; padding: 64px 0 72px; background: var(--soft); overflow: hidden; }
.hh::before { content: ""; position: absolute; left: -160px; bottom: -220px; width: 520px; height: 520px; border-radius: 50%; border: 90px solid rgba(227, 105, 85, .06); pointer-events: none; }
.hh__in { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 48px 72px; align-items: center; }
.hh__t { margin: 0 0 18px; font-size: clamp(2.4rem, 5.2vw, 4rem); line-height: 1.03; letter-spacing: -.03em; color: var(--ink); }
.hh__lead { margin: 0 0 28px; max-width: 540px; font-size: 1.1rem; line-height: 1.7; color: var(--text); }
.hh__anos { display: flex; align-items: center; gap: 18px; margin: 0 0 30px; }
.hh__anos b { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; font-weight: 800; letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 2px var(--ink); }
.hh__anos b:last-child { color: var(--primary); -webkit-text-stroke: 0; }
.hh__seta { flex: 1; max-width: 160px; display: flex; align-items: center; color: var(--primary); }
.hh__seta i { flex: 1; height: 2px; background: repeating-linear-gradient(90deg, var(--primary) 0 8px, transparent 8px 14px); }
.hh__seta .ico { width: 22px; height: 22px; margin-left: -4px; }
.hh__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
.hh__foto { position: relative; margin: 0; }
.hh__img { display: block; aspect-ratio: 4 / 5; border-radius: 30px; overflow: hidden; box-shadow: 0 40px 70px -42px rgba(16, 20, 33, .6); }
.hh__img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); }
.hh__foto::after { content: ""; position: absolute; inset: 24px -24px -24px 24px; z-index: -1; border-radius: 30px; background: radial-gradient(rgba(227, 105, 85, .35) 1.5px, transparent 1.5px); background-size: 16px 16px; }
.hh__selo { position: absolute; left: -26px; bottom: 40px; display: grid; justify-items: center; width: 140px; padding: 20px 14px; border-radius: 24px; background: var(--primary); color: #fff; text-align: center; box-shadow: 0 24px 44px -20px rgba(227, 105, 85, .9); }
.hh__selo b { font-size: 3rem; line-height: 1; }
.hh__selo span { margin-top: 6px; font-size: .78rem; line-height: 1.35; font-weight: 600; }

/* o nosso nome + introdução */
.hn { padding: 96px 0 72px; }
.hn__in { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 40px 72px; align-items: center; }
.hn__in--so { grid-template-columns: minmax(0, 760px); justify-content: center; }
.hn__nome { position: relative; padding: 40px 36px; border-radius: 28px; background: var(--dark); color: #fff; overflow: hidden; }
.hn__nome::after { content: "“"; position: absolute; right: 18px; top: -30px; font-size: 12rem; line-height: 1; font-weight: 800; color: rgba(227, 105, 85, .18); pointer-events: none; }
.hn__k { margin: 0 0 18px; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--primary); }
.hn__palavra { margin: 0; font-size: clamp(2.2rem, 4.6vw, 3.4rem); line-height: 1; font-weight: 800; letter-spacing: .04em; color: #fff; }
.hn__fon { margin: 8px 0 22px; font-size: .86rem; font-style: italic; color: rgba(255, 255, 255, .6); }
.hn__nome h2 { margin: 0 0 10px; font-size: 1.5rem; color: #ffd0c6; }
.hn__nome h2::before { content: "= "; color: var(--primary); }
.hn__nome > p:last-child { margin: 0; line-height: 1.7; color: rgba(255, 255, 255, .8); }
.hn__txt { font-size: 1.06rem; line-height: 1.85; color: var(--text); }
.hn__txt > p:first-child { margin-top: 0; font-size: clamp(1.15rem, 1.9vw, 1.4rem); line-height: 1.6; font-weight: 500; color: var(--ink); }

/* números do percurso */
.hnum { padding: 0 0 24px; }
.hnum__lista { list-style: none; margin: 0; padding: 30px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.hnum__lista li { display: grid; gap: 6px; padding: 6px 24px; border-left: 1px solid var(--border); }
.hnum__lista li:first-child { border-left: 0; padding-left: 0; }
.hnum__lista b { font-size: clamp(2rem, 3.6vw, 2.8rem); line-height: 1; font-weight: 800; color: var(--ink); }
.hnum__lista li:nth-child(2) b { color: var(--primary); }
.hnum__lista span { font-size: .88rem; color: var(--text); }

/* cronologia */
.hc { padding: 72px 0 96px; }
.hc__cab { max-width: 680px; margin: 0 auto 30px; text-align: center; }
.hc__cab .a-rot { justify-content: center; }
.hc__cab > p:last-child:not(.a-rot) { margin: 14px 0 0; line-height: 1.7; color: var(--text); }
.hc__anos { position: sticky; top: calc(var(--header-h, 88px) + 10px); z-index: 20; display: flex; gap: 4px; width: max-content; max-width: 100%; margin: 0 auto 48px; padding: 6px; border-radius: 999px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 14px 30px -20px rgba(16, 20, 33, .45); overflow-x: auto; scrollbar-width: none; }
.hc__anos::-webkit-scrollbar { display: none; }
.hc__anos a { flex: none; padding: 8px 14px; border-radius: 999px; font-size: .88rem; font-weight: 700; color: var(--text); text-decoration: none; transition: background .2s, color .2s; }
.hc__anos a:hover { color: var(--ink); background: var(--soft); }
.hc__anos a.is-on { background: var(--primary); color: #fff; }
.hc__wrap { position: relative; }
.hc__progresso { position: absolute; left: 50%; top: 0; bottom: 0; width: 3px; margin-left: -1.5px; border-radius: 3px; background: var(--border); }
.hc__progresso i { display: block; width: 100%; height: 0; border-radius: 3px; background: linear-gradient(var(--primary), #f0a08f); transition: height .1s linear; }
.hc__linha { position: relative; list-style: none; margin: 0; padding: 0; }
.hc__m { position: relative; width: 50%; padding: 0 56px 48px 0; }
.hc__m:nth-child(even) { margin-left: 50%; padding: 0 0 48px 56px; }
.hc__ponto { position: absolute; top: 6px; right: -26px; z-index: 1; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--surface); box-shadow: inset 0 0 0 2px var(--border), 0 0 0 8px var(--bg); color: var(--primary); transition: background .4s, color .4s, box-shadow .4s; }
.hc__m:nth-child(even) .hc__ponto { right: auto; left: -26px; }
.hc__ponto .ico { width: 22px; height: 22px; }
.hc__m.is-in .hc__ponto { background: var(--primary); color: #fff; box-shadow: inset 0 0 0 2px var(--primary), 0 0 0 8px var(--bg); }
.hc__card { position: relative; padding: 26px 28px; border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 44px -40px rgba(16, 20, 33, .55); opacity: .35; transform: translateY(16px); transition: opacity .6s var(--ease), transform .6s var(--ease), box-shadow .3s; }
.hc__m.is-in .hc__card { opacity: 1; transform: none; }
.hc__card:hover { box-shadow: 0 0 0 1px var(--primary), 0 30px 50px -36px rgba(16, 20, 33, .55); }
.hc__card::before { content: ""; position: absolute; top: 24px; right: -9px; width: 18px; height: 18px; background: inherit; transform: rotate(45deg); box-shadow: 1px -1px 0 var(--border); }
.hc__m:nth-child(even) .hc__card::before { right: auto; left: -9px; box-shadow: -1px 1px 0 var(--border); }
.hc__ano { display: inline-block; margin-bottom: 10px; font-size: 2.2rem; line-height: 1; font-weight: 800; letter-spacing: -.02em; color: var(--primary); }
.hc__card h3 { margin: 0 0 8px; font-size: 1.2rem; line-height: 1.35; color: var(--ink); }
.hc__card p { margin: 0; line-height: 1.7; color: var(--text); }
.hc__img { display: block; margin: 4px 0 16px; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; }
.hc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.hc__img:hover img { transform: scale(1.05); }
.hc__mais { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-weight: 700; font-size: .9rem; color: var(--primary); text-decoration: none; }
.hc__mais .ico { width: 15px; height: 15px; }
.hc__m--grande .hc__card { background: var(--dark); box-shadow: 0 30px 60px -36px rgba(16, 20, 33, .7); }
.hc__m--grande .hc__card::before { background: var(--dark); box-shadow: none; }
.hc__m--grande .hc__card h3 { color: #fff; }
.hc__m--grande .hc__card p { color: rgba(255, 255, 255, .78); }
.hc__m--grande .hc__ano { font-size: 2.8rem; }
.hc__m--grande .hc__ponto { width: 60px; height: 60px; right: -30px; }
.hc__m--grande:nth-child(even) .hc__ponto { left: -30px; }
.hc__m--hoje { width: 100%; margin-left: 0 !important; padding: 0 !important; display: grid; justify-items: center; }
.hc__m--hoje .hc__ponto { position: relative; left: auto !important; right: auto !important; top: 0; background: var(--primary); color: #fff; box-shadow: 0 0 0 8px var(--bg); }
.hc__m--hoje .hc__ponto .ico { transform: rotate(90deg); }
.hc__hoje { display: grid; justify-items: center; gap: 4px; margin-top: 14px; text-align: center; }
.hc__hoje b { font-size: 1.2rem; color: var(--ink); }
.hc__hoje span { color: var(--text); }

/* o próximo capítulo */
.hf { padding: 96px 0; background: var(--dark); color: #fff; }
.hf__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 40px 80px; align-items: center; }
.hf .a-h2 { color: #fff; }
.hf__cab > p:not(.a-rot) { margin: 16px 0 28px; line-height: 1.75; color: rgba(255, 255, 255, .72); }
.hf__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.hf__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; counter-reset: hf; }
.hf__lista li { display: flex; gap: 18px; align-items: flex-start; padding: 24px 26px; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); transition: background .25s, transform .25s var(--ease); }
.hf__lista li:hover { background: rgba(255, 255, 255, .1); transform: translateX(6px); }
.hf__ico { flex: none; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; }
.hf__ico .ico { width: 24px; height: 24px; }
.hf__lista h3 { margin: 2px 0 6px; font-size: 1.12rem; color: #fff; }
.hf__lista p { margin: 0; line-height: 1.65; color: rgba(255, 255, 255, .7); }

@media (prefers-reduced-motion: reduce) { .hc__card { opacity: 1; transform: none; transition: none; } }
@media (max-width: 1080px) {
  .hh__in, .hn__in, .hf__in { grid-template-columns: 1fr; }
  .hh__foto { max-width: 520px; }
  .hh__img { aspect-ratio: 16 / 11; }
}
@media (max-width: 900px) {
  /* cronologia numa coluna, com a linha à esquerda */
  .hc__progresso { left: 26px; }
  .hc__m, .hc__m:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 32px 76px; }
  .hc__ponto, .hc__m:nth-child(even) .hc__ponto, .hc__m--grande .hc__ponto, .hc__m--grande:nth-child(even) .hc__ponto { left: 0; right: auto; }
  .hc__m--grande .hc__ponto { left: -4px; }
  .hc__card::before, .hc__m:nth-child(even) .hc__card::before { left: -9px; right: auto; box-shadow: -1px 1px 0 var(--border); }
  .hc__m--grande .hc__card::before { box-shadow: none; }
  .hc__m--hoje { justify-items: start; padding-left: 0 !important; }
  .hc__hoje { justify-items: start; text-align: left; margin: 10px 0 0 0; }
}
@media (max-width: 760px) {
  .hh { padding: 40px 0 56px; }
  .hh__t { font-size: 2.4rem; }
  .hh__lead { font-size: 1rem; }
  .hh__selo { left: 12px; bottom: 12px; width: 110px; padding: 14px 10px; border-radius: 18px; }
  .hh__selo b { font-size: 2.2rem; }
  .hh__foto::after { inset: 14px -10px -14px 14px; }
  .hn { padding: 60px 0 48px; }
  .hn__nome { padding: 30px 24px; }
  .hnum__lista { grid-template-columns: 1fr 1fr; gap: 18px 0; padding: 24px 0; }
  .hnum__lista li { padding: 4px 16px; }
  .hnum__lista li:nth-child(odd) { border-left: 0; padding-left: 0; }
  .hc { padding: 48px 0 60px; }
  .hc__anos { margin-bottom: 30px; }
  .hc__card { padding: 20px; }
  .hc__ano { font-size: 1.8rem; }
  .hc__m--grande .hc__ano { font-size: 2.2rem; }
  .hc__m, .hc__m:nth-child(even) { padding-left: 66px; }
  .hc__ponto { width: 46px; height: 46px; }
  .hc__progresso { left: 23px; }
  .hf { padding: 60px 0; }
  .hf__btns .btn { flex: 1 1 auto; }
  .hf__lista li { padding: 20px; }
}
@media (max-width: 400px) {
  .hh__anos { gap: 10px; }
  .hh__btns .btn { flex: 1 1 100%; }
  .hc__m, .hc__m:nth-child(even) { padding-left: 58px; }
}
#cronologia [id^="ano-"] { scroll-margin-top: calc(var(--header-h, 88px) + 90px); }
@media (min-width: 901px) { .hc__m + .hc__m:not(.hc__m--hoje) { margin-top: -90px; } .hc__m--hoje { margin-top: 10px; } }
/* "O próximo capítulo" em bloco arredondado (não se cola ao rodapé escuro) */
.hf { padding: 24px 0 96px; background: var(--bg); }
.hf__in { position: relative; padding: 60px 56px; border-radius: 32px; background: var(--dark); overflow: hidden; isolation: isolate; }
.hf__in::before { content: ""; position: absolute; z-index: -1; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%; border: 70px solid rgba(227, 105, 85, .1); }
@media (max-width: 760px) {
  .hf { padding: 8px 0 60px; }
  .hf__in { padding: 36px 22px; border-radius: 24px; }
}
/* v2.67.1: A Nossa História em todos os ecrãs */
.hnum__dest b { color: var(--primary) !important; }
.hnum__lista li:nth-child(2) b { color: var(--ink); }
@media (min-width: 901px) and (max-width: 1080px) {
  .hh__in, .hn__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 40px; }
  .hn__in--so { grid-template-columns: minmax(0, 760px); }
  .hh__img { aspect-ratio: 4 / 5; }
  .hh__selo { left: -14px; }
  .hn__nome { padding: 32px 28px; }
  .hf__in { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .hh__foto { max-width: 560px; }
  .hh__img { aspect-ratio: 16 / 11; }
}
@media (max-width: 760px) {
  .hnum__lista li:last-child:nth-child(odd) { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
  .hh__anos b { font-size: clamp(1.9rem, 10vw, 2.6rem); }
}
@media (max-width: 360px) {
  .hh__t { font-size: 2.05rem; }
  .hn__palavra { font-size: 1.9rem; }
  .hc__card { padding: 16px; }
  .hc__card h3 { font-size: 1.05rem; }
}
/* v2.68: ODS no fim de "Onde actuamos" (Sobre Nós) */
.ods-faixa { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 36px; padding: 22px 26px; border-radius: 20px; background: var(--soft); }
.ods-faixa__t { display: grid; gap: 4px; margin: 0; max-width: 380px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.ods-faixa__t span { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); }
.ods-faixa__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ods-faixa__lista a { display: block; border-radius: 8px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.ods-faixa__lista a:hover { transform: translateY(-3px); box-shadow: 0 12px 22px -12px rgba(16, 20, 33, .55); }
.ods-faixa__lista img { display: block; width: 64px; height: 64px; }
@media (max-width: 760px) { .ods-faixa { padding: 18px; margin-top: 26px; } .ods-faixa__lista { gap: 8px; } .ods-faixa__lista img { width: 52px; height: 52px; } }
/* ODS: o ícone aumenta ao passar o rato */
.ods-faixa__lista li { position: relative; }
.ods-faixa__lista a { transition: transform .25s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s; }
.ods-faixa__lista a:hover, .ods-faixa__lista a:focus-visible { position: relative; z-index: 2; transform: scale(1.35); box-shadow: 0 18px 30px -12px rgba(16, 20, 33, .55); }
@media (prefers-reduced-motion: reduce) { .ods-faixa__lista a:hover { transform: none; } }
/* ODS maiores, para se lerem bem */
.ods-faixa { gap: 18px 28px; }
.ods-faixa__t { max-width: 300px; }
.ods-faixa__lista { gap: 12px; }
.ods-faixa__lista img { width: 88px; height: 88px; }
.ods-faixa__lista a { border-radius: 10px; }
.ods-faixa__lista a:hover, .ods-faixa__lista a:focus-visible { transform: scale(1.55); }
@media (max-width: 760px) { .ods-faixa__lista { gap: 10px; } .ods-faixa__lista img { width: 72px; height: 72px; } .ods-faixa__lista a:hover { transform: scale(1.3); } }
@media (max-width: 380px) { .ods-faixa__lista img { width: 64px; height: 64px; } }

/* ───────────── v2.69: página Testemunhos (tsh, tsf, tsl, tse, tsp) ───────────── */
.ts-preview { margin: 18px 0 0; }
/* história em destaque */
.tsf { padding: 72px 0 24px; }
.tsf__card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); border-radius: 30px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 40px 70px -50px rgba(16, 20, 33, .55); overflow: hidden; }
.tsf__media { position: relative; min-height: 440px; background: var(--dark); }
.tsf__media > button { position: absolute; inset: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.tsf__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.tsf__media > button:hover img { transform: scale(1.04); }
.tsf__media--sem { display: grid; place-items: center; }
.tsf__ini { font-size: clamp(5rem, 11vw, 8rem); font-weight: 800; letter-spacing: -.04em; color: rgba(255, 255, 255, .92); }
.tsf__selo { position: absolute; left: 20px; top: 20px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.tsf__selo .ico { width: 14px; height: 14px; }
.tsf__txt { position: relative; display: flex; flex-direction: column; gap: 16px; padding: 44px 48px; }
.tsf__aspas { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 16px; background: rgba(227, 105, 85, .12); color: var(--primary); }
.tsf__aspas .ico { width: 28px; height: 28px; }
.tsf__txt blockquote { margin: 0; }
.tsf__txt blockquote p { margin: 0; font-size: clamp(1.25rem, 2.2vw, 1.65rem); line-height: 1.5; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.tsf__quem { display: flex; align-items: center; gap: 14px; }
.tsf__quem > span:last-child { display: grid; }
.tsf__quem strong { font-size: 1.05rem; color: var(--ink); }
.tsf__quem small { color: var(--text); }
.tsf__mud { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: stretch; }
.tsf__mud p { margin: 0; padding: 14px 16px; border-radius: 14px; background: var(--soft); font-size: .92rem; line-height: 1.5; color: var(--ink); }
.tsf__mud p.is-now { background: rgba(31, 157, 85, .1); }
.tsf__mud small { display: block; margin-bottom: 4px; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--text); }
.tsf__mud p.is-now small { color: #1f9d55; }
.tsf__mud > span { display: grid; place-items: center; color: var(--primary); }
.tsf__mud > span .ico { width: 20px; height: 20px; }
.tsf__txt .btn { align-self: flex-start; margin-top: 4px; }

/* todas as histórias */
.tsl { padding: 72px 0 96px; }
.tsl__filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.tsl__filtros button { padding: 10px 16px; border: 0; border-radius: 999px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font: inherit; font-size: .9rem; font-weight: 600; color: var(--text); cursor: pointer; transition: background .2s, color .2s; }
.tsl__filtros button:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--primary); }
.tsl__filtros button.is-on { background: var(--dark); color: #fff; box-shadow: none; }
.tsl__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 22px; }
.tsl__card { display: flex; flex-direction: column; border-radius: 24px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 24px 44px -40px rgba(16, 20, 33, .5); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.tsl__card[hidden] { display: none; }
.tsl__card:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px var(--primary), 0 30px 50px -36px rgba(16, 20, 33, .55); }
.tsl__media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; padding: 0; border: 0; background: var(--dark); cursor: pointer; overflow: hidden; }
.tsl__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.tsl__card:hover .tsl__media img { transform: scale(1.06); }
.tsl__media--sem { display: grid; place-items: center; }
.tsl__ini { font-size: 3.4rem; font-weight: 800; letter-spacing: -.03em; color: rgba(255, 255, 255, .92); }
.tsl__area { position: absolute; left: 14px; bottom: 14px; padding: 6px 12px; border-radius: 999px; background: #fff; color: #1e2436; font-size: .74rem; font-weight: 800; letter-spacing: .04em; }
.tsl__corpo { display: flex; flex-direction: column; gap: 14px; flex: 1; padding: 24px 24px 22px; }
.tsl__aspas { margin-top: -50px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--primary); color: #fff; box-shadow: 0 0 0 6px var(--surface); position: relative; z-index: 1; }
.tsl__aspas .ico { width: 22px; height: 22px; }
.tsl__corpo blockquote { margin: 0; }
.tsl__corpo blockquote p { margin: 0; font-size: 1.04rem; line-height: 1.65; font-weight: 500; color: var(--ink); }
.tsl__hoje { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 12px 14px; border-radius: 12px; background: rgba(31, 157, 85, .08); font-size: .88rem; line-height: 1.5; color: var(--ink); }
.tsl__hoje .ico { flex: none; width: 16px; height: 16px; margin-top: 2px; color: #1f9d55; }
.tsl__quem { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--border); }
.tsl__quem > span:last-child { display: grid; min-width: 0; }
.tsl__quem strong { color: var(--ink); }
.tsl__quem small { font-size: .82rem; color: var(--text); }
.tsl__ler { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font: inherit; font-size: .9rem; font-weight: 700; color: var(--primary); cursor: pointer; }
.tsl__ler .ico { width: 15px; height: 15px; transition: transform .25s var(--ease); }
.tsl__ler:hover .ico { transform: translateX(4px); }
.tsl__aviso { display: flex; gap: 12px; align-items: flex-start; max-width: 860px; margin: 36px auto 0; padding: 16px 20px; border-radius: 16px; background: var(--soft); font-size: .9rem; line-height: 1.6; color: var(--text); }
.tsl__aviso .ico { flex: none; width: 20px; height: 20px; margin-top: 2px; color: var(--primary); }

/* ética */
.tse { padding: 88px 0; background: var(--dark); color: #fff; }
.tse__in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: 32px 64px; align-items: center; }
.tse .a-h2 { color: #fff; }
.tse__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.tse__lista li { padding: 26px 24px; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.tse__lista span { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 16px; border-radius: 14px; background: var(--primary); color: #fff; }
.tse__lista .ico { width: 22px; height: 22px; }
.tse__lista h3 { margin: 0 0 8px; font-size: 1.08rem; color: #fff; }
.tse__lista p { margin: 0; font-size: .92rem; line-height: 1.65; color: rgba(255, 255, 255, .72); }

/* tem uma história para partilhar? */
.tsp { padding: 64px 0; }
.tsp__in { display: grid; grid-template-columns: auto 1fr auto; gap: 18px 28px; align-items: center; padding: 30px 34px; border-radius: 26px; background: var(--soft); box-shadow: inset 0 0 0 1px var(--border); }
.tsp__ico { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 18px; background: var(--primary); color: #fff; }
.tsp__ico .ico { width: 30px; height: 30px; }
.tsp h2 { margin: 0 0 6px; font-size: clamp(1.25rem, 2.2vw, 1.6rem); color: var(--ink); }
.tsp p { margin: 0; line-height: 1.65; color: var(--text); }

@media (max-width: 1080px) {
  .tsf__card { grid-template-columns: 1fr; }
  .tsf__media { min-height: 0; aspect-ratio: 16 / 9; }
  .tse__in { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .tse__lista { grid-template-columns: 1fr; }
  .tsp__in { grid-template-columns: auto 1fr; }
  .tsp__in .btn { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 760px) {
  .tsf { padding: 40px 0 12px; }
  .tsf__card { border-radius: 22px; }
  .tsf__txt { padding: 26px 20px; gap: 14px; }
  .tsf__mud { grid-template-columns: 1fr; }
  .tsf__mud > span { transform: rotate(90deg); }
  .tsf__txt .btn { align-self: stretch; }
  .tsl { padding: 48px 0 60px; }
  .tsl__filtros { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px; scrollbar-width: none; }
  .tsl__filtros::-webkit-scrollbar { display: none; }
  .tsl__filtros button { flex: none; }
  .tse { padding: 56px 0; }
  .tsp { padding: 40px 0; }
  .tsp__in { grid-template-columns: 1fr; padding: 24px 20px; }
  .tsp__in .btn { justify-self: stretch; }
}
.tsl__media, .tsf__media { background: var(--dark); }
.tsl__media.tsl__media--sem.ts-card__media--t1, .tsf__media.tsf__media--sem.ts-card__media--t1 { background: linear-gradient(135deg, #2f9e62, #1b5e3c); }
.tsl__media.tsl__media--sem.ts-card__media--t2, .tsf__media.tsf__media--sem.ts-card__media--t2 { background: linear-gradient(135deg, #3b6fd4, #23468f); }
.tsl__media.tsl__media--sem.ts-card__media--t3, .tsf__media.tsf__media--sem.ts-card__media--t3 { background: linear-gradient(135deg, #c28a12, #7d5808); }
.tsl__media.tsl__media--sem.ts-card__media--t0, .tsf__media.tsf__media--sem.ts-card__media--t0 { background: linear-gradient(135deg, #e36955, #a8402f); }
.tsl__area { top: 14px; bottom: auto; }
@media (min-width: 761px) { .tsl__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ───────────── v2.70: página Sustentabilidade (svh, svn, svc, svk, svp, svq) ───────────── */
.svh { position: relative; padding: 64px 0 72px; background: var(--soft); overflow: hidden; }
.svh::after { content: ""; position: absolute; right: -160px; bottom: -200px; width: 520px; height: 520px; border-radius: 50%; border: 90px solid rgba(227, 105, 85, .06); pointer-events: none; }
.svh__in { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 48px 72px; align-items: center; }
.svh__t { margin: 0 0 18px; font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); }
.svh__lead { margin: 0 0 14px; max-width: 580px; font-size: 1.1rem; line-height: 1.7; color: var(--text); }
.svh__extra { margin: 0 0 14px; max-width: 580px; line-height: 1.7; color: var(--text); }
.svh__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 26px; }
.svh__nums { list-style: none; margin: 34px 0 0; padding: 24px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; border-top: 1px solid var(--border); }
.svh__nums li { display: grid; gap: 4px; }
.svh__nums b { font-size: clamp(1.8rem, 3.2vw, 2.4rem); line-height: 1; color: var(--ink); }
.svh__nums li:last-child b { color: var(--primary); }
.svh__nums span { font-size: .85rem; line-height: 1.35; color: var(--text); }
.svh__ciclo { position: relative; list-style: none; margin: 0; padding: 28px; display: grid; gap: 14px; border-radius: 28px; background: var(--dark); color: #fff; box-shadow: 0 40px 70px -44px rgba(16, 20, 33, .7); }
.svh__ciclo::before { content: ""; position: absolute; left: 55px; top: 60px; bottom: 60px; border-left: 2px dashed rgba(255, 255, 255, .2); }
.svh__ciclo li { position: relative; display: flex; gap: 16px; align-items: flex-start; padding: 14px 16px; border-radius: 18px; background: rgba(255, 255, 255, .06); }
.svh__ciclo li:last-child { background: var(--primary); }
.svh__ico { position: relative; z-index: 1; flex: none; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 6px var(--dark); }
.svh__ciclo li:last-child .svh__ico { background: #fff; color: var(--primary); box-shadow: 0 0 0 6px var(--primary); }
.svh__ico .ico { width: 22px; height: 22px; }
.svh__ciclo li > div { display: grid; gap: 3px; }
.svh__ciclo b { font-size: .72rem; letter-spacing: .14em; color: #ffb3a5; }
.svh__ciclo li:last-child b { color: #fff; opacity: .8; }
.svh__ciclo strong { font-size: 1.05rem; line-height: 1.3; }
.svh__ciclo small { font-size: .86rem; line-height: 1.5; color: rgba(255, 255, 255, .75); }
.svh__ciclo li:last-child small { color: rgba(255, 255, 255, .9); }

/* barra fixa das secções */
.svn .an__lista a { display: inline-flex; align-items: center; gap: 8px; }
.svn .an__lista .ico { width: 16px; height: 16px; color: var(--primary); }
.svn .an__lista sup { top: 0; min-width: 20px; padding: 1px 6px; border-radius: 999px; background: var(--soft); font-size: .7rem; font-weight: 800; color: var(--ink); }
#aluguer, #digital, #gestao, #formacao { scroll-margin-top: calc(var(--header-h, 88px) + 70px); }

/* uma secção por categoria: apresentação à esquerda (fixa), serviços à direita */
.svc { padding: 88px 0; }
.svc--b { background: var(--soft); }
.svc__in { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.6fr); gap: 40px 56px; align-items: start; }
.svc__cab { position: sticky; top: calc(var(--header-h, 88px) + 90px); display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.svc__ico { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 18px; background: var(--primary); color: #fff; box-shadow: 0 16px 30px -16px rgba(227, 105, 85, .9); }
.svc__ico .ico { width: 30px; height: 30px; }
.svc__cab .a-rot { margin: 6px 0 0; }
.svc__cab .a-h2 { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.svc__txt { margin: 0; line-height: 1.7; color: var(--text); }
.svc__n { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .85rem; font-weight: 700; color: var(--ink); }
.svc__n .ico { width: 15px; height: 15px; color: var(--primary); }
.svc__passos { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 10px; width: 100%; }
.svc__passos li { display: flex; gap: 12px; align-items: flex-start; }
.svc__passos b { flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--dark); color: #fff; font-size: .8rem; }
.svc__passos span { display: grid; gap: 2px; }
.svc__passos strong { font-size: .92rem; color: var(--ink); }
.svc__passos small { font-size: .82rem; line-height: 1.45; color: var(--text); }
.svc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }

/* cartão de serviço */
.svk { display: flex; flex-direction: column; border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 22px 40px -36px rgba(16, 20, 33, .5); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.svk:hover { transform: translateY(-5px); box-shadow: 0 0 0 1px var(--primary), 0 30px 50px -34px rgba(16, 20, 33, .55); }
.svk--dest { box-shadow: 0 0 0 2px var(--primary), 0 26px 46px -34px rgba(227, 105, 85, .6); }
.svk__img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--soft); }
.svk__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.svk:hover .svk__img img { transform: scale(1.05); }
.svk__corpo { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 22px 22px 20px; }
.svk__cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.svk__ico { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 14px; background: rgba(227, 105, 85, .12); color: var(--primary); }
.svk__ico .ico { width: 22px; height: 22px; }
.svk__dest { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px; background: var(--primary); color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.svk__dest .ico { width: 12px; height: 12px; }
.svk h3 { margin: 2px 0 0; font-size: 1.12rem; line-height: 1.35; color: var(--ink); }
.svk__txt { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--text); }
.svk__preco { margin: 2px 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.svk__preco strong { font-size: 1.35rem; color: var(--primary); }
.svk__preco span { font-size: .84rem; color: var(--text); }
.svk .sv-opts, .svk .sv-inc { margin: 0; }
.svk__accoes { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 10px; }
.svk__accoes .btn { flex: 1; justify-content: center; }

/* porque nos escolher */
.svp { padding: 88px 0; background: var(--dark); color: #fff; }
.svp__cab { max-width: 640px; margin: 0 auto 44px; text-align: center; }
.svp__cab .a-rot { justify-content: center; }
.svp .a-h2 { color: #fff; }
.svp__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.svp__lista--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.svp__lista--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.svp__lista li { padding: 26px 24px; border-radius: 20px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); transition: background .25s, transform .25s var(--ease); }
.svp__lista li:hover { background: rgba(255, 255, 255, .1); transform: translateY(-4px); }
.svp__lista span { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 16px; border-radius: 14px; background: var(--primary); color: #fff; }
.svp__lista .ico { width: 24px; height: 24px; }
.svp__lista h3 { margin: 0 0 8px; font-size: 1.08rem; color: #fff; }
.svp__lista p { margin: 0; font-size: .92rem; line-height: 1.65; color: rgba(255, 255, 255, .72); }

/* como pedir */
.svq { padding: 88px 0; }
.svq__in { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); gap: 32px 64px; align-items: center; }
.svq__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.svq__passos { position: relative; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.svq__passos li { position: relative; padding: 26px 22px; border-radius: 20px; background: var(--soft); }
.svq__n { position: absolute; right: 18px; top: 12px; font-size: 3rem; line-height: 1; font-weight: 800; color: transparent; -webkit-text-stroke: 1px rgba(227, 105, 85, .35); }
.svq__ico { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 14px; background: var(--surface); color: var(--primary); box-shadow: 0 0 0 1px var(--border); }
.svq__ico .ico { width: 22px; height: 22px; }
.svq__passos h3 { margin: 0 0 6px; font-size: 1.05rem; color: var(--ink); }
.svq__passos p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--text); }

@media (max-width: 1180px) {
  .svc__grid { grid-template-columns: 1fr 1fr; }
  .svp__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .svh__in { grid-template-columns: 1fr; }
  .svh__ciclo { max-width: 620px; }
  .svc__in { grid-template-columns: 1fr; }
  .svc__cab { position: static; }
  .svq__in { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .svh { padding: 40px 0 48px; }
  .svh__t { font-size: 2.1rem; }
  .svh__lead { font-size: 1rem; }
  .svh__btns .btn { flex: 1 1 auto; justify-content: center; }
  .svh__nums { gap: 10px; }
  .svh__nums span { font-size: .76rem; }
  .svh__ciclo { padding: 18px; border-radius: 22px; }
  .svh__ciclo::before { left: 43px; }
  .svh__ciclo li { padding: 12px; gap: 12px; }
  .svh__ico { width: 42px; height: 42px; }
  .svc, .svp, .svq { padding: 56px 0; }
  .svc__grid, .svp__lista, .svp__lista--3, .svp__lista--2, .svq__passos { grid-template-columns: 1fr; }
  .svn .an__lista .ico { display: none; }
}
/* número ímpar de serviços: o último ocupa a largura toda (cartão horizontal) */
@media (min-width: 761px) {
  .svc__grid > .svk:last-child:nth-child(odd) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .svc__grid > .svk:last-child:nth-child(odd):not(:has(.svk__img)) { grid-template-columns: 1fr; }
  .svc__grid > .svk:last-child:nth-child(odd) .svk__img { aspect-ratio: auto; min-height: 100%; }
  .svc__grid > .svk:last-child:nth-child(odd):not(:has(.svk__img)) .sv-inc { columns: 2; column-gap: 24px; }
}
@media (min-width: 761px) { .svc__grid > .svk:last-child:nth-child(odd) .svk__accoes .btn { flex: 0 1 auto; padding-left: 28px; padding-right: 28px; } }
@media (min-width: 761px) and (max-width: 1080px) {
  .svh__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
  .svh__ciclo { max-width: none; }
  .svh__nums { grid-template-columns: 1fr 1fr 1fr; }
  .svc__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .svc__cab { position: sticky; }
  .svc__grid { grid-template-columns: 1fr; }
  .svc__grid > .svk:last-child:nth-child(odd) { display: flex; }
}
.svh__moeda { display: inline-flex; align-items: center; gap: 8px; margin: 18px 0 0; font-size: .86rem; color: var(--text); }
.svh__moeda .ico { width: 16px; height: 16px; color: var(--primary); }
/* v2.71: zoom no leitor de documentos */
.lv__scroll { position: absolute; inset: 12px; display: flex; overflow: hidden; }
.lv__scroll .lv__book { margin: auto; flex: none; }
.lv__scroll.is-zoom { overflow: auto; cursor: grab; }
.lv__scroll.is-zoom .lv__book { cursor: grab; }
.lv__scroll.is-drag, .lv__scroll.is-drag .lv__book { cursor: grabbing; }
.lv__scroll.is-zoom::-webkit-scrollbar { width: 10px; height: 10px; }
.lv__scroll.is-zoom::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 10px; }
.lv__zoom { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 10px; background: rgba(255,255,255,.06); }
.lv__btn--z { width: 36px; height: 36px; padding: 0; justify-content: center; font-size: 1.25rem; line-height: 1; border-color: transparent; }
.lv__btn--zp { min-width: 62px; padding: 8px 6px; justify-content: center; border-color: transparent; font-variant-numeric: tabular-nums; }
.lv__btn:disabled { opacity: .35; cursor: default; }
@media (max-width: 700px) { .lv__scroll { bottom: 66px; inset-inline: 8px; } .lv__btn--zp { min-width: 50px; font-size: .8rem; } .lv__count { display: none; } }

/* ───────────── v2.71: página Transparência (trh, trl, trd, trp, trq) ───────────── */
.trh__mono { font-size: clamp(1.3rem, 2.2vw, 1.6rem) !important; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.trl { padding: 88px 0; }
.trl__in { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 40px 72px; align-items: start; }
.trl__ficha { position: sticky; top: calc(var(--header-h, 88px) + 24px); padding: 30px; border-radius: 26px; background: var(--dark); color: #fff; box-shadow: 0 40px 70px -44px rgba(16, 20, 33, .7); }
.trl__ficha-t { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); }
.trl__ficha-t .ico { width: 18px; height: 18px; }
.trl__ficha dl { margin: 0; }
.trl__ficha dl > div { display: grid; gap: 4px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.trl__ficha dt { display: flex; align-items: center; gap: 8px; font-size: .78rem; color: rgba(255, 255, 255, .6); }
.trl__ficha dt .ico { width: 14px; height: 14px; color: var(--primary); }
.trl__ficha dd { margin: 0; font-weight: 700; line-height: 1.45; }
.trl__selo { display: flex; align-items: center; gap: 10px; margin: 18px 0 0; padding: 12px 14px; border-radius: 14px; background: rgba(31, 157, 85, .16); font-size: .88rem; font-weight: 600; color: #b8f0cf; }
.trl__selo .ico { flex: none; width: 18px; height: 18px; color: #4ed38a; }
.trl__prose { margin-top: 18px; font-size: 1.04rem; line-height: 1.8; color: var(--text); }
.trl__princ { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.trl__princ li { display: flex; gap: 14px; align-items: flex-start; padding: 20px; border-radius: 18px; background: var(--soft); }
.trl__princ span { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: var(--primary); color: #fff; }
.trl__princ .ico { width: 20px; height: 20px; }
.trl__princ h3 { margin: 2px 0 4px; font-size: 1rem; color: var(--ink); }
.trl__princ p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--text); }

/* biblioteca */
.trd { padding: 88px 0; background: var(--soft); }
.trd__barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 26px; }
.trd__filtros { display: flex; flex-wrap: wrap; gap: 8px; }
.trd__filtros button { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 999px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); font: inherit; font-size: .9rem; font-weight: 600; color: var(--text); cursor: pointer; }
.trd__filtros .ico { width: 16px; height: 16px; }
.trd__filtros sup { top: 0; min-width: 22px; padding: 2px 6px; border-radius: 999px; background: var(--soft); font-size: .72rem; font-weight: 800; color: var(--ink); }
.trd__filtros button:hover { color: var(--ink); box-shadow: inset 0 0 0 1px var(--primary); }
.trd__filtros button.is-on { background: var(--dark); color: #fff; box-shadow: none; }
.trd__filtros button.is-on sup { background: var(--primary); color: #fff; }
.trd__busca { display: flex; align-items: center; gap: 8px; min-width: min(100%, 300px); padding: 0 14px; border-radius: 999px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.trd__busca .ico { width: 16px; height: 16px; color: var(--text); }
.trd__busca input { flex: 1; min-width: 0; padding: 11px 0; border: 0; background: none; font: inherit; color: var(--ink); outline: none; }
.trd__busca:focus-within { box-shadow: inset 0 0 0 2px var(--primary); }
.trd__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.trd__doc { display: grid; grid-template-columns: 110px 1fr; border-radius: 22px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 22px 40px -36px rgba(16, 20, 33, .5); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.trd__doc[hidden] { display: none; }
.trd__doc:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--primary), 0 30px 50px -34px rgba(16, 20, 33, .55); }
.trd__capa { position: relative; display: grid; place-items: center; background: linear-gradient(160deg, var(--dark), #2c3350); color: #fff; overflow: hidden; }
.trd__capa--pdf { background: linear-gradient(160deg, #c0392b, #8e2a20); }
.trd__capa--doc, .trd__capa--docx { background: linear-gradient(160deg, #2b5ba8, #1b3b70); }
.trd__capa--xls, .trd__capa--xlsx { background: linear-gradient(160deg, #1f8a4c, #145c33); }
.trd__ext { position: absolute; top: 12px; left: 12px; padding: 3px 7px; border-radius: 6px; background: rgba(255, 255, 255, .2); font-size: .7rem; font-weight: 800; letter-spacing: .06em; }
.trd__ico .ico { width: 34px; height: 34px; opacity: .95; }
.trd__folha { position: absolute; right: -14px; bottom: -14px; width: 56px; height: 56px; border-radius: 10px; background: rgba(255, 255, 255, .1); transform: rotate(18deg); }
.trd__corpo { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; min-width: 0; }
.trd__corpo h3 { margin: 0; font-size: 1.04rem; line-height: 1.4; color: var(--ink); }
.trd__txt { margin: 0; font-size: .88rem; line-height: 1.55; color: var(--text); }
.trd__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; font-size: .8rem; color: var(--text); }
.trd__meta span { display: inline-flex; align-items: center; gap: 5px; }
.trd__meta .ico { width: 13px; height: 13px; color: var(--primary); }
.trd__accoes { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 6px; }
.trd__dl { display: inline-flex; align-items: center; gap: 6px; min-width: 40px; height: 40px; justify-content: center; padding: 0 12px; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--border); font-size: .86rem; font-weight: 700; color: var(--ink); text-decoration: none; transition: background .2s, color .2s; }
.trd__dl .ico { width: 17px; height: 17px; }
.trd__dl:hover { background: var(--primary); color: #fff; box-shadow: none; }
.trd__vazio { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 24px 0 0; color: var(--text); }
.trd__vazio .ico { width: 18px; height: 18px; }

/* parceiros e pedido */
.trp { padding: 80px 0 40px; }
.trp__logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.trp__logos span { display: grid; place-items: center; height: 100px; padding: 16px; border-radius: 16px; background: var(--surface); box-shadow: 0 0 0 1px var(--border); }
.trp__logos img { max-width: 100%; max-height: 64px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; }
.trp__logos span:hover img { filter: none; opacity: 1; }
.trq { padding: 40px 0 88px; }

@media (max-width: 1080px) {
  .trl__in { grid-template-columns: 1fr; }
  .trl__ficha { position: static; }
}
@media (max-width: 760px) {
  .trl, .trd { padding: 56px 0; }
  .trl__princ { grid-template-columns: 1fr; }
  .trd__filtros { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px; scrollbar-width: none; }
  .trd__filtros::-webkit-scrollbar { display: none; }
  .trd__filtros button { flex: none; }
  .trd__busca { width: 100%; }
  .trd__doc { grid-template-columns: 84px 1fr; }
  .trd__corpo { padding: 16px; }
  .trd__accoes .btn { flex: 1; justify-content: center; }
  .trp__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trq { padding: 24px 0 56px; }
}
.trd__vazio[hidden] { display: none; }
.lv__nav { background: rgba(22, 25, 42, .72); box-shadow: 0 0 0 1px rgba(255,255,255,.15); }
.trd__oficial { padding: 3px 9px; border-radius: 999px; background: rgba(227, 105, 85, .12); font-weight: 700; color: var(--primary); }
/* v2.71.2: "O nosso compromisso" e Transparência em todos os ecrãs */
.eqh__nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.eqh__nums li { min-width: 0; }
.trl__in { align-items: stretch; }
.trl__txt { display: flex; flex-direction: column; }
.trl__dest { position: relative; margin: 22px 0 0; padding: 22px 24px 22px 70px; border-radius: 20px; background: linear-gradient(135deg, rgba(227, 105, 85, .1), rgba(227, 105, 85, .03)); box-shadow: inset 4px 0 0 var(--primary); }
.trl__dest > span { position: absolute; left: 20px; top: 22px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); color: #fff; }
.trl__dest > span .ico { width: 18px; height: 18px; }
.trl__dest .prose { font-size: 1.05rem; line-height: 1.75; color: var(--ink); }
.trl__dest .prose p { margin: 0; }
.trl__princ { list-style: none; margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.trl__princ li { position: relative; display: block; padding: 24px 22px 22px; border-radius: 20px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 20px 36px -32px rgba(16, 20, 33, .5); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.trl__princ li::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--primary); transform: scaleX(.18); transform-origin: left; transition: transform .4s var(--ease); }
.trl__princ li:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--primary), 0 26px 44px -30px rgba(16, 20, 33, .55); }
.trl__princ li:hover::before { transform: scaleX(1); }
.trl__pn { position: absolute; right: 18px; top: 14px; font-size: 2.4rem; line-height: 1; font-weight: 800; color: transparent; -webkit-text-stroke: 1px var(--border); }
.trl__pi { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 14px; background: rgba(227, 105, 85, .12); color: var(--primary); transition: background .3s, color .3s; }
.trl__princ li:hover .trl__pi { background: var(--primary); color: #fff; }
.trl__pi .ico { width: 22px; height: 22px; }
.trl__princ h3 { margin: 0 0 6px; padding-right: 40px; font-size: 1.05rem; color: var(--ink); }
.trl__princ p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--text); }
.trl__quem { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: auto; padding-top: 24px; }
.trl__quem > span { font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--text); }
.trl__quem ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.trl__quem li { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: var(--soft); font-size: .86rem; font-weight: 600; color: var(--ink); }
.trl__quem .ico { width: 15px; height: 15px; color: var(--primary); }
.trd__doc { min-width: 0; }
.trd__corpo h3 { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .trl__princ { grid-template-columns: 1fr; }
  .trl__dest { padding: 18px 18px 18px 60px; }
  .trl__dest > span { left: 14px; top: 18px; }
}
@media (max-width: 400px) {
  .eqh__nums { gap: 10px; }
  .eqh__nums li { padding: 14px 12px; }
  .eqh__nums b { font-size: 1.6rem; }
  .trh__mono { font-size: 1.05rem !important; }
  .eqh__nums small { font-size: .74rem; }
  .trd__doc { grid-template-columns: 1fr; }
  .trd__capa { height: 70px; }
  .trd__folha { display: none; }
  .trl__ficha { padding: 22px 18px; }
}
.trl__princ .trl__pn { width: auto; height: auto; display: block; background: none; border-radius: 0; color: transparent; }
/* v2.72: página inicial mais compacta (menos espaço entre secções) */
.is-home .section { padding: clamp(40px, 4.6vw, 64px) 0; }
.is-home .section-head { margin-bottom: clamp(24px, 3vw, 36px); }
.is-home .stats, .is-home .partners { padding-top: clamp(32px, 4vw, 52px); padding-bottom: clamp(32px, 4vw, 52px); }
.is-home .feature-cards { margin-bottom: 0; }
.is-home .dn-causas .section-head { margin-bottom: 22px; }
@media (max-width: 760px) { .is-home .section { padding: 40px 0; } }
.stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { min-width: 0; }
@media (max-width: 760px) { .stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 400px) { .stat__num { font-size: 2rem; } .stat__ico { width: 52px; height: 52px; } }

/* v2.73: organograma oficial (Mesa | Fundadores | Fiscal → Conselho de Direcção → Direcção Executiva → Departamentos) */
.og--v2 { max-width: 1140px; gap: 52px; }
.og--v2 .og__n + .og__n::before { top: -52px; height: 52px; }
.og__n--topo { align-items: stretch; }
.og__n--topo > .og__box { position: relative; flex: 1 1 0; max-width: 360px; }
/* linhas: de cada caixa de cima desce um traço até à barra que liga ao Conselho de Direcção */
.og__n--topo > .og__box::after { content: ""; position: absolute; left: 50%; bottom: -26px; height: 26px; border-left: 2px solid var(--linha); }
.og__n--topo::after { content: ""; position: absolute; left: calc(100% / 6); right: calc(100% / 6); bottom: -26px; border-top: 2px solid var(--linha); }
.og--v2 .og__n--cd::before { top: -26px !important; height: 26px !important; }
.og__n--cd > .og__box, .og__n--de > .og__box { width: min(100%, 520px); }
.og__box--fund { background: linear-gradient(160deg, rgba(227, 105, 85, .22), rgba(227, 105, 85, .06)); box-shadow: inset 0 0 0 1.5px rgba(227, 105, 85, .55); }
.og__box--fund .og__ico { background: var(--primary); color: #fff; }
.og__box--topo .og__pessoas { grid-template-columns: 1fr; }
/* departamentos */
.og__deps { width: 100%; padding: 26px; border-radius: 24px; background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.og__deps-t { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 18px; font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); }
.og__deps-t .ico { width: 16px; height: 16px; }
.og__deps-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.og__dep { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 18px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); transition: background .25s, transform .25s var(--ease); }
.og__dep:hover { background: rgba(255, 255, 255, .1); transform: translateY(-3px); }
.og__dep > div { display: grid; gap: 10px; min-width: 0; }
.og__dep strong { font-size: 1rem; line-height: 1.3; color: #fff; }
.og__dep-p { display: flex; align-items: center; gap: 10px; }
.og__dep-p > span:last-child { display: grid; min-width: 0; }
.og__dep-p b { font-size: .9rem; color: #fff; }
.og__dep-p em { font-style: normal; font-size: .78rem; line-height: 1.35; color: rgba(255, 255, 255, .68); }
.og__vol { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 16px; padding: 12px 16px; border-radius: 14px; background: rgba(227, 105, 85, .14); color: #fff; font-size: .9rem; text-decoration: none; transition: background .2s; }
.og__vol .ico { flex: none; width: 18px; height: 18px; color: var(--primary); }
.og__vol:hover { background: rgba(227, 105, 85, .26); color: #fff; }
@media (max-width: 1080px) { .og__deps-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .og--v2 .og__n + .og__n::before, .og__n--topo::after, .og__n--topo > .og__box::after { display: none; }
  .og--v2 { gap: 18px; }
  .og__n--topo > .og__box { max-width: none; }
  .og__deps { padding: 18px; position: relative; }
  .og__deps::after { content: ""; position: absolute; left: -22px; top: 32px; width: 22px; border-top: 2px solid var(--linha); }
  .og__deps-lista { grid-template-columns: 1fr; }
}

/* v2.73.1: página Equipa mais compacta e sem repetições */
.eqh--c { padding: 52px 0 48px; }
/* liderança: um cartão horizontal */
.eql2 { padding: 48px 0; }
.eql2__card { display: grid; grid-template-columns: 132px 1fr auto; gap: 26px 32px; align-items: center; padding: 28px 32px; border-radius: 26px; background: var(--surface); box-shadow: 0 0 0 1px var(--border), 0 30px 60px -48px rgba(16, 20, 33, .55); }
.eql2__av { width: 132px; height: 132px; display: grid; place-items: center; border-radius: 50%; overflow: hidden; background: linear-gradient(150deg, var(--dark), #2c3350); box-shadow: 0 0 0 6px rgba(227, 105, 85, .15); }
.eql2__av img { width: 100%; height: 100%; object-fit: cover; }
.eql2__av i { font-style: normal; font-size: 2.8rem; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.eql2__txt .a-rot { margin-bottom: 6px; }
.eql2__txt h2 { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.15; color: var(--ink); }
.eql2__cargo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 6px 0 12px; font-weight: 700; color: var(--primary); }
.eql2__selo { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--dark); color: #fff; font-size: .74rem; font-weight: 700; letter-spacing: .04em; }
.eql2__selo .ico { width: 13px; height: 13px; color: var(--primary); }
.eql2__bio { margin: 0; max-width: 720px; line-height: 1.7; color: var(--text); }
.eql2__outras { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.eql2__outras li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--soft); font-size: .84rem; font-weight: 600; color: var(--ink); }
.eql2__outras .ico { width: 14px; height: 14px; color: var(--primary); }
.eql2__accoes { display: flex; flex-direction: column; gap: 10px; }
/* organograma compacto */
.og-sec--c { padding: 64px 0; }
.og-sec--c .og-sec__cab { margin-bottom: 36px; }
.og--v2 { gap: 40px; }
.og--v2 .og__n + .og__n::before { top: -40px; height: 40px; }
.og__n--topo > .og__box::after { bottom: -20px; height: 20px; }
.og__n--topo::after { bottom: -20px; }
.og--v2 .og__n--cd::before { top: -20px !important; height: 20px !important; }
.og--v2 .og__box { gap: 12px; padding: 18px 20px; }
.og--v2 .og__cab strong { font-size: 1rem; }
.og--v2 .og__ico { width: 38px; height: 38px; border-radius: 10px; }
.og--v2 .og__ico .ico { width: 19px; height: 19px; }
.og--v2 .og__pessoas { margin: 0; padding-top: 10px; gap: 8px; }
.og--v2 .og__av { width: 34px; height: 34px; }
.og--v2 .og__av i { font-size: .72rem; }
.og--v2 .og__pessoas b { font-size: .9rem; }
.og--v2 .og__pessoas em { font-size: .76rem; }
.og__n--cd > .og__box, .og__n--de > .og__box { width: min(100%, 440px); }
.og__box--fund { justify-content: center; }
.og__deps { padding: 20px; }
.og__deps-t { margin-bottom: 14px; }
.og__deps-lista { gap: 10px; }
.og__dep { padding: 14px 16px; gap: 12px; align-items: center; }
.og__dep .og__ico { width: 38px; height: 38px; flex: none; }
.og__dep > div { gap: 3px; }
.og__dep strong { font-size: .92rem; }
.og__dep-p { display: block; font-size: .84rem; color: rgba(255, 255, 255, .72); }
.og__vol { margin-top: 12px; padding: 10px 14px; }
/* como funciona */
.og__como { list-style: none; margin: 40px 0 0; padding: 26px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; border-top: 1px solid rgba(255, 255, 255, .12); }
.og__como li { display: flex; gap: 12px; align-items: flex-start; }
.og__como span { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: rgba(227, 105, 85, .16); color: var(--primary); }
.og__como .ico { width: 17px; height: 17px; }
.og__como strong { display: block; margin-bottom: 4px; font-size: .92rem; color: #fff; }
.og__como p { margin: 0; font-size: .84rem; line-height: 1.55; color: rgba(255, 255, 255, .65); }
.eqc { padding: 32px 0; }
@media (max-width: 1080px) {
  .eql2__card { grid-template-columns: 110px 1fr; }
  .eql2__av { width: 110px; height: 110px; }
  .eql2__accoes { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .og__como { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .eqh--c { padding: 36px 0; }
  .eql2 { padding: 32px 0; }
  .eql2__card { grid-template-columns: 1fr; justify-items: start; padding: 22px 18px; gap: 16px; }
  .eql2__av { width: 92px; height: 92px; }
  .eql2__av i { font-size: 2rem; }
  .eql2__accoes .btn { flex: 1 1 auto; justify-content: center; }
  .og-sec--c { padding: 48px 0; }
  .og__como { grid-template-columns: 1fr; margin-top: 28px; }
}

/* v2.73.1: fotografias nos departamentos e modelos "cartões" e "lista" do organograma */
.og__dep-p { display: flex; align-items: center; gap: 8px; }
.og__av--s { width: 26px !important; height: 26px !important; }
.og__av--s i { font-size: .62rem !important; }
/* modelo 2: cartões com fotografia, por órgão */
.ogc { display: grid; gap: 34px; }
.ogc__t { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.ogc__t span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); }
.ogc__t .ico { width: 16px; height: 16px; }
.ogc__t::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, .14); }
.ogc__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; }
.ogc__p { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 20px 14px 18px; border-radius: 20px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); text-align: center; transition: background .25s, transform .25s var(--ease); }
.ogc__p:hover { background: rgba(255, 255, 255, .09); transform: translateY(-4px); }
.ogc__p--rep { background: linear-gradient(160deg, rgba(227, 105, 85, .28), rgba(227, 105, 85, .08)); box-shadow: inset 0 0 0 1.5px rgba(227, 105, 85, .6); }
.ogc__foto { position: relative; width: 104px; height: 104px; margin-bottom: 10px; display: grid; place-items: center; border-radius: 50%; overflow: visible; background: linear-gradient(150deg, #2c3350, #3a4266); box-shadow: 0 0 0 4px rgba(255, 255, 255, .08); }
.ogc__foto img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.ogc__foto i { font-style: normal; font-size: 1.7rem; font-weight: 800; color: #fff; }
.ogc__selo { position: absolute; right: 0; bottom: 2px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 0 0 3px var(--dark); }
.ogc__selo .ico { width: 15px; height: 15px; }
.ogc__p strong { font-size: .95rem; line-height: 1.3; color: #fff; }
.ogc__p small { font-size: .8rem; line-height: 1.4; color: rgba(255, 255, 255, .65); }
.ogc__fund { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 16px; background: rgba(227, 105, 85, .12); color: rgba(255, 255, 255, .82); }
.ogc__fund span { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); color: #fff; }
.ogc__fund .ico { width: 16px; height: 16px; }
.ogc__fund p { margin: 0; font-size: .9rem; line-height: 1.5; }
.ogc__fund b { color: #fff; }
/* modelo 3: lista por órgão (linhas) */
.ogl { border-radius: 24px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.ogl__linha { display: grid; grid-template-columns: 260px 1fr; }
.ogl__linha + .ogl__linha { border-top: 1px solid rgba(255, 255, 255, .1); }
.ogl__linha--exec { background: rgba(227, 105, 85, .12); }
.ogl__org { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-content: center; padding: 20px 22px; background: rgba(255, 255, 255, .04); }
.ogl__org span { grid-row: span 2; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: var(--primary); color: #fff; }
.ogl__org .ico { width: 19px; height: 19px; }
.ogl__org strong { font-size: .98rem; line-height: 1.3; color: #fff; }
.ogl__org small { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .55); }
.ogl__pessoas { list-style: none; margin: 0; padding: 16px 22px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 20px; align-content: center; }
.ogl__pessoas li { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ogl__foto { flex: none; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; overflow: hidden; background: linear-gradient(150deg, #2c3350, #3a4266); }
.ogl__foto img { width: 100%; height: 100%; object-fit: cover; }
.ogl__foto i { font-style: normal; font-size: .85rem; font-weight: 800; color: #fff; }
.ogl__pessoas li > span:last-child { display: grid; min-width: 0; }
.ogl__pessoas b { display: flex; align-items: center; gap: 6px; font-size: .92rem; color: #fff; }
.ogl__pessoas em { font-style: normal; font-size: .8rem; color: rgba(255, 255, 255, .65); }
.ogl__rep { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--primary); }
.ogl__rep .ico { width: 11px; height: 11px; }
@media (max-width: 760px) {
  .ogc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ogc__foto { width: 84px; height: 84px; }
  .ogl__linha { grid-template-columns: 1fr; }
  .ogl__org { padding: 16px 18px; }
  .ogl__pessoas { padding: 14px 18px; grid-template-columns: 1fr; }
}
.og__pilha { display: flex; padding-left: 8px; }
.og__pilha .og__av { width: 32px; height: 32px; margin-left: -8px; box-shadow: 0 0 0 2px #2a2333; background: #3a4266; }
.og__pilha .og__av i { font-size: .62rem; color: #fff; }
.og__box--fund .og__papel { font-size: .86rem; }
.ogl__fund { margin-top: 16px; }
.ogc__grid { grid-template-columns: repeat(auto-fit, minmax(170px, 210px)); justify-content: center; }
.ogc__t { justify-content: center; }
.ogc__t::before { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.14); order: -1; }
/* v2.73.1: perfis com redes sociais (janela) */
.og__pbtn { display: flex; align-items: center; gap: 10px; width: 100%; padding: 4px; margin: -4px; border: 0; border-radius: 10px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background .2s; }
.og__pbtn:hover, .og__pbtn:focus-visible { background: rgba(255, 255, 255, .08); }
.og__box--topo .og__pbtn:hover { background: var(--soft); }
.og__pbtn > span:nth-child(2) { display: grid; min-width: 0; }
.og__dep-p.og__pbtn { width: auto; margin: 0; padding: 2px 6px 2px 2px; font-size: .84rem; color: rgba(255, 255, 255, .78); }
.ogc__p, .ogl__pessoas li { position: relative; }
.ogc__btn { position: absolute; inset: 0; z-index: 1; border: 0; border-radius: inherit; background: none; cursor: pointer; }
.ogl__pessoas li { border-radius: 12px; padding: 4px; margin: -4px; transition: background .2s; }
.ogl__pessoas li:hover { background: rgba(255, 255, 255, .06); }
.eql2__av { padding: 0; border: 0; cursor: pointer; transition: transform .25s var(--ease); }
.eql2__av:hover { transform: scale(1.04); }
.pf-modal .dn-modal__box.pf { position: relative; max-width: 440px; padding: 36px 30px 30px; text-align: center; }
.pf__fechar { position: absolute; right: 14px; top: 14px; }
.pf__foto { display: grid; place-items: center; width: 150px; height: 150px; margin: 0 auto 18px; border-radius: 50%; overflow: hidden; background: linear-gradient(150deg, var(--dark), #2c3350); box-shadow: 0 0 0 6px rgba(227, 105, 85, .16), 0 24px 40px -24px rgba(16, 20, 33, .6); }
.pf__foto img { width: 100%; height: 100%; object-fit: cover; }
.pf__foto i { font-style: normal; font-size: 2.6rem; font-weight: 800; color: #fff; }
.pf h2 { margin: 0; font-size: 1.45rem; color: var(--ink); }
.pf__cargo { margin: 6px 0 0; font-weight: 700; color: var(--primary); }
.pf__orgao { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; margin: 10px 0 0; font-size: .86rem; color: var(--text); }
.pf__orgao .ico { width: 14px; height: 14px; }
.pf__rep { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: var(--dark); color: #fff; font-size: .74rem; font-weight: 700; }
.pf__rep .ico { color: var(--primary); }
.pf__bio { margin: 16px 0 0; line-height: 1.65; color: var(--text); }
.pf__redes { list-style: none; margin: 22px 0 0; padding: 18px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; border-top: 1px solid var(--border); }
.pf__redes a { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--ink); transition: background .2s, color .2s, transform .2s; }
.pf__redes a:hover { background: var(--primary); color: #fff; transform: translateY(-2px); }
.pf__redes .ico { width: 18px; height: 18px; }
.ogc__grid { grid-template-columns: repeat(auto-fit, minmax(150px, 190px)); }
.dn-modal.pf-modal { width: min(440px, calc(100vw - 24px)); }
.pf-modal .dn-modal__box.pf { display: block; max-width: none; }
/* perfil: a biografia rola dentro da janela e as redes ficam sempre visíveis por baixo */
.pf-modal .dn-modal__box.pf { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); padding: 30px 28px 22px; }
.pf__topo { flex: none; }
.pf__foto { width: 120px; height: 120px; margin-bottom: 14px; }
.pf__foto i { font-size: 2.2rem; }
.pf__bio { flex: 1 1 auto; min-height: 0; overflow: auto; margin: 14px -6px 0; padding: 0 6px; max-height: 9.5em; mask-image: linear-gradient(#000 80%, transparent); -webkit-mask-image: linear-gradient(#000 80%, transparent); }
.pf__bio p { margin: 0 0 12px; line-height: 1.65; color: var(--text); }
.pf__bio:hover { mask-image: none; -webkit-mask-image: none; }
.pf__redes { flex: none; margin-top: 16px; padding-top: 16px; }
.pf__redes li { position: relative; }
.pf__vazio { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--text); opacity: .45; cursor: default; }
.pf__vazio .ico { width: 18px; height: 18px; }
.pf__redes [data-dica]::after { content: attr(data-dica); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translate(-50%, 4px); padding: 6px 10px; border-radius: 8px; background: var(--dark); color: #fff; font-size: .78rem; font-weight: 600; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 2; }
.pf__redes [data-dica]:hover::after, .pf__redes [data-dica]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.pf__redes li:last-child [data-dica]::after { left: auto; right: -6px; transform: translate(0, 4px); }
.pf__redes li:last-child [data-dica]:hover::after { transform: translate(0, 0); }
/* Membros Fundadores: avatares anónimos (tamanhos e cores variados) e "+" */
.og__pilha--anon { align-items: center; padding-left: 10px; }
.og__pilha--anon .og__av { color: rgba(255, 255, 255, .9); box-shadow: 0 0 0 2px #2b2232; }
.og__pilha--anon .og__av .ico { width: 55%; height: 55%; }
.og__pilha--anon .og__av:nth-child(1) { width: 34px; height: 34px; }
.og__pilha--anon .og__av:nth-child(2) { width: 40px; height: 40px; }
.og__pilha--anon .og__av:nth-child(3) { width: 30px; height: 30px; }
.og__pilha--anon .og__av:nth-child(4) { width: 42px; height: 42px; z-index: 1; }
.og__pilha--anon .og__av:nth-child(5) { width: 32px; height: 32px; }
.og__pilha--anon .og__av:nth-child(6) { width: 38px; height: 38px; }
.og__pilha--anon .og__av:nth-child(7) { width: 30px; height: 30px; }
.og__av--t0 { background: #e36955 !important; }
.og__av--t1 { background: #3b6fd4 !important; }
.og__av--t2 { background: #2f9e62 !important; }
.og__av--t3 { background: #c28a12 !important; }
.og__av--mais { width: 36px !important; height: 36px !important; background: #fff !important; color: var(--primary) !important; font-size: 1.2rem; font-weight: 800; }

/* ═════════ Página inicial: Agenda (1 evento grande; vários: o próximo em destaque + lista) ═════════ */
.agd { --agd-mut: color-mix(in srgb, var(--text) 70%, var(--surface)); display: grid; gap: 24px; }
.agd--n { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; }
.agd__main { display: grid; background: var(--surface); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 0 0 1px var(--border); transition: box-shadow .3s, transform .3s var(--ease); }
.agd__main:hover { box-shadow: 0 0 0 1px var(--border), var(--shadow-lg); transform: translateY(-3px); }
.agd--1 .agd__main { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.agd__img { position: relative; display: block; overflow: hidden; min-height: 240px; background: var(--soft); }
.agd--n .agd__img { aspect-ratio: 16 / 7; }
.agd__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.agd__main:hover .agd__img img { transform: scale(1.04); }
.agd__data { position: absolute; left: 16px; top: 16px; display: grid; place-items: center; min-width: 74px; padding: 10px 12px 9px; border-radius: 14px; background: var(--surface); color: var(--ink); box-shadow: 0 10px 26px -12px rgba(20, 24, 40, .5); text-align: center; line-height: 1; }
.agd__data strong { font-size: 2rem; font-weight: 800; color: var(--primary); }
.agd__data span { margin-top: 5px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.agd__body { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: clamp(22px, 3vw, 34px); }
.agd__falta { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 30px; background: var(--soft); color: var(--ink); font-size: .8rem; font-weight: 700; }
.agd__falta .ico { width: 15px; height: 15px; color: var(--primary); }
.agd__falta.is-perto { background: var(--primary); color: #fff; }
.agd__falta.is-perto .ico { color: #fff; }
.agd__falta.is-passado { color: var(--agd-mut); }
.agd__body h3 { margin: 2px 0 0; font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.25; }
.agd__body h3 a { color: var(--ink); }
.agd__body h3 a:hover { color: var(--primary); }
.agd__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; font-size: .9rem; color: var(--agd-mut); }
.agd__meta span { display: inline-flex; align-items: center; gap: 6px; }
.agd__meta .ico { width: 16px; height: 16px; color: var(--primary); }
.agd__txt { margin: 0; font-size: .95rem; }
.agd__body .btn { margin-top: auto; }
.agd__lista { display: flex; flex-direction: column; gap: 12px; }
.agd__lista-tit { margin: 0 0 2px; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--agd-mut); }
.agd__item { display: flex; gap: 14px; align-items: center; padding: 12px 16px 12px 12px; border-radius: var(--radius); background: var(--surface); box-shadow: 0 0 0 1px var(--border); color: var(--text); transition: box-shadow .25s, transform .25s; }
.agd__item .agd__item-txt { flex: 1 1 auto; }
.agd__thumb { flex: none; width: 96px; height: 80px; border-radius: 10px; overflow: hidden; background: var(--soft); }
.agd__thumb img { width: 100%; height: 100%; object-fit: cover; }
.agd__todos { margin-top: 2px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px; border-radius: var(--radius); border: 1px dashed var(--border); color: var(--ink); font-weight: 700; transition: border-color .25s, color .25s; }
.agd__todos:hover { border-color: var(--primary); color: var(--primary); }
.agd__todos .ico { width: 17px; height: 17px; }
.agd__item:hover { box-shadow: 0 0 0 1px var(--primary); transform: translateX(3px); }
.agd__mini { display: grid; place-items: center; width: 58px; height: 62px; border-radius: 12px; background: var(--soft); line-height: 1; }
.agd__mini strong { font-size: 1.45rem; font-weight: 800; color: var(--primary); }
.agd__mini span { margin-top: 3px; font-size: .68rem; font-weight: 700; text-transform: uppercase; color: var(--ink); }
.agd__item-txt { display: grid; gap: 3px; min-width: 0; }
.agd__item-txt b { color: var(--ink); line-height: 1.3; overflow-wrap: anywhere; }
.agd__item-txt small { color: var(--agd-mut); font-size: .84rem; }
.agd__item-txt em { font-style: normal; font-size: .78rem; font-weight: 700; color: var(--primary); }
.agd__seta { width: 18px; height: 18px; color: var(--agd-mut); }
.agd__item:hover .agd__seta { color: var(--primary); }
.agd .is-passado .agd__data strong, .agd__item.is-passado .agd__mini strong { color: var(--agd-mut); }
@media (max-width: 900px) {
  .agd--n, .agd--1 .agd__main { grid-template-columns: minmax(0, 1fr); }
  .agd__img, .agd--n .agd__img { aspect-ratio: 16 / 9; min-height: 0; }
}
@media (max-width: 520px) { .agd__thumb { display: none; } }
@media (max-width: 420px) { .agd__seta { display: none; } }

/* Página inicial: logótipos dos parceiros com o mesmo peso visual (o site.js ajusta o tamanho de cada um) */
.marquee[data-logos] .marquee__item { height: 84px; padding: 0 6px; }
.marquee[data-logos] .marquee__item img { max-width: 190px; max-height: 72px; }

/* Caixa "Entre em contacto" (coral): pré-título branco, não amarelo */
.kicker--branco { color: rgba(255, 255, 255, .92); }
.kicker--branco::before { background: rgba(255, 255, 255, .7); }

/* Leitor de documentos: barra de percentagem enquanto descarrega; botões se a ligação parar ou falhar */
.lv__status { display: grid; justify-items: center; gap: 10px; width: min(360px, 86%); text-align: center; z-index: 3; }
.lv__status[hidden] { display: none; }
.lv__st-t { margin: 0; color: #fff; font-weight: 700; font-variant-numeric: tabular-nums; }
.lv__st-s { margin: 0; font-size: .85rem; color: #c9ccd8; font-variant-numeric: tabular-nums; }
.lv__bar { width: 100%; height: 8px; border-radius: 8px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.lv__bar span { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--primary); transition: width .25s ease; }
.lv__bar.is-indet span { animation: lv-indet 1.2s ease-in-out infinite; }
@keyframes lv-indet { 0% { transform: translateX(-100%); } 100% { transform: translateX(340%); } }
.lv__st-b { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 4px; }
.lv__st-btn { display: inline-flex; align-items: center; padding: 10px 16px; border-radius: 8px; border: 1px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; text-decoration: none; }
.lv__st-btn:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.lv__st-btn--p { background: var(--primary); border-color: var(--primary); }
.lv__st-btn--p:hover { background: var(--primary); filter: brightness(1.08); }

/* Transparência: "Carregar mais" e "Ver todos" */
.trd__mais { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 30px; }
.trd__mais[hidden], .trd__mais [hidden] { display: none; }
.trd__resta { opacity: .7; font-weight: 600; }
.trd__doc.is-novo { animation: trd-novo .45s var(--ease) both; }
@keyframes trd-novo { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.trv { width: min(860px, calc(100% - 24px)); max-height: min(86vh, 900px); padding: 0; border: 0; border-radius: var(--radius-lg); background: var(--surface); color: var(--text); box-shadow: 0 40px 90px -30px rgba(10, 12, 20, .6); overflow: hidden; }
.trv[open] { display: flex; flex-direction: column; }
.trv::backdrop { background: rgba(14, 17, 26, .62); backdrop-filter: blur(3px); }
.trv__head { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 18px clamp(16px, 3vw, 26px); border-bottom: 1px solid var(--border); }
.trv__t { display: inline-flex; align-items: center; gap: 8px; margin: 0; flex: 1 1 auto; font-weight: 800; color: var(--ink); font-size: 1.1rem; }
.trv__t .ico { width: 20px; height: 20px; color: var(--primary); }
.trv__t sup { font-size: .72rem; color: var(--primary); }
.trv__busca { flex: 1 1 240px; margin: 0; }
.trv__x { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border); background: transparent; color: var(--ink); cursor: pointer; }
.trv__x:hover { border-color: var(--primary); color: var(--primary); }
.trv__x .ico { width: 18px; height: 18px; }
.trv__lista { list-style: none; margin: 0; padding: 8px clamp(10px, 2vw, 18px) 18px; overflow-y: auto; overscroll-behavior: contain; }
.trv__item { display: flex; gap: 14px; align-items: center; padding: 12px 10px; border-bottom: 1px solid var(--border); }
.trv__item:last-child { border-bottom: 0; }
.trv__item[hidden] { display: none; }
.trv__ext { flex: none; display: grid; place-items: center; width: 46px; height: 54px; border-radius: 8px; color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }
.trv__txt { flex: 1 1 auto; min-width: 0; display: grid; gap: 3px; }
.trv__txt b { color: var(--ink); line-height: 1.3; overflow-wrap: anywhere; }
.trv__txt small { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; color: color-mix(in srgb, var(--text) 75%, var(--surface)); font-size: .82rem; }
.trv__txt small .ico { width: 14px; height: 14px; }
.trv__acc { flex: none; display: flex; gap: 8px; align-items: center; }
.trv .trd__vazio { padding: 0 20px 20px; }
@media (max-width: 520px) { .trv__item { flex-wrap: wrap; } .trv__acc { width: 100%; justify-content: flex-end; } }

/* Marca "ASSOCIAÇÃO / ANANDJIRA" (cabeçalho e rodapé): as duas linhas com a mesma largura, alinhadas no início e no
   fim; "ASSOCIAÇÃO" com letras mais fortes e na cor do nome, para ler-se como um só logótipo. O tamanho da linha de
   cima segue sempre o do nome (--marca), também no telemóvel. */
.brand__txt, .footer__brand-txt { --marca: 1.35rem; gap: 5px; line-height: 1; }
.footer__brand-txt { --marca: 1.55rem; }
.brand__txt strong, .footer__brand .footer__brand-txt strong { font-size: var(--marca); line-height: .92; font-weight: 800; }
.brand__txt .brand__top, .footer__brand .footer__brand-txt .brand__top { font-size: calc(var(--marca) * .56); font-weight: 700; line-height: 1; font-family: var(--font); }
.brand__txt .brand__top { color: var(--ink); opacity: .72; }
.footer__brand .footer__brand-txt .brand__top { color: #fff; opacity: .72; }
.brand:hover .brand__top { color: var(--primary); opacity: 1; }
@media (max-width: 760px) { .brand__txt { --marca: 1.05rem; gap: 4px; } }
/* Rodapé: ao passar o rato, "ANANDJIRA" fica castanho (antes herdava a cor escura dos links e desaparecia no fundo) */
.footer__brand:hover { color: #fff; }
.footer__brand strong { transition: color .25s var(--ease); }
.footer__brand:hover strong { color: #c8956a; }
.footer__brand:hover .footer__brand-txt .brand__top { color: #fff; opacity: .9; }
