/*
Theme Name: Mainvision Eventech
Theme URI: https://mainvision.pt/
Author: Mainvision
Description: Tema WordPress personalizado para o website institucional Mainvision Eventech.
Version: 3.29.0
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.1
Text Domain: mainvision
*/

:root {
  --font-geist-sans: "Geist", Arial, sans-serif;
  --font-geist-mono: "Geist Mono", Consolas, monospace;
}

body.mobile-menu-open { overflow: hidden; }

/* Página individual de portfólio: galeria editorial em ecrã inteiro. */
.single-mv_project {
  overflow: hidden;
  background: #f5f5f2;
}
.single-mv_project .site-header,
.single-mv_project .mobile-menu,
.single-mv_project .site-footer,
.single-mv_project .skip-link {
  display: none !important;
}
.project-showcase {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 55%) minmax(390px, 45%);
  background: #f5f5f2;
  color: #101010;
}
.project-viewer {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  background: #080808;
  isolation: isolate;
}
.project-viewer::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.03) 55%, rgba(0,0,0,.44));
  pointer-events: none;
}
.project-showcase .project-viewer::before { display: none; }
.project-viewer-stage {
  position: absolute;
  inset: 0;
  margin: 0;
}
.project-viewer-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.project-viewer-nav {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  background: rgba(13,13,13,.52);
  color: #fff;
  font-size: 19px;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .2s, color .2s, transform .2s;
}
.project-viewer-nav:hover,
.project-viewer-nav:focus-visible {
  background: #fff;
  color: #111;
  transform: translateY(-50%) scale(1.05);
}
.project-viewer-prev { left: 20px; }
.project-viewer-next { right: 20px; }
.project-viewer-count {
  position: absolute;
  z-index: 3;
  left: 30px;
  bottom: 26px;
  margin: 0;
  color: rgba(255,255,255,.72);
  font: 600 10px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .12em;
}
.project-viewer-count strong { color: #fff; }
.project-viewer-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 45%, #2a0004, #070707 58%);
}
.project-viewer-empty-mark,
.project-contact-mark {
  display: block;
  width: 96px;
  aspect-ratio: 1.45;
  background: var(--red);
  clip-path: polygon(0 0, 15% 3%, 30% 21%, 50% 28%, 70% 21%, 85% 3%, 100% 0, 100% 100%, 85% 97%, 70% 79%, 50% 72%, 30% 79%, 15% 97%, 0 100%);
}
.project-details {
  position: relative;
  min-width: 0;
  height: 100vh;
  height: 100svh;
  background:
    radial-gradient(circle at 100% 0, rgba(226,29,45,.07), transparent 32%),
    #f5f5f2;
  overflow: hidden;
}
.project-details-scroll {
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(70px, 8vh, 112px) clamp(42px, 5.5vw, 92px) 44px;
  scrollbar-width: thin;
  scrollbar-color: #c5c5c0 transparent;
}
.project-close {
  position: absolute;
  z-index: 5;
  top: 22px;
  right: 22px;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid #c9c9c5;
  border-radius: 50%;
  background: rgba(255,255,255,.76);
  color: #111;
  font-size: 25px;
  line-height: 1;
  text-decoration: none;
  transition: border-color .2s, background .2s, color .2s, transform .2s;
}
.project-close:hover,
.project-close:focus-visible {
  border-color: var(--red);
  background: var(--red);
  color: #fff;
  transform: rotate(6deg);
}

.project-language-switcher {
  position: absolute;
  z-index: 3;
  top: 34px;
  right: 104px;
  display: flex;
  gap: 7px;
}

.project-language-switcher a {
  color: #777;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
}

