/* v16.4 — public enhancements */
.language-toggle { display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:38px;padding:0 12px;border:1px solid rgba(238,230,211,.35);border-radius:999px;background:transparent;color:var(--cream);font:700 .7rem/1 var(--body);letter-spacing:.1em;transition:background-color .2s,color .2s,border-color .2s; }
.language-toggle:hover,.language-toggle:focus-visible { background:var(--mustard);border-color:var(--mustard);color:#0a161b; }
.case-study-modal[hidden],.testimonials[hidden] { display:none; }
.case-study-modal { position:fixed;inset:0;z-index:320;display:grid;place-items:center;padding:clamp(12px,3vw,36px); }
.case-study-backdrop { position:absolute;inset:0;border:0;background:rgba(4,9,11,.88);backdrop-filter:blur(12px); }
.case-study-dialog { position:relative;z-index:1;width:min(900px,100%);max-height:min(92vh,900px);overflow:auto;padding:clamp(24px,5vw,58px);border:1px solid rgba(238,230,211,.16);border-radius:22px;background:linear-gradient(145deg,#12262d,#071014);box-shadow:0 32px 100px #0008;animation:case-study-enter .3s cubic-bezier(.2,.8,.2,1) both; }
@keyframes case-study-enter { from { opacity:0;transform:translateY(14px) scale(.99); } to { opacity:1;transform:none; } }
.case-study-close { position:absolute;top:14px;right:14px;width:42px;height:42px;border:1px solid rgba(238,230,211,.28);border-radius:50%;background:transparent;color:var(--cream);font-size:1.6rem;line-height:1; }
.case-study-close:hover { background:var(--cream);color:var(--navy); }
.case-study-dialog h2 { max-width:16ch;margin:10px 48px 14px 0;font-size:clamp(2rem,5.5vw,4.3rem);line-height:.98; }
.case-study-lead { max-width:60ch;color:var(--cream);font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.65; }
.case-study-sections { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:34px 0; }
.case-study-sections section { min-width:0;border-top:2px solid var(--terracotta);padding-top:15px; }
.case-study-sections span { display:block;margin-bottom:10px;color:var(--mustard);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase; }
.case-study-sections p { font-size:.94rem;line-height:1.75;color:rgba(238,230,211,.85); }
body.case-study-open { overflow:hidden; }
.testimonials-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.testimonial-card { position:relative;margin:0;padding:25px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(238,230,211,.035); }
.testimonial-mark { display:block;color:var(--terracotta);font-family:var(--site-display-font);font-size:3rem;line-height:.7;margin-bottom:18px; }
.testimonial-card>p { font-size:1rem;line-height:1.8; }
.testimonial-card footer { display:grid;gap:4px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line); }
.testimonial-card footer strong { color:var(--cream);font-size:.95rem; }
.testimonial-card footer span { color:var(--mustard);font-size:.78rem; }
.whatsapp-float { position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:150;display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:#207b56;color:white;box-shadow:0 12px 36px #0005;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease; }
.whatsapp-float svg { width:26px;height:26px;fill:currentColor; }
.whatsapp-float:hover,.whatsapp-float:focus-visible { transform:translateY(-4px);box-shadow:0 16px 38px #0007;background:#16844f; }
.contact-form { display:grid;gap:18px;margin-top:34px;padding:clamp(20px,3vw,34px);border:1px solid var(--line);border-radius:var(--radius);background:rgba(7,14,17,.22); }
.contact-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.contact-form label { display:grid;gap:8px;min-width:0;color:var(--cream);font-size:.78rem;font-weight:700;letter-spacing:.045em; }
.contact-form input,.contact-form textarea { width:100%;min-width:0;border:1px solid rgba(238,230,211,.22);border-radius:10px;background:rgba(238,230,211,.055);color:var(--cream);padding:13px 14px;font:400 1rem/1.5 var(--body);letter-spacing:normal; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:rgba(238,230,211,.48); }
.contact-form input:focus-visible,.contact-form textarea:focus-visible { outline:2px solid var(--mustard);outline-offset:2px;border-color:var(--mustard); }
.contact-form textarea { resize:vertical;min-height:120px; }
.contact-form-actions { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.contact-form-actions [role=status] { flex:1;min-width:200px;color:rgba(238,230,211,.72);font-size:.8rem;line-height:1.6; }
.contact-form button:disabled { opacity:.55;cursor:wait; }
.contact-form-fallback { color:rgba(238,230,211,.72);font-size:.86rem;line-height:1.75; }
.contact-form-fallback a { color:var(--mustard);text-decoration:underline;text-underline-offset:3px; }
.contact-honeypot { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
@media (max-width:800px) { .case-study-sections { grid-template-columns:1fr;gap:22px; } .testimonials-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .case-study-dialog { max-height:calc(100dvh - 24px);padding:26px 20px 24px;border-radius:17px; } .case-study-sections { margin:25px 0; } .testimonials-grid,.contact-form-grid { grid-template-columns:1fr; } .whatsapp-float { width:54px;height:54px;right:14px;bottom:14px; } .language-toggle { min-height:42px; } }
@media (prefers-reduced-motion:reduce) { .case-study-dialog { animation:none; } .whatsapp-float,.language-toggle { transition:none; } }


/* v16.6 — responsive corrections for the cover and project actions. */
.project-meta { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:12px; min-width:0; }
.project-meta > div:first-child { grid-column:1 / -1; min-width:0; }
.project-actions { grid-column:1 / -1; display:flex; align-items:center; justify-content:flex-start; gap:9px; flex-wrap:wrap; min-width:0; }
.project-actions .round-arrow { width:42px; height:42px; }
.project-actions .case-study-open { margin:0; white-space:nowrap; }
@media (max-width: 680px) {
  .hero { min-height:max(690px, 100svh); padding-top:calc(var(--header-h) + 18px); padding-bottom:38px; }
  .hero-copy { max-width:100%; }
  .hero h1 { max-width:19ch; font-size:calc(clamp(2.1rem, 8.2vw, 2.75rem) * var(--hero-title-scale, 1)); line-height:.98; letter-spacing:-.025em; text-wrap:pretty; }
  .hero-copy .eyebrow { max-width:30ch; margin-bottom:13px; text-shadow:0 2px 14px rgba(0,0,0,.95); }
  .hero-intro { margin-top:16px; }
  .hero::before {
    background:
      linear-gradient(0deg, rgba(5,12,15,.98) 0%, rgba(5,12,15,.92) 36%, rgba(5,12,15,.62) 55%, rgba(5,12,15,.14) 100%),
      linear-gradient(90deg, rgba(5,12,15,.72) 0%, rgba(5,12,15,.48) 55%, rgba(5,12,15,.2) 100%),
      linear-gradient(180deg, rgba(5,12,15,.62) 0%, rgba(5,12,15,.08) 27%);
  }
  .project-meta { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:12px; }
  .project-meta > div:first-child { grid-column:1/-1; }
  .project-actions { grid-column:1/-1; justify-content:flex-start; flex-wrap:wrap; }
  .project-actions .round-arrow { width:40px; height:40px; }
  .project-actions .case-study-open { min-height:40px; }
}


/* v17.0 — stable header navigation: align all primary actions and restore the About link. */
.site-header { gap:clamp(16px,2vw,30px); }
.site-header > .wordmark { flex:0 0 auto; min-width:max-content; }
.main-nav { flex:0 0 auto; flex-shrink:0; margin-left:auto; align-items:center; justify-content:flex-end; gap:clamp(16px,1.8vw,30px); }
.main-nav > a, .main-nav > button { flex:0 0 auto; align-self:center; white-space:nowrap; }
.main-nav > a[href="#sobre"] { display:inline-flex; align-items:center; min-height:38px; }
.main-nav > .nav-contact { display:inline-flex; align-items:center; justify-content:center; min-height:42px; margin:0; line-height:1; transform:translate(var(--mag-x,0px),var(--mag-y,0px)); }
.main-nav > #language-toggle { margin:0; }
@media (min-width:861px) and (max-width:1120px) {
  .site-header > .wordmark { font-size:1rem; letter-spacing:.04em; }
  .main-nav { gap:clamp(12px,1.25vw,18px); }
  .main-nav a { font-size:.72rem; letter-spacing:.08em; }
  .main-nav > .nav-contact { padding:10px 14px !important; }
}
@media (max-width:860px) {
  .main-nav { flex:initial; margin-left:0; gap:22px; }
  .main-nav > a, .main-nav > button { align-self:auto; }
  .main-nav > a[href="#sobre"] { min-height:auto; }
  .main-nav > .nav-contact { margin-top:10px; min-height:42px; }
}

/* v18.2: numeração automática das seções visíveis, aviso de privacidade e slot do captcha */
body { counter-reset: section-number; }
.about .about-top .eyebrow::before,
.projects .section-heading .eyebrow::before,
.publications .section-heading .eyebrow::before,
.testimonials .section-heading .eyebrow::before,
.illustrations .section-heading .eyebrow::before,
.process .section-heading .eyebrow::before,
.contact > .eyebrow::before {
  counter-increment: section-number;
  content: counter(section-number, decimal-leading-zero) " / ";
}
.contact-privacy { font-size: .8rem; line-height: 1.5; opacity: .8; margin: 4px 0 0; }
.contact-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.captcha-slot { min-height: 65px; margin: 8px 0; }
.captcha-slot[hidden] { display: none; }

/* Ensure unavailable, undocumented case-study actions are really removed from layout and focus order. */
.project-actions .case-study-open[hidden] { display: none !important; }

/* v20.8 — evitar colisão entre o WhatsApp flutuante e a ação principal em celulares estreitos. */
@media (max-width: 390px) {
  .whatsapp-float { width:44px; height:44px; right:12px; bottom:12px; }
  .whatsapp-float svg { width:21px; height:21px; }
  #inicio .hero-copy > .hero-actions { max-width:calc(100vw - 104px); }
  #inicio .hero-copy > .hero-actions .text-link { max-width:100%; padding-inline:16px; gap:8px; white-space:normal; line-height:1.2; }
}

/* v21.2 — identidade uniforme do wordmark, link da loja e contraste da seção Sobre. */
.site-header > .wordmark {
  font-family: var(--site-display-font, var(--display, inherit));
  font-size: clamp(.92rem, 1.05vw, 1.08rem);
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 1;
  white-space: nowrap;
}
.site-header > .wordmark > span {
  font-family: inherit !important;
  font-size: 1em !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  color: inherit;
  vertical-align: baseline;
}
.site-header #nav-store {
  display: inline-flex;
  align-items: center;
  visibility: visible;
}
.about .about-top .eyebrow,
.about .about-top .eyebrow::before {
  color: #fff !important;
}
@media (min-width: 861px) and (max-width: 1120px) {
  .site-header > .wordmark { font-size: 1rem; letter-spacing: .04em; }
}


/* v21.3 — contraste explícito da etiqueta da seção Sobre; inclui o número gerado por ::before. */
html body .about .about-top .eyebrow {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-shadow: none !important;
}
html body .about .about-top .eyebrow::before {
  counter-increment: section-number;
  content: counter(section-number, decimal-leading-zero) " / ";
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-shadow: none !important;
}


/* v22.15 — correções visuais do formulário, filtros e alinhamento dos projetos. */
html body#white-text-site #contato .contact-form-actions > #contact-submit {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: .62em !important;
  width: max-content !important;
  min-width: max-content !important;
  max-width: 100% !important;
  min-height: 42px !important;
  padding: 0 22px !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  letter-spacing: .075em !important;
  box-sizing: border-box !important;
}
html body#white-text-site #contato .contact-form-actions > #contact-submit > span {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  position: static !important;
  transform: none;
}
html body#white-text-site #contato .contact-form-actions > #contact-status {
  flex: 1 1 220px !important;
  min-width: min(220px, 100%) !important;
  overflow-wrap: anywhere;
}
@media (max-width: 620px) {
  html body#white-text-site #contato .contact-form-actions { align-items: flex-start !important; }
  html body#white-text-site #contato .contact-form-actions > #contact-submit {
    min-width: 0 !important;
    padding-inline: 18px !important;
    font-size: .72rem !important;
    letter-spacing: .045em !important;
  }
  html body#white-text-site #contato .contact-form-actions > #contact-status {
    flex: 1 1 100% !important;
    min-width: 0 !important;
  }
}

