/* Proportional readability pass shared by every institutional page. */

.asset-picture {
  display: contents;
}

/* Header: original straight layout, with a more legible scale. */
.topbar {
  height: 104px;
}

.topbar .brand-mark {
  width: 80px;
  height: 59px;
  flex-basis: 80px;
}

.topbar .brand-mark picture,
.topbar .brand-mark img {
  display: block;
  width: 100%;
  height: 100%;
}

.topbar .brand-mark img {
  object-fit: cover;
  object-position: 50% 24%;
  border-radius: 50%;
  mix-blend-mode: multiply;
}

.topbar .brand-copy {
  display: grid;
  gap: 2px;
  line-height: 1.1;
}

.topbar .brand-wordmark {
  font-size: 31px;
}

.topbar .brand-copy small {
  font-size: 9.5px;
}

/* Guide/article hero images can be direct <img> elements after the
   homepage rollback; keep them contained like the responsive variants. */
.content-hero > img {
  display: block;
  width: 100%;
  max-height: 270px;
  object-fit: contain;
  filter: drop-shadow(0 18px 22px rgba(58, 42, 23, .12));
}

.topbar .nav-links {
  gap: 42px;
}

.topbar .nav-links a,
.topbar .login-link {
  font-size: 15px;
}

.topbar .button {
  padding: 15px 24px;
  font-size: 14px;
}

/* Home */
.hero {
  min-height: 760px;
}

.hero h1 {
  font-size: clamp(48px, 5.2vw, 82px);
}

.eyebrow {
  font-size: 13px;
}

.hero-lede {
  font-size: 19px;
}

.trust-row div {
  font-size: 12.5px;
}

.hero-art {
  min-height: 620px;
}

.story-banner {
  min-height: 380px;
  grid-template-columns: 290px 1fr 120px;
}

.story-illustration {
  height: 290px;
}

.story-illustration img {
  width: 410px;
  height: 410px;
}

.story-copy h2 {
  font-size: clamp(30px, 3.2vw, 47px);
}

.story-copy p {
  max-width: 620px;
  font-size: 16px;
}

.features-block {
  padding-top: 96px;
  padding-bottom: 126px;
}

.features-block > h2 {
  max-width: 860px;
  font-size: clamp(29px, 3.2vw, 43px);
}

.feature-grid {
  gap: 20px;
}

.feature-card {
  min-height: 350px;
  padding: 18px 22px 26px;
}

.feature-card img {
  width: 165px;
  height: 145px;
}

.feature-card h3 {
  font-size: 19px;
}

.feature-card p {
  font-size: 13px;
}

.journey-inner {
  width: min(1240px, calc(100% - 48px));
  padding: 56px 0 38px;
}

.journey-inner > h2 {
  font-size: clamp(33px, 3vw, 46px);
}

.journey-step h3 {
  font-size: 20px;
}

.journey-step p {
  max-width: 310px;
  min-height: 58px;
  font-size: 14px;
}

.journey-step img {
  height: 178px;
}

.privacy-inner {
  padding: 80px 0 76px;
}

.privacy-copy h2 {
  font-size: clamp(36px, 3.2vw, 52px);
}

.privacy-copy p,
.privacy-copy ul,
.privacy-seal p {
  font-size: 15px;
}

.privacy-seal img {
  width: min(84%, 440px);
}

.closing-cta {
  min-height: 340px;
  padding-top: 42px;
}

.closing-cta h2 {
  font-size: clamp(34px, 3vw, 47px);
}

.closing-cta p,
.closing-button {
  font-size: 15px;
}

/* Recursos */
.resources-hero {
  min-height: 430px;
}

.resources-intro > p:last-child {
  max-width: 540px;
  font-size: 16px;
}

.resources-book {
  width: min(106%, 760px);
  max-height: 350px;
}

.resources-grid {
  gap: 20px;
  padding: 30px 0 38px;
}

.resource-card {
  min-height: 164px;
  padding: 18px 22px;
  grid-template-columns: 132px 1fr;
}