.project-language-switcher a.is-active { color: var(--red); }
.project-format {
  margin: 0 0 30px;
  color: var(--red);
  font: 700 12px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.project-details-header h1 {
  max-width: 760px;
  margin: 0;
  color: #0b0b0b;
  font-family: var(--font-geist-sans), Arial, sans-serif;
  font-size: clamp(52px, 5.3vw, 98px);
  font-weight: 500;
  line-height: .82;
  letter-spacing: -.075em;
  overflow-wrap: anywhere;
}
.project-partner {
  margin: 34px 0 0;
  color: #6b6b67;
  font: 600 11px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.project-description {
  max-width: 650px;
  margin-top: clamp(34px, 5vh, 64px);
  color: #666661;
  font-size: clamp(17px, 1.2vw, 21px);
  line-height: 1.58;
}
.project-description > :first-child { margin-top: 0; }
.project-description > :last-child { margin-bottom: 0; }
.project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 34px 0 0;
  padding: 0;
  list-style: none;
}
.project-tags li {
  padding: 10px 13px;
  border: 1px solid #c8c8c4;
  color: #262624;
  font: 600 9px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.project-thumbnails {
  display: grid;
  grid-template-columns: repeat(6, minmax(46px, 1fr));
  gap: 8px;
  max-width: 650px;
  max-height: 174px;
  margin-top: 32px;
  padding-right: 4px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #aaa9a5 transparent;
}
.project-thumbnail {
  position: relative;
  aspect-ratio: 1.22;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  background: #d7d7d2;
  cursor: pointer;
}
.project-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.75);
  transition: filter .2s, transform .2s;
}
.project-thumbnail:hover img,
.project-thumbnail:focus-visible img,
.project-thumbnail.is-active img {
  filter: saturate(1.08);
  transform: scale(1.04);
}
.project-thumbnail.is-active { border-color: var(--red); }
.project-contact {
  width: min(650px, 100%);
  min-height: 92px;
  margin-top: 40px;
  padding: 10px 18px 10px 0;
  display: flex;
  align-items: center;
  gap: 20px;
  border: 0;
  background: transparent;
  color: #111;
  text-decoration: none;
  transition: color .2s, transform .2s;
}
.project-contact::before,
.project-contact::after { display: none !important; content: none !important; }
.project-contact-mark {
  flex: 0 0 82px;
  width: 82px;
  transition: transform .25s;
}
.project-contact:hover .project-contact-mark,
.project-contact:focus-visible .project-contact-mark { transform: scale(1.06); }
.project-contact:hover,
.project-contact:focus-visible { color: var(--red); transform: translateX(4px); }
.project-contact > span:nth-child(2) { display: grid; gap: 5px; }
.project-contact strong {
  color: #111;
  font-size: 13px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.project-contact small {
  color: #92928e;
  font: 600 9px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.project-contact b {
  margin-left: auto;
  font-size: 20px;
}

body.admin-bar .project-showcase,
body.admin-bar .project-viewer { min-height: calc(100vh - 32px); min-height: calc(100svh - 32px); }
body.admin-bar .project-details { height: calc(100vh - 32px); height: calc(100svh - 32px); }

@media (max-width: 980px) {
  .single-mv_project { overflow: auto; }
  .project-showcase { grid-template-columns: 1fr; }
  .project-viewer { min-height: 58vh; min-height: 58svh; }
  .project-details { height: auto; min-height: 0; overflow: visible; }
  .project-details-scroll { height: auto; overflow: visible; padding: 70px 7vw 60px; }
  .project-details-header h1 { font-size: clamp(50px, 11vw, 88px); }
  .project-close { top: 18px; right: 18px; }
  .project-language-switcher { top: 34px; right: 82px; }
}

@media (max-width: 600px) {
  .project-viewer { min-height: 48vh; min-height: 48svh; }
  .project-viewer-nav { width: 44px; height: 44px; }
  .project-viewer-prev { left: 12px; }
  .project-viewer-next { right: 12px; }
  .project-viewer-count { left: 18px; bottom: 16px; }
  .project-details-scroll { padding: 66px 22px 46px; }
  .project-format { margin-bottom: 22px; font-size: 10px; }
  .project-details-header h1 { font-size: clamp(46px, 15vw, 72px); }
  .project-description { font-size: 17px; }
  .project-thumbnails { grid-template-columns: repeat(4, 1fr); }
  .project-contact-mark { flex-basis: 70px; width: 70px; }
}

@media (max-width: 782px) {
  body.admin-bar .project-showcase,
  body.admin-bar .project-viewer { min-height: calc(100vh - 46px); min-height: calc(100svh - 46px); }
  body.admin-bar .project-details { height: auto; }
}

/*
 * Galeria individual: estas regras são deliberadamente específicas para que
 * os estilos globais de imagens e botões do WordPress não alterem o viewer.
 */
body.single-mv_project .project-viewer-stage {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden;
}
body.single-mv_project .project-viewer-image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}
body.single-mv_project .project-viewer-nav {
  position: absolute !important;
  z-index: 6 !important;
  top: 50% !important;
  bottom: auto !important;
  width: 52px !important;
  min-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: translateY(-50%) !important;
}
body.single-mv_project .project-viewer-prev {
  right: auto !important;
  left: 24px !important;
}
body.single-mv_project .project-viewer-next {
  right: 24px !important;
  left: auto !important;
}
body.single-mv_project .project-viewer-nav:hover,
body.single-mv_project .project-viewer-nav:focus-visible {
  transform: translateY(-50%) scale(1.05) !important;
}

@media (max-width: 600px) {
  body.single-mv_project .project-viewer-nav {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }
  body.single-mv_project .project-viewer-prev { left: 12px !important; }
  body.single-mv_project .project-viewer-next { right: 12px !important; }
}


body.admin-bar .site-header { top: 32px; }
.site-header .custom-logo { display: block; width: auto; max-width: 180px; max-height: 48px; }
.brand-logo-link { position: relative; z-index: 103; }
.form-notice { margin: 0 0 28px; padding: 14px 18px; border: 1px solid rgba(255,255,255,.48); font-size: 14px; }
.form-notice.error { background: rgba(0,0,0,.16); }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.privacy-consent { display: flex !important; align-items: flex-start; gap: 10px; margin: 20px 0 30px !important; font-size: 12px; line-height: 1.45; }
.privacy-consent input, .contact-form .privacy-consent input { width: auto; flex: 0 0 auto; margin-top: 2px; accent-color: var(--red); }
.privacy-consent span { display: inline !important; margin: 0 !important; font: inherit !important; letter-spacing: normal !important; text-transform: none !important; color: inherit !important; }
.privacy-consent a { text-decoration: underline; }
.work-card[hidden] { display: none; }
.article-image { display: block; }
:root { --motto-progress: 0; --motto-x: 88vw; --motto-message-x: calc(88vw - 310px); --motto-message-top: 12vh; }
.motto-path { position: fixed; z-index: 58; top: 12vh; left: var(--motto-x); width: 1px; height: 66vh; background: rgba(226,29,45,.24); pointer-events: none; transform: translateX(-50%); transition: left .18s linear, opacity .3s; }
.motto-path-progress { display: block; width: 2px; height: calc(var(--motto-progress) * 100%); background: linear-gradient(to bottom, rgba(226,29,45,.25), var(--red)); box-shadow: 0 0 14px rgba(226,29,45,.4); }
.motto-host { position: fixed; z-index: 65; top: 12vh; left: var(--motto-x); right: auto; width: 82px; height: 82px; color: white; mix-blend-mode: difference; pointer-events: none; transform: translate(-50%,-50%); transition: left .18s linear, top .1s linear, opacity .3s; }
.motto-host .motto-orbit { position: relative; inset: auto; right: auto; top: auto !important; z-index: auto; width: 82px; height: 82px; padding: 0; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; opacity: 1; mix-blend-mode: normal; pointer-events: none; transform: none; transition: border-radius .55s, background .55s, border-color .55s; }
.motto-host .motto-core { inset: 18px; transition: background .45s, color .45s, transform .45s; }
.motto-host .motto-ring { animation: motto-spin 13s linear infinite; }
.motto-host .motto-orbit::before { content: ""; position: absolute; inset: -1px; border: 1px solid currentColor; border-radius: inherit; opacity: 0; }
.motto-host.presenting .motto-orbit::before { animation: motto-pulse 1.15s ease-out 2; }
.motto-satellite { position: absolute; width: 10px; height: 10px; left: 50%; top: 50%; margin: -5px; border-radius: 50%; background: var(--red); box-shadow: 0 0 16px rgba(226,29,45,.8); transform: rotate(0) translateX(41px); }
body[data-motto-scene="vision"] .motto-host .motto-orbit { border-radius: 43% 57% 48% 52%; animation: motto-breathe 2.8s ease-in-out infinite alternate; }
body[data-motto-scene="experience"] .motto-host .motto-orbit { border-radius: 30%; }
body[data-motto-scene="experience"] .motto-satellite { animation: motto-satellite 2.8s linear infinite; }
body[data-motto-scene="impact"] .motto-host .motto-orbit { border-style: dashed; border-radius: 38%; }
body[data-motto-scene="impact"] .motto-core { background: var(--red); color: white; animation: motto-heart 1.8s ease-in-out infinite; }
body[data-motto-scene="insights"] .motto-ring { animation-direction: reverse; animation-duration: 8s; }
body[data-motto-scene="insights"] .motto-satellite { transform: rotate(210deg) translateX(41px); }
body[data-motto-scene="enter"] .motto-core { background: white; color: var(--red); }
.motto-message { position: fixed; z-index: 79; top: var(--motto-message-top); left: var(--motto-message-x); right: auto; width: min(280px, calc(100vw - 150px)); padding: 15px 17px; color: white; background: rgba(9,9,9,.9); border-left: 2px solid var(--red); box-shadow: 0 14px 42px rgba(0,0,0,.24); opacity: 0; transform: translate(8px,-20%); pointer-events: none; transition: left .18s linear, opacity .28s, transform .28s, top .1s linear; }
.motto-message.visible { opacity: 1; transform: translate(0,-20%); }
.motto-message-index { display: block; margin-bottom: 8px; color: var(--red); font: 600 8px var(--font-geist-mono), monospace; letter-spacing: .12em; }
.motto-message strong { display: block; margin-bottom: 4px; font-size: 16px; }
.motto-message p { margin: 0; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.45; }
.motto-dock { width: 88px; height: 88px; margin-top: 48px; display: grid; place-items: center; }
.motto-host.docked { position: relative; inset: auto !important; top: auto !important; right: auto; width: 88px; height: 88px; color: white; mix-blend-mode: normal; transform: none; }
.motto-host.docked .motto-orbit { width: 88px; height: 88px; border-color: rgba(255,255,255,.75); }
.motto-host.docked .motto-core { inset: 19px; }
body.motto-docked .motto-path { opacity: 0; }
main section { isolation: isolate; }
main section::before { content: ""; position: absolute; z-index: 15; top: 0; left: 0; width: 100%; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; pointer-events: none; }
main section.motto-intro::before { animation: section-scan 1.1s cubic-bezier(.22,1,.36,1); }
@keyframes motto-pulse { 0% { opacity: .58; transform: scale(1); } 100% { opacity: 0; transform: scale(1.28); } }
@keyframes motto-spin { to { transform: rotate(360deg); } }
@keyframes motto-breathe { to { transform: scale(1.05); } }
@keyframes motto-satellite { to { transform: rotate(360deg) translateX(41px); } }
@keyframes motto-heart { 50% { transform: scale(1.08); box-shadow: 0 0 18px rgba(226,29,45,.45); } }
@keyframes section-scan { 0% { transform: scaleX(0); } 55% { transform: scaleX(1); transform-origin: left; } 56% { transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }

.project-album { min-height: 100vh; padding: 150px 5vw 100px; background: var(--black); color: var(--white); }
.project-album-header { width: min(1500px, 100%); margin: 0 auto 70px; display: grid; grid-template-columns: 1.2fr .55fr; gap: 8vw; align-items: end; }
.project-album-header h1 { margin: 0; font-size: clamp(58px, 8vw, 126px); line-height: .86; letter-spacing: -.07em; }
.project-album-header .entry-content { color: rgba(255,255,255,.68); font-size: 16px; line-height: 1.65; }
.project-album-grid { width: min(1500px, 100%); margin: 0 auto; display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; }
.project-album-button { grid-column: span 4; min-height: 260px; padding: 0; border: 0; background: #151515; cursor: zoom-in; overflow: hidden; }
.project-album-button:nth-child(7n + 1), .project-album-button:nth-child(7n + 5) { grid-column: span 8; }
.project-album-button img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35); transition: transform .55s, filter .35s; }
.project-album-button:hover img, .project-album-button:focus-visible img { transform: scale(1.035); filter: grayscale(0); }
.wp-gallery-dialog { width: min(1400px, calc(100% - 30px)); height: min(900px, calc(100dvh - 30px)); padding: 0; border: 0; background: #050505; color: white; }
.wp-gallery-dialog::backdrop { background: rgba(0,0,0,.9); backdrop-filter: blur(10px); }
.wp-gallery-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.wp-gallery-close, .wp-gallery-nav { position: absolute; z-index: 2; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: rgba(0,0,0,.5); color: white; cursor: pointer; }
.wp-gallery-close { top: 18px; right: 18px; font-size: 22px; }
.wp-gallery-nav { top: 50%; transform: translateY(-50%); }
.wp-gallery-prev { left: 18px; }.wp-gallery-next { right: 18px; }
.wp-gallery-count { position: absolute; left: 22px; bottom: 18px; padding: 8px 10px; background: rgba(0,0,0,.65); font: 9px var(--font-geist-mono), monospace; }
.site-content-basic { min-height: 72vh; padding: 170px 5vw 100px; background: var(--white); color: var(--ink); }
.site-content-basic .content-wrap { width: min(900px, 100%); margin: 0 auto; }
.site-content-basic h1 { font-size: clamp(48px, 8vw, 110px); line-height: .9; letter-spacing: -.06em; }
.site-content-basic h2 { font-size: clamp(34px, 5vw, 70px); line-height: .95; }
.site-content-basic article { padding: 40px 0; border-bottom: 1px solid var(--line-light); }
.site-content-basic .entry-content { font-size: 18px; line-height: 1.7; }
.site-content-basic img { max-width: 100%; height: auto; }
.privacy-policy .site-content-basic .content-wrap { width: min(980px, 100%); }
.privacy-policy .site-content-basic h1 { max-width: 900px; font-size: clamp(46px, 6vw, 88px); line-height: .94; }
.privacy-policy .site-content-basic h2 { margin: 64px 0 20px; font-size: clamp(25px, 3vw, 38px); line-height: 1.05; text-transform: uppercase; }
.privacy-policy .site-content-basic .entry-content p,
.privacy-policy .site-content-basic .entry-content li { max-width: 82ch; }
.privacy-policy .site-content-basic .entry-content a { color: #b90012; text-decoration: underline; text-underline-offset: 3px; }
.privacy-policy .privacy-policy-updated { margin-bottom: 42px; color: #6c6862; font-size: 14px; text-transform: uppercase; letter-spacing: .06em; }
.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; gap: 12px; flex-wrap: wrap; }
.pagination a, .pagination .current { border: 1px solid currentColor; padding: 10px 14px; }

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  .motto-path { left: var(--motto-x); right: auto; }
  .motto-host { left: var(--motto-x); right: auto; width: 56px; height: 56px; }
  .motto-host .motto-orbit { width: 56px; height: 56px; }
  .motto-host .motto-core { inset: 13px; }
  .motto-satellite { width: 8px; height: 8px; margin: -4px; transform: rotate(0) translateX(28px); }
  body[data-motto-scene="experience"] .motto-satellite { animation-name: motto-satellite-mobile; }
  body[data-motto-scene="insights"] .motto-satellite { transform: rotate(210deg) translateX(28px); }
  .motto-message { left: var(--motto-message-x); right: auto; width: min(230px, calc(100vw - 100px)); padding: 12px 14px; }
  .motto-message strong { font-size: 14px; }
  .motto-message p { font-size: 10px; }
  .motto-dock { width: 62px; height: 62px; margin-top: 34px; }
  .motto-host.docked, .motto-host.docked .motto-orbit { width: 62px; height: 62px; }
  .motto-host.docked .motto-core { inset: 14px; }
  .project-album-header { grid-template-columns: 1fr; }
  .project-album-button, .project-album-button:nth-child(7n + 1), .project-album-button:nth-child(7n + 5) { grid-column: span 12; min-height: 250px; }
}

@media (prefers-reduced-motion: reduce) {
  .motto-host, .motto-host *, main section.motto-intro::before { animation: none !important; }
}

@keyframes motto-satellite-mobile { to { transform: rotate(360deg) translateX(28px); } }
/* Sistema de movimento inspirado nas referências Motto */
.page-loader { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; overflow: hidden; background: #000; color: white; opacity: 1; visibility: visible; transition: opacity .55s ease, visibility .55s; }
.page-loader.is-finished { opacity: 0; visibility: hidden; pointer-events: none; }
.page-loader[hidden] { display: none; }
.page-loader-video { width: 100%; height: 100%; object-fit: cover; }
.page-loader-label { position: absolute; left: 50%; bottom: 6vh; transform: translateX(-50%); font: 600 9px var(--font-geist-mono), monospace; letter-spacing: .22em; white-space: nowrap; opacity: .68; }
body.page-loading { overflow: hidden; }

.motto-button { position: relative; isolation: isolate; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: #111; overflow: visible; }
.motto-button::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(115deg,#787878 0%,#f8f8f5 24%,#9b9b98 43%,#fff 59%,#777 78%,#ededeb 100%); clip-path: polygon(0 3%,18% 12%,35% 28%,50% 34%,65% 28%,82% 12%,100% 3%,100% 97%,82% 88%,65% 72%,50% 66%,35% 72%,18% 88%,0 97%); filter: drop-shadow(0 14px 24px rgba(0,0,0,.3)); transform: scale(.98); transition: transform .35s cubic-bezier(.22,1,.36,1), background .35s, filter .35s; }
.motto-button::after { content: ""; position: absolute; z-index: -1; inset: 9% 16%; background: linear-gradient(105deg,transparent 25%,rgba(255,255,255,.9) 48%,transparent 68%); clip-path: polygon(0 3%,18% 12%,35% 28%,50% 34%,65% 28%,82% 12%,100% 3%,100% 97%,82% 88%,65% 72%,50% 66%,35% 72%,18% 88%,0 97%); opacity: .52; transform: translateX(-45%); transition: transform .55s ease, opacity .35s; }
.motto-button:hover::before, .motto-button:focus-visible::before { background: linear-gradient(120deg,#72000d 0%,var(--red) 30%,#ff5360 52%,#b00016 78%,#f63c4b 100%); filter: drop-shadow(0 18px 32px rgba(226,29,45,.36)); transform: scale(1.055); }
.motto-button:hover::after, .motto-button:focus-visible::after { transform: translateX(45%); opacity: .85; }
.round-link.motto-button { width: 190px; height: 116px; padding: 27px 34px; border: 0; border-radius: 0; color: #111; transform: none; }
.round-link.motto-button:hover { color: white; background: transparent; transform: none; }
.submit-button.motto-button { width: 190px; height: 116px; padding: 25px 34px; border: 0; border-radius: 0; background: transparent; color: #111; transform: none; }
.submit-button.motto-button:hover { color: white; background: transparent; transform: none; }
.motto-button-small { width: 150px; min-height: 70px; padding: 18px 25px !important; justify-content: center; gap: 12px; color: #111 !important; }
.motto-button-small:hover, .motto-button-small:focus-visible, .motto-video-cta:hover, .motto-video-cta:focus-visible { color: white !important; }
.motto-video-cta { width: 230px; min-height: 88px; padding: 22px 36px; display: flex; align-items: center; justify-content: space-between; font: 600 10px var(--font-geist-mono), monospace; letter-spacing: .09em; text-transform: uppercase; }

.video-link .play { width: 64px; height: 46px; border: 0; border-radius: 0; color: #111; background: linear-gradient(115deg,#777,#fff 36%,#969696 58%,#f7f7f4); clip-path: polygon(0 4%,18% 14%,36% 29%,50% 35%,64% 29%,82% 14%,100% 4%,100% 96%,82% 86%,64% 71%,50% 65%,36% 71%,18% 86%,0 96%); filter: drop-shadow(0 10px 18px rgba(0,0,0,.34)); transition: transform .35s cubic-bezier(.22,1,.36,1), background .35s, color .35s; }
.video-link:hover .play, .video-link:focus-visible .play { border-color: transparent; background: linear-gradient(120deg,#840010,var(--red),#ff6671,#a50014); color: white; transform: scale(1.12); }

.filter-bar button::before { content: ""; display: inline-block; width: 17px; height: 11px; margin-right: 8px; vertical-align: -1px; background: currentColor; clip-path: polygon(0 5%,22% 18%,50% 40%,78% 18%,100% 5%,100% 95%,78% 82%,50% 60%,22% 82%,0 95%); opacity: 0; transform: scale(.45); transition: opacity .25s, transform .25s; }
.filter-bar button:hover::before, .filter-bar button.active::before { opacity: 1; transform: scale(1); }

.motto-lit { position: relative; isolation: isolate; --light-x: 50%; --light-y: 50%; }
.motto-light-layer { position: absolute; z-index: 0; inset: 0; pointer-events: none; opacity: .38; background: radial-gradient(circle at var(--light-x) var(--light-y),rgba(255,255,255,.34) 0,rgba(255,255,255,.12) 8%,transparent 22%),radial-gradient(ellipse at var(--light-x) var(--light-y),rgba(226,29,45,.62) 0,rgba(226,29,45,.24) 25%,transparent 57%),linear-gradient(115deg,transparent 25%,rgba(255,255,255,.09) 50%,transparent 72%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22),inset 0 -80px 120px rgba(0,0,0,.25),0 28px 90px rgba(0,0,0,.2); transition: opacity .4s, filter .4s; }
.motto-lit:hover > .motto-light-layer, .motto-lit:focus-within > .motto-light-layer, .motto-lit.is-lit > .motto-light-layer { opacity: .88; filter: saturate(1.16); }
.motto-lit > :not(.motto-light-layer) { position: relative; z-index: 2; }
.solution-card.motto-lit > .solution-bg { position: absolute; z-index: -2; }
.contact-form.motto-lit { padding: 68px; background: #080808; color: white; box-shadow: 0 32px 100px rgba(78,0,9,.32); }
.newsletter.motto-lit, .contact-form.motto-lit { overflow: hidden; }
.case-dialog-copy.motto-lit { overflow: hidden; }

.motto-video-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #000; color: white; overflow: hidden; }
.motto-video-dialog::backdrop { background: #000; }
.motto-video-stage { position: relative; width: 100%; height: 100%; overflow: hidden; background: #050505; clip-path: polygon(47% 43%,53% 43%,52% 47%,58% 50%,52% 53%,53% 57%,47% 57%,48% 53%,42% 50%,48% 47%); transform: scale(.12); }
.motto-video-dialog.is-opening .motto-video-stage { animation: motto-video-open 1.45s cubic-bezier(.2,.8,.2,1) forwards; }
.motto-video-media { position: absolute; inset: 0; background: linear-gradient(110deg,rgba(0,0,0,.58),rgba(0,0,0,.12) 52%,rgba(226,29,45,.3)),url("https://images.unsplash.com/photo-1540039155733-5bb30b53aa14?auto=format&fit=crop&w=2200&q=90") center/cover; filter: grayscale(.38) contrast(1.12); transform: scale(1.04); }
.motto-video-media::before, .motto-video-media::after { content: ""; position: absolute; pointer-events: none; }
.motto-video-media::before { inset: 0; background: radial-gradient(circle at 50% 45%,transparent 0 18%,rgba(0,0,0,.72) 52%,rgba(0,0,0,.9) 100%); }
.motto-video-media::after { left: 0; right: 0; bottom: 0; height: 38%; background: linear-gradient(transparent,rgba(0,0,0,.86)); }
.motto-video-player { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; }
.motto-video-player[hidden] { display: none; }
.motto-video-scan { position: absolute; z-index: 2; left: -20%; top: 0; width: 18%; height: 100%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.42),rgba(226,29,45,.24),transparent); mix-blend-mode: screen; transform: skewX(-12deg); animation: motto-video-scan 3.4s 1s ease-in-out infinite; }
.motto-video-copy { position: absolute; z-index: 4; left: 7vw; bottom: 9vh; width: min(720px,82vw); opacity: 0; transform: translateY(24px); }
.motto-video-dialog.is-opening .motto-video-copy { animation: motto-video-copy-in .55s 1s ease forwards; }
.motto-video-copy > span { font: 600 9px var(--font-geist-mono),monospace; letter-spacing: .18em; color: rgba(255,255,255,.58); }
.motto-video-copy h2 { margin: 20px 0 24px; font-size: clamp(54px,8vw,132px); line-height: .82; }
.motto-video-copy p { max-width: 540px; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.6; }
.motto-video-close { position: absolute; z-index: 8; top: 30px; right: 34px; width: 64px; height: 46px; border: 0; background: linear-gradient(115deg,#777,#fff 36%,#969696 58%,#f7f7f4); color: #111; clip-path: polygon(0 4%,18% 14%,36% 29%,50% 35%,64% 29%,82% 14%,100% 4%,100% 96%,82% 86%,64% 71%,50% 65%,36% 71%,18% 86%,0 96%); cursor: pointer; font-size: 20px; }
.motto-video-close:hover { background: var(--red); color: white; }
@keyframes motto-video-open { 0% { clip-path: polygon(47% 43%,53% 43%,52% 47%,58% 50%,52% 53%,53% 57%,47% 57%,48% 53%,42% 50%,48% 47%); transform: scale(.12); } 52% { clip-path: polygon(8% 0,36% 0,42% 18%,50% 25%,58% 18%,64% 0,92% 0,100% 15%,100% 85%,92% 100%,64% 100%,58% 82%,50% 75%,42% 82%,36% 100%,8% 100%,0 85%,0 15%); transform: scale(.88); } 100% { clip-path: inset(0); transform: scale(1); } }
@keyframes motto-video-copy-in { to { opacity: 1; transform: none; } }
@keyframes motto-video-scan { 0%,14% { left: -22%; } 76%,100% { left: 108%; } }

@media (max-width: 900px) {
  .round-link.motto-button, .submit-button.motto-button { width: 150px; height: 96px; padding: 23px 27px; }
  .motto-button-small { width: 132px; min-height: 62px; }
  .contact-form.motto-lit { padding: 38px 22px; }
  .motto-video-copy { left: 24px; bottom: 34px; width: calc(100% - 48px); }
  .motto-video-copy h2 { margin-top: 14px; font-size: clamp(44px,15vw,72px); }
  .motto-video-copy p { font-size: 13px; }
  .motto-video-cta { width: 205px; min-height: 78px; padding: 20px 30px; }
  .motto-video-close { top: 18px; right: 18px; width: 56px; height: 40px; }
}


@media (prefers-reduced-motion: reduce) {
  .page-loader-video { display: none; }
  .page-loader-label { opacity: 1; }
  .motto-button::after, .motto-video-scan { animation: none !important; }
  .motto-video-stage { clip-path: none; transform: none; }
  .motto-video-dialog.is-opening .motto-video-stage, .motto-video-dialog.is-opening .motto-video-copy { animation: none; }
  .motto-video-copy { opacity: 1; transform: none; }
  .motto-light-layer { opacity: .35; }
}


/* Motto itinerante — a mesma forma côncava e metálica dos botões */
:root {
  --motto-button-shape: polygon(0 3%,18% 12%,35% 28%,50% 34%,65% 28%,82% 12%,100% 3%,100% 97%,82% 88%,65% 72%,50% 66%,35% 72%,18% 88%,0 97%);
}
.motto-button::before,
.motto-button::after,
.motto-host .motto-orbit,
.motto-host .motto-orbit::before,
.motto-host .motto-orbit::after {
  clip-path: var(--motto-button-shape);
}
.motto-host {
  width: 104px;
  height: 64px;
  color: #111;
  mix-blend-mode: normal;
}
.motto-host .motto-orbit,
.motto-host.docked .motto-orbit {
  position: relative;
  width: 104px;
  height: 64px;
  border: 0;
  border-radius: 0 !important;
  background: linear-gradient(115deg,#787878 0%,#f8f8f5 24%,#9b9b98 43%,#fff 59%,#777 78%,#ededeb 100%);
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.28));
  transform: scale(.98);
  transform-origin: center;
  animation: none !important;
  transition: filter .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.motto-host .motto-orbit::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 9% 16%;
  border: 0;
  border-radius: 0;
  background: linear-gradient(105deg,transparent 25%,rgba(255,255,255,.95) 48%,transparent 68%);
  opacity: .55;
  transform: translateX(-45%);
}
.motto-host .motto-orbit::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(120deg,#72000d 0%,var(--red) 30%,#ff5360 52%,#b00016 78%,#f63c4b 100%);
  opacity: 0;
}
.motto-host .motto-core,
.motto-host.docked .motto-core {
  position: absolute;
  z-index: 2;
  inset: 0 !important;
  display: grid;
  place-items: center;
  border-radius: 0;
  background: transparent !important;
  color: #111;
  font: 800 17px var(--font-geist-mono), monospace;
  letter-spacing: -.04em;
  transform: none;
  animation: none !important;
}
.motto-host .motto-ring,
.motto-host .motto-satellite {
  display: none;
}
.motto-host.presenting .motto-orbit {
  animation: motto-button-section-pulse 1.05s cubic-bezier(.22,1,.36,1) 2 !important;
}
.motto-host.presenting .motto-orbit::before {
  animation: motto-button-section-shine 1.05s ease-in-out 2;
}
.motto-host.presenting .motto-orbit::after {
  animation: motto-button-section-red 1.05s ease-in-out 2;
}
.motto-host.presenting .motto-core {
  animation: motto-button-section-letter 1.05s ease-in-out 2 !important;
}
.motto-dock {
  width: 112px;
  height: 70px;
}
.motto-host.docked {
  width: 104px;
  height: 64px;
}
@keyframes motto-button-section-pulse {
  0%,100% { transform: scale(.98); filter: drop-shadow(0 12px 18px rgba(0,0,0,.28)); }
  30% { transform: scale(1.16); filter: drop-shadow(0 0 10px rgba(255,255,255,.7)) drop-shadow(0 18px 30px rgba(226,29,45,.58)); }
  55% { transform: scale(1.02); filter: drop-shadow(0 10px 18px rgba(0,0,0,.32)); }
  72% { transform: scale(1.09); filter: drop-shadow(0 0 7px rgba(226,29,45,.42)); }
}
@keyframes motto-button-section-red {
  0%,100% { opacity: 0; }
  24%,42% { opacity: 1; }
  60% { opacity: .12; }
  72% { opacity: .72; }
}
@keyframes motto-button-section-shine {
  0%,100% { transform: translateX(-48%); opacity: .45; }
  42% { transform: translateX(48%); opacity: .92; }
}
@keyframes motto-button-section-letter {
  0%,100% { color: #111; transform: scale(1); }
  24%,42% { color: #fff; transform: scale(1.08); }
  72% { color: #fff; transform: scale(1.04); }
}
@media (max-width: 900px) {
  .motto-host,
  .motto-host .motto-orbit,
  .motto-host.docked,
  .motto-host.docked .motto-orbit {
    width: 78px;
    height: 48px;
  }
  .motto-host .motto-core,
  .motto-host.docked .motto-core {
    inset: 0 !important;
    font-size: 13px;
  }
  .motto-dock {
    width: 84px;
    height: 52px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .motto-host.presenting .motto-orbit,
  .motto-host.presenting .motto-orbit::before,
  .motto-host.presenting .motto-orbit::after,
  .motto-host.presenting .motto-core {
    animation: none !important;
  }
}


/* Reconstrução de precisão baseada no vídeo Motto button */
:root {
  --motto-button-shape: polygon(
    12% 2%,13% 6%,16% 12%,21% 19%,27% 25%,34% 30%,42% 33%,50% 34%,
    58% 33%,66% 30%,73% 25%,79% 19%,84% 12%,87% 6%,88% 2%,
    91% 8%,92% 20%,93% 34%,94% 50%,95% 66%,96% 82%,95% 92%,91% 98%,
    88% 97%,85% 92%,80% 87%,74% 82%,66% 77%,58% 74%,50% 73%,
    42% 74%,34% 77%,26% 82%,20% 87%,15% 92%,12% 97%,8% 98%,
    5% 92%,4% 82%,5% 66%,6% 50%,7% 34%,8% 20%,9% 8%
  );
  --motto-silver-rim: linear-gradient(132deg,#3e3e3d 0%,#fbfbf8 13%,#767674 27%,#f6f6f2 43%,#8b8b88 62%,#fff 78%,#4e4e4d 100%);
  --motto-silver-face:
    radial-gradient(ellipse at 50% 54%,#fafaf7 0%,#dededa 34%,#aaa9a6 62%,#5b5b59 86%,#ecece8 100%),
    linear-gradient(112deg,#8a8a87,#fafaf6 46%,#777 76%,#eee);
}
.motto-button::before,
.motto-button::after,
.motto-host .motto-orbit,
.motto-host .motto-orbit::before,
.motto-host .motto-orbit::after {
  clip-path: var(--motto-button-shape);
}
.motto-button {
  isolation: isolate;
  overflow: visible !important;
  color: #111 !important;
}
.motto-button::before {
  z-index: -2;
  inset: 0;
  background: var(--motto-silver-rim);
  filter: drop-shadow(0 4px 2px rgba(255,255,255,.2)) drop-shadow(0 15px 22px rgba(0,0,0,.34));
  transform: none;
  opacity: 1;
  transition: transform .3s cubic-bezier(.22,1,.36,1), filter .3s;
}
.motto-button::after {
  z-index: -1;
  inset: 4px;
  background: var(--motto-silver-face);
  box-shadow: inset 0 0 10px rgba(255,255,255,.4);
  transform: none;
  opacity: 1;
  transition: transform .3s cubic-bezier(.22,1,.36,1), filter .3s;
}
.motto-button:hover,
.motto-button:focus-visible,
.round-link.motto-button:hover,
.submit-button.motto-button:hover,
.motto-button-small:hover,
.motto-video-cta:hover {
  color: #111 !important;
  background: transparent !important;
  transform: none;
}
.motto-button:hover::before,
.motto-button:focus-visible::before,
.motto-button.is-motto-activated::before {
  background: var(--motto-silver-rim);
  filter: drop-shadow(0 0 7px rgba(255,255,255,.5)) drop-shadow(0 17px 28px rgba(226,29,45,.28));
  transform: scale(.96);
}
.motto-button:hover::after,
.motto-button:focus-visible::after,
.motto-button.is-motto-activated::after {
  background: var(--motto-silver-face);
  transform: scale(.955);
  opacity: 1;
}
.round-link.motto-button,
.submit-button.motto-button {
  width: 174px;
  height: 144px;
  padding: 43px 38px;
}
.motto-button-small {
  width: 148px;
  min-height: 106px;
  padding: 31px 29px !important;
}
.motto-video-cta {
  width: 220px;
  min-height: 130px;
  padding: 38px 42px;
}
.motto-button-wings {
  position: absolute !important;
  z-index: -3;
  inset: 0 !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  pointer-events: none;
}
.motto-button-wings::before,
.motto-button-wings::after,
.motto-host::before,
.motto-host::after {
  content: "";
  position: absolute;
  top: 7%;
  bottom: 7%;
  width: 34%;
  border-radius: 28% 12% 24% 16%;
  background: linear-gradient(90deg,#6d000a 0%,#d3001d 42%,#ff2338 72%,#a00013 100%);
  opacity: 0;
  box-shadow: 0 0 22px rgba(226,29,45,.34);
  pointer-events: none;
}
.motto-button-wings::before,
.motto-host::before {
  left: 15%;
  transform-origin: right center;
}
.motto-button-wings::after,
.motto-host::after {
  right: 15%;
  transform-origin: left center;
}
.motto-button:hover .motto-button-wings::before,
.motto-button:focus-visible .motto-button-wings::before,
.motto-button.is-motto-activated .motto-button-wings::before {
  animation: motto-reference-wing-left 1.25s cubic-bezier(.22,1,.36,1) both;
}
.motto-button:hover .motto-button-wings::after,
.motto-button:focus-visible .motto-button-wings::after,
.motto-button.is-motto-activated .motto-button-wings::after {
  animation: motto-reference-wing-right 1.25s cubic-bezier(.22,1,.36,1) both;
}
.motto-host {
  width: 82px;
  height: 82px;
  color: #111;
  mix-blend-mode: normal;
  isolation: isolate;
}
.motto-host .motto-orbit,
.motto-host.docked .motto-orbit {
  z-index: 1;
  width: 82px;
  height: 82px;
  border: 0;
  border-radius: 0 !important;
  background: var(--motto-silver-rim);
  filter: drop-shadow(0 3px 2px rgba(255,255,255,.24)) drop-shadow(0 12px 16px rgba(0,0,0,.34));
  transform: scale(.98);
  animation: none !important;
  overflow: visible;
}
.motto-host .motto-orbit::before {
  z-index: 1;
  inset: 3px;
  border: 0;
  border-radius: 0;
  background: var(--motto-silver-face);
  opacity: 1;
  transform: none;
}
.motto-host .motto-orbit::after {
  z-index: 2;
  inset: 7px;
  background: linear-gradient(118deg,rgba(255,255,255,.08) 15%,rgba(255,255,255,.68) 43%,rgba(255,255,255,.08) 70%);
  opacity: .58;
  transform: none;
}
.motto-host .motto-core,
.motto-host .motto-ring,
.motto-host .motto-satellite {
  display: none;
}
.motto-host.presenting .motto-orbit {
  animation: motto-reference-press 1.5s cubic-bezier(.22,1,.36,1) both !important;
}
.motto-host.presenting::before {
  animation: motto-reference-wing-left 1.5s cubic-bezier(.22,1,.36,1) both;
}
.motto-host.presenting::after {
  animation: motto-reference-wing-right 1.5s cubic-bezier(.22,1,.36,1) both;
}
.motto-host.presenting .motto-orbit::after {
  animation: motto-reference-shine 1.5s ease-in-out both;
}
.motto-dock {
  width: 90px;
  height: 90px;
}
.motto-host.docked,
.motto-host.docked .motto-orbit {
  width: 82px;
  height: 82px;
}
@keyframes motto-reference-press {
  0% { transform: scale(.98); }
  18% { transform: scale(.82); }
  42% { transform: scale(1.04); }
  58% { transform: scale(1.11); filter: drop-shadow(0 0 6px rgba(255,255,255,.58)) drop-shadow(0 17px 28px rgba(226,29,45,.42)); }
  72% { transform: scale(1.04); }
  100% { transform: scale(.98); }
}
@keyframes motto-reference-wing-left {
  0%,18%,100% { opacity: 0; transform: translateX(0) scaleX(.15) skewY(-7deg); box-shadow: -2px 0 0 rgba(110,0,12,0); }
  42% { opacity: .48; transform: translateX(-58%) scaleX(.72) skewY(-7deg); box-shadow: -9px 0 0 rgba(110,0,12,.38); }
  58%,68% { opacity: 1; transform: translateX(-102%) scaleX(1) skewY(-7deg); box-shadow: -13px 0 0 rgba(110,0,12,.62),-24px 0 0 rgba(110,0,12,.23); }
  82% { opacity: .32; transform: translateX(-28%) scaleX(.42) skewY(-7deg); }
}
@keyframes motto-reference-wing-right {
  0%,18%,100% { opacity: 0; transform: translateX(0) scaleX(.15) skewY(7deg); box-shadow: 2px 0 0 rgba(110,0,12,0); }
  42% { opacity: .48; transform: translateX(58%) scaleX(.72) skewY(7deg); box-shadow: 9px 0 0 rgba(110,0,12,.38); }
  58%,68% { opacity: 1; transform: translateX(102%) scaleX(1) skewY(7deg); box-shadow: 13px 0 0 rgba(110,0,12,.62),24px 0 0 rgba(110,0,12,.23); }
  82% { opacity: .32; transform: translateX(28%) scaleX(.42) skewY(7deg); }
}
@keyframes motto-reference-shine {
  0%,100% { opacity: .38; transform: translateX(-12%); }
  56% { opacity: .86; transform: translateX(12%); }
}
@media (max-width: 900px) {
  .round-link.motto-button,
  .submit-button.motto-button {
    width: 146px;
    height: 120px;
    padding: 35px 31px;
  }
  .motto-button-small {
    width: 134px;
    min-height: 96px;
    padding: 27px 24px !important;
  }
  .motto-host,
  .motto-host .motto-orbit,
  .motto-host.docked,
  .motto-host.docked .motto-orbit {
    width: 62px;
    height: 62px;
  }
  .motto-dock {
    width: 68px;
    height: 68px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .motto-button-wings,
  .motto-host::before,
  .motto-host::after {
    display: none !important;
  }
  .motto-host.presenting .motto-orbit,
  .motto-host.presenting .motto-orbit::after {
    animation: none !important;
  }
}


/* Logótipo oficial e estabilização final do Motto */
.site-header {
  mix-blend-mode: normal;
}
.brand-image-link {
  display: inline-flex;
  align-items: center;
  line-height: 0;
  letter-spacing: 0;
}
.brand-logo-image {
  display: block;
  width: clamp(154px, 13vw, 196px);
  height: auto;
  max-height: 52px;
  object-fit: contain;
}
.footer-logo-image {
  width: clamp(280px, 31vw, 470px);
  max-height: none;
}
.motto-host {
  will-change: left, top;
}
.motto-host .motto-orbit {
  backface-visibility: hidden;
  will-change: transform, filter;
}
.motto-host::before,
.motto-host::after,
.motto-host .motto-orbit::after {
  backface-visibility: hidden;
  will-change: transform, opacity;
}
.motto-host.presenting .motto-orbit::before {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.motto-host:not(.presenting)::before,
.motto-host:not(.presenting)::after {
  animation: none !important;
  opacity: 0;
}
.motto-host:not(.presenting) .motto-orbit {
  animation: none !important;
  transform: scale(.98);
}
@media (max-width: 900px) {
  .brand-logo-image {
    width: 146px;
    max-height: 42px;
  }
  .footer-logo-image {
    width: min(290px, 72vw);
    max-height: none;
  }
}


/* Mottoblog multimédia */
.article-grid article .article-image {
  display: block;
  width: 100%;
  padding: 0 !important;
  border: 0 !important;
}
.article-image {
  background: #090909;
}
.article-media-image,
.article-media-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.002);
  transition: transform .6s cubic-bezier(.22,1,.36,1), filter .4s;
}
.article-media-video {
  background: #000;
}
.article-image-motion {
  filter: none;
}
.article-grid article:hover .article-media-image,
.article-grid article:hover .article-media-video {
  transform: scale(1.035);
}
.article-media-badge {
  position: absolute;
  z-index: 3;
  left: 16px;
  bottom: 16px;
  padding: 8px 10px;
  background: rgba(6,6,6,.82);
  color: white;
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(10px);
  font: 600 8px var(--font-geist-mono), monospace;
  letter-spacing: .12em;
}
.article-image-motion .article-media-badge::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 7px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 12px rgba(226,29,45,.75);
  animation: mottoblog-recording 1.4s ease-in-out infinite;
}
.article-image > span {
  z-index: 4;
}
.article-media-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.26);
  background: radial-gradient(circle at 50% 45%,rgba(226,29,45,.18),transparent 32%),#090909;
  font: 700 12px var(--font-geist-mono), monospace;
  letter-spacing: .24em;
}
@keyframes mottoblog-recording {
  50% { opacity: .35; transform: scale(.78); }
}
@media (prefers-reduced-motion: reduce) {
  .article-image-motion .article-media-badge::before {
    animation: none;
  }
}


/* Mainvision identity system - August 2026 client revision */
:root {
  --red: #F40000;
  --black: #000000;
  --ink: #111111;
  --paper: #f5f5f3;
  --gray: #D4D4D2;
  --font-sora: "Sora", Arial, sans-serif;
  --font-roboto: "Roboto", Arial, sans-serif;
  --font-geist-sans: var(--font-roboto);
  --font-geist-mono: var(--font-roboto);
}
html { font-size: 17px; }
body {
  font-family: var(--font-roboto);
  font-size: 17px;
  line-height: 1.65;
}
h1, h2, h3, h4, .mobile-menu-links span {
  font-family: var(--font-sora);
}
h1 i, h2 i, h3 i, h4 i {
  font-family: var(--font-sora);
  font-style: normal;
  font-weight: 300;
}
h2 {
  font-size: clamp(52px, 7vw, 112px);
  line-height: .9;
  letter-spacing: -.055em;
}
p { font-size: 1rem; }
.eyebrow, .section-index, .desktop-nav a, .article-meta, .footer-label {
  font-family: var(--font-roboto);
  font-size: 11px;
  letter-spacing: .12em;
}
.desktop-nav a { font-size: 11px; }
.desktop-nav a small { font-size: 10px; }
.motto-path, .motto-host, .motto-message, .motto-dock {
  display: none !important;
}
.motto-light-layer { display: none !important; }
main section {
  position: relative;
  overflow: hidden;
}
main section::before {
  display: none;
  animation: none !important;
  transform: none;
}
#vision::after,
#experience::after,
#impact::after,
#insights::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: clamp(250px, 29vw, 500px);
  aspect-ratio: 1633 / 1228;
  background: url("assets/images/motto-symbol-red.png") center / contain no-repeat;
  pointer-events: none;
}
#vision::after { right: -8%; bottom: -14%; }
#experience::after { left: -9%; bottom: -13%; }
#impact::after { right: -7%; bottom: -14%; }
#insights::after { left: -8%; bottom: -15%; }
main section > * { position: relative; z-index: 1; }
.section-pad { padding-top: 145px; padding-bottom: 145px; }
.site-header {
  height: 88px;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.site-header.scrolled { background: rgba(0,0,0,.94); }
.hero h1 {
  font-family: var(--font-sora);
  font-size: clamp(64px, 8.5vw, 132px);
  letter-spacing: -.06em;
}
.hero-bottom > p {
  max-width: 650px;
  font-size: clamp(17px, 1.3vw, 21px);
  line-height: 1.65;
}
.split-heading { gap: 7vw; }
.intro-copy h3 {
  font-family: var(--font-sora);
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1.08;
}
.intro-copy p {
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.72;
}
.venue-endorsement {
  max-width: 1500px;
  margin: 90px auto 0;
  padding: 38px;
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 48px;
  border: 1px solid #c9c9c7;
  border-radius: 28px;
  background: rgba(255,255,255,.76);
}
.venue-endorsement strong {
  display: block;
  font: 500 clamp(26px,2.5vw,38px)/1.12 var(--font-sora);
}
.venue-logo-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
}
.venue-logo-grid span {
  min-height: 104px;
  display: grid;
  place-items: center;
  padding: 12px;
  border: 1px solid #d1d1cf;
  border-radius: 18px;
  color: #777;
  text-align: center;
  font: 600 10px/1.5 var(--font-roboto);
  letter-spacing: .12em;
}
.venue-endorsement small {
  grid-column: 1 / -1;
  color: #777;
  font-size: 12px;
}
.numbers-strip { gap: 12px; border: 0; }
.numbers-strip > div {
  border: 1px solid var(--gray) !important;
  border-radius: 20px;
  background: white;
}
.numbers-strip span { font-size: 13px; }
.values-grid { gap: 14px; border: 0; }
.values-grid article {
  min-height: 315px;
  padding: 34px;
  border: 1px solid var(--gray) !important;
  border-radius: 24px;
  background: white;
}
.values-grid h4 {
  font-size: 23px;
  margin-top: 80px;
}
.values-grid p { font-size: 16px; line-height: 1.6; }
.join-banner {
  border-radius: 32px;
  overflow: hidden;
}
.join-copy h3 { font-family: var(--font-sora); }
.solution-panels { gap: 18px; }
.solution-card {
  border-radius: 30px;
  overflow: hidden;
}
.solution-copy p { font-size: 17px; line-height: 1.62; }
.process-steps { gap: 12px; border: 0; }
.process-steps > div {
  min-height: 260px;
  border: 1px solid rgba(255,255,255,.2) !important;
  border-radius: 20px;
}
.process-steps p { font-size: 15px; }
.work-card {
  border-radius: 24px;
}
.work-overlay { border-radius: inherit; }
.trust-block blockquote {
  font-family: var(--font-sora);
  font-size: clamp(26px, 2.8vw, 44px);
}
.logo-marquee { border-radius: 20px; }
.article-grid { gap: 22px; }
.article-grid article {
  padding: 20px 20px 26px;
  border: 1px solid var(--gray);
  border-radius: 26px;
  background: rgba(255,255,255,.86);
}
.article-grid article .article-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: #000;
  -webkit-mask: none;
  mask: none;
  border: 0 !important;
  border-radius: 18px !important;
}
.article-image > span,
.article-media-badge { display: none; }
.article-media-image,
.article-media-video { filter: none; transform: none; }
.article-grid article:hover .article-media-image,
.article-grid article:hover .article-media-video { transform: none; }
.article-meta {
  margin: 25px 0 16px;
  font-size: 11px;
}
.article-grid article h3 {
  min-height: 125px;
  font-size: clamp(23px, 1.8vw, 31px);
}
.article-grid article > a:last-child {
  font-size: 12px;
}
.newsletter {
  border-radius: 32px;
  overflow: hidden;
}
.newsletter input { font-size: 18px; }
.motto-button,
.round-link.motto-button,
.submit-button.motto-button,
.motto-button-small,
.motto-video-cta {
  width: 190px;
  min-width: 190px;
  height: 143px;
  min-height: 143px;
  padding: 40px 34px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat !important;
  color: white !important;
  text-align: center;
  font: 600 12px/1.25 var(--font-roboto);
  letter-spacing: .07em;
  text-transform: uppercase;
  filter: none !important;
  clip-path: none !important;
  transition: opacity .2s ease, transform .2s ease;
}
.motto-button::before,
.motto-button::after,
.motto-button-wings { display: none !important; }
.motto-button:hover,
.motto-button:focus-visible {
  opacity: .86;
  transform: translateY(-2px) !important;
  color: white !important;
}
.video-link .play {
  width: 78px;
  height: 59px;
  border: 0;
  border-radius: 0;
  clip-path: none;
  background: transparent url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  color: white;
  filter: none;
}
.filter-bar button { font-size: 12px; }
.contact {
  gap: 7vw;
  background: var(--red);
}
.contact-lead > p:last-of-type {
  max-width: 520px;
  font-size: 19px;
}
.contact-promise {
  max-width: 520px;
  margin-top: 48px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 10px 15px;
}
.contact-promise span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  font: 600 10px var(--font-roboto);
}
.contact-promise p {
  margin: 0;
  align-self: center;
  font-size: 15px;
}
.contact-form {
  padding: 55px;
  border-radius: 34px;
  background: white;
  color: var(--ink);
}
.contact-form > label,
.field-row label { margin-bottom: 30px; }
.contact-form label > span,
.form-end legend {
  color: #4f4f4d;
  font-size: 11px;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  padding: 16px 18px;
  border: 1px solid #d4d4d2;
  border-radius: 14px;
  background: #f5f5f3;
  color: #111;
  font-size: 16px;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(244,0,0,.1);
}
.contact-form input::placeholder,
.contact-form textarea::placeholder { color: #777; }
.contact-form .privacy-consent { color: #333; }
.form-end fieldset label { color: #111; }
.site-footer { border-radius: 32px 32px 0 0; }
.footer-grid a,
.footer-grid address { font-size: 15px; }
.footer-bottom { font-size: 10px; }
@media (max-width: 1000px) {
  .venue-endorsement { grid-template-columns: 1fr; }
  .venue-logo-grid { grid-template-columns: repeat(2,1fr); }
  .contact-form { padding: 38px; }
}
@media (max-width: 680px) {
  html { font-size: 16px; }
  .section-pad { padding-top: 100px; padding-bottom: 110px; }
  .hero h1 { font-size: clamp(50px, 15vw, 76px); }
  h2 { font-size: clamp(46px, 13vw, 72px); }
  .venue-endorsement { padding: 24px; margin-top: 60px; }
  .venue-logo-grid { grid-template-columns: 1fr 1fr; }
  .venue-logo-grid span { min-height: 82px; }
  .values-grid article { min-height: 230px; }
  .article-grid article { padding: 16px 16px 23px; }
  .article-grid article h3 { min-height: auto; }
  .contact-form { padding: 28px 20px; border-radius: 24px; }
  .motto-button,
  .round-link.motto-button,
  .submit-button.motto-button,
  .motto-button-small {
    width: 150px;
    min-width: 150px;
    height: 113px;
    min-height: 113px;
    padding: 31px 25px !important;
  }
  #vision::after,
  #experience::after,
  #impact::after,
  #insights::after {
    width: 240px;
    opacity: .95;
  }
}

/* Motto layers - composition taken from the approved 2026 visual references */
#vision::after,
#experience::after,
#impact::after,
#insights::after {
  display: block;
  left: 50%;
  right: auto;
  bottom: -1px;
  width: min(1650px, 118vw);
  height: clamp(220px, 28vw, 430px);
  aspect-ratio: auto;
  background-position: center top;
  background-size: 100% auto;
  transform: translateX(-50%);
  opacity: 1;
}
.vision-logo-stage {
  max-width: 1500px;
  min-height: 470px;
  margin: 90px auto 0;
  padding: clamp(235px, 23vw, 320px) 38px 38px;
  position: relative;
  overflow: hidden;
  border-radius: 34px;
  background: #090909;
}
.vision-logo-stage::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  left: 50%;
  width: 108%;
  height: clamp(235px, 23vw, 330px);
  background: url("assets/images/motto-symbol-red.png") center top / 100% auto no-repeat;
  transform: translateX(-50%);
  pointer-events: none;
}
.vision-logo-content {
  position: relative;
  z-index: 2;
}
.vision-logo-content > .eyebrow {
  position: absolute;
  left: 50%;
  bottom: calc(100% + clamp(145px, 14vw, 195px));
  width: min(430px, 72vw);
  margin: 0;
  text-align: center;
  transform: translateX(-50%);
}
.vision-logo-stage .venue-logo-grid {
  position: relative;
  z-index: 4;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.vision-logo-stage .venue-logo-grid span {
  min-height: 120px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 20px;
  background: #f5f5f3;
  color: #595957;
}
.vision-logo-stage .venue-logo-grid img {
  display: block;
  width: auto;
  max-width: min(78%, 220px);
  max-height: 78px;
  object-fit: contain;
}
.vision-values {
  max-width: 1500px;
  margin: 34px auto 0;
  padding: 56px 0 0;
  position: relative;
}
.vision-values h3 {
  margin: 0 0 34px;
  font: 500 clamp(34px, 4vw, 62px)/1 var(--font-sora);
  letter-spacing: -.045em;
}
.vision-values .values-grid {
  margin: 0;
}
.vision-values .values-grid article:nth-child(2),
.vision-values .values-grid article:nth-child(4) {
  background: #ededeb;
}
.join-banner {
  margin-top: 70px;
  padding: clamp(24px, 3vw, 46px);
  gap: clamp(30px, 5vw, 80px);
  align-items: center;
  border: 0;
  background: #090909;
}
.join-image {
  min-height: 0;
  aspect-ratio: 1633 / 1228;
  -webkit-mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
}
.join-copy {
  padding: 30px 7% 30px 0;
}
.join-copy > p:not(.eyebrow) {
  max-width: 540px;
  font-size: 17px;
  line-height: 1.65;
}
.join-copy > p a {
  color: white;
  text-decoration: underline;
  text-decoration-color: var(--red);
  text-underline-offset: 5px;
}
@media (max-width: 1000px) {
  .vision-logo-stage {
    min-height: 420px;
    padding-top: 235px;
  }
  .vision-logo-stage::before { height: 245px; }
  .vision-logo-content > .eyebrow { bottom: calc(100% + 142px); }
  .join-copy { padding-right: 2%; }
}
@media (max-width: 680px) {
  #vision::after,
  #experience::after,
  #impact::after,
  #insights::after {
    width: 145vw;
    height: 220px;
  }
  .vision-logo-stage {
    min-height: 0;
    margin-top: 64px;
    padding: 165px 20px 24px;
    border-radius: 24px;
  }
  .vision-logo-stage::before {
    width: 142%;
    height: 175px;
  }
  .vision-logo-content > .eyebrow {
    bottom: calc(100% + 91px);
    width: 230px;
    font-size: 9px;
  }
  .vision-logo-stage .venue-logo-grid { grid-template-columns: 1fr; gap: 10px; }
  .vision-logo-stage .venue-logo-grid span { min-height: 84px; border-radius: 14px; }
  .vision-values { padding-top: 38px; }
  .vision-values h3 { margin-bottom: 24px; }
  .join-banner { margin-top: 48px; padding: 20px; }
  .join-copy { padding: 12px 4px 24px; }
}

/* Website review V2 - full-page colour and curve system. */
body,
.section-light,
.section-paper {
  background: #fff !important;
}
main section::before {
  content: "";
  display: block !important;
  position: absolute;
  z-index: 0;
  inset: auto;
  width: clamp(760px, 76vw, 1460px);
  height: auto;
  aspect-ratio: 1;
  border: clamp(5px, .55vw, 10px) solid var(--red);
  border-radius: 50%;
  pointer-events: none;
}
#home::before {
  top: 50%;
  left: -48vw;
  z-index: 2;
  background: radial-gradient(circle at 70% 45%, rgba(44,44,44,.82), rgba(0,0,0,.96) 65%);
  transform: translateY(-50%);
}
.hero-media {
  filter: saturate(.88) contrast(1.12) !important;
}
#vision::before {
  top: 31%;
  right: -61vw;
  border-color: #f40000;
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(144,144,141,.42), rgba(255,255,255,.1));
  opacity: .38;
}
#experience::before {
  top: 8%;
  left: -58vw;
  border-color: #d6d6d3;
  background: radial-gradient(circle at 75% 45%, rgba(244,0,0,.24), rgba(10,10,10,.9) 68%);
}
#impact::before {
  top: 4%;
  right: -60vw;
  background: linear-gradient(135deg, rgba(244,0,0,.18), rgba(255,255,255,.1) 45%, rgba(120,120,118,.28));
  opacity: .46;
}
#insights::before {
  bottom: 7%;
  left: -59vw;
  border-color: #aaa9a6;
  background: radial-gradient(circle at 72% 50%, rgba(244,0,0,.17), rgba(255,255,255,.12) 65%);
  opacity: .68;
}
#enter::before {
  top: 50%;
  right: -47vw;
  border-color: #efefec;
  background: linear-gradient(135deg, rgba(255,255,255,.34), rgba(105,105,103,.34));
  transform: translateY(-50%);
}
.venue-logo-line {
  max-width: 1500px;
  margin: 88px auto 28px;
  padding: 2px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  border-radius: 26px;
  background: linear-gradient(110deg, #5a5a58, #f7f7f4 26%, #8d8d8a 48%, #fff 68%, #666664);
  box-shadow: 0 16px 42px rgba(244,0,0,.12);
  overflow: hidden;
}
.venue-logo-line span {
  min-height: 140px;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #fff;
}
.venue-logo-line span:first-child { border-radius: 24px 0 0 24px; }
.venue-logo-line span:last-child { border-radius: 0 24px 24px 0; }
.venue-logo-line img {
  display: block;
  width: auto;
  max-width: min(76%, 230px);
  max-height: 82px;
  object-fit: contain;
}
.vision-values .values-grid article {
  background: #fff !important;
  border-color: #b9b9b6 !important;
  box-shadow: inset 0 5px 0 var(--red);
}
.vision-values .values-grid article:nth-child(even) {
  box-shadow: inset 0 5px 0 #a8a8a5;
}
.vision-values .values-grid article:hover {
  background: var(--red) !important;
  color: #fff;
}
.join-image {
  filter: saturate(.95) contrast(1.06) !important;
}
.experience {
  background: linear-gradient(145deg, #050505 0%, #090909 62%, #350006 100%) !important;
}
.solution-panels {
  gap: 18px;
  background: transparent !important;
}
.solution-card {
  border: 2px solid var(--red);
  isolation: isolate;
}
.solution-card.digital { border-color: #c8c8c5; }
.solution-bg {
  filter: saturate(1.05) contrast(1.08) !important;
}
.solution-card::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -44%;
  right: -55%;
  width: 105%;
  aspect-ratio: 1;
  border: 7px solid var(--red);
  border-radius: 50%;
  pointer-events: none;
}
.solution-card.digital::before {
  right: auto;
  left: -55%;
  border-color: #d7d7d4;
}
.solution-copy,
.solution-number {
  position: relative;
  z-index: 1;
}
.physical::after {
  background: linear-gradient(180deg, rgba(244,0,0,.04), rgba(30,0,3,.9));
}
.digital::after {
  background: linear-gradient(180deg, rgba(214,214,211,.06), rgba(0,0,0,.9));
}
.process-steps > div:nth-child(odd) {
  border-color: rgba(244,0,0,.62) !important;
}
.process-steps > div:nth-child(even) {
  border-color: rgba(215,215,212,.56) !important;
}
.impact {
  background: linear-gradient(180deg, #fff 0%, #fff 58%, #fff3f3 100%) !important;
}
.filter-bar button {
  border-color: #aaa9a6;
}
.filter-bar button.active,
.filter-bar button:hover {
  background: var(--red);
  color: #fff;
  border-color: var(--red);
}
.work-card {
  border: 3px solid var(--red);
  border-radius: 26px 110px 26px 26px;
}
.work-card:nth-child(even) {
  border-color: #bdbdba;
  border-radius: 110px 26px 26px 26px;
}
.trust-block {
  padding: clamp(50px, 6vw, 92px);
  border-radius: 38px;
  background: linear-gradient(125deg, #f40000 0%, #b50009 58%, #3e3e3c 100%);
  color: #fff;
}
.trust-block .eyebrow,
.trust-block blockquote footer {
  color: rgba(255,255,255,.78);
}
.trust-block blockquote {
  color: #fff;
}
.logo-marquee {
  border: 1px solid rgba(255,255,255,.38);
  background: rgba(0,0,0,.72);
}
.insights {
  background: #fff !important;
}
.insights-types {
  margin: 32px 0 0;
  padding: 0;
  display: grid;
  gap: 12px;
  list-style: none;
}
.insights-types li {
  padding: 17px 20px;
  display: grid;
  grid-template-columns: minmax(145px,.7fr) 1.3fr;
  gap: 20px;
  border-left: 5px solid var(--red);
  border-radius: 0 16px 16px 0;
  background: #fff;
  box-shadow: 0 8px 28px rgba(0,0,0,.07);
}
.insights-types li:nth-child(even) { border-left-color: #9d9d9a; }
.insights-types strong {
  font-family: var(--font-sora);
  font-size: 14px;
}
.insights-types span {
  color: #555;
  font-size: 14px;
}
.article-grid article {
  background: #fff !important;
  border-top: 5px solid var(--red);
}
.article-grid article:nth-child(even) { border-top-color: #a8a8a5; }
.newsletter {
  position: relative;
  isolation: isolate;
  background: linear-gradient(120deg, #f40000 0%, #b9000a 58%, #3f3f3d 58%, #171717 100%) !important;
}
.newsletter::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  right: -28%;
  width: 70%;
  aspect-ratio: 1;
  border: 7px solid #e4e4e1;
  border-radius: 50%;
  transform: translateY(-50%);
}
.contact {
  background: linear-gradient(135deg, #f40000 0%, #c30008 62%, #6b0007 100%) !important;
}
.contact-form {
  border: 4px solid transparent;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(125deg,#5e5e5c,#fff 22%,#92928f 48%,#fff 70%,#565654) border-box;
}
.site-footer {
  border-top: 7px solid;
  border-image: linear-gradient(90deg,#f40000,#f40000 45%,#f1f1ee 62%,#777) 1;
  background: linear-gradient(145deg,#050505 0%,#171717 70%,#410006 100%) !important;
}
@media (max-width: 900px) {
  main section::before {
    width: 145vw;
  }
  #home::before { left: -105vw; }
  #vision::before,
  #impact::before,
  #enter::before { right: -112vw; }
  #experience::before,
  #insights::before { left: -112vw; }
  .venue-logo-line { grid-template-columns: 1fr; }
  .venue-logo-line span { min-height: 105px; }
  .venue-logo-line span:first-child { border-radius: 24px 24px 0 0; }
  .venue-logo-line span:last-child { border-radius: 0 0 24px 24px; }
  .insights-types li { grid-template-columns: 1fr; gap: 6px; }
  .solution-card::before { width: 150%; right: -100%; }
  .solution-card.digital::before { left: -100%; }
  .trust-block { padding: 42px 24px; }
}

/* Colour pass - remove the remaining monochrome inheritance. */
html,
body {
  background: #fff !important;
}
.vision {
  background:
    radial-gradient(circle at 96% 34%, rgba(244,0,0,.15), transparent 31%),
    radial-gradient(circle at 4% 82%, rgba(170,170,167,.22), transparent 28%),
    #fff !important;
}
.hero-media {
  filter: saturate(1.18) contrast(1.08) brightness(.92) !important;
}
.hero-media::after {
  background:
    linear-gradient(105deg, rgba(244,0,0,.18), transparent 35%, rgba(255,255,255,.18) 54%, rgba(244,0,0,.34) 72%, transparent 88%) !important;
  mix-blend-mode: screen;
}
.hero-shade {
  background:
    linear-gradient(180deg, rgba(20,0,2,.35), rgba(0,0,0,.05) 36%, rgba(30,0,3,.8)),
    linear-gradient(90deg, rgba(0,0,0,.58), rgba(244,0,0,.12) 58%, rgba(170,170,167,.08)) !important;
}
.join-banner {
  background: linear-gradient(135deg, #150002, #5f0007 54%, #5c5c59 100%) !important;
}
.join-image,
.join-banner:hover .join-image {
  filter: saturate(1.12) contrast(1.05) brightness(.9) !important;
}
.experience {
  background:
    radial-gradient(circle at 88% 16%, rgba(244,0,0,.36), transparent 27%),
    radial-gradient(circle at 12% 72%, rgba(185,185,181,.2), transparent 25%),
    linear-gradient(145deg, #0b0001, #180002 58%, #4d0007) !important;
}
.solution-bg,
.solution-card:hover .solution-bg {
  filter: saturate(1.28) contrast(1.06) brightness(.9) !important;
}
.physical::after {
  background: linear-gradient(180deg, rgba(244,0,0,.1), rgba(65,0,7,.76) 58%, rgba(10,0,1,.94)) !important;
}
.digital::after {
  background: linear-gradient(180deg, rgba(228,228,224,.08), rgba(60,0,6,.5) 58%, rgba(5,5,5,.94)) !important;
}
.process {
  padding: clamp(34px,4vw,62px);
  border-radius: 34px;
  background: linear-gradient(120deg, rgba(244,0,0,.22), rgba(15,15,15,.92) 42%, rgba(188,188,184,.18));
}
.process-steps > div {
  background: linear-gradient(155deg, rgba(255,255,255,.07), rgba(244,0,0,.08));
}
.process-steps > div:nth-child(even) {
  background: linear-gradient(155deg, rgba(222,222,218,.16), rgba(255,255,255,.03));
}
.work-card,
.work-card:hover {
  filter: saturate(1.22) contrast(1.04) !important;
}
.work-overlay {
  background: linear-gradient(180deg, rgba(244,0,0,.04), transparent 35%, rgba(34,0,4,.86)) !important;
}
.work-card:nth-child(even) .work-overlay {
  background: linear-gradient(180deg, rgba(218,218,214,.06), transparent 35%, rgba(20,0,2,.88)) !important;
}
.case-dialog-image,
.project-album-button img,
.project-album-button:hover img,
.project-album-button:focus-visible img {
  filter: saturate(1.18) contrast(1.04) !important;
}
.insights {
  background:
    radial-gradient(circle at 8% 20%, rgba(244,0,0,.12), transparent 28%),
    radial-gradient(circle at 94% 74%, rgba(167,167,163,.2), transparent 30%),
    #fff !important;
}
.article-image,
.article-grid article:hover .article-image {
  filter: none !important;
}
.article-media-image,
.article-media-video {
  filter: saturate(1.22) contrast(1.04) !important;
}
.article-grid article:nth-child(1) {
  background: linear-gradient(160deg, #fff, #fff0f1) !important;
}
.article-grid article:nth-child(2) {
  background: linear-gradient(160deg, #fff, #f7f7f5 62%, #fff1f2) !important;
}
.article-grid article:nth-child(3) {
  background: linear-gradient(160deg, #fff, #fff0f1) !important;
}
.motto-video-stage {
  background: linear-gradient(135deg, #140002, #520007 58%, #696966) !important;
}
.motto-video-media {
  filter: saturate(1.24) contrast(1.08) !important;
}
.site-footer {
  background:
    radial-gradient(circle at 86% 30%, rgba(244,0,0,.4), transparent 28%),
    linear-gradient(145deg, #080808, #230003 68%, #650009) !important;
}



/* Reference-accurate Motto scroll canvas: black viewport, red symbol and content above it. */
:root { --site-scroll-progress: 0; }
.motto-page-progress {
  position: fixed;
  z-index: 88;
  top: 14vh;
  right: clamp(18px, 2.8vw, 52px);
  width: 9px;
  height: 15vh;
  min-height: 84px;
  overflow: hidden;
  background: rgba(255,255,255,.28);
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}
body.motto-journey-ready .motto-page-progress { opacity: 1; }
body.home.motto-journey-ready .site-header {
  opacity: var(--motto-header-opacity, 0);
  transition: opacity .45s ease, background .3s ease;
}
.motto-page-progress::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: scaleY(var(--site-scroll-progress));
  transform-origin: top;
  will-change: transform;
}
body main > section,
body footer.site-footer {
  --motto-canvas-scale: 1.4;
  --motto-canvas-x: 0vw;
  --motto-canvas-y: 0vh;
  --motto-canvas-rotate: 0deg;
  --motto-canvas-opacity: .14;
  position: relative;
  isolation: isolate;
  overflow: clip !important;
}
body main > section::before,
body main > section::after { display: none !important; }
.motto-section-canvas {
  position: sticky;
  z-index: 1;
  top: 0;
  display: block;
  width: 100%;
  height: 100svh;
  min-height: 580px;
  margin-bottom: -100svh;
  overflow: hidden;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transition: opacity .45s ease;
}
body.motto-journey-ready .motto-section-canvas { opacity: 1; }
.motto-section-shape {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: min(78vw, 1500px);
  aspect-ratio: 1633 / 1228;
  background: #d50022;
  -webkit-mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  transform: translate(-50%, -50%) translate(var(--motto-canvas-x), var(--motto-canvas-y)) scale(var(--motto-canvas-scale)) rotate(var(--motto-canvas-rotate));
  transform-origin: center;
  opacity: var(--motto-canvas-opacity);
  filter: drop-shadow(0 0 34px rgba(213,0,34,.18));
  will-change: transform, opacity;
}
#vision .motto-section-shape,
#impact .motto-section-shape,
#insights .motto-section-shape {
  background: linear-gradient(135deg, #d50022 0 54%, #c9c9c6 78%, #767673 100%);
}
#enter .motto-section-shape {
  background: linear-gradient(135deg, #f2f2ef, #aaa9a6 58%, #d50022 100%);
  filter: drop-shadow(0 0 30px rgba(255,255,255,.18));
}
main > section > :not(.motto-section-canvas):not(.hero-media):not(.hero-shade),
footer.site-footer > :not(.motto-section-canvas) {
  position: relative;
  z-index: 3;
}
#home.hero {
  min-height: 240svh !important;
  height: 240svh;
  display: block !important;
  background: #000 !important;
}
#home { --motto-canvas-opacity: 1; }
#home .motto-section-canvas { background: rgba(0,0,0,.88); }
#home .hero-media,
#home .hero-shade {
  position: absolute;
  z-index: 0;
  inset: 0;
}
#home .hero-media { opacity: .34; }
#home .hero-content {
  position: sticky !important;
  top: 0;
  min-height: 100svh;
  padding: 145px 5vw 76px !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  opacity: var(--motto-home-content, 0);
  transform: translateY(var(--motto-home-content-y, 34px));
  will-change: opacity, transform;
}
#home .hero-index,
#home .hero-disciplines,
#home .scroll-cue {
  position: fixed;
  opacity: var(--motto-home-chrome, 0);
  pointer-events: none;
}
#home .hero-index { top: 125px; right: 5vw; }
#home .hero-disciplines { bottom: 30px; }
#home .scroll-cue { bottom: 26px; }
#vision .venue-logo-line,
#vision .vision-values,
#vision .join-banner,
#experience .solution-panels,
#experience .process,
#impact .portfolio-grid,
#impact .trust-block,
#insights .article-grid,
#insights .newsletter,
#enter .contact-form { position: relative; z-index: 4; }
@media (max-width: 760px) {
  .motto-page-progress { right: 9px; width: 6px; }
  .motto-section-shape { width: 118vw; }
  #home.hero { height: 220svh; min-height: 220svh !important; }
  #home .hero-content { padding: 112px 22px 64px !important; }
  #home .hero-content h1 { font-size: clamp(58px,18vw,92px); }
}
@media (prefers-reduced-motion: reduce) {
  .motto-page-progress { display: none; }
  body.home.motto-journey-ready .site-header { opacity: 1; }
  .motto-section-canvas { position: absolute; inset: 0; height: 100%; margin: 0; opacity: 1; }
  .motto-section-shape { transform: translate(-50%,-50%) scale(1.4); will-change: auto; }
  #home .motto-section-shape { transform: translate(-50%,-50%) scale(2.35); }
  #home.hero { height: 100svh; min-height: 100svh !important; }
  #home .hero-content { position: relative !important; opacity: 1; transform: none; }
  #home .hero-index,
  #home .hero-disciplines,
  #home .scroll-cue { position: absolute; opacity: 1; }
}
/* Large editorial Motto curves - corrected from the 2026 reference layouts. */
#vision::after,
#experience::after,
#impact::after,
#insights::after {
  display: none !important;
}
.vision-logo-stage {
  min-height: 570px;
  padding: 0;
  isolation: isolate;
  background: #111 url("assets/images/vision-curve-stage.jpg") 62% center / cover no-repeat;
}
.vision-logo-stage::before {
  top: 50%;
  left: -43%;
  width: 108%;
  height: auto;
  aspect-ratio: 1;
  border: 9px solid var(--red);
  border-radius: 50%;
  background: linear-gradient(135deg, #080808, #242424 70%, #151515);
  transform: translateY(-50%);
}
.vision-logo-content {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: clamp(36px, 5vw, 82px);
  width: 52%;
  transform: translateY(-50%);
}
.vision-logo-stage .venue-logo-grid {
  padding: 16px;
  gap: 1px;
  border-radius: 22px;
  background: rgba(255,255,255,.22);
  backdrop-filter: blur(10px);
}
.vision-logo-stage .venue-logo-grid span {
  min-height: 128px;
  border: 0;
  border-radius: 0;
  background: rgba(255,255,255,.94);
}
.vision-logo-stage .venue-logo-grid span:first-child { border-radius: 14px 0 0 14px; }
.vision-logo-stage .venue-logo-grid span:last-child { border-radius: 0 14px 14px 0; }
.join-banner {
  min-height: 650px;
  padding: 0;
  display: block;
  position: relative;
  isolation: isolate;
  background: #090909;
}
.join-image {
  position: absolute;
  z-index: 0;
  inset: 0;
  min-height: 100%;
  aspect-ratio: auto;
  -webkit-mask: none;
  mask: none;
  background-position: 60% center;
  filter: grayscale(.72) contrast(1.06);
  transform: none !important;
}
.join-banner:hover .join-image { transform: none !important; }
.join-banner::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: -43%;
  width: 108%;
  aspect-ratio: 1;
  border: 9px solid var(--red);
  border-radius: 50%;
  background: linear-gradient(135deg, #070707, #232323 72%, #121212);
  transform: translateY(-50%);
  pointer-events: none;
}
.join-copy {
  position: relative;
  z-index: 2;
  width: 54%;
  min-height: 650px;
  padding: 70px 7%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}
.join-copy > p:not(.eyebrow) { max-width: 520px; }
.motto-button,
.round-link.motto-button,
.submit-button.motto-button,
.motto-button-small,
.motto-video-cta {
  position: relative;
  isolation: isolate;
  overflow: visible;
  background: transparent !important;
  opacity: 1 !important;
}
.motto-button::before,
.round-link.motto-button::before,
.submit-button.motto-button::before,
.motto-button-small::before,
.motto-video-cta::before {
  content: "";
  display: block !important;
  position: absolute;
  z-index: -1;
  inset: 0;
  border: 0;
  background: var(--red);
  -webkit-mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  clip-path: none !important;
  filter: none;
  transform: none;
  transition: background .3s ease, filter .3s ease, transform .3s ease;
}
.motto-button::after,
.motto-button-wings { display: none !important; }
.motto-button:hover,
.motto-button:focus-visible,
.round-link.motto-button:hover,
.round-link.motto-button:focus-visible,
.submit-button.motto-button:hover,
.submit-button.motto-button:focus-visible,
.motto-button-small:hover,
.motto-button-small:focus-visible,
.motto-video-cta:hover,
.motto-video-cta:focus-visible {
  background: transparent !important;
  color: #101010 !important;
  opacity: 1 !important;
  transform: none !important;
}
.motto-button:hover::before,
.motto-button:focus-visible::before,
.motto-button.is-motto-activated::before {
  background: linear-gradient(120deg, #575755 0%, #f8f8f5 18%, #8e8e8b 35%, #ffffff 51%, #777775 69%, #eeeeeb 84%, #50504f 100%);
  filter: drop-shadow(0 12px 22px rgba(0,0,0,.3));
  transform: translateY(-2px);
}
@media (max-width: 900px) {
  .vision-logo-stage { min-height: 620px; background-position: 66% center; }
  .vision-logo-stage::before {
    top: 72%;
    left: -112%;
    width: 205%;
    border-width: 7px;
  }
  .vision-logo-content {
    top: auto;
    right: 22px;
    bottom: 28px;
    left: 22px;
    width: auto;
    transform: none;
  }
  .vision-logo-stage .venue-logo-grid { grid-template-columns: 1fr; }
  .vision-logo-stage .venue-logo-grid span { min-height: 76px; border-radius: 0; }
  .vision-logo-stage .venue-logo-grid span:first-child { border-radius: 12px 12px 0 0; }
  .vision-logo-stage .venue-logo-grid span:last-child { border-radius: 0 0 12px 12px; }
  .join-banner { min-height: 760px; }
  .join-banner::before {
    top: 72%;
    left: -112%;
    width: 205%;
    border-width: 7px;
  }
  .join-copy {
    width: 100%;
    min-height: 760px;
    padding: 330px 28px 42px;
    justify-content: flex-end;
  }
}

/* VISION: show the complete official Motto silhouette instead of an oversized crop. */
#vision .motto-section-shape {
  width: min(66vw, 1180px);
  background: #d50022;
  filter: none;
}
@media (max-width: 760px) {
  #vision .motto-section-shape {
    width: 92vw;
  }
}




/* HOME only: photographic stage behind the expanding Motto. */
#home .motto-section-canvas {
  background: transparent;
}
#home .hero-media,
#home .hero-shade {
  position: sticky;
  top: 0;
  right: auto;
  bottom: auto;
  left: auto;
  width: 100%;
  height: 100svh;
  min-height: 580px;
  margin-bottom: -100svh;
}
#home .hero-media {
  opacity: .9;
  background-position: center 46%;
  filter: saturate(1.16) contrast(1.12) brightness(.72) !important;
}
#home .hero-media::after {
  background: linear-gradient(105deg, rgba(213,0,34,.22), transparent 40%, rgba(218,218,214,.12) 65%, rgba(213,0,34,.2)) !important;
  mix-blend-mode: screen;
}
#home .hero-shade {
  background:
    linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.28) 48%, rgba(0,0,0,.12) 75%, rgba(0,0,0,.34) 100%),
    linear-gradient(180deg, rgba(0,0,0,.3), transparent 42%, rgba(0,0,0,.56)) !important;
}
#home .motto-section-shape {
  filter: drop-shadow(0 0 40px rgba(213,0,34,.22));
}
#home .hero-content {
  align-items: flex-start;
  justify-content: center;
  padding: 145px 5vw 86px !important;
}
#home .hero-content .eyebrow {
  margin-bottom: 26px;
}
#home .hero-content h1 {
  width: min(780px, 70vw);
  margin: 0 0 38px;
  font-size: clamp(58px, 6.4vw, 112px);
  line-height: .86;
  letter-spacing: -.065em;
}
#home .hero-bottom {
  width: min(680px, 72vw);
  max-width: none;
  margin-left: 0;
  gap: clamp(28px, 4vw, 64px);
}
#home .hero-bottom > p {
  max-width: 470px;
  font-size: clamp(17px, 1.3vw, 22px);
  line-height: 1.48;
}
#home .hero-bottom .round-link {
  width: 124px;
  height: 124px;
  padding: 24px;
}
@media (max-width: 760px) {
  #home .hero-media { background-position: 58% center; }
  #home .hero-content {
    justify-content: flex-end;
    padding: 112px 22px 72px !important;
  }
  #home .hero-content h1 {
    width: 100%;
    font-size: clamp(52px, 15vw, 82px);
  }
  #home .hero-bottom {
    width: 100%;
    align-items: flex-end;
  }
  #home .hero-bottom > p {
    font-size: 16px;
  }
  #home .hero-bottom .round-link {
    width: 96px;
    height: 96px;
    padding: 17px;
  }
}

/* Desktop HOME: the event image becomes a curved side layer above the Motto. */
@media (min-width: 901px) {
  #home .hero-media {
    z-index: 2;
    top: 15svh;
    width: min(41vw, 800px);
    height: 72svh;
    min-height: 500px;
    margin: 0 2vw -72svh auto;
    opacity: .98;
    background-position: 56% center;
    border-radius: 48% 24px 48% 24px / 18% 24px 18% 24px;
    clip-path: ellipse(88% 72% at 88% 50%);
    filter: saturate(1.2) contrast(1.13) brightness(.8) drop-shadow(-7px 0 0 #d50022) !important;
  }
  #home .hero-media::after {
    background: linear-gradient(90deg, rgba(20,0,2,.46), rgba(20,0,2,.06) 42%, rgba(213,0,34,.12)) !important;
    mix-blend-mode: normal;
  }
  #home .hero-shade {
    z-index: 0;
    background:
      linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.18) 57%, rgba(0,0,0,.34)),
      linear-gradient(180deg, rgba(0,0,0,.3), transparent 42%, rgba(0,0,0,.5)) !important;
  }
  #home .hero-content h1 {
    width: min(650px, 53vw);
    font-size: clamp(56px, 5.7vw, 104px);
  }
  #home .hero-bottom {
    width: min(590px, 49vw);
  }
  #home .hero-bottom > p {
    max-width: 405px;
    font-size: clamp(16px, 1.15vw, 20px);
  }
}

