/* Public redesign: full-width film scenes, open typography and section wayfinding. */
.public-site { --shell: min(1360px,calc(100% - 112px)); --header-height: 84px; --section-nav-height: 62px; font-size: 17px; }
.public-site h1 { font-size: clamp(2.7rem,4.9vw,5.25rem); }
.public-site h2 { font-size: clamp(2.1rem,3.8vw,3.6rem); }
.public-site .button { min-height: 56px; font-size: .9rem; padding-inline: 25px; }
.public-site .button--compact { min-height: 46px; font-size: .84rem; padding-inline: 22px; }
.public-site .site-nav > a:not(.button) { font-size: .89rem; }
.public-site .site-nav a[aria-current='location']::after { transform: scaleX(1); }
.public-site main section[id] { scroll-margin-top: 72px; }
.split-section > * { min-width: 0; }
.section-intro h2 br { display: initial; }
.public-site :focus-visible { outline: 3px solid #9571b5; outline-offset: 5px; }
.public-site ::selection { color: #281837; background: #e7d9f2; }
.public-site a { text-underline-offset: 5px; }
.public-site .text-link { font-size: .92rem; }

.cinema-hero { position: relative; isolation: isolate; background: #d2c9dc; overflow: hidden; }
.hero-film,.section-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-film { object-position: 50% 85%; }
.cinema-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#e6dfeaeb 0%,#e6dfeab3 28%,#e6dfea00 62%); pointer-events: none; z-index: 1; }
.cinema-hero__content { position: relative; min-height: clamp(620px,calc(100svh - 146px),850px); display: flex; align-items: center; z-index: 2; padding-block: 70px 115px; }
.cinema-hero__copy { width: min(620px,48%); }
.cinema-hero__copy h1 { text-wrap: initial; max-width: 15ch; color: #281837; }
.cinema-hero__copy > p:not(.hero-proof) { max-width: 44ch; margin-top: 28px; color: #4d3c5e; font-size: 1.05rem; }
.hero-actions { gap: 14px 26px; margin-top: 32px; }
.public-site .hero-actions .text-link { font-size: .86rem; }
.hero-proof { display: block; margin-top: 30px; color: #554364; font-size: .82rem; max-width: 40ch; }
.cinema-hero__bottom { position: absolute; z-index: 3; bottom: 28px; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; }
.cinema-hero__bottom > a { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; font-size: .84rem; font-weight: 600; text-decoration: none; }
.cinema-hero__bottom > a .arrow-icon { transform: rotate(90deg); }
.motion-toggle { top: auto; bottom: 28px; right: max(56px,calc((100% - 1360px)/2)); min-height: 44px; padding: 9px 17px; border: 1px solid #ffffff80; background: #281837bf; color: #fff; font-size: .75rem; z-index: 4; }
.motion-toggle:hover { background: #281837; }
.motion-toggle[hidden] { display: none; }
.cinema-hero__bottom .motion-toggle { position: static; color: #39234f; border-color: #39234f40; background: #fdfcfecc; }
.cinema-hero__bottom .motion-toggle:hover { background: #fff; }
.section-nav { position: sticky; top: var(--header-height); z-index: 95; background: #fdfcfe; border-bottom: 1px solid var(--rule); }
.section-nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: var(--section-nav-height); }
.section-nav__label { font-size: .78rem; font-weight: 700; color: var(--ink); white-space: nowrap; }
.section-nav__links { display: flex; align-items: stretch; gap: 30px; min-height: var(--section-nav-height); overflow-x: auto; scrollbar-width: none; }
.section-nav__links::-webkit-scrollbar { display: none; }
.section-nav__links a { display: inline-flex; align-items: center; position: relative; white-space: nowrap; text-decoration: none; font-size: .82rem; color: #6c5e77; }
.section-nav__links a::after { content: ''; position: absolute; inset: auto 0 0; height: 2px; background: var(--ink); transform: scaleX(0); transition: transform .22s var(--ease-out); }
.section-nav__links a[aria-current='location'] { color: var(--ink); font-weight: 700; }
.section-nav__links a[aria-current='location']::after,.section-nav__links a:hover::after { transform: scaleX(1); }
.section-nav__links a:focus-visible { outline-offset: -4px; }
.public-site .section-heading p,.section-intro > p { font-size: 1.05rem; }

.sectors-section { position: relative; isolation: isolate; overflow: hidden; background: #101d2e; color: #fff; }
.sectors-section::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,#101d2e99 0%,#101d2ebf 32%,#101d2ef0 76%,#101d2e 100%); z-index: 1; pointer-events: none; }
.sectors-section .section-film { object-position: center 45%; }
.sector-content { position: relative; z-index: 2; padding-block: 90px 94px; min-height: 720px; display: flex; flex-direction: column; justify-content: space-between; }
.public-site .sectors-section h2,.public-site .sectors-section h3 { color: #fff; }
.public-site .sectors-section .section-heading p { color: #f0f3fa; text-shadow: 0 2px 8px #101d2e90; }
.sector-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 42px; margin-top: 115px; }
.sector-link,.sector-link:first-child { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding: 24px 0 0; border: 0; border-top: 1px solid #b4b9cb80; text-decoration: none; color: #fff; }
.sector-link h3 { margin-bottom: 16px; font-size: 1.4rem; }
.sector-link p { max-width: 36ch; font-size: .93rem; color: #d9e0ed; }
.sector-link span { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; font-size: .83rem; font-weight: 600; }
.sector-link > .arrow-icon { border: 0; border-radius: 0; padding: 0; flex: 0 0 24px; width: 24px; height: 24px; margin-top: 3px; }
.sector-link:hover h3,.sector-link:hover span { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; }
.public-site #servicos { padding-top: 112px; }
.public-site .faq-list summary { min-height: 88px; font-size: 1.1rem; }
.public-site .faq-list .service-answer p { font-size: 1rem; }
.service-answer > a { font-size: .85rem; margin-top: 16px; }
.process-list h3 { font-size: 1.16rem; }
.process-list p { font-size: .94rem; color: #675373; }
.process-number { font-size: .85rem; }
.expert-section-new { position: relative; isolation: isolate; overflow: hidden; background: #24172f; }
.expert-section-new::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#1e1229ed 0%,#1e1229b3 48%,#1e1229e6 100%); z-index: 1; pointer-events: none; }
.expert-section-new .section-film { object-position: 55% center; }
.expert-layout { position: relative; z-index: 2; }
.expert-statement h2 { font-size: clamp(2.6rem,4.8vw,4.7rem); }
.expert-statement > p { font-size: 1.15rem; color: #e1d4eb; }
.expert-profile h3 { font-size: 1.8rem; }
.expert-profile > p { font-size: 1rem; color: #e1d4eb; }
.expert-profile .expert-role { font-size: .85rem; color: #ddcbe9; }
.expert-points h4 { font-size: 1.1rem; }
.expert-points p { font-size: .93rem; color: #e1d4eb; }
.public-site .content-feed { gap: 48px; }
.insights-section { background: #fdfcfe; }
.insight-link,.insight-link:nth-child(2) { min-height: 190px; padding: 32px 44px 28px 0; border-top: 1px solid var(--rule); border-radius: 0; background: transparent; }
.insight-link > span { font-size: .84rem; }
.insight-link > h3 { max-width: 27ch; font-size: 1.6rem; }
.insight-link > .arrow-icon { right: 0; top: 38px; bottom: auto; }
.questions-section { border-top: 1px solid var(--rule); }
.public-site .contact-copy > p { color: #604b70; font-size: 1rem; }
.public-site .contact-copy__direct a { font-size: .94rem; }
.public-site .contact-copy .contact-note { font-size: .86rem; }
.public-site .intake-form { box-shadow: none; }
.public-site .intake-form__header p { font-size: .85rem; }
.public-site .field label { font-size: .82rem; }
.public-site .field input:not([type=checkbox]),.public-site .field select,.public-site .field textarea { border-color: #d8cde1; min-height: 50px; font-size: 16px; }
.public-site .consent-field span { font-size: .79rem; }
.public-site .form-actions small { font-size: .75rem; }
.footer-links a { font-size: .87rem; }
.public-site .site-footer__bottom { font-size: .76rem; }
.public-site .consent { bottom: 20px; left: 20px; right: auto; width: min(420px,calc(100% - 40px)); max-width: none; margin: 0; padding: 24px; display: block; border: 0; box-shadow: 0 8px 40px #28183725; }
.public-site .consent[hidden] { display: none; }
.public-site .consent p { font-size: .82rem; }
.public-site .consent > div { margin-top: 18px; justify-content: flex-end; }

.sector-hero { position: relative; isolation: isolate; overflow: hidden; background: #1b1425; color: #fff; }
.sector-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#1b1425ed 0%,#1b1425c7 37%,#1b142526 78%); pointer-events: none; }
.sector-hero > .shell { position: relative; z-index: 2; }
.page-breadcrumb { flex-wrap: wrap; font-size: .82rem; color: #f1e5fa; }
.page-breadcrumb a { color: inherit; }
.sector-hero-layout { display: flex; align-items: center; min-height: 530px; padding-block: 55px 65px; }
.sector-hero-layout > div { max-width: 660px; width: 55%; }
.sector-hero-layout h1 { color: #fff; font-size: clamp(2.7rem,4.2vw,4.7rem); max-width: 17ch; }
.sector-hero-layout > div > p { color: #eadff2; font-size: 1.1rem; }
.sector-hero .hero-actions .button { color: #281837; background: #f4edf9; }
.sector-hero .hero-actions .button:hover { background: #fff; }
.sector-hero .text-link { color: #fff; }
.sector-hero-foot { justify-content: flex-start; gap: 42px; padding: 26px 0 30px; border-top: 1px solid #d9c8e744; color: #f0e5f9; font-size: .85rem; }
.sector-hero .section-film { object-position: 68% center; }
.saneantes .section-film { object-position: right center; }
.challenge-layout p { font-size: 1.05rem; }
.why-grid h3 { font-size: 1.3rem; }
.why-grid p { font-size: 1rem; }
.regulatory-source { font-size: .83rem; }

@media(max-width:1100px) {
  .public-site { --shell: calc(100% - 72px); }
  .section-nav__label { display: none; }
  .section-nav__inner { justify-content: center; }
  .section-nav__links { gap: 28px; }
  .cinema-hero__copy { width: 51%; }
  .cinema-hero__copy h1 { font-size: 3.6rem; }
  .cinema-hero__copy > p:not(.hero-proof) { font-size: 1rem; }
  .motion-toggle { right: 36px; }
  .sector-links { gap: 28px; }
  .sector-content { min-height: 740px; }
  .sector-link h3 { font-size: 1.23rem; }
  .public-site #servicos { padding-top: 85px; }
  .sector-hero-layout > div { width: 60%; }
}
@media(max-width:820px) {
  .public-site { --shell: calc(100% - 48px); --header-height: 76px; --section-nav-height: 54px; }
  .section-nav__inner { width: 100%; justify-content: flex-start; }
  .section-nav__links { padding-inline: 24px; gap: 28px; width: 100%; }
  .cinema-hero__copy { width: 54%; }
  .cinema-hero__copy h1 { font-size: 3rem; }
  .cinema-hero__content { min-height: 670px; }
  .hero-film { object-position: 58% 90%; }
  .cinema-hero::after { background: linear-gradient(90deg,#e6dfeaf0,#e6dfea99 37%,#e6dfea00 78%); }
  .sector-links { grid-template-columns: 1fr; gap: 24px; margin-top: 75px; }
  .sector-content { min-height: 0; padding-block: 70px 100px; }
  .sector-link h3 { font-size: 1.45rem; margin-bottom: 10px; }
  .sector-link p { max-width: 58ch; }
  .sector-link span { margin-top: 8px; }
  .sectors-section .section-film { height: 510px; }
  .sectors-section::after { background: linear-gradient(180deg,#101d2e99,#101d2e80 230px,#101d2e 510px); }
  .expert-layout { grid-template-columns: 1fr; gap: 55px; }
  .expert-section-new .section-film { height: 530px; }
  .expert-section-new::after { background: linear-gradient(180deg,#24172f99,#24172fb3 240px,#24172f 530px); }
  .expert-profile { max-width: 62ch; }
  .sector-hero-layout > div { width: 74%; }
  .sector-hero-layout h1 { font-size: 3.2rem; }
}
@media(max-width:600px) {
  .public-site { --shell: calc(100% - 40px); --header-height: 72px; font-size: 16px; }
  .public-site h2 { font-size: 2.2rem; }
  .public-site main section[id] { scroll-margin-top: 56px; }
  .cinema-hero { background: #d6cede; }
  .cinema-hero__content { min-height: 815px; padding-block: 45px 340px; align-items: flex-start; }
  .cinema-hero__copy { width: 100%; }
  .cinema-hero__copy h1 { font-size: clamp(2.45rem,9.3vw,3.5rem); max-width: 15ch; }
  .cinema-hero__copy > p:not(.hero-proof) { font-size: .98rem; max-width: 40ch; margin-top: 23px; }
  .cinema-hero .hero-film { top: auto; bottom: 0; height: 400px; object-position: 65% 85%; }
  .cinema-hero::after { background: linear-gradient(180deg,#e4dceaff 0%,#e4dceaff calc(100% - 410px),#e4dcea00 calc(100% - 280px)); }
  .hero-actions { gap: 8px 20px; margin-top: 24px; }
  .hero-proof { margin-top: 20px; font-size: .78rem; max-width: 36ch; }
  .cinema-hero__bottom { bottom: 20px; }
  .cinema-hero__bottom > a { font-size: .75rem; gap: 8px; }
  .motion-toggle { right: 20px; bottom: 22px; font-size: .7rem; padding-inline: 13px; }
  .cinema-hero__bottom .motion-toggle { font-size: .69rem; }
  .section-nav__links { padding-inline: 20px; gap: 25px; }
  .section-nav__links a { font-size: .8rem; }
  .public-site .section-heading p { font-size: 1rem; }
  .sector-content { padding-block: 60px 92px; }
  .sector-content .section-heading { min-height: 270px; align-content: start; }
  .sector-content .section-heading p { max-width: 31ch; }
  .sector-links { margin-top: 35px; gap: 25px; }
  .sector-link p { font-size: .96rem; }
  .sector-link h3 { font-size: 1.45rem; }
  .sectors-section .section-film { height: 420px; object-position: 60% center; }
  .sectors-section::after { background: linear-gradient(180deg,#101d2eb3,#101d2e66 260px,#101d2e 420px); }
  .public-site #servicos { padding-top: 68px; }
  .public-site .faq-list summary { font-size: 1.04rem; }
  .public-site .faq-list .service-answer p { font-size: .96rem; }
  .process-list h3 { font-size: 1.08rem; }
  .process-list p { font-size: .89rem; }
  .expert-statement h2 { font-size: 2.85rem; }
  .expert-statement > p { font-size: 1.04rem; }
  .public-site .content-feed { gap: 0; }
  .insight-link { min-height: 175px; padding-top: 26px; }
  .insight-link > h3 { font-size: 1.45rem; }
  .footer-links a { font-size: .81rem; }
  .public-site.contact-visible .mobile-contact,.public-site.hero-visible .mobile-contact { transform: translateY(100px); visibility: hidden; pointer-events: none; }
  .public-site .consent { left: 12px; bottom: 77px; width: calc(100% - 24px); padding: 16px; }
  .public-site.hero-visible .consent { bottom: 12px; }
  .public-site .consent p { font-size: .8rem; }
  .public-site .consent > div { flex-direction: row; gap: 8px; margin-top: 12px; }
  .public-site .consent .button { flex: 1; width: auto; font-size: .75rem; min-height: 44px; padding: 10px 12px; }
  .page-breadcrumb { font-size: .78rem; }
  .sector-hero-layout { min-height: 720px; padding-top: 40px; padding-bottom: 265px; align-items: flex-start; }
  .sector-hero-layout > div { width: 100%; }
  .sector-hero-layout h1 { font-size: clamp(2.5rem,8.8vw,3.5rem); max-width: 17ch; }
  .sector-hero-layout > div > p { font-size: 1rem; }
  .sector-hero .section-film { top: auto; height: 420px; bottom: 50px; object-position: 66% center; }
  .saneantes .section-film { object-position: right center; }
  .sector-hero::after { background: linear-gradient(180deg,#1b1425 0%,#1b1425 calc(100% - 460px),#1b142533 calc(100% - 220px),#1b1425 100%); }
  .sector-hero-foot { gap: 16px; font-size: .74rem; padding-top: 22px; padding-bottom: 30px; }
  .sector-hero > .motion-toggle { bottom: 110px; }
  .challenge-layout p { font-size: 1rem; }
  .regulatory-source { font-size: .8rem; }
}

/* Keep the entire opening, including its section index, in the desktop viewport.
   Natural height still wins on short screens and with enlarged text. */
@media (min-width: 601px) {
  .cinema-hero__content {
    min-height: clamp(0px,calc(100svh - var(--header-height) - var(--section-nav-height) - 1px),850px);
    padding-block: clamp(28px,5.5svh,64px) clamp(82px,10svh,108px);
  }
  .cinema-hero__copy { width: min(680px,54%); }
  .public-site .cinema-hero__copy h1 { max-width: none; font-size: clamp(2.5rem,min(4.4vw,8.4svh),5rem); }
  .cinema-hero__copy > p:not(.hero-proof) { margin-top: 24px; }
  .cinema-hero .hero-actions { margin-top: 28px; }
  .cinema-hero .hero-proof { margin-top: 24px; }
}
@media (min-width: 601px) and (max-height: 780px) {
  .cinema-hero__content { padding-top: 28px; }
  .cinema-hero__copy > p:not(.hero-proof) { margin-top: 20px; }
  .cinema-hero .hero-actions { margin-top: 24px; }
  .cinema-hero .hero-proof { margin-top: 20px; }
}

/* New areas follow the existing type, color and section system. */
.sector-hero.sector-hero--text { background: #39234f; }
.sector-hero--text::after { display: none; }
.sector-hero--text .sector-hero-layout { min-height: 460px; padding-block: 64px 80px; }
.sector-hero--text .sector-hero-layout > div { width: 100%; max-width: 960px; }
.sector-hero--text .sector-hero-layout h1 { max-width: 22ch; }
.sector-hero--text .sector-hero-layout > div > p { max-width: 58ch; }
.sector-links > .sector-link:last-child { grid-column: 1 / -1; }
.sector-links > .sector-link:last-child p { max-width: 80ch; }
.blog-carousel { min-width: 0; }
.blog-carousel__controls { display: flex; justify-content: flex-end; gap: 12px; margin-bottom: 22px; }
.blog-carousel__controls[hidden] { display: none; }
.blog-carousel__button { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--rule); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; }
.blog-carousel__button:hover:not(:disabled) { background: var(--paper-deep); }
.blog-carousel__button:disabled { opacity: .35; cursor: default; }
.blog-carousel__button[data-blog-previous] .arrow-icon { transform: rotate(180deg); }
.public-site .blog-carousel .content-feed { position: relative; display: flex; gap: 32px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #9571b5 #f0ebf5; padding-bottom: 20px; }
.blog-slide { flex: 0 0 calc((100% - 32px) / 2); min-width: 0; scroll-snap-align: start; }
.blog-slide__link { display: flex; flex-direction: column; height: 100%; padding-top: 24px; border-top: 1px solid var(--rule); text-decoration: none; }
.blog-slide__image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 24px; }
.blog-slide__copy { display: flex; flex: 1; flex-direction: column; }
.blog-slide__meta { display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--muted); font-size: .8rem; margin-bottom: 16px; }
.blog-slide__editorial h3 { font-size: clamp(1.35rem,2vw,1.8rem); line-height: 1.35; margin-bottom: 14px; }
.blog-slide__editorial p { max-width: 62ch; font-size: .96rem; color: var(--muted); }
.blog-slide__action { display: inline-flex; align-items: center; min-height: 44px; font-size: .88rem; font-weight: 700; margin-top: auto; padding-top: 18px; }
.blog-slide__link:hover h3,.blog-slide__link:hover .blog-slide__action { text-decoration: underline; text-underline-offset: 5px; }
.blog-slide__link:focus-visible { outline-offset: -3px; }
.blog-feed-status { width: 100%; padding-block: 32px; border-top: 1px solid var(--rule); color: var(--muted); }
.blog-feed-status button { margin-top: 16px; background: transparent; border: 0; color: var(--ink); cursor: pointer; min-height: 44px; padding: 0; text-decoration: underline; }
@media (max-width: 820px) {
  .sector-hero--text .sector-hero-layout { min-height: 0; padding-block: 48px 64px; }
}
@media (max-width: 600px) {
  .sector-hero--text .sector-hero-layout { padding-block: 40px 52px; }
  .sector-hero--text .sector-hero-layout h1 { font-size: clamp(2.2rem,8.8vw,3.2rem); }
  .sector-hero--text .sector-hero-foot { flex-wrap: wrap; gap: 12px 24px; }
  .public-site .blog-carousel .content-feed { gap: 20px; }
  .blog-slide { flex-basis: 100%; }
  .blog-carousel__controls { margin-bottom: 12px; }
}