.resource-card img {
  width: 126px;
  height: 118px;
}

.resource-card h2 {
  font-size: 20px;
}

.resource-card p {
  font-size: 13px;
}

.benefits-inner {
  min-height: 158px;
}

.benefits-inner > h2 {
  font-size: 28px;
}

.benefits-inner article {
  min-height: 92px;
}

.benefits-inner article strong {
  font-size: 18px;
}

.benefits-inner article p {
  font-size: 12px;
}

/* Como funciona */
.how-hero {
  min-height: 390px;
}

.how-kicker,
.how-intro > p:not(.how-kicker),
.how-button {
  font-size: 14px;
}

.how-intro h1 {
  font-size: clamp(41px, 3.2vw, 49px);
}

.how-hero-art {
  max-height: 330px;
}

.how-steps > h2 {
  font-size: 28px;
}

.step-card {
  min-height: 252px;
  padding: 12px 15px 16px;
}

.step-card img {
  height: 142px;
}

.step-card h3 {
  font-size: 16px;
}

.step-card p {
  max-width: 250px;
  font-size: 11.5px;
}

.platform-inner {
  min-height: 330px;
}

.platform-copy h2 {
  font-size: 29px;
}

.platform-copy li {
  grid-template-columns: 54px 1fr;
}

.platform-icon,
.platform-icon img {
  width: 52px;
  height: 52px;
}

.platform-copy strong {
  font-size: 17px;
}

.platform-copy p {
  font-size: 11.5px;
}

.product-preview {
  min-height: 270px;
}

.control-grid article {
  min-height: 98px;
  grid-template-columns: 82px 1fr;
}

.control-grid img {
  width: 78px;
  height: 78px;
}

.control-grid h3 {
  font-size: 15px;
}

.control-grid p {
  font-size: 10.5px;
}

.how-cta {
  min-height: 98px;
}

.how-cta h2 {
  font-size: 29px;
}

.how-cta p,
.how-cta > a {
  font-size: 13px;
}

/* Planos */
.pricing-main {
  padding-top: 38px;
}

.pricing-heading > span {
  font-size: 18px;
}

.billing-switch {
  width: 290px;
}

.billing-switch button {
  min-height: 40px;
  font-size: 14px;
}

.pricing-grid {
  width: min(960px, 100%);
  gap: 30px;
}

.price-card {
  min-height: 590px;
  padding: 28px 62px 24px;
}

.plan-art {
  width: 205px;
  height: 130px;
}

.premium-card .plan-art {
  width: 225px;
}

.price-card h2 {
  font-size: 33px;
}

.price-value {
  font-size: 50px;
}

.plan-purpose,
.price-card ul {
  font-size: 13.5px;
}

.price-card > a {
  min-height: 49px;
  font-size: 15px;
}

.availability-note {
  font-size: 11px;
}

.billing-switch small {
  font-size: 8px;
}

.pricing-trust {
  min-height: 88px;
}

.pricing-trust strong {
  font-size: 14px;
}

/* Central de ajuda */
.help-main {
  padding-top: 30px;
}

.help-hero {
  width: min(1050px, 100%);
  min-height: 260px;
  grid-template-columns: 280px 1fr;
}

.help-hero > img {
  width: 270px;
  height: 220px;
}

.help-heading > span {
  font-size: 16px;
}

.help-search {
  height: 58px;
}

.help-search input,
.help-search button {
  font-size: 14px;
}

.help-categories > h2,
.popular-help > h2 {
  font-size: 28px;
}

.category-grid {
  gap: 20px;
}

.category-card {
  min-height: 225px;
  padding: 14px 18px 20px;
}

.category-card img {
  width: 155px;
  height: 120px;
}

.category-card:nth-child(2) img,
.category-card:nth-child(4) img {
  width: 125px;
}

.category-card strong {
  font-size: 19px;
}

.category-card small,
.faq-grid details p {
  font-size: 11.5px;
}

.faq-grid summary {
  min-height: 44px;
  font-size: 14px;
}

.help-contact {
  min-height: 116px;
}