#home .motto-section-shape {
  background: #d50022;
  filter: none;
}
#home .motto-section-shape::before,
#home .motto-section-shape::after {
  display: none;
}
#home .hero-media {
  opacity: var(--motto-home-media, 0);
  transition: opacity .32s linear;
}

/* Final legibility pass: keep the HOME copy above every visual layer and inside the viewport. */
#home .hero-content {
  z-index: 4;
}

@media (min-width: 1400px) {
  #home .hero-content {
    justify-content: center;
    padding: 118px 5vw 62px !important;
  }
  #home .hero-content .eyebrow {
    margin-bottom: 18px;
  }
  #home .hero-content h1 {
    width: min(860px, 58vw);
    margin-bottom: 26px;
    font-size: clamp(64px, 5.4vw, 108px);
    line-height: .84;
  }
  #home .hero-bottom {
    width: min(900px, 60vw);
    gap: clamp(24px, 2.5vw, 46px);
    align-items: flex-end;
  }
  #home .hero-bottom > p {
    max-width: 680px;
    font-size: clamp(18px, 1.15vw, 22px);
    line-height: 1.42;
  }
  #home .hero-bottom .round-link {
    width: 116px;
    height: 116px;
    padding: 21px;
  }
}

@media (min-width: 901px) and (max-width: 1399px) {
  #home .hero-content {
    justify-content: center;
    padding: 105px 5vw 58px !important;
  }
  #home .hero-content .eyebrow {
    margin-bottom: 16px;
  }
  #home .hero-content h1 {
    width: min(610px, 51vw);
    margin-bottom: 22px;
    font-size: clamp(54px, 5.5vw, 78px);
    line-height: .86;
  }
  #home .hero-bottom {
    width: min(620px, 52vw);
    gap: 24px;
    align-items: flex-end;
  }
  #home .hero-bottom > p {
    max-width: 470px;
    font-size: 17px;
    line-height: 1.42;
  }
  #home .hero-bottom .round-link {
    width: 100px;
    height: 100px;
    padding: 17px;
  }
}

