/* Keep T051/T070 desktop artwork intact; only constrain collision-prone widths. */
.cv-txt { min-width: 0; }
.cv h1, .hC h1, .prose.tc a { overflow-wrap: break-word; }
main [id] { scroll-margin-top: 84px; }
@media (min-width: 768px) and (max-width: 1100px) {
  .cv-grid { grid-template-columns: minmax(0, 1fr); }
  .cv-txt { padding-bottom: 0; }
  .cv-art { width: 520px; max-width: 100%; min-height: 520px; justify-self: center; }
}
@media (max-width: 1100px) {
  .hc-sticker { top: 88px; }
  .hC .k { max-width: calc(100% - 140px); }
}
@media (max-width: 767px) {
  .hC .k { max-width: calc(100% - 100px); }
  .cv:not(:has(.cv-chips)) .cv-txt { padding-bottom: 48px; }
}
@media (max-width: 1023px) {
  .cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cat > span:not(.cat-ic) { min-width: 0; overflow-wrap: break-word; }
}

/* Inner pages follow the approved About cover, including its 588px desktop band. */
.cv.cv-unified { height: 588px; padding-top: 144px; }
.cv-unified .cv-grid { height: 444px; align-items: start; }
.cv-unified .cv-txt { padding-bottom: 0; }
.cv-unified .cv-art { height: 444px; min-height: 444px; }
.cv-unified h1 { font-size: 76px; line-height: 76px; }
.cv-unified.cv-title-medium h1 { font-size: 56px; line-height: 60px; }
.cv-unified.cv-title-long h1 { font-size: 44px; line-height: 48px; }
.cv-unified .cv-card.c1.wide { width: 380px; height: 300px; right: 96px; top: 8px; }
.cv-unified .cv-card.c2 { width: 248px; height: 264px; right: 0; top: 248px; }
.cover-overview { padding: 120px 0 0; }
.cover-overview .p-intro { max-width: 920px; margin: 0; }
.cover-overview .cv-chips { color: var(--vm-ink); max-width: none; }
.cover-overview .cv-chips li { color: var(--vm-ink); box-shadow: inset 0 0 0 1.5px var(--vm-ink-muted); }
.cover-overview + section { padding-top: 48px; }
.cv-unified + article { padding-top: 120px; }
.cv-unified + article .activity-article-wrap { padding-top: 0; }
@media (min-width: 768px) and (max-width: 1100px) {
 .cv.cv-unified { height: 1020px; }
 .cv-unified .cv-grid { grid-template-rows: 390px 444px; gap: 0; }
 .cv-unified .cv-art { min-height: 444px; }
 .cv-unified h1 { font-size: 60px; line-height: 62px; }
 .cv-unified.cv-title-long h1 { font-size: 40px; line-height: 44px; }
}
@media (max-width: 767px) {
 .cv.cv-unified { height: 740px; padding-top: 120px; }
 .cv-unified .cv-grid { height: auto; grid-template-rows: 350px 250px; gap: 0; }
 .cv-unified .cv-txt { padding-bottom: 0; }
 .cv-unified .cv-art { height: 250px; min-height: 250px; }
 .cv-unified h1 { font-size: 44px; line-height: 46px; }
 .cv-unified.cv-title-medium h1 { font-size: 34px; line-height: 38px; }
 .cv-unified.cv-title-long h1 { font-size: 28px; line-height: 32px; }
 .cv-unified .cv-card.c1.wide { width: 200px; height: 220px; left: 16px; right: auto; top: 8px; }
 .cv-unified .cv-card.c2 { width: 170px; height: 188px; right: 16px; top: 44px; }
 .cover-overview { padding-top: 96px; }
 .cv-unified + article { padding-top: 96px; }
}
.cover-overview { padding-bottom: 40px; }
.cover-overview p { font-size: 18px; line-height: 28px; max-width: 920px; }
.cover-article-meta { margin-bottom: 32px; }

/* Shared bilingual navigation and client annotation changes. */
.hdr .brand img { height: 36px; width: auto; }
.hdr-bar { min-height: 56px; }
.cv .sticker, .hC .hc-sticker { display: none; }
.social-instagram { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--vm-cream); }
.social-instagram svg { width: 24px; height: 24px; }
.social-instagram:hover, .social-instagram:focus-visible { color: var(--vm-yellow); }
@media (max-width: 767px) {
 .hdr .brand img { height: 34px; }
 .hdr-bar { min-height: 52px; }
}
.anchor-alias { display: block; height: 0; scroll-margin-top: 84px; }
.external-language { font-size: .85em; font-weight: 400; opacity: .8; }