.help-contact h2 {
  font-size: 29px;
}

.help-contact p,
.help-contact > a {
  font-size: 14px;
}

/* Contato */
.contact-main {
  padding-top: 34px;
}

.contact-heading > span {
  font-size: 16px;
}

.contact-layout {
  width: min(1040px, 100%);
  gap: 66px;
}

.contact-info {
  min-height: 490px;
  padding-bottom: 185px;
}

.contact-info h2,
.contact-form h2 {
  font-size: 29px;
}

.contact-info > p {
  font-size: 14px;
}

.contact-info address > a,
.contact-info address > div {
  min-height: 78px;
  grid-template-columns: 72px 1fr;
}

.info-icon,
.info-icon svg {
  width: 58px;
  height: 58px;
}

.contact-info address strong {
  font-size: 17px;
}

.contact-info address small {
  font-size: 12.5px;
}

.contact-art {
  width: 370px;
  height: 195px;
}

.contact-form {
  padding: 22px 30px 24px;
}

.contact-form label:not(.privacy-consent),
.contact-form input:not([type="checkbox"]),
.contact-form select,
.contact-form textarea,
.privacy-consent {
  font-size: 12.5px;
}

.contact-form input:not([type="checkbox"]),
.contact-form select {
  height: 42px;
}

.contact-form textarea {
  min-height: 110px;
}

.contact-form button {
  min-height: 49px;
  font-size: 15px;
}

.form-note {
  font-size: 11px;
}

.contact-help {
  min-height: 104px;
}

.contact-help h2 {
  font-size: 28px;
}

.contact-help p,
.contact-help > a {
  font-size: 13.5px;
}

/* Sobre nós */
.about-hero {
  min-height: 390px;
}

.about-copy > span {
  max-width: 540px;
  font-size: 16px;
}

.about-copy > a {
  font-size: 14px;
}

.about-hero > img {
  max-height: 350px;
}

.about-purpose {
  padding-top: 18px;
  padding-bottom: 34px;
}

.purpose-title h2 {
  font-size: 27px;
}

.purpose-grid {
  width: min(940px, 100%);
}

.purpose-grid > p {
  font-size: 14px;
}

.purpose-grid blockquote {
  min-height: 165px;
  font-size: 22px;
}

.purpose-grid blockquote img {
  width: 225px;
  height: 80px;
}

.values-inner {
  width: min(1050px, calc(100% - 48px));
  padding: 18px 0 24px;
}

.values-heading h2 {
  font-size: 25px;
}

.values-grid article {
  min-height: 98px;
  grid-template-columns: 82px 1fr;
}

.values-grid svg {
  width: 74px;
  height: 74px;
}

.values-grid h3 {
  font-size: 19px;
}

.values-grid p {
  font-size: 11.5px;
}

.about-cta {
  padding: 18px 0 22px;
}

.about-cta h2 {
  font-size: 27px;
}

.about-cta p,
.about-cta a {
  font-size: 13px;
}

.about-cta a {
  min-width: 230px;
  min-height: 43px;
}

/* Privacidade and Terms */
.privacy-hero,
.terms-hero {
  min-height: 350px;
}

.privacy-hero-copy > span,
.terms-hero-copy > span {
  max-width: 500px;
  font-size: 17px;
}

.privacy-hero-copy time,
.terms-hero-copy time {
  font-size: 13px;
}

.privacy-hero > img {
  width: min(88%, 540px);
  max-height: 325px;
}

.terms-hero > img {
  max-height: 320px;
}

.privacy-pillars-inner,
.terms-pillars-inner {
  width: min(1080px, calc(100% - 48px));
  padding: 24px 0;
}

.privacy-pillars article,
.terms-pillars article {
  min-height: 90px;
  grid-template-columns: 74px 1fr;
}

.privacy-pillars img,
.terms-pillars svg {
  width: 70px;
  height: 74px;
}

.privacy-pillars h2,
.terms-pillars h2 {
  font-size: 20px;
}

.privacy-pillars p,
.terms-pillars p {
  font-size: 12.5px;
}