/* Larger reading sizes requested by the client. */
.intro-copy p,
.experience-heading > p:last-child,
.impact-heading > p,
.insights-heading > div:last-child > p,
.contact-lead > p:last-child {
  font-size: clamp(18px, 1.15vw, 21px);
  line-height: 1.6;
}
.solution-copy > p:not(.eyebrow) {
  font-size: 18px;
  line-height: 1.62;
}
.values-grid article p,
.process-steps p,
.insights-types span {
  font-size: 16px;
  line-height: 1.6;
}
.article-grid article h3 {
  font-size: clamp(26px, 2.1vw, 36px);
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  font-size: 18px;
}
.contact-form label > span {
  font-size: 11px;
}

@media (max-width: 760px) {
  .intro-copy p,
  .experience-heading > p:last-child,
  .impact-heading > p,
  .insights-heading > div:last-child > p,
  .contact-lead > p:last-child,
  .solution-copy > p:not(.eyebrow) {
    font-size: 17px;
  }
  .values-grid article p,
  .process-steps p,
  .insights-types span {
    font-size: 15px;
  }
}

#vision .intro-copy p {
  color: #080808;
  font-weight: 500;
  text-shadow: 0 1px 0 rgba(255,255,255,.18);
}

/* Every travelling Motto uses the solid official red. */
body main > section .motto-section-shape,
body footer.site-footer .motto-section-shape {
  background: #d50022 !important;
  filter: none !important;
}