/* Filtros não podem herdar larguras estreitas ou quebras de texto do editor visual. */
html body#white-text-site #projetos .filter-row > .filter-button {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: max-content !important;
  min-width: max-content !important;
  max-width: 100% !important;
  min-height: 42px !important;
  height: auto !important;
  padding: 0 20px !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
html body#white-text-site #projetos .filter-row > .filter-button > span {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
  position: static !important;
  transform: none !important;
}

/* Alinha o início dos títulos e as descrições, sem empurrar títulos curtos para baixo. */
@media (min-width: 681px) {
  html body#white-text-site #project-grid .project-card:not(.project-card--institutional-gallery) .project-meta > div:first-child > h3 {
    margin-top: 0 !important;
  }
}

/* v22.42 — publicações institucionais em bloco próprio, separado da grade de projetos. */
.institutional-gallery-section {
  display: block;
  clear: both;
}
.institutional-gallery-section[hidden] { display: none !important; }
.institutional-gallery-host { width: 100%; min-width: 0; }
.institutional-gallery-host > .project-card--institutional-gallery {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  transform: none !important;
  overflow: visible !important;
}
.institutional-gallery-host > .project-card--institutional-gallery .project-meta > div:first-child { min-height: 0 !important; }
.institutional-gallery-host > .project-card--institutional-gallery .project-meta > div:first-child > h3 { margin-top: 0 !important; }
.institutional-gallery-host > .project-card--institutional-gallery.has-institutional-carousel > .project-meta,
.institutional-gallery-host > .project-card--institutional-gallery.has-institutional-carousel > .project-summary { display: none !important; }
/* Compatibilidade durante a montagem inicial do conteúdo remoto. */
html body#white-text-site #project-grid .project-card--institutional-gallery {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  min-width: 0 !important;
  transform: none !important;
  overflow: visible !important;
}
html body#white-text-site #project-grid .project-card--institutional-gallery .project-meta > div:first-child {
  min-height: 0 !important;
}
html body#white-text-site #project-grid .project-card--institutional-gallery .project-meta > div:first-child > h3 {
  margin-top: 0 !important;
}
/* O título e o resumo antigos pertencem ao cartão-estático que o carrossel substitui.
   Só os ocultamos depois que o carrossel foi montado, mantendo fallback se não houver imagens. */