/* The two annotated hero cards keep live text above their mascot GIFs. */
.hC .reel .f.mascot-card { display: flex; flex-direction: column; gap: 8px; }
.hC .reel .mascot-copy { flex: none; position: relative; z-index: 1; }
.hC .reel .f.mascot-card .mascot-copy b { display: block; max-width: none; font-size: 24px; line-height: 28px; font-weight: 600; letter-spacing: -.02em; }
.hC .reel .mascot-copy .tk { display: block; margin-bottom: 4px; }
.hC .reel .mascot-motion { display: block; flex: 1; min-height: 0; width: 100%; }
.hC .reel .mascot-motion img { width: 100%; height: 100%; object-fit: contain; }
/* The approved larger mascot sits at the bottom-right of both hero cards. */
.hC .reel .f.mascot-card .mascot-motion { position: absolute; right: -16px; bottom: -4px; width: 192px; height: 176px; }
@media (max-width: 767px) {
 .hC .reel .f.mascot-card .mascot-copy b { font-size: 18px; line-height: 24px; }
 .hC .reel .mascot-copy .tk { font-size: 12px; line-height: 16px; }
 .hC .reel .f.mascot-card .mascot-motion { right: -12px; bottom: -2px; width: 136px; height: 116px; }
}

/* Mobile review: accessible navigation and compact entry to the existing content. */
.menu-btn { width: 48px; height: 48px; flex-shrink: 0; }
.menu-languages { display: flex; gap: 8px; margin-bottom: 16px; }
.menu-panel .menu-languages a, .ftr .lang a {
 display: inline-flex; align-items: center; justify-content: center;
 min-width: 48px; min-height: 48px; padding: 8px 16px; font-size: 16px; line-height: 24px;
}
.menu-languages a[aria-current="true"] { background: var(--vm-lime-soft); font-weight: 600; }
.menu-open .menu-languages a { transition-delay: 0s; }
@media (min-width: 768px) { .v3-dots { display: none; } }
@media (max-width: 767px) {
 .hC { padding-top: 96px; }
 .hC .k { max-width: 100%; }
 .hC h1 { font-size: 48px; line-height: 48px; margin-top: 16px; }
 .hc-row { gap: 16px; margin-top: 16px; }
 main:has(.activities-posts, .activity-article) .cv-unified { height: auto; padding: 96px 0 16px; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-grid { grid-template-rows: auto 144px; gap: 16px; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-txt { padding-bottom: 0; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-art { height: 144px; min-height: 144px; margin: 0; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-card.c1.wide { width: 144px; height: 144px; top: 0; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-card.c2 { width: 128px; height: 128px; top: 16px; }
 main:has(.activities-posts) .cover-overview { padding-top: 16px; padding-bottom: 24px; }
 main:has(.activities-posts) .cover-overview + section { padding-top: 32px; }
 .cv-unified + .activity-article { padding-top: 32px; }
}

/* Page-specific mascot loops share the existing cover card without covering its copy. */
.cv-unified .cv-card.c2.mascot-cover-card { display: flex; flex-direction: column; justify-content: flex-start; gap: 8px; padding: 24px; width: 256px; height: 268px; }
.cv-unified .mascot-cover-card .ck { flex: none; font-size: 12px; line-height: 16px; }
.cv-unified .mascot-cover-card b { flex: none; max-width: 100%; font-size: 24px; line-height: 28px; font-weight: 600; letter-spacing: -.02em; }
.cv-unified .cover-mascot { display: block; position: absolute; right: -16px; bottom: -4px; width: 192px; height: 176px; }
.cv-unified .cover-mascot img { position: static; width: 100%; height: 100%; object-fit: contain; }
.cv-unified .cv-card.c2.mascot-box--long-title { height: 304px; top: 212px; }
@media (max-width: 767px) {
 .cv-unified .cv-card.c2.mascot-cover-card { padding: 16px; width: 168px; height: 196px; }
 .cv-unified .mascot-cover-card b { font-size: 18px; line-height: 24px; }
 .cv-unified .cover-mascot { right: -12px; bottom: -2px; width: 136px; height: 116px; }
 .cv-unified .cv-card.c2.mascot-box--long-title { height: 228px; top: 12px; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-grid { grid-template-rows: auto 208px; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-art { height: 208px; min-height: 208px; }
 main:has(.activities-posts, .activity-article) .cv-unified .cv-card.c2.mascot-cover-card { width: 168px; height: 196px; top: 12px; }
}

/* Every GIF box uses a small kicker followed by the larger, consistent title. */
.hC .reel .f.mascot-box .gif-kicker, .cv-unified .mascot-box .gif-kicker,
.mascot-box--cta .gif-kicker, .mascot-box--wide .gif-kicker {
 display: block; margin-bottom: 4px; font-size: 12px; line-height: 16px;
 font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.mascot-box .mascot-copy { position: relative; z-index: 1; }
.mascot-box--cta .gif-title, .mascot-box--wide .gif-title { font-weight: 600; }
.v3-app.mascot-box .melo { width: 224px; right: -8px; bottom: 8px; }
.mascot-box--wide .cta-card { align-items: end; }
.mascot-box--wide .cta-art { width: 320px; height: 336px; justify-self: end; margin: 0 -16px -64px 0; }
.mascot-box--wide .cta-art img { height: 360px; width: 270px; left: auto; right: 0; bottom: 8px; transform: none; object-fit: contain; }
@media (max-width: 767px) {
 .v3-app.mascot-box { padding-bottom: 240px; }
 .v3-app.mascot-box .melo { width: 160px; }
 .mascot-box--wide .cta-art { width: 240px; height: 256px; margin: 0 -8px -32px 0; }
 .mascot-box--wide .cta-art img { height: 280px; width: 210px; }
}

/* Responsive home: intermediate widths get their own layout, without clipping copy or controls. */
.hC .wrap, .hc-row > *, .hdr-bar { min-width: 0; }
@media (min-width: 768px) and (max-width: 1100px) {
 .hC { padding-top: 128px; min-height: 0; }
 .hC h1 { font-size: 72px; line-height: 72px; }
 .hc-row { flex-direction: column; align-items: stretch; gap: 24px; margin-top: 24px; }
 .hc-row p { max-width: 100%; }
}
@media (max-width: 767px) {
 .hC { margin-top: -68px; }
}

/* Mobile cards loop as one complete set; the inert copy is only for the seamless join. */
.hC .hero-reel { display: block; }
.hero-reel .reel-track { display: flex; gap: 20px; }
.hero-reel .reel-set { display: contents; }
.hero-reel .reel-copy, .hero-reel-toggle { display: none; }
@media (max-width: 767px) {
 .hC .hero-reel { margin: 32px 0 0; padding: 12px 0; transform: none; overflow-x: auto; }
 .hero-reel .reel-track { width: max-content; gap: 0; }
 .hero-reel .reel-set { display: flex; flex: none; gap: 16px; padding-right: 16px; }
 .hero-reel .reel-track .f { transform: rotate(-3deg); }
 .js .hero-reel { overflow: hidden; }
 .js .hero-reel .reel-track { animation: mq 36s linear infinite; }
 .js .hero-reel-toggle { display: flex; align-items: center; justify-content: center; min-height: 40px; margin: 12px 16px 0 auto; padding: 8px 16px; border: 1px solid currentColor; border-radius: 9999px; background: transparent; color: var(--vm-cream); font: inherit; font-size: 14px; line-height: 20px; cursor: pointer; }
 .hero-reel.mq-off .reel-track, .hero-reel.is-paused .reel-track { animation-play-state: paused; }
 .vm-still .hero-reel { overflow-x: auto; }
 .vm-still .hero-reel .reel-track { animation: none; }
 .vm-still .hero-reel .reel-copy, .vm-still .hero-reel-toggle { display: none; }
}
@media (prefers-reduced-motion: reduce) {
 .js .hero-reel { overflow-x: auto; }
 .js .hero-reel .reel-track { animation: none; }
 .hero-reel .reel-copy, .js .hero-reel-toggle { display: none; }
}

/* Continue the dark opening through the text marquee, with one distinct sequence per row. */
.v3-mq { background: var(--vm-ink); color: var(--vm-cream); }
.v3mq-row.v3r2 { color: rgba(253,245,224,.82); }
.v3mq-group { display: flex; align-items: center; flex: none; gap: 24px; padding-right: 24px; }
@media (max-width: 767px) { .v3-mq { padding: 32px 0; } }

/* The client roadmap is a plan, distinct from completed company milestones. */
.future-preview .v3-head { margin-bottom: 0; }
.future-intro { max-width: 880px; margin-top: 24px; }
.future-link { margin-top: 24px; }
.future-stages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; list-style: none; margin-top: 32px; }
.future-stages li { min-width: 0; padding: 24px; background: var(--vm-white); border: 1px solid var(--vm-line); border-radius: 24px; }
.future-year { display: inline-flex; align-items: center; padding: 8px 16px; background: var(--vm-lime-soft); border-radius: 9999px; font-size: 16px; line-height: 24px; font-weight: 600; }
.future-stages h3 { margin: 24px 0 16px; font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -.02em; text-wrap: balance; }
.future-stages p, .future-note { font-size: 16px; line-height: 24px; color: var(--vm-ink-muted); text-wrap: pretty; }
.future-note { max-width: 920px; margin-top: 24px; }
@media (max-width: 767px) {
 .future-stages { grid-template-columns: minmax(0,1fr); gap: 16px; }
 .future-stages h3 { margin-top: 16px; }
}

/* Reference content additions keep the existing brand and responsive inner-page system. */
[hidden] { display: none !important; }
.additions { scroll-margin-top: 96px; }
.additions [id] { scroll-margin-top: 96px; }
.additions .k { margin-bottom: 16px; color: var(--vm-ink-muted); }
.additions h2 { max-width: 880px; margin-bottom: 24px; font-size: 48px; line-height: 48px; font-weight: 500; letter-spacing: -.03em; text-wrap: balance; }
.additions p { max-width: 880px; font-size: 16px; line-height: 24px; text-wrap: pretty; }
.additions p + p { margin-top: 16px; }
.addition-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 32px 0; }
.addition-card { padding: 24px; border: 1px solid var(--vm-line); border-radius: 24px; background: var(--vm-cream); min-width: 0; }
.addition-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.addition-card h3, .inquiry-preview h3 { font-size: 24px; line-height: 32px; font-weight: 600; margin-bottom: 16px; text-wrap: balance; }
.addition-split { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 40px; margin-top: 32px; }
.addition-split > * { min-width: 0; }
.addition-split figure { margin: 0; }
.addition-split figure img { width: 100%; height: 400px; object-fit: cover; border-radius: 24px; }
.addition-split .btn { margin-top: 24px; }
.addition-hero-action { margin-top: 24px; }
.community-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.community-gallery figure { margin: 0; min-width: 0; }
.community-gallery img { width: 100%; height: 280px; object-fit: cover; border-radius: 24px; }
.community-gallery figcaption { font-size: 14px; line-height: 20px; margin-top: 8px; }
.inquiry-form { min-width: 0; padding: 32px; background: var(--vm-cream); border-radius: 24px; border: 1px solid var(--vm-line); }
.inquiry-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.form-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 24px 0; }
.inquiry-form label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 600; min-width: 0; }
.inquiry-form input:not([type=checkbox]), .inquiry-form select, .inquiry-form textarea, .faq-search input { width: 100%; min-width: 0; max-width: 100%; padding: 12px 16px; border: 1px solid var(--vm-ink-muted); border-radius: 8px; background: var(--vm-white); color: var(--vm-ink); font: inherit; font-size: 16px; line-height: 24px; }
.inquiry-form textarea { resize: vertical; }
.inquiry-form .form-consent { flex-direction: row; align-items: flex-start; gap: 12px; margin: 24px 0; font-weight: 400; }
.form-consent input { width: 20px; height: 20px; flex: none; accent-color: var(--vm-ink); }
.inquiry-form a, .privacy-notice a { overflow-wrap: anywhere; }
.text-link { text-decoration: underline; text-underline-offset: 4px; }
.inquiry-preview { margin-top: 24px; padding: 24px; border: 1px solid var(--vm-line); border-radius: 16px; background: var(--vm-white); }
.inquiry-text { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 14px; line-height: 20px; margin-bottom: 16px; }
.inquiry-preview .acts { flex-wrap: wrap; }
.inquiry-form .form-status { margin-top: 16px; font-size: 14px; line-height: 20px; }
.faq-search-section { padding: 32px 0; }
.faq-search { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; max-width: 880px; }
.faq-search label { width: 100%; font-size: 18px; line-height: 28px; font-weight: 600; }
.faq-search input { flex: 1; }
#faq-search-status { margin-top: 16px; }
.office-map { padding: 24px; background: var(--vm-lime-soft); border-radius: 24px; margin-top: 32px; }
.office-map p { margin-top: 16px; font-size: 14px; line-height: 20px; }
.office-map iframe { width: 100%; height: 400px; border: 0; border-radius: 16px; display: block; }
.privacy-notice { position: fixed; bottom: 16px; left: 16px; z-index: 60; display: flex; align-items: center; gap: 24px; width: min(720px,calc(100% - 32px)); padding: 24px; background: var(--vm-white); color: var(--vm-ink); border: 1px solid var(--vm-line); border-radius: 24px; box-shadow: 0 8px 32px #0002; }
.privacy-notice p { font-size: 14px; line-height: 20px; }
.privacy-notice .btn { flex-shrink: 0; }
.news-image-note { font-size: 12px; line-height: 16px; color: var(--vm-ink-muted); margin-bottom: 16px; }
.press-update-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding: 16px 24px; margin-bottom: 24px; background: var(--vm-lime-soft); border-radius: 16px; font-size: 14px; line-height: 20px; }
.press-update-strip > span { font-weight: 600; }
.press-update-strip a { text-decoration: underline; text-underline-offset: 4px; }
#noticias-lista { scroll-margin-top: 96px; }
.news .press-kind { display: block; font-size: 12px; line-height: 16px; color: var(--vm-ink-muted); margin: 12px 0 8px; }
.news-grid .news .ph-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.news-coverage { background: var(--vm-cream); }
.news-coverage h2 { max-width: 880px; font-size: 48px; line-height: 48px; font-weight: 500; letter-spacing: -.03em; margin: 16px 0 24px; text-wrap: balance; }
.coverage-intro { max-width: 880px; font-size: 18px; line-height: 28px; margin-bottom: 32px; color: var(--vm-ink-muted); }
.coverage-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.coverage-entry { background: white; padding: 32px; border: 1px solid var(--vm-line); border-radius: 24px; min-width: 0; scroll-margin-top: 96px; }
.coverage-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; color: var(--vm-ink-muted); font-size: 12px; line-height: 16px; }
.coverage-meta span { color: var(--vm-ink); font-weight: 600; }
.coverage-entry h3 { margin: 24px 0 16px; font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -.02em; text-wrap: balance; }
.coverage-entry p { font-size: 16px; line-height: 24px; text-wrap: pretty; }
.coverage-entry p + p { margin-top: 16px; }
.coverage-source { display: inline-block; margin-top: 24px; font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.coverage-source .external-language { display: block; font-size: 12px; line-height: 16px; font-weight: 400; margin-top: 4px; }
@media (max-width: 767px) { .coverage-grid { grid-template-columns: minmax(0,1fr); } .coverage-entry { padding: 24px; } .news-coverage h2 { font-size: 30px; line-height: 36px; } }
.application-section { background: var(--vm-cream); }
.application-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 0; overflow: hidden; border: 1px solid var(--vm-line); border-radius: 24px; background: white; }
.application-intro { padding: 40px; background: var(--vm-ink); color: var(--vm-cream); }
.application-intro .k { color: var(--vm-yellow); font-size: 12px; line-height: 16px; letter-spacing: .08em; text-transform: uppercase; }
.application-intro h2 { font-size: 36px; line-height: 40px; margin: 16px 0 24px; color: var(--vm-cream); }
.application-intro > p { color: #e0e7d6; }
.application-steps { list-style: none; padding: 0; margin: 40px 0; display: grid; gap: 32px; }
.application-steps li { display: flex; align-items: flex-start; gap: 16px; }
.application-steps li > span { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border: 1px solid #ffffff45; border-radius: 50%; font-size: 14px; color: var(--vm-yellow); }
.application-steps h3 { font-size: 18px; line-height: 28px; font-weight: 600; color: var(--vm-cream); margin: 0 0 4px; }
.application-steps p { font-size: 14px; line-height: 20px; color: #d0ddcf; }
.application-contact { padding: 24px; background: #ffffff0d; border: 1px solid #ffffff2e; border-radius: 16px; }
.application-contact span { display: block; font-size: 14px; line-height: 20px; color: #d0ddcf; margin-bottom: 8px; }
.application-contact a { color: var(--vm-cream); overflow-wrap: anywhere; font-size: 14px; line-height: 20px; }
.application-layout .inquiry-form { border: 0; border-radius: 0; background: white; padding: 40px; }
.form-heading { margin-bottom: 32px; }
.form-kicker { font-size: 12px; line-height: 16px; text-transform: uppercase; letter-spacing: .08em; color: var(--vm-ink-muted); }
.form-heading h3 { font-size: 24px; line-height: 32px; font-weight: 600; margin: 8px 0; }
.form-heading p { font-size: 14px; line-height: 20px; color: var(--vm-ink-muted); }
.form-group { margin-top: 24px; }
.form-group h4 { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 600; margin: 0 0 16px; }
.form-group h4 > span { font-size: 12px; color: var(--vm-ink-muted); background: var(--vm-lime-soft); padding: 4px 8px; border-radius: 8px; }
.form-group .form-fields { margin: 0; }
.form-fields > label:last-child:nth-child(odd) { grid-column: 1 / -1; }
.inquiry-form input:not([type=checkbox]), .inquiry-form select, .inquiry-form textarea { background: #fafbf8; border-color: #c4cfc0; padding: 12px; }
.inquiry-form .inquiry-submit { width: 100%; justify-content: space-between; margin-top: 0; padding: 12px 24px; }
.inquiry-form .submission-note { margin-top: 12px; text-align: center; color: var(--vm-ink-muted); font-size: 12px; line-height: 16px; }
.inquiry-form .form-success { padding: 32px; background: var(--vm-lime-soft); border-radius: 16px; font-size: 18px; line-height: 28px; overflow-wrap: anywhere; }
.inquiry-form .form-error { padding: 16px; background: #fff0e9; color: #8a3523; border-radius: 8px; }
#mensagem + .inquiry-form, .additions .wrap > .inquiry-form { max-width: 880px; background: white; }
@media (max-width: 900px) { .application-layout { grid-template-columns: minmax(0,1fr); } }
.ftr a { overflow-wrap: anywhere; }
.additions :focus-visible, .faq-search :focus-visible, .privacy-notice :focus-visible { outline: 3px solid var(--vm-ink); outline-offset: 4px; }
@media (max-width: 767px) {
 .additions h2 { font-size: 30px; line-height: 36px; }
 .addition-grid, .addition-split, .community-gallery, .form-fields { grid-template-columns: minmax(0,1fr); gap: 24px; }
 .inquiry-form { padding: 24px; }
 .application-intro, .application-layout .inquiry-form { padding: 24px; }
 .application-intro h2 { font-size: 30px; line-height: 36px; }
 .application-steps { margin: 24px 0; gap: 24px; }
 .application-steps { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
 .application-steps li { flex-direction: column; gap: 8px; }
 .application-steps h3 { font-size: 12px; line-height: 16px; }
 .application-steps p { display: none; }
 .application-contact { padding: 16px; }
 .inquiry-preview { padding: 16px; }
 .addition-split figure img { height: 320px; }
 .community-gallery img { height: 280px; }
 .privacy-notice { padding: 16px; gap: 16px; align-items: flex-start; }
 .privacy-notice .btn { padding: 8px 12px; }
}

/* Each media report opens a dedicated story with its own uncropped source image. */
.cv-unified.cv-title-medium.cv-press h1 { font-size: 48px; line-height: 48px; text-wrap: balance; }
.cv-press .press-publication { font-size: 14px; line-height: 20px; margin-top: 24px; }
.cv-press + .press-detail { padding: 96px 0; }
.press-layout { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); gap: 48px; align-items: start; }
.press-original { margin: 0; min-width: 0; }
.press-original img { display: block; width: 100%; height: auto; border-radius: 24px; }
.press-original figcaption { margin-top: 12px; color: var(--vm-ink-muted); font-size: 12px; line-height: 16px; }
.press-original figcaption a { text-decoration: underline; text-underline-offset: 4px; }
.prose > .press-original { margin-bottom: 32px; }
.press-summary { min-width: 0; }
.press-summary h2 { margin: 16px 0 24px; font-size: 30px; line-height: 36px; font-weight: 500; text-wrap: balance; }
.press-summary p { font-size: 16px; line-height: 24px; text-wrap: pretty; }
.press-summary p + p { margin-top: 16px; }
.press-source-action { margin-top: 32px; }
.press-source-action .btn { max-width: 100%; white-space: normal; text-align: center; }
.press-source-action .external-language { display: block; font-size: 12px; line-height: 16px; margin-top: 8px; }
.press-back { display: inline-block; margin-top: 24px; font-size: 14px; line-height: 20px; }
.press-read { font-size: 14px; line-height: 20px; font-weight: 600; margin-top: 8px; }
.news-grid .news[id] { scroll-margin-top: 96px; }
@media (max-width: 767px) {
 .cv-unified.cv-title-medium.cv-press h1 { font-size: 30px; line-height: 36px; }
 .cv-press + .press-detail { padding: 64px 0; }
 .press-layout { grid-template-columns: minmax(0,1fr); gap: 32px; }
 .press-original img { border-radius: 16px; }
 .press-summary h2 { font-size: 24px; line-height: 32px; }
}
.press-existing-summary { padding: 24px; border-radius: 16px; background: var(--vm-cream); margin-bottom: 32px; }
.press-existing-summary h2 { margin-top: 0; }
.press-existing-summary .btn { margin-top: 24px; }

/* Shared footer: balanced columns, short navigation lists and linked SVG channels. */
.ftr { padding-top: 64px; }
.ftr-grid { grid-template-columns: minmax(0,1.25fr) minmax(0,1.4fr) minmax(0,1.25fr) minmax(0,.9fr); gap: 32px; align-items: start; }
.ftr-grid > * { min-width: 0; }
.ftr .ftr-brand p { max-width: 280px; text-wrap: pretty; }
.ftr .ftr-address { font-size: 12px; line-height: 20px; }
.ftr-nav-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.ftr .ftr-nav-columns ul { gap: 12px; align-content: start; }
.ftr-contact-details { gap: 12px; }
.ftr .ftr-contact-link { display: inline-flex; align-items: center; gap: 8px; }
.ftr .ftr-hours { max-width: 256px; font-size: 12px; line-height: 20px; }
.ftr-socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.ftr .ftr-social { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; color: var(--vm-cream); background: rgba(253,245,224,.04); border: 1px solid rgba(253,245,224,.24); border-radius: 8px; transition: color 300ms cubic-bezier(.22,1,.36,1), background-color 300ms cubic-bezier(.22,1,.36,1), border-color 300ms cubic-bezier(.22,1,.36,1); }
.ftr .ftr-social svg { width: 24px; height: 24px; }
.ftr .ftr-social:hover { color: var(--vm-yellow); border-color: var(--vm-yellow); background: rgba(253,245,224,.08); text-decoration: none; }
.ftr a:focus-visible { outline: 2px solid var(--vm-yellow); outline-offset: 4px; }
.ftr .ftr-social:active { transform: translateY(1px); }
.ftr .ftr-app p { margin-top: 0; }
.ftr .store-btn { margin-top: 16px; white-space: nowrap; }
.ftr-bottom { margin-top: 40px; gap: 16px; }
@media (min-width: 768px) and (max-width: 1199px) {
 .ftr-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px 48px; }
 .ftr-grid > .ftr-brand { grid-column: auto; }
 .ftr .ftr-brand p { max-width: 360px; }
}
@media (max-width: 767px) {
 .ftr { padding-top: 40px; }
 .ftr-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
 .ftr-grid > .ftr-brand { grid-column: auto; }
 .ftr .ftr-brand p { max-width: 100%; }
 .ftr .ftr-address { max-width: 320px; }
 .ftr-nav-columns { gap: 24px; }
 .ftr .ftr-nav-columns ul { gap: 4px; }
 .ftr .ftr-nav-columns a { display: flex; align-items: center; min-height: 44px; }
 .ftr .ftr-hours { max-width: 100%; }
 .ftr-socials { margin-top: 16px; }
 .ftr-bottom { margin-top: 32px; }
}

/* Fewer, distinct photos in the three homepage text rows. The loop copy stays off the same viewport. */
.v3mq-group { min-width: calc(100vw + 240px); justify-content: space-between; }
.v3mq-divider { display: block; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--vm-yellow); }

/* Keep the VIVA FUTURE link in the desktop bar, including the longer Portuguese navigation. */
.hdr .brand { flex-shrink: 0; }
.hdr .nav a { white-space: nowrap; }
@media (min-width: 1101px) and (max-width: 1199px) {
 .hdr-bar { gap: 16px; }
 .hdr .nav { gap: 0; }
 .hdr .nav a { padding-inline: 8px; }
}