#experience .experience-heading > p:last-child {
  color: rgba(255,255,255,.94);
  font-weight: 500;
  text-shadow: 0 1px 0 rgba(0,0,0,.2);
}
#impact .impact-heading > p {
  color: #080808;
  font-weight: 500;
  text-shadow: 0 1px 0 rgba(255,255,255,.18);
}

/* Silver Motto exception for the red Pulse & Play contact section. */
#enter .motto-section-shape {
  background: linear-gradient(118deg, #555553 0%, #f7f7f4 18%, #92928f 36%, #ffffff 52%, #777775 70%, #ecece9 86%, #5d5d5b 100%) !important;
  filter: drop-shadow(0 16px 34px rgba(0,0,0,.28)) !important;
}

/* Contact form: one coherent silver control surface instead of a black box. */
#enter .contact-form,
#enter .contact-form.motto-lit {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(32px, 4vw, 58px);
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 42px 42px 112px 42px;
  background: linear-gradient(145deg, #fbfbf9 0%, #e9e9e5 58%, #c7c7c3 100%) !important;
  color: #111 !important;
  box-shadow: 0 28px 75px rgba(76,0,7,.28), inset 0 1px 0 #fff;
}
#enter .contact-form.motto-lit > .motto-light-layer,
#enter .contact-form.motto-lit:hover > .motto-light-layer,
#enter .contact-form.motto-lit:focus-within > .motto-light-layer,
#enter .contact-form.motto-lit.is-lit > .motto-light-layer {
  opacity: .78;
  filter: none;
  background:
    radial-gradient(circle at var(--light-x) var(--light-y), rgba(255,255,255,.9) 0, rgba(255,255,255,.26) 15%, transparent 34%),
    linear-gradient(118deg, transparent 15%, rgba(255,255,255,.42) 43%, transparent 68%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.46);
}
#enter .contact-form .field-row { gap: 22px; }
#enter .contact-form > label,
#enter .contact-form .field-row label { margin-bottom: 24px; }
#enter .contact-form label > span,
#enter .contact-form .form-end legend {
  margin-bottom: 10px;
  color: #3d3d3b !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
}
#enter .contact-form input,
#enter .contact-form select,
#enter .contact-form textarea {
  min-height: 64px;
  padding: 17px 20px;
  border: 1px solid #b9b9b5;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  color: #111;
  font-size: 17px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#enter .contact-form textarea {
  min-height: 154px;
  line-height: 1.5;
}
#enter .contact-form input:hover,
#enter .contact-form select:hover,
#enter .contact-form textarea:hover {
  border-color: #8f8f8b;
  background: #fff;
}
#enter .contact-form input:focus,
#enter .contact-form select:focus,
#enter .contact-form textarea:focus {
  border-color: #d50022;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(213,0,34,.12);
}
#enter .contact-form input::placeholder,
#enter .contact-form textarea::placeholder {
  color: #747472;
  opacity: 1;
}
#enter .contact-form .privacy-consent {
  align-items: center;
  gap: 12px;
  margin: 2px 0 22px !important;
  padding: 14px 16px;
  border: 1px solid rgba(213,0,34,.2);
  border-radius: 16px;
  background: rgba(213,0,34,.07);
  color: #2b2b29 !important;
  cursor: pointer;
}
#enter .contact-form .privacy-consent input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  min-height: 22px;
  margin: 0;
  padding: 0;
  border: 1.5px solid #777774;
  border-radius: 6px;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 14px 14px;
  box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
  cursor: pointer;
}
#enter .contact-form .privacy-consent input[type="checkbox"]:checked {
  border-color: #d50022;
  background-color: #d50022;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' d='m3 8.2 3.1 3L13 4.7'/%3E%3C/svg%3E");
}
#enter .contact-form .privacy-consent input[type="checkbox"]:focus-visible {
  outline: 3px solid rgba(213,0,34,.2);
  outline-offset: 3px;
}
#enter .contact-form .privacy-consent a {
  color: #a8001b;
  font-weight: 700;
  text-underline-offset: 3px;
}
#enter .contact-form .form-end {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  min-height: 142px;
  margin-top: 0;
  padding: 22px 24px;
  border: 1px solid rgba(88,88,85,.28);
  border-radius: 24px 24px 72px 24px;
  background: linear-gradient(125deg, #c2c2be 0%, #f6f6f3 43%, #d4d4d0 72%, #aaa9a5 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
#enter .contact-form .form-end fieldset {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  min-width: 0;
}
#enter .contact-form .form-end legend {
  width: 100%;
  margin-bottom: 8px;
}
#enter .contact-form .form-end fieldset label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #aaa9a6;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  color: #171716;
  font-size: 13px;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
#enter .contact-form .form-end fieldset label:hover {
  border-color: #777774;
  background: #fff;
}
#enter .contact-form .form-end fieldset label:has(input:checked) {
  border-color: #d50022;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(213,0,34,.1);
  font-weight: 700;
}
#enter .contact-form .form-end input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  border: 1.5px solid #8b8b87;
  border-radius: 50%;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
}
#enter .contact-form .form-end input[type="radio"]:checked {
  border-color: #d50022;
  background: #d50022;
  box-shadow: inset 0 0 0 4px #fff;
}
#enter .contact-form .form-end input[type="radio"]:focus-visible {
  outline: 3px solid rgba(213,0,34,.2);
  outline-offset: 3px;
}

@media (forced-colors: active) {
  #enter .contact-form .privacy-consent input[type="checkbox"],
  #enter .contact-form .form-end input[type="radio"] {
    appearance: auto;
  }
}
#enter .contact-form .submit-button.motto-button {
  flex: 0 0 auto;
  width: 168px;
  min-width: 168px;
  height: 126px;
  min-height: 126px;
  margin: 0;
  padding: 32px 27px !important;
  filter: drop-shadow(0 13px 18px rgba(92,0,10,.22)) !important;
}
#enter .contact-form .form-message,
#enter .contact-form .form-notice {
  color: #20201f;
  border-color: rgba(213,0,34,.45);
  background: rgba(255,255,255,.68);
}
@media (max-width: 760px) {
  #enter .contact-form,
  #enter .contact-form.motto-lit {
    padding: 26px 18px;
    border-radius: 28px 28px 72px 28px;
  }
  #enter .contact-form .field-row { gap: 0; }
  #enter .contact-form input,
  #enter .contact-form select,
  #enter .contact-form textarea {
    min-height: 58px;
    padding: 15px 16px;
    border-radius: 15px;
    font-size: 16px;
  }
  #enter .contact-form textarea { min-height: 140px; }
  #enter .contact-form .form-end {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 20px;
    border-radius: 22px 22px 54px 22px;
  }
#enter .contact-form .submit-button.motto-button {
    justify-self: end;
    width: 150px;
    min-width: 150px;
    height: 113px;
    min-height: 113px;
  }
}

/* Client review: content-safe Motto placement and richer editorial sections. */
#home .hero-media {
  z-index: 2 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100svh !important;
  min-height: 580px;
  margin: 0 0 -100svh !important;
  border-radius: 0 !important;
  clip-path: none !important;
  background: transparent !important;
  filter: none !important;
  overflow: hidden;
}
#home .hero-media::after { display: none !important; }
#home .hero-media video {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: min(72vw, 1380px);
  aspect-ratio: 1633 / 1228;
  object-fit: cover;
  object-position: center;
  -webkit-mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  transform: translate(-50%, -50%) translate(var(--motto-canvas-x), var(--motto-canvas-y)) scale(var(--motto-canvas-scale)) rotate(var(--motto-canvas-rotate));
  transform-origin: center;
  filter: saturate(1.15) contrast(1.1) brightness(.78);
  opacity: var(--motto-home-media, 0);
  will-change: transform, opacity;
}
#home .motto-section-shape {
  width: min(78vw, 1500px);
  background: #d50022 !important;
  filter: drop-shadow(0 20px 48px rgba(0,0,0,.38)) !important;
}
#home .hero-shade {
  z-index: 0;
  background: radial-gradient(circle at 50% 52%, rgba(213,0,34,.13), transparent 38%), #050505 !important;
}
#vision .split-heading {
  padding-top: clamp(72px, 8vw, 126px);
}
#vision .motto-section-shape {
  background: #d50022 !important;
  filter: none !important;
}
.solution-connectors {
  position: relative;
  z-index: 5;
  width: min(1500px, 100%);
  margin: 42px auto 54px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.solution-connectors > div {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 12px;
  color: #fff;
}
.solution-connectors > div::after {
  content: "";
  position: absolute;
  top: 66px;
  left: 50%;
  width: 1px;
  height: 46px;
  background: currentColor;
  opacity: .65;
}
.solution-connectors span {
  position: relative;
  width: 62px;
  height: 62px;
  border: 2px solid #d50022;
  border-radius: 50%;
  background: #180003;
  box-shadow: 0 0 0 8px rgba(213,0,34,.11);
}
.solution-connectors span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #d50022;
  transform: translate(-50%,-50%);
}
.solution-connectors > div:nth-child(2) span {
  border-color: #d2d2ce;
  box-shadow: 0 0 0 8px rgba(210,210,206,.11);
}
.solution-connectors > div:nth-child(2) span::after { background: #d2d2ce; }
.solution-connectors strong {
  font: 700 12px/1.2 var(--font-sora);
  letter-spacing: .1em;
  text-transform: uppercase;
}
#experience .solution-panels {
  position: relative;
  z-index: 6;
  background: #130002 !important;
}
.process-steps > div {
  padding: 12px 12px 26px !important;
  overflow: hidden;
}
.process-steps figure {
  height: 148px;
  margin: 0 0 20px;
  overflow: hidden;
  border-radius: 18px;
  background: #080808;
}
.process-steps figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.08) brightness(.78);
  transition: transform .45s ease, filter .45s ease;
}
.process-steps > div:hover figure img {
  transform: scale(1.055);
  filter: saturate(1.15) contrast(1.08) brightness(.9);
}
.process-steps h4 {
  margin: 22px 0 14px !important;
}
#impact .motto-section-shape {
  background: #d50022 !important;
  filter: none !important;
}
.work-card,
.work-card:nth-child(even),
.work-card.wide,
.work-card.tall {
  border-radius: 32px !important;
  border-color: #d50022 !important;
  clip-path: none !important;
}
.work-card:nth-child(even) {
  border-color: #aaa9a6 !important;
}
.trust-block {
  overflow: hidden;
}
.logo-marquee { display: none; }
.trust-marquees {
  display: grid;
  gap: 14px;
  margin-top: 72px;
}
.trust-marquee {
  overflow: hidden;
  padding: 13px 0;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 22px;
  background: rgba(8,8,8,.82);
}
.trust-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 16px;
  padding-right: 16px;
  animation: trust-marquee 26s linear infinite;
}
.trust-marquee-right .trust-track {
  animation-direction: reverse;
  animation-duration: 31s;
}
.trust-track img {
  width: 260px;
  height: 96px;
  padding: 17px 24px;
  border-radius: 15px;
  background: #fff;
  object-fit: contain;
}
@keyframes trust-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
#insights .motto-section-shape {
  background: #d50022 !important;
  filter: none !important;
}
#insights .insights-heading {
  position: relative;
  z-index: 6;
}
.newsletter::before { display: none !important; }
@media (max-width: 760px) {
  #home .hero-media video { width: 108vw; }
  #home .motto-section-shape { width: 118vw; }
  #vision .split-heading { padding-top: 92px; }
  .solution-connectors {
    margin: 34px auto 42px;
    gap: 10px;
  }
  .solution-connectors span {
    width: 48px;
    height: 48px;
  }
  .solution-connectors > div::after {
    top: 52px;
    height: 36px;
  }
  .solution-connectors strong {
    max-width: 150px;
    text-align: center;
    font-size: 10px;
  }
  .process-steps figure { height: 132px; }
  .trust-track img {
    width: 190px;
    height: 78px;
    padding: 13px 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .trust-track { animation-play-state: paused; }
  #home .hero-media video { will-change: auto; }
}

/* HOME stability: one transformed Motto layer, with the video inside it. */
#home .hero-media[hidden] {
  display: none !important;
}
#home .motto-section-canvas {
  z-index: 2;
}
#home .motto-section-shape.motto-home-shape {
  overflow: hidden;
  background: #d50022 !important;
  isolation: isolate;
}
#home .motto-section-shape.motto-home-shape > video {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 66%;
  display: block;
  width: 31%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center;
  border: clamp(2px, .28vw, 5px) solid #d2d2ce;
  border-radius: 50%;
  opacity: var(--motto-home-media, 0);
  transform: translate(-50%, -50%);
  filter: saturate(1.14) contrast(1.08) brightness(.78);
  box-shadow: 0 0 0 clamp(5px, .65vw, 12px) rgba(0,0,0,.2), 0 20px 60px rgba(0,0,0,.42);
  transition: opacity .24s linear;
  pointer-events: none;
}
@media (max-width: 760px) {
  #home .motto-section-shape.motto-home-shape > video {
    left: 63%;
    width: 38%;
  }
}

/* PROCESS: flat colours only; no fade or transparent gradient. */
#experience .process {
  background: #260004 !important;
  box-shadow: inset 0 0 0 1px rgba(213,0,34,.34);
}
#experience .process::before,
#experience .process::after {
  display: none !important;
}
#experience .process-steps > div,
#experience .process-steps > div:nth-child(odd) {
  background: #190d0f !important;
}
#experience .process-steps > div:nth-child(even) {
  background: #272123 !important;
}

/* Official Mainvision social-network icon sprite. */
.site-footer .socials {
  display: flex;
  grid-template-columns: none;
  flex-wrap: wrap;
  gap: 12px;
}
.site-footer .social-link {
  display: block;
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  overflow: hidden;
  border-radius: 50%;
  background-image: url("assets/images/social-icons-mainvision.png");
  background-repeat: no-repeat;
  background-size: 507.4% 100%;
  color: transparent;
  font-size: 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
  transition: transform .28s ease, filter .28s ease, box-shadow .28s ease, opacity .28s ease;
}
.site-footer .social-facebook { background-position: 0 center; }
.site-footer .social-youtube { background-position: 33.333% center; }
.site-footer .social-instagram { background-position: 66.667% center; }
.site-footer .social-linkedin { background-position: 100% center; }
.site-footer a.social-link:hover,
.site-footer a.social-link:focus-visible {
  transform: translateY(-4px) scale(1.06);
  filter: brightness(1.1) saturate(1.08);
  box-shadow: 0 13px 28px rgba(213,0,34,.3);
}
.site-footer .social-link.is-disabled {
  opacity: .42;
  cursor: default;
}
@media (max-width: 760px) {
  .site-footer .social-link {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }
}