html body#white-text-site #project-grid .project-card--institutional-gallery.has-institutional-carousel > .project-meta,
html body#white-text-site #project-grid .project-card--institutional-gallery.has-institutional-carousel > .project-summary {
  display: none !important;
}
.institutional-carousel {
  position: relative;
  display: grid;
  gap: 14px;
  width: 100%;
  min-width: 0;
  margin: 0 0 24px;
}
.institutional-carousel-stage {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(330px, 42vw, 500px);
  overflow: hidden;
  perspective: 1150px;
  perspective-origin: 50% 46%;
  border: 1px solid rgba(238,230,211,.15);
  border-radius: clamp(16px, 2vw, 24px);
  background:
    radial-gradient(ellipse at 50% 45%, rgba(192,146,77,.19), transparent 55%),
    linear-gradient(145deg, rgba(238,230,211,.055), rgba(7,14,17,.32));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 24px 65px rgba(0,0,0,.12);
}
.institutional-carousel-stage::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(238,230,211,.085), transparent 63%);
}
.institutional-carousel-layer { position: absolute; inset: 0; transform-style: preserve-3d; }
.institutional-carousel-card {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: clamp(205px, 26vw, 310px);
  height: min(82%, 405px);
  min-height: 250px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(238,230,211,.27);
  border-radius: 18px;
  background: #162329;
  color: #EEE6D3;
  text-align: left;
  box-shadow: 0 22px 58px rgba(0,0,0,.46), 0 1px 0 rgba(255,255,255,.12) inset;
  transform: translate(-50%, -50%) scale(.64);
  transform-origin: center;
  opacity: 0;
  filter: saturate(.72) brightness(.72);
  pointer-events: none;
  transition: transform .62s cubic-bezier(.2,.75,.15,1), opacity .45s ease, filter .45s ease, box-shadow .45s ease;
  backface-visibility: hidden;
  cursor: pointer;
}
.institutional-carousel-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: linear-gradient(155deg, #26353A, #0A171B);
  pointer-events: none;
  user-select: none;
}
.institutional-carousel-card-shade {
  position: absolute;
  inset: 25% 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(3,8,10,.18) 30%, rgba(3,8,10,.92) 100%);
  pointer-events: none;
}
.institutional-carousel-card-category {
  position: absolute;
  left: 17px;
  right: 17px;
  bottom: 65px;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.35;
  text-transform: uppercase;
  color: #D9B77A;
  text-shadow: 0 1px 12px #000;
  pointer-events: none;
}
.institutional-carousel-card-title {
  position: absolute;
  left: 17px;
  right: 54px;
  bottom: 22px;
  display: -webkit-box;
  overflow: hidden;
  color: #EEE6D3;
  font-size: clamp(.95rem, 1.4vw, 1.18rem);
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -.015em;
  text-shadow: 0 1px 16px #000;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  pointer-events: none;
}
.institutional-carousel-expand {
  position: absolute;
  right: 15px;
  bottom: 17px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid rgba(238,230,211,.55);
  border-radius: 50%;
  background: rgba(7,14,17,.4);
  color: #EEE6D3;
  font-size: 1rem;
  backdrop-filter: blur(8px);
  pointer-events: none;
}
.institutional-carousel-card.is-active {
  z-index: 5;
  opacity: 1;
  filter: none;
  pointer-events: auto;
  transform: translate(-50%, -50%) translateZ(72px) scale(1);
  box-shadow: 0 32px 80px rgba(0,0,0,.52), 0 0 0 1px rgba(238,230,211,.07);
}
.institutional-carousel-card.is-prev-card {
  z-index: 4;
  opacity: .82;
  filter: saturate(.8) brightness(.76);
  pointer-events: auto;
  transform: translate(-128%, -50%) rotateY(23deg) scale(.78);
}
.institutional-carousel-card.is-next-card {
  z-index: 4;
  opacity: .82;
  filter: saturate(.8) brightness(.76);
  pointer-events: auto;
  transform: translate(28%, -50%) rotateY(-23deg) scale(.78);
}
.institutional-carousel-card.is-far-prev {
  z-index: 2;
  opacity: .38;
  filter: saturate(.55) brightness(.6);
  transform: translate(-178%, -50%) rotateY(30deg) scale(.63);
}
.institutional-carousel-card.is-far-next {
  z-index: 2;
  opacity: .38;
  filter: saturate(.55) brightness(.6);
  transform: translate(78%, -50%) rotateY(-30deg) scale(.63);
}
.institutional-carousel-card.is-hidden { opacity: 0; pointer-events: none; }
.institutional-carousel-card:focus-visible,
.institutional-carousel-arrow:focus-visible,
.institutional-carousel-dot:focus-visible { outline: 2px solid #C0924D; outline-offset: 4px; }
.institutional-carousel-arrow {
  position: absolute;
  z-index: 8;
  top: 50%;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(238,230,211,.38);
  border-radius: 50%;
  background: rgba(7,14,17,.48);
  color: #EEE6D3;
  font-size: 1.8rem;
  line-height: 1;
  transform: translateY(-50%);
  backdrop-filter: blur(10px);
  transition: background .25s ease, color .25s ease, opacity .25s ease;
}
.institutional-carousel-arrow.is-prev { left: clamp(10px, 2vw, 24px); }
.institutional-carousel-arrow.is-next { right: clamp(10px, 2vw, 24px); }
.institutional-carousel-arrow:hover:not(:disabled) { background: #EEE6D3; color: #0E2D3A; }
.institutional-carousel-arrow:disabled { opacity: .22; cursor: default; }
.institutional-carousel-count {
  position: absolute;
  z-index: 8;
  right: 18px;
  top: 17px;
  padding: 7px 10px;
  border: 1px solid rgba(238,230,211,.2);
  border-radius: 999px;
  background: rgba(7,14,17,.52);
  color: #EEE6D3;
  font-size: .68rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .12em;
  backdrop-filter: blur(10px);
}
.institutional-carousel-footer {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 7px 18px;
  padding: 0 2px;
}
.institutional-carousel-current-title {
  display: -webkit-box;
  overflow: hidden;
  color: var(--cream, #EEE6D3);
  font-size: .84rem;
  font-weight: 500;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.institutional-carousel-current-category { display: none !important; }
.institutional-carousel-dots {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
  max-width: min(45vw, 250px);
}
.institutional-carousel-dot {
  display: block;
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(238,230,211,.32);
  transition: width .25s ease, background .25s ease;
}
.institutional-carousel-dot.is-active { width: 24px; background: #C0924D; }
.institutional-carousel.is-single-item .institutional-carousel-count { opacity: .8; }
@media (max-width: 680px) {
  html body#white-text-site #project-grid .project-card--institutional-gallery { grid-column: 1 / -1 !important; }
  .institutional-gallery-host > .project-card--institutional-gallery { width: 100%; }
  /* v22.48 — no celular, remove a moldura externa do palco para deixar a arte respirar.
     Mantém o recorte interno para os cartões não invadirem a navegação da página. */
  .institutional-carousel-stage {
    height: clamp(320px, 100vw, 410px);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .institutional-carousel-stage::before { display: none; }
  .institutional-carousel-card { width: clamp(190px, 60vw, 245px); height: 78%; min-height: 245px; border-radius: 15px; }
  .institutional-carousel-card.is-prev-card { transform: translate(-116%, -50%) rotateY(18deg) scale(.76); }
  .institutional-carousel-card.is-next-card { transform: translate(16%, -50%) rotateY(-18deg) scale(.76); }
  .institutional-carousel-card.is-far-prev { transform: translate(-155%, -50%) rotateY(24deg) scale(.62); }
  .institutional-carousel-card.is-far-next { transform: translate(55%, -50%) rotateY(-24deg) scale(.62); }
  .institutional-carousel-arrow { width: 38px; height: 38px; font-size: 1.5rem; }
  .institutional-carousel-arrow.is-prev { left: 8px; }
  .institutional-carousel-arrow.is-next { right: 8px; }
  .institutional-carousel-footer { grid-template-columns: minmax(0,1fr); }
  .institutional-carousel-current-title { white-space: normal; }
  .institutional-carousel-current-category { grid-column: 1; }
  .institutional-carousel-dots { grid-column: 1; grid-row: auto; justify-content: flex-start; max-width: 100%; padding-top: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .institutional-carousel-card, .institutional-carousel-arrow, .institutional-carousel-dot { transition: none !important; }
}


/* v22.43 — cards publicados dentro de seções personalizadas. */
.custom-section-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:28px}
.custom-section-project-grid .custom-section-project-card{min-width:0}
@media(max-width:680px){.custom-section-project-grid{grid-template-columns:minmax(0,1fr)}}

/* v22.88 — Publicações institucionais usam a mesma galeria circular 3D das ilustrações. */
.institutional-carousel.is-circular-gallery { overflow: visible; }
.institutional-carousel.is-circular-gallery .institutional-carousel-stage {
  height: clamp(470px, 52vw, 610px);
  overflow: hidden;
  perspective: 1450px;
  perspective-origin: 50% 45%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  touch-action: pan-y;
  cursor: grab;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-stage:active { cursor: grabbing; }
.institutional-carousel.is-circular-gallery .institutional-carousel-stage::before { content: none; }
.institutional-carousel.is-circular-gallery .institutional-carousel-stage::after {
  content: "ARRASTE PARA EXPLORAR  ·  CLIQUE EM UMA PUBLICAÇÃO PARA TRAZÊ-LA AO CENTRO";
  position: absolute;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  color: var(--illustrations-text-color, #C9C6BB);
  font: 600 9px/1.4 var(--body, Arial, sans-serif);
  letter-spacing: .16em;
  text-align: center;
  white-space: nowrap;
  opacity: .62;
  pointer-events: none;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-layer {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  will-change: transform;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card {
  top: 50%;
  left: 50%;
  width: var(--institutional-card-width, 260px);
  height: var(--institutional-card-height, 385px);
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(238,230,211,.27);
  border-radius: 15px;
  background: #162329;
  box-shadow: 0 22px 58px rgba(0,0,0,.46), 0 1px 0 rgba(255,255,255,.12) inset;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: center center;
  transition: opacity .35s ease, filter .35s ease, box-shadow .35s ease;
  cursor: grab;
  will-change: transform, opacity;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card:active { cursor: grabbing; }
.institutional-carousel.is-circular-gallery .institutional-carousel-card.is-active {
  filter: none;
  box-shadow: 0 30px 78px rgba(0,0,0,.5), 0 0 0 1px rgba(238,230,211,.08);
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: inherit;
  background: linear-gradient(155deg, #26353A, #0A171B);
  pointer-events: none;
  user-select: none;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card-shade { border-radius: inherit; }
.institutional-carousel.is-circular-gallery .institutional-carousel-arrow,
.institutional-carousel.is-circular-gallery .institutional-carousel-count { z-index: 120; }
.institutional-carousel.is-circular-gallery .institutional-carousel-footer { margin-top: 2px; }
@media (max-width: 860px) {
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage { height: 500px; }
}
@media (max-width: 640px) {
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage { height: 440px; perspective: 1050px; }
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage::after { bottom: 10px; max-width: 90%; font-size: 7px; letter-spacing: .1em; white-space: normal; }
  .institutional-carousel.is-circular-gallery .institutional-carousel-footer { grid-template-columns: minmax(0,1fr); }
  .institutional-carousel.is-circular-gallery .institutional-carousel-dots { grid-column: 1; grid-row: auto; justify-content: flex-start; max-width: 100%; padding-top: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .institutional-carousel.is-circular-gallery .institutional-carousel-card,
  .institutional-carousel.is-circular-gallery .institutional-carousel-arrow,
  .institutional-carousel.is-circular-gallery .institutional-carousel-dot { transition: none !important; }
}


/* v22.89 — palcos institucionais e de ilustração usam a mesma geometria 3D compacta. */
.institutional-carousel.is-circular-gallery .institutional-carousel-stage {
  height: clamp(450px, 48vw, 570px);
  overflow: hidden;
  perspective: 1450px;
  perspective-origin: 50% 48%;
  touch-action: pan-y;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-layer {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  pointer-events: none;
  will-change: transform;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--institutional-card-width, 260px);
  height: var(--institutional-card-height, 385px);
  min-height: 0;
  padding: 0;
  border-radius: 15px;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-origin: center center;
  transition: opacity .35s ease, filter .35s ease, box-shadow .35s ease;
  cursor: grab;
  pointer-events: auto;
  will-change: transform, opacity;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card.is-active {
  filter: none;
  box-shadow: 0 30px 78px rgba(0,0,0,.5), 0 0 0 1px rgba(238,230,211,.08);
}
.institutional-carousel.is-circular-gallery .institutional-carousel-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: inherit;
  pointer-events: none;
  user-select: none;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-dots {
  display: flex;
  flex-wrap: nowrap;
  max-width: 150px;
  overflow: hidden;
}
.institutional-carousel.is-circular-gallery .institutional-carousel-arrow,
.institutional-carousel.is-circular-gallery .institutional-carousel-count { z-index: 120; }
.institutional-carousel.is-circular-gallery .institutional-carousel-footer { margin-top: 8px; }
@media (max-width: 860px) {
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage { height: 480px; }
}
@media (max-width: 640px) {
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage { height: 430px; perspective: 1050px; }
  .institutional-carousel.is-circular-gallery .institutional-carousel-stage::after { bottom: 10px; max-width: 90%; font-size: 7px; letter-spacing: .1em; white-space: normal; }
  .institutional-carousel.is-circular-gallery .institutional-carousel-footer { grid-template-columns: minmax(0,1fr); }
  .institutional-carousel.is-circular-gallery .institutional-carousel-dots { grid-column: 1; grid-row: auto; justify-content: flex-start; max-width: 150px; padding-top: 5px; }
}