.privacy-policy,
.terms-document {
  width: min(1080px, calc(100% - 48px));
  padding-top: 18px;
  padding-bottom: 30px;
  grid-template-columns: 250px 1fr;
}

.privacy-policy aside h2,
.terms-document aside h2 {
  font-size: 17px;
}

.privacy-policy aside a,
.terms-document aside a {
  font-size: 13px;
}

.policy-heading h2,
.conditions-heading h2 {
  font-size: 25px;
}

.policy-content article,
.conditions article {
  min-height: 68px;
  padding-top: 9px;
  padding-bottom: 9px;
}

.policy-content h3,
.conditions h3 {
  font-size: 15px;
}

.policy-content p,
.conditions p {
  font-size: 12px;
  line-height: 1.45;
}

.rights-inner,
.agreement-inner {
  width: min(960px, calc(100% - 48px));
  min-height: 88px;
}

.rights-inner h2,
.agreement-inner h2 {
  font-size: 23px;
}

.rights-inner p,
.agreement-inner p,
.rights-inner a,
.agreement-inner a {
  font-size: 13px;
}

.privacy-contact,
.terms-contact {
  padding: 11px 24px;
  font-size: 13px;
}

/* Footer */
.footer-inner {
  padding-top: 54px;
  padding-bottom: 48px;
}

.footer-column h3 {
  font-size: 12px;
}

.footer-column a,
.footer-brand p,
.footer-bottom {
  font-size: 12px;
}

.privacy-page-shell .footer-column h3,
.privacy-page-shell .footer-column a,
.terms-shell .footer-column h3,
.terms-shell .footer-column a {
  font-size: 12px;
}

.privacy-page-shell .footer-brand p,
.terms-shell .footer-brand p {
  font-size: 11px;
}

@media (max-width: 900px) {
  .topbar {
    height: 84px;
  }

  .topbar .brand-mark {
    width: 64px;
    height: 50px;
    flex-basis: 64px;
  }

  .topbar .brand-wordmark {
    font-size: 26px;
  }

  .hero-art {
    min-height: 500px;
  }

  .story-banner {
    grid-template-columns: 180px 1fr;
  }

  .feature-card {
    min-height: 330px;
  }

  .help-hero,
  .privacy-policy,
  .terms-document {
    grid-template-columns: 1fr;
  }

  .contact-info {
    min-height: 470px;
  }
}

@media (max-width: 680px) {
  .topbar .brand-copy small {
    display: none;
  }

  .topbar .brand-mark {
    width: 48px;
    height: 42px;
    flex-basis: 48px;
  }

  .topbar .brand-wordmark {
    font-size: 21px;
  }

  .topbar .button {
    padding: 12px 14px;
    font-size: 11px;
  }

  .hero h1 {
    font-size: 47px;
  }

  .hero-art {
    min-height: 330px;
  }

  .hero-book {
    width: 108%;
    right: -4%;
  }

  .story-banner {
    grid-template-columns: 1fr;
  }

  .story-illustration {
    height: 180px;
  }

  .story-illustration img {
    width: 290px;
    height: 290px;
  }

  .feature-card {
    min-height: 310px;
  }

  .resource-card {
    min-height: 170px;
  }

  .step-card {
    min-height: 250px;
  }

  .pricing-grid {
    width: 100%;
  }

  .price-card {
    min-height: 0;
    padding: 28px 30px;
  }

  .category-card {
    min-height: 215px;
  }

  .help-hero > img {
    width: 210px;
    height: 175px;
  }

  .contact-layout {
    width: 100%;
  }

  .about-hero > img,
  .privacy-hero > img,
  .terms-hero > img {
    max-height: 250px;
  }

  .terms-hero > img {
    width: 108%;
    margin-left: -4%;
  }

  .privacy-policy,
  .terms-document {
    grid-template-columns: 1fr;
  }

  .policy-content p,
  .conditions p {
    font-size: 11.5px;
  }

  .footer-inner {
    padding-top: 40px;
    padding-bottom: 36px;
  }
}