/* Dedicated Mottoblog article reading experience. */
.mottoblog-page,
.single-post {
  background: #f7f7f4 !important;
}
.mottoblog-page .site-header,
.single-post .site-header,
.blog .site-header,
.archive .site-header {
  opacity: 1 !important;
}
.article-site-header .article-back {
  display: none;
  color: #fff;
  font: 700 11px/1 var(--font-sora);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.mottoblog-reader {
  min-height: 100vh;
  padding: 148px 5vw 120px;
  background:
    radial-gradient(circle at 8% 14%, rgba(213,0,34,.1), transparent 28%),
    #f7f7f4;
  color: #101010;
}
.mottoblog-article {
  width: min(1500px, 100%);
  margin: 0 auto;
}
.mottoblog-hero {
  min-height: 590px;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  align-items: center;
  gap: 7vw;
}
.mottoblog-heading {
  position: relative;
  z-index: 2;
}
.mottoblog-heading h1 {
  max-width: 1020px;
  margin: 24px 0 30px;
  font-size: clamp(54px, 7vw, 116px);
  line-height: .9;
  letter-spacing: -.065em;
}
.mottoblog-lead {
  max-width: 760px;
  margin: 0;
  color: #4f4f4c;
  font-size: clamp(19px, 1.55vw, 26px);
  line-height: 1.55;
}
.mottoblog-meta {
  margin-top: 36px;
  display: flex;
  gap: 28px;
  font: 700 11px/1.2 var(--font-sora);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.mottoblog-motto {
  min-height: 470px;
  display: grid;
  place-items: center;
}
.mottoblog-motto span {
  display: block;
  width: min(32vw, 510px);
  aspect-ratio: 1633 / 1228;
  background: #d50022;
  -webkit-mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  mask: url("assets/images/motto-symbol-red.png") center / 100% 100% no-repeat;
  transform: rotate(7deg);
}
.mottoblog-media {
  position: relative;
  min-height: 540px;
  aspect-ratio: 16 / 8;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #090909;
  box-shadow: 0 28px 80px rgba(63,0,8,.18);
}
.mottoblog-media img,
.mottoblog-media video {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 540px;
  object-fit: cover;
}

.hero-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.mottoblog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(60px, 9vw, 150px);
  padding: 90px 5vw 40px;
}
.mottoblog-copy {
  max-width: 820px;
  font-size: clamp(18px, 1.25vw, 22px);
  line-height: 1.78;
}
.mottoblog-copy h2 {
  margin: 70px 0 24px;
  font-size: clamp(38px, 4vw, 68px);
  line-height: .95;
  letter-spacing: -.05em;
}
.mottoblog-copy blockquote {
  margin: 70px 0;
  padding: 36px 0 36px 34px;
  border-left: 8px solid #d50022;
  font: 500 clamp(28px, 3vw, 48px)/1.22 var(--font-sora);
  letter-spacing: -.035em;
}
.mottoblog-aside {
  align-self: start;
  position: sticky;
  top: 130px;
  padding: 26px;
  border-radius: 24px;
  background: #111;
  color: #fff;
}
.mottoblog-aside .eyebrow { color: #aaa9a6; }
.mottoblog-aside nav {
  margin-top: 24px;
  display: grid;
}
.mottoblog-aside a {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-size: 15px;
  line-height: 1.35;
}
.article-footer { margin-top: 0; }
@media (max-width: 900px) {
  .article-site-header .desktop-nav { display: none; }
  .article-site-header .article-back { display: inline-flex; }
  .mottoblog-reader { padding: 110px 22px 80px; }
  .mottoblog-hero {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 55px 0 48px;
  }
  .mottoblog-heading h1 { font-size: clamp(48px, 13vw, 78px); }
  .mottoblog-motto {
    min-height: 220px;
    order: -1;
  }
  .mottoblog-motto span { width: min(70vw, 360px); }
  .mottoblog-media,
  .mottoblog-media img,
  .mottoblog-media video {
    min-height: 300px;
  }
  .mottoblog-media { aspect-ratio: 4 / 3; border-radius: 24px; }
  .mottoblog-layout {
    grid-template-columns: 1fr;
    gap: 54px;
    padding: 60px 4px 20px;
  }
  .mottoblog-aside { position: static; }
}

/* Conversão intermédia, qualificação de leads e confirmação. */
.conversion-cta {
  width: min(1500px, 100%);
  margin: 46px auto 76px;
  padding: clamp(24px, 3vw, 42px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 30px;
}
.conversion-cta-dark {
  background: linear-gradient(120deg, #171717, #3d0007 65%, #85101d);
  color: #fff;
}
.contact-calendly {
  position: relative;
  z-index: 5;
  width: min(1500px, 100%);
  margin: 42px auto 18px;
  padding: clamp(24px, 3vw, 38px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 28px;
  background: linear-gradient(120deg, #f7f7f4, #d3d3cf 62%, #fff);
  color: #111;
  box-shadow: 0 22px 60px rgba(75,0,8,.2);
}
.contact-calendly > div { display: grid; gap: 7px; max-width: 850px; }
.contact-calendly > div > span { color: #8b0014; font: 700 9px var(--font-geist-mono), Consolas, monospace; letter-spacing: .13em; text-transform: uppercase; }
.contact-calendly strong { font-size: clamp(21px, 2vw, 31px); line-height: 1.12; letter-spacing: -.04em; }
.contact-calendly small { color: #5f5f5c; font-size: 14px; line-height: 1.5; }
.contact-calendly .conversion-link { flex: 0 0 auto; }
.conversion-cta > div:first-child { display: grid; gap: 8px; max-width: 780px; }
.conversion-cta > div:last-child { display: flex; flex-wrap: wrap; gap: 10px; }
.conversion-cta span { font: 700 9px var(--font-geist-mono), Consolas, monospace; letter-spacing: .13em; text-transform: uppercase; opacity: .66; }
.conversion-cta strong { font-size: clamp(20px, 2vw, 31px); line-height: 1.16; letter-spacing: -.035em; }
.conversion-link {
  min-height: 52px;
  padding: 15px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border: 1px solid var(--red);
  border-radius: 999px;
  background: var(--red);
  color: #fff;
  font: 700 11px var(--font-geist-mono), Consolas, monospace;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s, background .2s, color .2s, border-color .2s;
}
.conversion-link:hover,
.conversion-link:focus-visible { transform: translateY(-2px); background: #fff; border-color: #fff; color: #111; }
.conversion-link-secondary { background: transparent; border-color: rgba(255,255,255,.52); }
.contact-intents {
  width: min(1500px, 100%);
  margin: 0 auto 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.contact-intent {
  position: relative;
  min-height: 178px;
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: start;
  gap: 10px 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 26px;
  background: rgba(15,15,15,.86);
  color: #fff;
  text-decoration: none;
  transition: transform .25s, background .25s, color .25s;
}
.contact-intent::after {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -66px;
  width: 150px;
  aspect-ratio: 1.4;
  background: var(--red);
  clip-path: polygon(0 0, 15% 3%, 30% 21%, 50% 28%, 70% 21%, 85% 3%, 100% 0, 100% 100%, 85% 97%, 70% 79%, 50% 72%, 30% 79%, 15% 97%, 0 100%);
  opacity: .72;
  transform: rotate(-16deg);
}
.contact-intent:hover,
.contact-intent:focus-visible { transform: translateY(-4px); background: #fff; color: #111; }
.contact-intent > span { grid-column: 1; color: var(--red); font: 700 9px var(--font-geist-mono), Consolas, monospace; }
.contact-intent strong { grid-column: 1; font-size: clamp(20px, 1.6vw, 28px); letter-spacing: -.04em; }
.contact-intent small { grid-column: 1; max-width: 320px; color: currentColor; font-size: 13px; line-height: 1.45; opacity: .65; }
.contact-intent b { grid-column: 2; grid-row: 1 / span 3; align-self: center; position: relative; z-index: 2; font-size: 20px; }
#contact-details { scroll-margin-top: 84px; }
.conversion-confirmation {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  padding: 160px 8vw 100px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 80% 30%, #5a0009, transparent 38%), #080808;
  color: #fff;
}
.confirmation-motto {
  position: absolute;
  right: -7vw;
  top: 10vh;
  width: min(54vw, 850px);
  aspect-ratio: 1.4;
  background: var(--red);
  clip-path: polygon(0 0, 15% 3%, 30% 21%, 50% 28%, 70% 21%, 85% 3%, 100% 0, 100% 100%, 85% 97%, 70% 79%, 50% 72%, 30% 79%, 15% 97%, 0 100%);
  opacity: .9;
  transform: rotate(-8deg);
}
.confirmation-copy { position: relative; z-index: 2; width: min(1100px, 100%); }
.confirmation-copy h1 { margin: 26px 0 36px; font-size: clamp(62px, 9vw, 150px); line-height: .82; letter-spacing: -.075em; }
.confirmation-copy h1 i { font-weight: 300; }
.confirmation-copy > p:not(.eyebrow) { max-width: 680px; color: rgba(255,255,255,.74); font-size: clamp(18px, 1.7vw, 25px); line-height: 1.55; }
.confirmation-actions { margin-top: 46px; display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }
.confirmation-actions > a:not(.conversion-link) { color: #fff; font: 700 11px var(--font-geist-mono), Consolas, monospace; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 900px) {
  .conversion-cta { align-items: flex-start; flex-direction: column; }
  .contact-intents { grid-template-columns: 1fr; }
  .contact-intent { min-height: 142px; }
  .confirmation-motto { width: 85vw; right: -30vw; top: 15vh; }
  .contact-calendly { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
  .conversion-cta { margin: 30px auto 54px; padding: 22px; border-radius: 22px; }
  .conversion-cta > div:last-child { width: 100%; }
  .conversion-link { width: 100%; }
  .contact-intent { padding: 22px; border-radius: 22px; }
  .contact-calendly { margin-top: 28px; padding: 22px; border-radius: 22px; }
  .contact-calendly .conversion-link { width: 100%; }
  .conversion-confirmation { padding: 130px 22px 70px; align-items: start; }
  .confirmation-copy h1 { font-size: clamp(56px, 19vw, 92px); }
}

/* Enter redesenhado: apresentação + Calendly à esquerda, formulário à direita. */
#enter.contact {
  grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr);
  gap: clamp(42px, 6vw, 108px);
  align-items: start;
  background:
    radial-gradient(circle at 8% 26%, rgba(255,255,255,.12), transparent 22%),
    linear-gradient(135deg, #f40000 0%, #c7000b 58%, #710009 100%) !important;
}
#enter .contact-lead {
  position: sticky;
  z-index: 4;
  top: 112px;
  padding: clamp(32px, 4vw, 58px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 34px 34px 110px 34px;
  background: linear-gradient(145deg, rgba(10,0,1,.96), rgba(66,0,8,.94));
  box-shadow: 0 30px 90px rgba(68,0,8,.3);
}
#enter .contact-lead h2 {
  margin: 22px 0 0;
  font-size: clamp(66px, 6.4vw, 108px);
  line-height: .82;
  letter-spacing: -.075em;
}
#enter .contact-lead > p:last-of-type {
  max-width: 480px;
  margin: 32px 0 0;
  color: rgba(255,255,255,.72);
}
#enter .contact-calendly {
  width: 100%;
  margin: 42px 0 0;
  padding: 28px 0 0;
  align-items: flex-start;
  flex-direction: column;
  gap: 22px;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.24);
  border-radius: 0;
  background: transparent;
  color: #fff;
  box-shadow: none;
}
#enter .contact-calendly > div > span { color: #ff5968; }
#enter .contact-calendly strong { max-width: 480px; color: #fff; font-size: clamp(20px, 1.7vw, 27px); }
#enter .contact-calendly small { max-width: 440px; color: rgba(255,255,255,.62); }
#enter .contact-calendly .conversion-link { position: relative; z-index: 2; width: auto; }
#enter .contact-form,
#enter .contact-form.motto-lit { margin: 0; }

@media (max-width: 1000px) {
  #enter.contact { grid-template-columns: 1fr; }
  #enter .contact-lead { position: relative; top: auto; border-radius: 30px 30px 78px 30px; }
}

@media (max-width: 600px) {
  #enter .contact-lead { padding: 30px 22px 40px; border-radius: 24px 24px 64px 24px; }
  #enter .contact-lead h2 { font-size: clamp(58px, 18vw, 82px); }
  #enter .contact-calendly .conversion-link { width: 100%; }
}

/* Revisão cliente — agosto 2026. */
.hero-narrative { max-width: 660px; display: grid; gap: 10px; }
.hero-narrative p { margin: 0; font-size: clamp(17px, 1.12vw, 22px); line-height: 1.48; }
.hero-narrative p:first-child { font-weight: 700; }
.vision-lead { margin-bottom: 24px !important; color: #111 !important; font-size: clamp(21px, 1.7vw, 30px) !important; font-weight: 700; line-height: 1.25 !important; }
.section-showreel { position: relative; width: min(1320px, 100%); margin: clamp(48px, 7vw, 110px) auto; aspect-ratio: 16 / 7.5; overflow: hidden; border-radius: 34px; background: #090909; box-shadow: 0 28px 80px rgba(0,0,0,.18); }
.section-showreel video { width: 100%; height: 100%; display: block; object-fit: cover; }
.section-showreel-light::after,
.section-showreel-impact::after { content: ""; position: absolute; inset: 0; pointer-events: none; border: 1px solid rgba(226,0,25,.55); border-radius: inherit; }
.vision-left-column { display: grid; gap: clamp(48px, 5.5vw, 86px); align-self: stretch; }
#vision .split-heading { align-items: start; }
.vision-video-inline { position: relative; width: min(520px, 90%); margin-top: clamp(220px, 18vw, 320px); aspect-ratio: 16 / 9; align-self: start; overflow: hidden; border: 1px solid rgba(213,0,34,.42); border-radius: 30px; background: #080808; box-shadow: 0 24px 64px rgba(25,0,4,.16); }
.vision-video-inline video { display: block; width: 100%; height: 100%; object-fit: cover; }
.vision-video-inline::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); pointer-events: none; }
.solution-card { isolation: isolate; }
.solution-video { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.solution-card:has(.solution-video) .solution-bg { opacity: .2; }

.idea-process { position: relative; z-index: 3; width: min(1500px, 100%); margin: clamp(90px, 11vw, 180px) auto 0; padding: clamp(48px, 5vw, 82px); overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 38px; background: linear-gradient(130deg, rgba(32,0,4,.94), rgba(108,0,12,.82)); }
.idea-process-intro { max-width: 820px; }
.idea-process-intro h3 { margin: 12px 0 0; color: #fff; font-size: clamp(80px, 10vw, 170px); line-height: .8; letter-spacing: -.08em; }
.idea-process-intro strong { display: block; max-width: 760px; margin-top: 28px; color: #fff; font-size: clamp(24px, 2.2vw, 38px); line-height: 1.08; }
.idea-process-intro > p:last-child { max-width: 720px; margin: 20px 0 0; color: rgba(255,255,255,.7); font-size: clamp(16px, 1.15vw, 21px); line-height: 1.55; }
.idea-flow { --idea-progress: 0; position: relative; margin-top: clamp(55px, 7vw, 96px); padding-top: 58px; }
.idea-flow::before,
.idea-flow::after { content: ""; position: absolute; left: 0; top: 18px; height: 3px; border-radius: 10px; }
.idea-flow::before { right: 0; background: rgba(255,255,255,.2); }
.idea-flow::after { width: calc(var(--idea-progress) * 100%); background: linear-gradient(90deg, #ed001e, #fff); box-shadow: 0 0 22px rgba(255,255,255,.36); transition: width .12s linear; }
.idea-origin { position: absolute; z-index: 2; left: 0; top: -16px; width: 72px; aspect-ratio: 1.42; background: #e30020; clip-path: polygon(0 0,15% 3%,30% 21%,50% 28%,70% 21%,85% 3%,100% 0,100% 100%,85% 97%,70% 79%,50% 72%,30% 79%,15% 97%,0 100%); transform: translate3d(var(--idea-origin-x, 0px), var(--idea-origin-y, 0px), 0); transition: transform .12s linear; }
.idea-flow ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 2.4vw, 42px); margin: 0; padding: 0; list-style: none; }
.idea-flow li { position: relative; min-height: 270px; padding: 30px 24px; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; background: rgba(4,0,1,.36); opacity: .46; transform: translateY(20px); transition: opacity .35s, transform .35s, border-color .35s, background .35s; }
.idea-flow li.is-active { opacity: 1; transform: none; border-color: #ed001e; background: rgba(237,0,30,.12); }
.idea-letter { color: #ed001e; font-size: clamp(58px, 5vw, 88px); font-weight: 800; line-height: .9; }
.idea-flow h4 { margin: 26px 0 12px; color: #fff; font-size: clamp(22px, 1.7vw, 30px); }
.idea-flow p { margin: 0; color: rgba(255,255,255,.7); font-size: clamp(15px, 1vw, 18px); line-height: 1.55; }

.impact-intro { max-width: 650px; display: grid; gap: 18px; }
.impact-intro p,
.impact-intro strong { margin: 0; font-size: clamp(18px, 1.35vw, 24px); line-height: 1.5; }
.impact-intro strong { color: var(--red); }
.trust-block { overflow: hidden; }
.testimonial-carousel { position: relative; width: min(1050px, 100%); margin: clamp(40px, 6vw, 85px) auto; }
.testimonial-slide { min-height: 260px; margin: 0; padding: clamp(34px, 5vw, 72px); display: flex; flex-direction: column; justify-content: space-between; border: 1px solid rgba(255,255,255,.23); border-radius: 34px; background: rgba(23,0,3,.6); color: #fff; font-size: clamp(27px, 3vw, 52px); line-height: 1.12; }
.testimonial-slide[hidden] { display: none; }
.testimonial-slide footer { margin-top: 32px; color: rgba(255,255,255,.65); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.testimonial-controls { margin-top: 18px; display: flex; align-items: center; justify-content: flex-end; gap: 14px; color: #fff; font: 700 11px var(--font-geist-mono), Consolas, monospace; }
.testimonial-controls button { width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; }
.testimonial-dots { display: flex; align-items: center; gap: 9px; margin: 0 4px; }
.testimonial-dots button { width: 10px; height: 10px; padding: 0; border: 0; background: rgba(255,255,255,.42); transition: transform .2s ease, background .2s ease; }
.testimonial-dots button:hover,
.testimonial-dots button:focus-visible { background: #fff; transform: scale(1.25); }
.testimonial-dots button.is-active { background: #fff; transform: scale(1.25); }
.trust-marquees { display: grid; gap: 12px; }
.trust-marquee { overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 22px; background: rgba(0,0,0,.35); }
.trust-track { width: max-content; display: flex; align-items: center; gap: 70px; padding: 24px 35px; animation: trust-scroll 30s linear infinite; }
.trust-marquee-right .trust-track { animation-direction: reverse; }
.trust-track img { width: 150px; height: 58px; object-fit: contain; filter: grayscale(1) brightness(2); opacity: .75; }
@keyframes trust-scroll { to { transform: translateX(-50%); } }

#enter.contact { grid-template-rows: auto auto auto; }
#enter .contact-lead { grid-column: 1; grid-row: 1 / span 2; }
#enter .contact-intents { grid-column: 2; grid-row: 1; margin: 0 0 24px; }
#enter .contact-form { grid-column: 2; grid-row: 2; }
#enter .contact-direct { grid-column: 1 / -1; grid-row: 3; }
.contact-intent h3 { grid-column: 1; margin: 0; font-size: clamp(20px, 1.6vw, 28px); letter-spacing: -.04em; }
.contact-intent p { grid-column: 1; max-width: 320px; margin: 0; color: currentColor; font-size: 13px; line-height: 1.45; opacity: .65; }
.form-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid rgba(0,0,0,.16); }
.form-heading span { color: var(--red); font: 700 10px var(--font-geist-mono), Consolas, monospace; letter-spacing: .12em; text-transform: uppercase; }
.form-heading strong { font-size: clamp(22px, 1.8vw, 30px); }
.contact-direct { margin-top: clamp(52px, 7vw, 96px); padding: clamp(28px, 4vw, 56px); display: grid; grid-template-columns: 1.1fr 1fr 1fr 1.35fr; gap: 28px; border: 1px solid rgba(255,255,255,.3); border-radius: 30px; background: rgba(30,0,4,.5); color: #fff; }
.contact-direct > div { display: grid; align-content: start; gap: 10px; }
.contact-direct a { color: inherit; text-decoration: none; }
.contact-direct address { display: grid; gap: 10px; color: rgba(255,255,255,.72); font-style: normal; line-height: 1.55; }
.contact-direct address strong { color: #fff; }
.presentation-download { display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 6px 14px; padding: 22px; border: 1px solid rgba(255,255,255,.35); border-radius: 20px; }
.presentation-download small { opacity: .58; }
.presentation-download span { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 22px; }

body.single-mv_project .project-viewer-video { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; background: #000; }
body.single-mv_project .project-viewer-image[hidden],
body.single-mv_project .project-viewer-video[hidden] { display: none !important; }
.project-thumbnail video { width: 100%; height: 100%; display: block; object-fit: cover; }
.project-thumbnail-play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgba(0,0,0,.22); font-size: 18px; }

@media (max-width: 1000px) {
  .idea-flow { padding-top: 0; padding-left: 52px; }
  .idea-flow::before, .idea-flow::after { left: 19px; top: 0; width: 3px; height: 100%; }
  .idea-flow::after { height: calc(var(--idea-progress) * 100%); }
  .idea-origin { left: -16px; top: 0; }
  .idea-flow ol { grid-template-columns: 1fr; }
  .idea-flow li { min-height: 0; }
  #enter.contact { display: grid; grid-template-columns: 1fr; }
  #enter .contact-lead, #enter .contact-intents, #enter .contact-form, #enter .contact-direct { grid-column: 1; grid-row: auto; }
  #enter .contact-intents { margin-top: 0; }
  .contact-direct { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .section-showreel { aspect-ratio: 4 / 3; border-radius: 22px; }
  .vision-left-column { gap: 38px; }
  .vision-video-inline { width: 100%; margin-top: 340px; aspect-ratio: 4 / 3; border-radius: 22px; }
  .idea-process { padding: 34px 20px; border-radius: 26px; }
  .idea-flow { padding-left: 38px; }
  .contact-direct { grid-template-columns: 1fr; }
  .form-heading { align-items: flex-start; flex-direction: column; }
}

/* Revisão do cliente — setembro 2026. */
body,
button,
input,
textarea,
select,
.desktop-nav,
.language-switcher,
.mobile-language-switcher,
.eyebrow,
.section-index,
.article-meta,
.footer-label { font-family: var(--font-roboto); }
h1, h2, h3, h4,
.mobile-menu-links span { font-family: var(--font-sora); }

/* Barra fixa: usa exatamente o logótipo oficial presente no footer. */
.site-header .header-brand { width: clamp(150px, 13vw, 220px); }
.header-brand-layers { position: relative; display: block; width: 100%; aspect-ratio: 2441 / 629; }
.header-brand-layers .brand-logo-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.header-brand-layers .header-brand-motto { inset: 0 auto 0 0; width: 18%; height: 100%; object-fit: contain; clip-path: none; filter: none; }
.header-brand-wordmark {
  /* The source asset also contains the silver icon. Crop through the clear
     gap between that icon and the M so only the white lettering remains. */
  clip-path: inset(0 0 0 24.5%);
  filter: brightness(0) invert(1);
}
.footer-brand { width: clamp(280px, 31vw, 470px); }
.footer-brand .header-brand-layers { width: 100%; }

/* Na Home, apenas o pequeno CTA é prateado; o Motto de fundo mantém-se vermelho. */
#home .motto-section-shape.motto-home-shape { background: #d50022 !important; }
#home .round-link.motto-button { color: #111 !important; }
#home .round-link.motto-button::before {
  background: linear-gradient(118deg, #555553 0%, #f7f7f4 18%, #92928f 36%, #fff 52%, #777775 70%, #ecece9 86%, #5d5d5b 100%) !important;
  filter: drop-shadow(0 14px 28px rgba(0,0,0,.34));
}
#home .round-link.motto-button:hover,
#home .round-link.motto-button:focus-visible { color: #111 !important; }

/* Experience: dois serviços autónomos, lado a lado, com o símbolo completo. */
#experience > .motto-section-canvas { display: none !important; }
#experience .solution-showcase-heading h2 {
  max-width: 1180px;
  margin-inline: auto;
  letter-spacing: -.055em !important;
  text-transform: none;
}
#experience .solution-showcase-stage { width: min(1500px, 100%); margin-top: clamp(42px, 5vw, 72px); }
#experience .solution-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.2vw, 34px); }
#experience .solution-center-motto {
  display: block;
  top: 50%;
  width: clamp(76px, 6.5vw, 110px);
  padding: 14px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  background: rgba(0,0,0,.82);
  filter: drop-shadow(0 14px 30px rgba(0,0,0,.5));
}
#experience .solution-card,
#experience .solution-card:first-child,
#experience .solution-card:last-child { min-height: clamp(570px, 45vw, 700px); border-radius: 30px; }
#experience .solution-card::after,
#experience .solution-card.digital::after { background: linear-gradient(180deg, rgba(0,0,0,.04) 12%, rgba(3,3,3,.92) 70%) !important; }
#experience .solution-copy,
#experience .digital .solution-copy { width: 100%; margin: auto 0 0; padding: clamp(34px, 3.4vw, 54px); text-align: left; }
#experience .digital .solution-copy h3 { margin-left: 0; }
#experience .solution-copy h3 { max-width: 590px; }
#experience .solution-features { margin-bottom: 22px; }
#experience .solution-copy .video-link { justify-content: flex-start; }

/* People: frase contínua, fotografia aprovada e enquadramento mais legível. */
.join-banner .join-image { background-position: center 48%; }
.join-banner .join-copy > p:not(.eyebrow) { text-wrap: pretty; }

/* Enter: símbolo vermelho oficial, inteiro e contido; sem decoração prateada. */
#enter > .motto-section-canvas { display: none !important; }
#enter .contact-lead { padding-top: clamp(118px, 10vw, 164px); }
.contact-motto-mark {
  position: absolute;
  top: 30px;
  right: 34px;
  display: block;
  width: clamp(84px, 8vw, 126px);
  height: auto;
  object-fit: contain;
}

@media (max-width: 900px) {
  #experience .solution-panels { grid-template-columns: 1fr; }
  #experience .solution-center-motto { display: none; }
}

/* Vision copy approved in September 2026. */
#vision .vision-lead { margin-bottom: 24px; }
#vision .vision-lead p { margin: 0; color: #111; font-size: clamp(21px, 1.7vw, 30px); font-weight: 700; line-height: 1.25; }
#vision .vision-copy-block p { margin: 0 0 22px; }
#vision .vision-copy-block strong { color: var(--red); font-weight: 800; }

/* Client brands move slowly; recommended venues remain static and distinct. */
.trust-partner-groups { display: grid; gap: clamp(42px, 6vw, 76px); margin-top: clamp(50px, 7vw, 92px); }
.partner-logo-group { display: grid; gap: 18px; }
.partner-group-heading { display: flex; align-items: center; gap: 14px; color: #fff; }
.partner-group-heading span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font: 700 10px var(--font-geist-mono), Consolas, monospace; }
.partner-group-heading h4 { margin: 0; color: #fff; font-size: clamp(22px, 2.2vw, 36px); letter-spacing: -.035em; }
.trust-partner-groups .trust-marquee { border-radius: 26px; }
.trust-partner-groups .trust-track { gap: clamp(52px, 5vw, 88px); padding: 38px 52px; animation-duration: 72s; }
.trust-partner-groups .trust-track img {
  width: clamp(240px, 19vw, 330px);
  height: 118px;
  padding: 18px 28px;
  box-sizing: border-box;
  flex: 0 0 auto;
  object-fit: contain;
  object-position: center;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
}
.trust-partner-groups .trust-marquee:hover .trust-track,
.trust-partner-groups .trust-marquee:focus-within .trust-track { animation-play-state: paused; }
.venue-logo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.venue-logo-grid > div { min-height: 150px; padding: 28px; display: grid; place-items: center; border: 1px solid rgba(0,0,0,.1); border-radius: 24px; background: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.venue-logo-grid img { width: min(240px, 88%); height: 84px; object-fit: contain; filter: none; opacity: 1; }

/* Full Blog archive migrated from mainvision.pt. */
.blog-archive-page { position: relative; min-height: 100vh; padding: 0 clamp(20px, 4vw, 72px) clamp(80px, 10vw, 150px); overflow: hidden; isolation: isolate; background: #f3f3f1 !important; color: #090909; }
.blog-archive-page section::before,
.blog-archive-page section::after { content: none !important; display: none !important; }
.blog-archive-hero { min-height: 520px; margin: 0 calc(clamp(20px, 4vw, 72px) * -1); padding: 160px clamp(26px, 8vw, 150px) 74px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 30vw); align-items: end; overflow: hidden; background: #050505; color: #fff; }
.blog-archive-hero > div { max-width: 990px; }
.blog-archive-hero h1 { max-width: 900px; margin: 20px 0 28px; color: #fff; font-size: clamp(58px, 7.8vw, 132px); line-height: .9; letter-spacing: -.07em; }
.blog-archive-hero p:last-child { max-width: 720px; margin: 0; color: rgba(255,255,255,.68); font-size: clamp(17px, 1.3vw, 22px); line-height: 1.5; }
.blog-archive-hero img { justify-self: end; width: min(260px, 23vw); opacity: .96; transform: rotate(-8deg); }
.blog-category-nav { margin: 0 calc(clamp(20px, 4vw, 72px) * -1) clamp(60px, 7vw, 100px); padding: 18px clamp(20px, 4vw, 72px); display: flex; gap: 10px; overflow-x: auto; border-bottom: 1px solid rgba(0,0,0,.13); background: #fff; }
.blog-category-nav a { min-height: 42px; padding: 10px 16px; display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(0,0,0,.2); border-radius: 999px; color: #171717; font-size: 14px; font-weight: 700; white-space: nowrap; text-decoration: none; }
.blog-category-nav a span { color: rgba(0,0,0,.48); font: 700 11px var(--font-geist-mono), Consolas, monospace; }
.blog-category-nav a:hover,
.blog-category-nav a:focus-visible,
.blog-category-nav a.is-active { border-color: var(--red); background: var(--red); color: #fff; }
.blog-category-nav a.is-active span { color: rgba(255,255,255,.72); }
.blog-archive-layout { width: min(1560px, 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 330px); gap: clamp(44px, 6vw, 96px); align-items: start; }
.blog-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr)); gap: clamp(26px, 3vw, 42px); align-items: stretch; }
.blog-card { position: relative !important; z-index: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(0,0,0,.12); border-radius: 28px; background: #fff; box-shadow: 0 18px 48px rgba(0,0,0,.07); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.blog-card::before { content: "" !important; position: absolute; z-index: 4; inset: 0 0 auto; width: 100%; height: 5px; display: block !important; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.blog-card:hover { border-color: rgba(213,0,34,.42); box-shadow: 0 24px 60px rgba(0,0,0,.12); transform: translateY(-5px); }
.blog-card:hover::before { transform: scaleX(1); }
.blog-card-image { position: relative; aspect-ratio: 16 / 9; display: grid; overflow: hidden; border-radius: 0; background-color: #111; background-position: center; background-size: cover; transition: filter .3s ease; }
.blog-card-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.28)); transition: background .25s ease; }
.blog-card-image:hover::after { background: linear-gradient(180deg, transparent 38%, rgba(213,0,34,.42)); }
.blog-card-image > span { position: absolute; z-index: 2; right: 18px; bottom: 18px; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.76); border-radius: 50%; background: rgba(0,0,0,.3); color: #fff; font-size: 20px; backdrop-filter: blur(7px); transition: background .25s ease, transform .25s ease; }
.blog-card-image:hover > span { background: var(--red); transform: rotate(8deg); }
.blog-card-image > img { width: 90px; justify-self: center; align-self: center; }
.blog-card-content { flex: 1; padding: clamp(22px, 2.4vw, 32px); display: flex; flex-direction: column; }
.blog-card-meta { margin: 0 0 22px; padding-bottom: 16px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; border-bottom: 1px solid rgba(0,0,0,.1); color: rgba(0,0,0,.55); font: 700 12px var(--font-geist-mono), Consolas, monospace; letter-spacing: .04em; text-transform: uppercase; }
.blog-card-meta time { color: var(--red); }
.blog-card-meta span { max-width: 70%; text-align: right; }
.blog-card h2 { margin: 0 0 16px; font-size: clamp(27px, 2.1vw, 37px); line-height: 1.08; letter-spacing: -.045em; }
.blog-card h2 a { color: inherit; text-decoration: none; }
.blog-card-excerpt { margin: 0; display: -webkit-box; overflow: hidden; color: rgba(0,0,0,.66); font-size: 16px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.blog-read-more { align-self: flex-start; min-height: 42px; margin-top: 24px; padding: 10px 16px; display: inline-flex; align-items: center; gap: 12px; border: 1px solid rgba(0,0,0,.18); border-radius: 999px; color: #111; font-size: 14px; font-weight: 800; text-decoration: none; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.blog-read-more:hover,
.blog-read-more:focus-visible { border-color: var(--red); background: var(--red); color: #fff; }
.blog-sidebar { position: sticky; top: 118px; display: grid; gap: 26px; }
.blog-sidebar > div { padding: 28px; border: 1px solid rgba(0,0,0,.13); border-radius: 24px; background: #fff; }
.blog-sidebar ul { margin: 20px 0 0; padding: 0; list-style: none; }
.blog-sidebar li + li { border-top: 1px solid rgba(0,0,0,.1); }
.blog-sidebar li a { padding: 15px 0; display: flex; justify-content: space-between; gap: 20px; color: #111; font-size: 15px; text-decoration: none; }
.blog-sidebar li b { color: var(--red); font: 700 12px var(--font-geist-mono), Consolas, monospace; }
.blog-recent { padding: 18px 0 0; display: grid; gap: 7px; color: #111; text-decoration: none; }
.blog-recent + .blog-recent { margin-top: 18px; border-top: 1px solid rgba(0,0,0,.1); }
.blog-recent time { color: rgba(0,0,0,.48); font: 700 11px var(--font-geist-mono), Consolas, monospace; }
.blog-recent strong { font-size: 16px; line-height: 1.35; }
.blog-archive-page .navigation.pagination { width: min(1560px, 100%); margin: 74px auto 0; }
.blog-archive-page .nav-links { display: flex; gap: 8px; }
.blog-archive-page .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; display: grid; place-items: center; border: 1px solid rgba(0,0,0,.2); border-radius: 50%; color: #111; text-decoration: none; }
.blog-archive-page .page-numbers.current { border-color: var(--red); background: var(--red); color: #fff; }
.blog-archive-newsletter { width: min(1380px, 100%); margin: clamp(72px, 9vw, 130px) auto 0; color: #fff; }
.blog-archive-newsletter h2 { margin: 0; color: #fff; font-size: clamp(38px, 4.6vw, 72px); line-height: 1; }
.blog-archive-newsletter a { color: inherit; }

/* Clean semantic article content imported from the former Avada installation. */
.mottoblog-copy > :first-child { margin-top: 0; }
.mottoblog-copy h2,
.mottoblog-copy h3,
.mottoblog-copy h4,
.mottoblog-copy h5 { margin: 2.2em 0 .7em; line-height: 1.12; letter-spacing: -.035em; }
.mottoblog-copy h2 { font-size: clamp(30px, 3vw, 48px); }
.mottoblog-copy h3 { font-size: clamp(25px, 2.4vw, 38px); }
.mottoblog-copy p,
.mottoblog-copy li { font-size: clamp(17px, 1.15vw, 20px); line-height: 1.75; }
.mottoblog-copy ul,
.mottoblog-copy ol { margin: 1.4em 0; padding-left: 1.35em; }
.mottoblog-copy img { width: 100%; height: auto; margin: 30px 0; display: block; border-radius: 20px; }
.mottoblog-copy figure { margin: 38px 0; }
.mottoblog-copy iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; display: block; border: 0; border-radius: 20px; background: #090909; }
.mottoblog-copy a { color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.mottoblog-tags { margin-top: 54px; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 9px; border-top: 1px solid rgba(0,0,0,.14); }
.mottoblog-tags span,
.mottoblog-tags a { padding: 8px 12px; border: 1px solid rgba(0,0,0,.18); border-radius: 999px; font-size: 13px; font-weight: 700; text-decoration: none; }
.mottoblog-tags span { border-color: var(--red); background: var(--red); color: #fff; }

@media (max-width: 1000px) {
  .blog-archive-layout { grid-template-columns: 1fr; }
  .blog-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .blog-archive-page { padding-inline: 16px; }
  .blog-archive-hero { min-height: 470px; margin-inline: -16px; padding: 130px 22px 54px; grid-template-columns: 1fr; }
  .blog-archive-hero img { display: none; }
  .blog-category-nav { margin-inline: -16px; padding-inline: 16px; }
  .blog-card-grid,
  .blog-sidebar,
  .venue-logo-grid { grid-template-columns: 1fr; }
  .blog-card { border-radius: 20px; }
  .blog-card-image { border-radius: 0; }
  .blog-card-content { padding: 22px 20px 24px; }
  .blog-card-meta span { max-width: 100%; text-align: left; }
  .trust-partner-groups .trust-track { padding: 26px 32px; animation-duration: 82s; }
  .trust-partner-groups .trust-track img { width: 180px; height: 72px; }
}

/* Modal de candidatura — mantém a secção People limpa até existir intenção. */
body.application-modal-open { overflow: hidden; }
dialog.application-dialog {
  position: fixed !important;
  inset: 0;
  z-index: 10000 !important;
  width: min(1180px, calc(100% - 40px));
  max-width: none;
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 32px;
  background: #090909;
  color: #fff;
  box-shadow: 0 36px 120px rgba(0,0,0,.62);
}
dialog.application-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(12px); }
.application-dialog .application-form { width: 100%; margin: 0; border-radius: 0; }
.application-close {
  position: absolute;
  z-index: 4;
  top: 22px;
  right: 22px;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  background: rgba(0,0,0,.38);
  color: #fff;
  font: 300 28px/1 var(--font-roboto);
  cursor: pointer;
}
.application-close:hover,
.application-close:focus-visible { border-color: var(--red); background: var(--red); }
@media (max-width: 620px) {
  dialog.application-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); border-radius: 22px; }
  .application-close { top: 14px; right: 14px; width: 42px; height: 42px; }
  .application-dialog .application-heading { padding-right: 38px; }
}

/* Candidaturas — formulário privado integrado na secção People. */
.application-form {
  width: min(1500px, 100%);
  margin: 0 auto clamp(80px, 10vw, 150px);
  padding: clamp(34px, 5vw, 76px);
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(38px, 7vw, 110px);
  border-radius: 0 0 38px 38px;
  background: linear-gradient(135deg, #170003, #090909 62%);
  color: #fff;
}
.application-heading h3 { max-width: 520px; margin: 16px 0 24px; color: #fff; font-size: clamp(36px, 3.5vw, 58px); line-height: .98; }
.application-heading > p:last-child { max-width: 520px; margin: 0; color: rgba(255,255,255,.66); line-height: 1.6; }
.application-fields { min-width: 0; }
.application-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.application-field-textarea,
.application-field-file { grid-column: 1 / -1; }
.application-form .field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.application-form label:not(.hp-field) { display: block; margin: 0 0 18px; }
.application-form label > span { display: block; margin: 0 0 8px; color: rgba(255,255,255,.66); font: 700 10px var(--font-geist-mono), monospace; letter-spacing: .08em; text-transform: uppercase; }
.application-form input:not([type="checkbox"]),
.application-form select,
.application-form textarea {
  width: 100%;
  min-height: 50px;
  padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 7px;
  outline: 0;
  background: rgba(255,255,255,.08);
  color: #fff;
  font: 500 14px var(--font-roboto);
}
.application-form select option { color: #111; background: #fff; }
.application-form textarea { min-height: 120px; resize: vertical; }
.application-form input:focus,
.application-form select:focus,
.application-form textarea:focus { border-color: var(--red); box-shadow: 0 0 0 2px rgba(237,0,30,.18); }
.application-form .file-field input { padding: 10px; }
.application-form .file-field small { display: block; margin-top: 7px; color: rgba(255,255,255,.5); }
.application-form .privacy-consent { display: flex !important; align-items: flex-start; gap: 9px; }
.application-form .privacy-consent input { flex: 0 0 auto; margin-top: 2px; }
.application-form .privacy-consent span { margin: 0; text-transform: none; letter-spacing: 0; }
.application-form .privacy-consent a { color: #fff; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 3px; }
.application-form .application-submit { margin-top: 10px; border: 0; color: #fff; cursor: pointer; }
.application-form .form-notice { grid-column: 1 / -1; margin: 0 0 18px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.32); border-radius: 7px; }
.application-form .form-notice.error { border-color: var(--red); }
@media (max-width: 900px) {
  .application-form { grid-template-columns: 1fr; border-radius: 0 0 26px 26px; }
}
@media (max-width: 620px) {
  .application-form { padding: 34px 22px 44px; }
  .application-field-grid { grid-template-columns: 1fr; }
  .application-field-textarea,
  .application-field-file { grid-column: auto; }
  .application-form .field-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 620px) {
  .site-header .header-brand { width: 148px; }
  #enter .contact-lead { padding-top: 110px; }
  .contact-motto-mark { top: 24px; right: 24px; width: 76px; }
}
/* Impact portfolio — editorial mosaic inspired by the approved client reference. */
#impact{background:#030303!important;color:#fff;padding-left:clamp(18px,2.2vw,42px);padding-right:clamp(18px,2.2vw,42px)}
#impact::before,#impact::after,#impact>.motto-section-canvas{display:none!important}
#impact>.section-index{color:rgba(255,255,255,.42)}
#impact .section-showreel-impact{width:min(1740px,100%);margin:clamp(56px,7vw,100px) auto clamp(8px,1vw,16px);border-radius:0}
.impact-mosaic{width:min(1740px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(480px,34vw) minmax(440px,31vw);grid-auto-rows:minmax(320px,24vw);grid-auto-flow:dense;gap:6px;background:#030303}
.impact-intro-panel{grid-column:1/span 3;grid-row:1;min-width:0;padding:clamp(34px,3.6vw,66px) clamp(24px,2.6vw,48px);display:flex;flex-direction:column;justify-content:center;background:#050505}
#impact .impact-heading{width:auto;max-width:none;margin:0;display:block;color:#fff}
#impact .impact-heading>div{width:auto;max-width:none}
#impact .impact-heading .eyebrow{margin:0 0 18px;color:#c9a969}
#impact .impact-heading h2{margin:0;color:#fff;font-family:var(--font-sora);font-size:clamp(58px,5.4vw,96px);line-height:.9;letter-spacing:-.065em;text-transform:uppercase}
#impact .impact-heading h2 i{font-style:normal}
#impact .impact-intro{margin:clamp(28px,3vw,50px) 0 0;max-width:300px;color:rgba(255,255,255,.72);font-size:clamp(14px,1vw,17px);line-height:1.55}
#impact .impact-intro strong{display:block;margin-top:30px;color:#fff;font:700 10px var(--font-roboto);letter-spacing:.12em;text-transform:uppercase}
#impact .filter-bar{max-width:none;margin:38px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:7px;border:0;overflow:visible}
#impact .filter-bar button{margin:0;padding:9px 11px;border:1px solid rgba(255,255,255,.24);border-radius:999px;color:rgba(255,255,255,.68);background:transparent;font-size:9px;white-space:nowrap}
#impact .filter-bar button::before,#impact .filter-bar button::after{display:none}
#impact .filter-bar button.active,#impact .filter-bar button:hover,#impact .filter-bar button:focus-visible{color:#050505;border-color:#c9a969;background:#c9a969}
#impact .portfolio-grid{display:contents}
.portfolio-empty{grid-column:4/-1;grid-row:1/span 2;margin:0;padding:clamp(34px,5vw,80px);display:grid;place-items:center;background:#111;color:rgba(255,255,255,.62);font-size:clamp(18px,1.5vw,26px);text-align:center}
#impact .work-card,#impact .work-card:nth-child(even),#impact .work-card.wide,#impact .work-card.tall{position:relative;min-width:0;min-height:0;margin:0;border:0!important;border-radius:0!important;overflow:hidden;background-color:#141414;background-position:center;background-size:cover;isolation:isolate}
#impact .work-card:nth-child(1){grid-column:4/span 5;grid-row:1}
#impact .work-card:nth-child(2){grid-column:9/span 2;grid-row:1}
#impact .work-card:nth-child(3){grid-column:11/span 2;grid-row:1}
#impact .work-card:nth-child(4){grid-column:1/span 4;grid-row:2}
#impact .work-card:nth-child(5){grid-column:5/span 3;grid-row:2}
#impact .work-card:nth-child(6){grid-column:8/span 5;grid-row:2}
#impact .work-card:nth-child(7){grid-column:1/span 6}
#impact .work-card:nth-child(8){grid-column:7/span 6}
#impact .work-card:nth-child(n+9){grid-column:span 4}
#impact .work-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.02) 35%,rgba(0,0,0,.88) 100%);pointer-events:none}
#impact .work-overlay{inset:0;padding:clamp(20px,2.2vw,38px);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:8px;color:#fff;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.9) 100%)!important;text-align:left}
#impact .work-overlay::before{display:block;margin-bottom:0;color:#c9a969;font:400 clamp(18px,1.4vw,26px) var(--font-roboto);letter-spacing:.04em}
#impact .work-card:nth-child(1) .work-overlay::before{content:"01"}
#impact .work-card:nth-child(2) .work-overlay::before{content:"02"}
#impact .work-card:nth-child(3) .work-overlay::before{content:"03"}
#impact .work-card:nth-child(4) .work-overlay::before{content:"04"}
#impact .work-card:nth-child(5) .work-overlay::before{content:"05"}
#impact .work-card:nth-child(6) .work-overlay::before{content:"06"}
#impact .work-card:nth-child(7) .work-overlay::before{content:"07"}
#impact .work-card:nth-child(8) .work-overlay::before{content:"08"}
#impact .work-overlay>span{order:3;color:rgba(255,255,255,.55);font-size:9px;letter-spacing:.12em}
#impact .work-overlay>div{order:2}
#impact .work-overlay h3{margin:0;font-size:clamp(20px,1.55vw,29px);line-height:1.04;letter-spacing:.01em;text-transform:uppercase}
#impact .work-overlay p{margin:7px 0 0;color:rgba(255,255,255,.62);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
#impact .work-overlay b{position:absolute;top:22px;right:22px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.65);border-radius:50%;font-size:15px;font-weight:400}
#impact .work-card:hover{transform:none}
#impact .work-card:hover .work-overlay{background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.94))!important}
#impact .trust-block{width:min(1500px,calc(100% - 4vw));margin:clamp(90px,9vw,150px) auto 0}
#impact .testimonial-carousel{width:min(1220px,100%);max-width:none;margin:clamp(42px,5vw,76px) auto}
#impact .testimonial-track{width:100%}
#impact .trust-block .testimonial-slide{
  width:100%;
  max-width:none;
  min-height:clamp(350px,31vw,470px);
  margin:0;
  padding:clamp(38px,5vw,76px);
  align-items:center;
  justify-content:center;
  gap:clamp(30px,3vw,48px);
  font-size:clamp(19px,1.5vw,28px);
  line-height:1.42;
  text-align:center;
}
#impact .trust-block .testimonial-slide footer{max-width:900px;margin:0;display:flex;align-items:center;justify-content:center;gap:18px;text-align:left;line-height:1.5}
.testimonial-quote{max-width:1080px}
.testimonial-logo{width:184px;height:118px;padding:10px 12px;box-sizing:border-box;display:grid;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:12px;background:#fff}
.testimonial-logo img{width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;display:block;object-fit:contain!important;object-position:center;filter:none!important;mix-blend-mode:normal}
.section-showreel-impact{margin-top:clamp(56px,7vw,100px)}
.impact-mosaic.is-filtered .portfolio-grid{grid-column:4/-1;grid-row:1/span 2;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(340px,1fr);gap:6px}
.impact-mosaic.is-filtered .work-card{grid-column:auto!important;grid-row:auto!important}
@media(max-width:1120px){.impact-mosaic{display:block}.impact-intro-panel{min-height:460px;padding:56px 42px}#impact .portfolio-grid,.impact-mosaic.is-filtered .portfolio-grid{margin-top:6px;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(390px,46vw);gap:6px}#impact .work-card{grid-column:auto!important;grid-row:auto!important}.portfolio-empty{min-height:320px}}
@media(max-width:680px){#impact{padding-left:10px;padding-right:10px}.impact-intro-panel{min-height:430px;padding:46px 24px}#impact .impact-heading h2{font-size:clamp(62px,22vw,88px)}#impact .portfolio-grid,.impact-mosaic.is-filtered .portfolio-grid{grid-template-columns:1fr;grid-auto-rows:minmax(370px,115vw)}#impact .work-overlay{padding:25px 20px}#impact .trust-block{width:100%}#impact .trust-block .testimonial-slide{min-height:0;padding:30px 22px;align-items:flex-start;font-size:clamp(18px,4.8vw,22px);text-align:left}#impact .trust-block .testimonial-slide footer{align-items:flex-start;flex-direction:column;text-align:left}.testimonial-logo{width:156px;height:106px}.trust-partner-groups .trust-track img{width:230px;height:102px}#impact .section-showreel-impact{margin-top:36px}}


/* Navbar readability refinement. */
.desktop-nav a {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .115em;
}

@media (prefers-reduced-motion: reduce) {
  .trust-track { animation-play-state: paused; }
  .idea-flow::after, .idea-origin, .idea-flow li { transition: none; }
}

/* Ajustes visuais finais — símbolos oficiais e composição audiovisual. */
.idea-origin {
  background: transparent url("assets/images/motto-symbol-red.png") center / contain no-repeat;
  clip-path: none;
}
.contact-intent::after {
  right: 14px;
  bottom: 10px;
  width: 92px;
  height: 70px;
  aspect-ratio: auto;
  background: transparent url("assets/images/motto-symbol-red.png") center / contain no-repeat;
  clip-path: none;
  opacity: .82;
  transform: rotate(-5deg);
}
#impact .motto-section-shape { background: #d50022; }
.team-photo {
  width: min(1500px, 100%);
  min-height: clamp(360px, 48vw, 720px);
  margin: clamp(70px, 9vw, 130px) auto 0;
  border-radius: 34px;
  background: linear-gradient(90deg, rgba(0,0,0,.12), rgba(213,0,34,.12)), url("https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1800&q=88") center / cover no-repeat;
  box-shadow: 0 30px 80px rgba(0,0,0,.16);
}
.join-banner.join-banner-copy-only {
  grid-template-columns: 1fr;
  min-height: 0;
  margin-top: 18px;
  background: linear-gradient(120deg, #121212, #3b0007);
}
.join-banner-copy-only::before,
.join-banner-copy-only .join-image { display: none !important; }
.join-banner-copy-only .join-copy { max-width: 820px; padding: clamp(38px, 6vw, 86px); }
.join-banner-copy-only .join-copy a:not(.motto-button) { color: #fff; }
.solution-showcase-heading { display: block !important; max-width: 1100px; margin-inline: auto; text-align: center; }
.solution-showcase-heading h2 { margin: 18px 0 0; font-size: clamp(45px, 5.2vw, 82px) !important; line-height: .95 !important; letter-spacing: .08em !important; text-transform: uppercase; }
.solution-showcase-heading > p:last-child { width: min(100%, 760px); margin: 22px auto 0; color: rgba(255,255,255,.66); font-size: clamp(17px, 1.4vw, 23px); text-align: center; }
.solution-showcase-stage { position: relative; width: min(1500px, 100%); margin: clamp(54px, 7vw, 95px) auto 0; }
#experience .solution-panels { width: 100%; margin: 0; gap: 2px; }
#experience .solution-card { min-height: clamp(560px, 48vw, 720px); border-radius: 0; border-color: rgba(255,255,255,.2); }
#experience .solution-card:first-child { border-radius: 32px 0 0 32px; }
#experience .solution-card:last-child { border-radius: 0 32px 32px 0; }
#experience .solution-card::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
#experience .solution-card.physical::after { background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(10,4,0,.92) 76%), radial-gradient(circle at 50% 45%, rgba(255,167,50,.24), transparent 46%); }
#experience .solution-card.digital::after { background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,5,16,.92) 76%), radial-gradient(circle at 50% 45%, rgba(55,154,255,.24), transparent 46%); }
.solution-center-motto { position: absolute; z-index: 8; left: 50%; top: 38%; width: clamp(92px, 9vw, 142px); height: auto; transform: translate(-50%, -50%); filter: drop-shadow(0 0 24px rgba(213,0,34,.55)); pointer-events: none; }
#experience .solution-copy { width: min(620px, 100%); margin-inline: auto; text-align: center; }
#experience .solution-copy > .eyebrow { color: #fff; font-size: 12px; }
#experience .physical .solution-copy > .eyebrow { color: #f3aa43; }
#experience .digital .solution-copy > .eyebrow { color: #5eb6ff; }
#experience .solution-copy h3 { margin: 18px auto 0; font-size: clamp(27px, 2.7vw, 44px); line-height: 1.05; }
.solution-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 36px 0 30px; padding: 0; list-style: none; }
.solution-features li { position: relative; padding: 48px 8px 0; color: rgba(255,255,255,.78); font-size: 11px; line-height: 1.35; text-transform: uppercase; }
.solution-features li::before { content: ""; position: absolute; top: 0; left: 50%; width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; transform: translateX(-50%); }
#experience .solution-copy .video-link { justify-content: center; }
.footer-presentation { display: inline-flex; margin-top: 20px; color: #fff; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 900px) {
  #experience .solution-panels { grid-template-columns: 1fr; gap: 12px; }
  #experience .solution-card,
  #experience .solution-card:first-child,
  #experience .solution-card:last-child { border-radius: 26px; }
  .solution-center-motto { top: 50%; width: 92px; }
}
@media (max-width: 620px) {
  .team-photo { min-height: 330px; border-radius: 22px; }
  .solution-features { grid-template-columns: 1fr 1fr; }
  .solution-center-motto { display: none; }
}

/* Revisão de composição — Vision, IDEA e serviços. */
.vision-main-title { order: -1; }
.vision-video-inline { margin-top: clamp(170px, 14vw, 250px); }
.vision-values-integrated { width: min(1500px, 100%); max-width: none; min-height: clamp(760px, 64vw, 960px); margin: clamp(80px, 10vw, 150px) auto 0; padding: 0; display: grid; grid-template-columns: minmax(0, .92fr) minmax(520px, 1.08fr); overflow: hidden; border: 1px solid rgba(213,0,34,.24); border-radius: 38px; background: linear-gradient(135deg, #090909, #390006 72%, #67000b); color: #fff; box-shadow: 0 34px 90px rgba(26,0,4,.18); }
.vision-values-photo { position: relative; min-height: clamp(760px, 64vw, 960px); overflow: hidden; padding: clamp(38px, 4.2vw, 64px); background: #090909; }
.vision-values-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }
.vision-values-photo::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.3) 31%, transparent 58%), linear-gradient(90deg, rgba(0,0,0,.16), transparent 48%); pointer-events: none; }
.vision-values-photo::after { content: ""; position: absolute; z-index: 2; inset: 0; border-right: 5px solid var(--red); border-radius: 0 55% 55% 0; pointer-events: none; }
.vision-values-photo > div { position: relative; z-index: 3; max-width: 500px; transform: translateY(-22px); }
.vision-values-photo h3 { margin: 14px 0 18px; color: #fff; font-size: clamp(48px, 5vw, 82px); line-height: .94; letter-spacing: -.055em; }
.vision-values-photo p:last-child { margin: 0; color: rgba(255,255,255,.72); font-size: clamp(17px, 1.2vw, 21px); line-height: 1.55; }
.vision-values-integrated .values-grid { position: relative; display: grid; grid-template-columns: 1fr; align-content: center; gap: 0; padding: clamp(34px, 5vw, 76px); }
.vision-values-integrated .values-grid::before { content: ""; position: absolute; left: clamp(49px, 6.4vw, 98px); top: 12%; bottom: 12%; width: 2px; background: linear-gradient(#ed001e, rgba(255,255,255,.28), #ed001e); }
.vision-values-integrated .values-grid article,
.vision-values-integrated .values-grid article:nth-child(even) { position: relative; min-height: 0; padding: 26px 12px 26px clamp(74px, 7vw, 112px); display: grid; grid-template-columns: minmax(180px,.68fr) 1fr; gap: 16px 30px; align-items: start; border: 0 !important; border-bottom: 1px solid rgba(255,255,255,.16) !important; border-radius: 0; background: transparent !important; color: #fff; box-shadow: none; }
.vision-values-integrated .values-grid article:last-child { border-bottom: 0 !important; }
.vision-values-integrated .values-grid article > span { position: absolute; z-index: 2; left: 0; top: 27px; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #ed001e; border-radius: 50%; background: #170003; color: #fff; font: 700 12px var(--font-geist-mono), monospace; }
.vision-values-integrated .values-grid h4 { margin: 0; color: #fff; font-size: clamp(20px, 1.4vw, 27px); line-height: 1.15; }
.vision-values-integrated .values-grid p { max-width: none; margin: 0; color: rgba(255,255,255,.68); font-size: 15px; line-height: 1.55; }
.vision-values-integrated .values-grid article:hover { background: rgba(237,0,30,.1) !important; }
.join-banner { margin-top: clamp(48px, 6vw, 90px); display: grid; grid-template-columns: 1.08fr .92fr; padding: 0; background: #090909 !important; }
.join-banner::before { left: 43%; top: 50%; width: 30%; border-width: 6px; background: #090909; }
.join-banner .join-image { position: relative; inset: auto; min-height: 650px; aspect-ratio: auto; background: linear-gradient(90deg, transparent 45%, rgba(0,0,0,.35)), url("https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1500&q=85") center / cover no-repeat; -webkit-mask: none; mask: none; filter: saturate(.9) contrast(1.05) !important; }
.join-banner .join-copy { width: auto; min-height: 650px; padding: clamp(52px, 6vw, 92px); }
.solution-features li::before { content: attr(data-icon); display: grid; place-items: center; color: #fff; font-size: 20px; line-height: 1; }
.physical .solution-features li::before { border-color: #f3aa43; color: #f3aa43; }
.digital .solution-features li::before { border-color: #5eb6ff; color: #5eb6ff; }
.idea-origin { top: -7px; }
@media (max-width: 1000px) {
  .vision-values-integrated { grid-template-columns: 1fr; }
  .vision-values-photo { min-height: 0; aspect-ratio: 4 / 5; }
  .vision-values-photo::after { border-right: 0; border-bottom: 5px solid var(--red); border-radius: 0 0 55% 55%; }
  .join-banner { grid-template-columns: 1fr; }
  .join-banner::before { display: none; }
  .join-banner .join-image { min-height: 500px; }
  .join-banner .join-copy { min-height: 0; }
  .idea-origin { left: -17px; top: 0; }
}
@media (max-width: 620px) {
  .vision-video-inline { margin-top: 250px; }
  .vision-values-photo > div { transform: translateY(-14px); }
  .vision-values-integrated { min-height: 0; border-radius: 26px; }
  .vision-values-photo { min-height: 0; aspect-ratio: 4 / 5; padding: 30px 24px; }
  .vision-values-integrated .values-grid { padding: 24px; }
  .vision-values-integrated .values-grid::before { left: 47px; }
  .vision-values-integrated .values-grid article,
  .vision-values-integrated .values-grid article:nth-child(even) { grid-template-columns: 1fr; padding: 24px 0 24px 64px; }
  .vision-values-integrated .values-grid article > span { top: 22px; }
  .join-banner .join-image { min-height: 360px; }
  .join-banner .join-copy { padding: 38px 26px 48px; }
}

/* Afinação solicitada — vídeo, percurso dos valores e recrutamento. */
@media (min-width: 1001px) {
  .vision-left-column { gap: 0; }
  .vision-video-inline { width: 100%; max-width: 900px; margin-top: clamp(38px, 3.8vw, 68px); aspect-ratio: 16 / 9; }
}
@media (min-width: 621px) and (max-width: 1000px) {
  .vision-video-inline { width: 100%; margin-top: 150px; }
}
.vision-values-integrated .values-grid::before { display: none; }
.vision-values-integrated .values-grid article:not(:last-child)::after { display: none; }
.join-banner::before { display: none; }

/* Cartões de contacto — o Motto ocupa uma zona própria sem tapar o copy. */
#enter .contact-intent { min-height: 220px; padding: 28px 28px 98px; }
#enter .contact-intent::after { left: 50%; right: auto; bottom: 18px; width: 70px; height: 52px; transform: translateX(-50%); opacity: .78; }
#enter .contact-intent p,
#enter .contact-intent small { max-width: none; }
@media (max-width: 900px) {
  #enter .contact-intent { min-height: 190px; padding-bottom: 90px; }
}

/* ENTER sem o Motto prateado decorativo. */
#enter > .motto-section-canvas { display: none !important; }

/* Live our Motto — composição editorial com fotografia à direita. */
.join-banner { min-height: 640px; grid-template-columns: minmax(420px, .82fr) minmax(520px, 1.18fr); background: radial-gradient(circle at 18% 18%, rgba(213,0,34,.2), transparent 34%), #090909 !important; }
.join-banner .join-copy { grid-column: 1; grid-row: 1; width: auto; min-height: 640px; padding: clamp(54px, 5.2vw, 86px); align-items: flex-start; justify-content: center; }
.join-banner .join-copy h3 { margin: 18px 0 0; max-width: 560px; font-size: clamp(54px, 4.7vw, 78px); line-height: .9; }
.join-banner .join-copy > p:not(.eyebrow) { max-width: 470px; margin: 42px 0 0; }
.join-banner .join-copy .motto-button { margin-top: 36px; }
.join-banner .join-image { grid-column: 2; grid-row: 1; min-height: 640px; border-left: 6px solid var(--red); border-radius: 58% 0 0 58% / 50% 0 0 50%; background-position: center; box-shadow: inset 34px 0 60px rgba(0,0,0,.26); }
.join-banner .join-image::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, rgba(9,9,9,.18), transparent 34%); pointer-events: none; }
@media (max-width: 1000px) {
  .join-banner { grid-template-columns: 1fr; }
  .join-banner .join-image { grid-column: 1; grid-row: 1; min-height: 480px; border-left: 0; border-bottom: 5px solid var(--red); border-radius: 0 0 48% 48% / 0 0 14% 14%; }
  .join-banner .join-copy { grid-column: 1; grid-row: 2; min-height: 0; }
}
@media (max-width: 620px) {
  .join-banner .join-image { min-height: 330px; }
  .join-banner .join-copy h3 { font-size: clamp(48px, 15vw, 68px); }
}

/* Ícones reais para as capacidades das soluções audiovisuais. */
.solution-features li::before {
  content: "" !important;
}
.solution-features li::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 18px;
  height: 18px;
  transform: translateX(-50%);
  background: currentColor;
  -webkit-mask: var(--service-icon) center / contain no-repeat;
  mask: var(--service-icon) center / contain no-repeat;
}
.physical .solution-features li:nth-child(1) { --service-icon: url("assets/icons/network.svg"); }
.physical .solution-features li:nth-child(2) { --service-icon: url("assets/icons/video.svg"); }
.physical .solution-features li:nth-child(3) { --service-icon: url("assets/icons/construction.svg"); }
.physical .solution-features li:nth-child(4) { --service-icon: url("assets/icons/mouse-pointer-click.svg"); }
.digital .solution-features li:nth-child(1) { --service-icon: url("assets/icons/radio-tower.svg"); }
.digital .solution-features li:nth-child(2) { --service-icon: url("assets/icons/box.svg"); }
.digital .solution-features li:nth-child(3) { --service-icon: url("assets/icons/scan-eye.svg"); }
.digital .solution-features li:nth-child(4) { --service-icon: url("assets/icons/wifi.svg"); }
.physical .solution-features li::after { background: #f3aa43; }
.digital .solution-features li::after { background: #5eb6ff; }

/* Language switcher — compact, visible and keyboard accessible. */
.language-switcher {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: clamp(12px, 1.6vw, 28px);
  padding: 4px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(0,0,0,.32);
}
.language-switcher a,
.mobile-language-switcher a {
  display: grid;
  place-items: center;
  min-width: 31px;
  height: 28px;
  border-radius: 999px;
  color: rgba(255,255,255,.62);
  font: 700 10px var(--font-roboto);
  letter-spacing: .1em;
  transition: color .2s ease, background .2s ease;
}
.language-switcher a:hover,
.language-switcher a:focus-visible,
.language-switcher a.is-active,
.mobile-language-switcher a.is-active { color: #080808; background: #fff; }
.mobile-language-switcher { display: none; }

/* Experience — dois serviços deliberadamente separados. */
#experience .solution-showcase-stage { width: min(1320px, 100%); }
#experience .solution-center-motto { display: none; }
#experience .solution-panels {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 52px);
  min-height: 0;
  background: transparent !important;
}
#experience .solution-card,
#experience .solution-card:first-child,
#experience .solution-card:last-child {
  min-height: clamp(470px, 37vw, 590px);
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 34px;
  box-shadow: 0 28px 70px rgba(0,0,0,.3);
}
#experience .solution-card.physical { border-color: rgba(243,170,67,.7); }
#experience .solution-card.digital { border-color: rgba(94,182,255,.72); }
#experience .solution-card .solution-bg,
#experience .solution-card .solution-video { object-fit: cover; background-size: cover; background-position: center 42%; }
#experience .solution-card.digital .solution-bg,
#experience .solution-card.digital .solution-video { background-position: center; object-position: center; }
#experience .solution-card::after { background: linear-gradient(90deg, rgba(4,4,4,.94) 0%, rgba(4,4,4,.76) 42%, rgba(4,4,4,.08) 76%) !important; }
#experience .solution-card.digital::after { background: linear-gradient(270deg, rgba(0,5,14,.95) 0%, rgba(0,5,14,.78) 42%, rgba(0,5,14,.08) 76%) !important; }
#experience .solution-copy {
  width: min(650px, 54%);
  margin: 0 auto 0 0;
  padding: clamp(42px, 5vw, 74px);
  text-align: left;
}
#experience .digital .solution-copy { margin: 0 0 0 auto; text-align: right; }
#experience .solution-copy h3 { margin: 18px 0 0; }
#experience .digital .solution-copy h3 { margin-left: auto; }
#experience .solution-number {
  top: 34px;
  right: 38px;
  left: auto;
  width: auto;
  height: auto;
  border: 0;
  color: #f3aa43;
  font-size: 12px;
  letter-spacing: .16em;
}
#experience .digital .solution-number { right: auto; left: 38px; color: #5eb6ff; }
#experience .solution-features { text-align: center; }

@media (max-width: 1180px) {
  .desktop-nav { gap: 16px; }
  .language-switcher { margin-left: 8px; }
}
@media (max-width: 1000px) {
  .language-switcher { display: none; }
  .mobile-language-switcher { display: flex; gap: 8px; margin: 28px 0 10px 45px; }
  .mobile-language-switcher a { border: 1px solid rgba(255,255,255,.42); }
  #experience .solution-copy,
  #experience .digital .solution-copy { width: min(720px, 100%); margin: auto 0 0; text-align: left; }
  #experience .solution-card::after,
  #experience .solution-card.digital::after { background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(3,3,3,.94) 68%) !important; }
  #experience .digital .solution-copy h3 { margin-left: 0; }
}
@media (max-width: 620px) {
  #experience .solution-card,
  #experience .solution-card:first-child,
  #experience .solution-card:last-child { min-height: 660px; border-radius: 24px; }
  #experience .solution-copy,
  #experience .digital .solution-copy { padding: 34px 22px; }
}

/* A composição final de Experience prevalece sobre revisões históricas acima. */
#experience .solution-showcase-stage { width: min(1500px, 100%); }
#experience .solution-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(96px, 8vw, 132px); }
#experience .solution-center-motto { display: block; top: 50%; width: clamp(72px, 5.5vw, 92px); }
#experience .solution-card,
#experience .solution-card:first-child,
#experience .solution-card:last-child { min-height: clamp(570px, 45vw, 700px); border-radius: 30px; }
#experience .solution-card::after,
#experience .solution-card.digital::after { background: linear-gradient(180deg, rgba(0,0,0,.04) 12%, rgba(3,3,3,.92) 70%) !important; }
#experience .solution-copy,
#experience .digital .solution-copy { width: 100%; margin: auto 0 0; padding: clamp(34px, 3.4vw, 54px); text-align: left; }
#experience .digital .solution-copy h3 { margin-left: 0; }
@media (max-width: 900px) {
  #experience .solution-panels { grid-template-columns: 1fr; }
  #experience .solution-center-motto { display: none; }
}

/* Os vídeos nunca podem ocultar a distinção entre os dois tipos de evento. */
#experience .solution-type-label {
  position: absolute;
  z-index: 7;
  top: clamp(20px, 2.4vw, 34px);
  left: clamp(20px, 2.4vw, 34px);
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: calc(100% - 40px);
  padding: 12px 18px 12px 12px;
  border: 1px solid rgba(243,170,67,.88);
  border-radius: 999px;
  color: #fff;
  background: rgba(5,5,5,.84);
  box-shadow: 0 12px 32px rgba(0,0,0,.34);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: none;
}
#experience .solution-type-label span {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #090909;
  background: #f3aa43;
  font: 700 12px/1 var(--font-geist-mono), monospace;
}
#experience .solution-type-label strong {
  color: #fff;
  font-size: clamp(13px, 1vw, 16px);
  line-height: 1.15;
  letter-spacing: .12em;
}
#experience .solution-card.digital .solution-type-label { border-color: rgba(94,182,255,.9); }
#experience .solution-card.digital .solution-type-label span { background: #5eb6ff; }
@media (max-width: 620px) {
  #experience .solution-type-label { top: 18px; left: 18px; max-width: calc(100% - 36px); padding: 10px 15px 10px 10px; }
  #experience .solution-type-label span { flex-basis: 30px; width: 30px; height: 30px; }
  #experience .solution-type-label strong { font-size: 12px; letter-spacing: .08em; }
}
