
/* ============================================================================
   FONTES — embutidas em base64 pelo build.py (build reproduzível).
   Fontes OFICIAIS em /Fonts (+ subpasta Anthropic-TypeSystem-FontStack): Sans Display,
   Sans Text, Mono e SERIF (Display + Text). A Lora provisória foi APOSENTADA.
   >>> SERIF real: hero (72px) = Anthropic Serif Display Medium; headings de seção e
       nomes = Anthropic Serif Text. (Um peso Medium por família cobre a faixa usada.)
   >>> TODO BUBBLE: no Bubble os @font-face vão no HEADER DA PÁGINA (uma vez).
   >>> SOURCE: o marcador abaixo fica no lugar dos base64; build.py injeta as fontes.
   ========================================================================== */
@font-face{font-family:'Anthropic Sans Display';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/AnthropicSansDisplay-Regular.woff2) format('woff2');}
@font-face{font-family:'Anthropic Sans Text';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/AnthropicSansText-Regular.woff2) format('woff2');}
@font-face{font-family:'Anthropic Sans Text';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/AnthropicSansText-Medium.woff2) format('woff2');}
@font-face{font-family:'Anthropic Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/AnthropicMono-Regular.woff2) format('woff2');}
@font-face{font-family:'Anthropic Serif Display';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/AnthropicSerifDisplay-Medium.woff2) format('woff2');}
@font-face{font-family:'Anthropic Serif Text';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/AnthropicSerifText-Medium.woff2) format('woff2');}


/* ============================================================================
   TOKENS — Figma PftHBNgVo2TXfSg4MFsSRw (uma :root só p/ as duas views)
   ========================================================================== */
:root {
  --color-bg-page:#faf9f5; --color-surface:#f5f4ed; --color-border:#e9e7de;
  --color-text-primary:#141413; --color-text-secondary:#5e5d59; --color-accent:#d97757;
  --color-white:#fefefe; --color-btn-dark:#141413; --color-btn-border:#30302e;
  --color-btn-2ndary-bg:#e8e6dc; --color-btn-2ndary-border:#d1cfc5;
  --color-footer-bg:#141413; --color-footer-border:#232321; --color-footer-text:#87867f;
  --color-label:#2a2f3c; --color-quote:#2a2f3c; --color-attrib:#475467;
  --spacing-xxs:2px; --spacing-xs:4px; --spacing-sm:6px; --spacing-md:8px; --spacing-lg:12px;
  --spacing-xl:16px; --spacing-2xl:20px; --spacing-3xl:24px; --spacing-4xl:32px;
  --spacing-6xl:48px; --spacing-7xl:64px; --spacing-8xl:80px;
  --radius-sm:6px; --radius-md:8px; --radius-xl:12px; --radius-2xl:16px; --radius-4xl:24px; --radius-full:9999px;
  --stroke-sm:1px;
  --shadow-card:0px 0px 4px -1px rgba(75,75,88,0.06),0px 1px 8px -1px rgba(75,75,88,0.06);
  --shadow-skeuo:0px 1px 2px 0px rgba(75,75,88,0.06),inset 0px 0px 0px 1px rgba(75,75,88,0.16),inset 0px -1px 0px 0px rgba(75,75,88,0.04);
  --font-serif:'Anthropic Serif Text',Georgia,'Times New Roman',serif;
  --font-serif-display:'Anthropic Serif Display',Georgia,'Times New Roman',serif;
  --font-sans:'Anthropic Sans Text',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-sans-display:'Anthropic Sans Display',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-mono:'Anthropic Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --card-width:296px; --container-max:1280px; --gutter:clamp(16px,5vw,80px);
  /* Movimento (spec de polimento) */
  --ease:cubic-bezier(0.22,1,0.36,1); --dur-fast:150ms; --dur:200ms; --dur-slow:320ms;
  --shadow-card-hover:0px 2px 6px -1px rgba(75,75,88,0.10),0px 8px 20px -4px rgba(75,75,88,0.12);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;background:var(--color-bg-page);}
html,body{margin:0;padding:0;}
body{background:transparent;color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;}

/* ---- Fundo ambiente (§1): camada fixa animada, quase subliminar ---- */
.bg-ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at 20% 15%, rgba(217,119,87,0.06), transparent 70%),
    radial-gradient(50% 40% at 85% 25%, rgba(217,119,87,0.045), transparent 70%),
    radial-gradient(55% 45% at 50% 90%, rgba(120,110,150,0.035), transparent 70%),
    var(--color-bg-page);
  transform:scale(1.1);will-change:transform;animation:bgdrift 32s ease-in-out infinite alternate;}
@keyframes bgdrift{from{transform:translate3d(0,0,0) scale(1.1);}to{transform:translate3d(2%,-2%,0) scale(1.14);}}
img{display:block;max-width:100%;}
[hidden]{display:none !important;}
.container{width:100%;max-width:calc(var(--container-max) + 2*80px);margin-inline:auto;padding-inline:var(--gutter);}

/* ---- Button (partial) ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);font-family:var(--font-sans-display);font-size:14px;line-height:20px;cursor:pointer;border:var(--stroke-sm) solid transparent;white-space:nowrap;text-decoration:none;transition:opacity var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease);}
.btn--primary{background:var(--color-btn-dark);border-color:var(--color-btn-border);color:var(--color-white);box-shadow:var(--shadow-skeuo);}
.btn--secondary{background:var(--color-btn-2ndary-bg);border-color:var(--color-btn-2ndary-border);color:var(--color-text-primary);box-shadow:var(--shadow-skeuo);}
.btn:hover{opacity:.92;}
.btn:active{transform:translateY(1px);box-shadow:0px 1px 1px rgba(75,75,88,0.06);}
.icon-btn{width:32px;height:32px;flex:0 0 32px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-white);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-skeuo);cursor:pointer;color:var(--color-text-primary);transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.icon-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-card-hover);}
.icon-btn:active:not(:disabled){transform:scale(1);}
.icon-btn:disabled{border-color:#f2f2f3;color:#c4c2b8;cursor:default;box-shadow:none;}
.icon-btn svg{width:16px;height:16px;}

/* ---- Header (partial) ---- */
.site-header{background:var(--color-bg-page);border-bottom:var(--stroke-sm) solid var(--color-border);position:sticky;top:0;z-index:20;transition:box-shadow var(--dur) var(--ease);}
.site-header.is-scrolled{box-shadow:0 1px 0 rgba(75,75,88,0.04),0 6px 20px -10px rgba(75,75,88,0.22);}
.site-header__inner{height:80px;display:flex;align-items:center;justify-content:space-between;}
.brand{display:inline-flex;align-items:center;cursor:pointer;transition:opacity var(--dur) var(--ease);}
.brand:hover{opacity:.72;}
.brand__logo{height:26px;width:auto;display:block;}
.header__menu{display:none;background:none;border:0;cursor:pointer;color:var(--color-text-primary);}
.header__menu svg{width:24px;height:24px;}

/* ---- Badge (partial) ---- */
.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xxs) var(--spacing-md);background:var(--color-surface);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;line-height:18px;color:var(--color-text-primary);white-space:nowrap;}
.badge--tier{background:transparent;color:var(--color-accent);}

/* ---- Footer (partial) ---- */
.site-footer{background:var(--color-footer-bg);border-top:var(--stroke-sm) solid var(--color-footer-border);padding-block:var(--spacing-8xl);}
.site-footer__inner{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-3xl);}
.footer__brand{display:flex;flex-direction:column;gap:var(--spacing-xs);color:var(--color-footer-text);}
.footer__wordmark{display:inline-flex;color:var(--color-footer-text);}
.footer__wordmark svg{height:15px;width:auto;display:block;}
.footer__copy{font-size:12px;line-height:18px;}
.footer__social{display:flex;gap:var(--spacing-xl);}
.footer__social a{color:var(--color-footer-text);display:inline-flex;}
.footer__social svg{width:24px;height:24px;}

/* ---- Partner Card (partial — listagem + featured) ---- */
.partner-card{width:var(--card-width);display:flex;flex-direction:column;background:var(--color-bg-page);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-4xl);box-shadow:var(--shadow-card);overflow:hidden;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),opacity var(--dur) var(--ease);}
.partner-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);}
.partner-card:active{transform:translateY(0) scale(0.995);}
.partner-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
.js .partner-card:not(.is-in){opacity:0;transform:translateY(8px);}
.partner-card__image{height:140px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface);}
.partner-card__image svg{max-width:72%;max-height:40px;}
.partner-card__image--empty{background:var(--color-surface);color:#c9c7bd;}
.partner-card__image--empty svg{width:44px;height:44px;}
.partner-card__body{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-xl);}
.partner-card__text{display:flex;flex-direction:column;gap:var(--spacing-md);}
.partner-card__name{margin:0;font-family:var(--font-serif);font-weight:700;font-size:16px;line-height:24px;color:var(--color-text-primary);word-break:break-word;}
.partner-card__badges{display:flex;flex-wrap:wrap;gap:var(--spacing-md);}
.partner-card__desc{margin:0;font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}

/* ============================================================================
   VIEW: LISTAGEM
   ========================================================================== */
.hero{background:var(--color-bg-page);padding-block:var(--spacing-2xl);}
.hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-2xl);padding-block:var(--spacing-7xl);max-width:611px;margin-inline:auto;}
.hero__heading{margin:0;font-family:var(--font-serif-display);font-weight:500;font-size:clamp(40px,6vw,72px);line-height:1.08;letter-spacing:1.44px;color:var(--color-text-primary);}
.hero__supporting{margin:0;font-family:var(--font-sans);font-size:20px;line-height:28px;color:var(--color-text-secondary);}
.section-heading{margin:0;font-family:var(--font-serif);font-weight:500;font-size:24px;line-height:32px;color:var(--color-text-primary);}
.featured{background:var(--color-bg-page);padding-block:var(--spacing-6xl);}
.featured__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-2xl);gap:var(--spacing-lg);}
.featured__nav{display:flex;gap:var(--spacing-md);}
/* Track em LARGURA TOTAL (fora do container). O padding-left calculado alinha o 1º card
   ao conteúdo (gutter + margem de centralização do container); vaza até a borda direita real
   do viewport em qualquer largura. padding-right dá respiro no fim do scroll. */
.featured__track{display:flex;gap:var(--spacing-2xl);overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x proximity;
  padding-left:calc(max(0px,(100% - (var(--container-max) + 160px))/2) + var(--gutter));
  padding-right:var(--gutter);
  scroll-padding-left:calc(max(0px,(100% - (var(--container-max) + 160px))/2) + var(--gutter));
  padding-bottom:4px;scrollbar-width:none;}
.featured__track::-webkit-scrollbar{display:none;}
.featured__track .partner-card{flex:0 0 var(--card-width);scroll-snap-align:start;}
.main{padding-block:var(--spacing-2xl) var(--spacing-8xl);}
.main__inner{display:flex;gap:var(--spacing-4xl);align-items:flex-start;}
.filters{flex:0 0 320px;display:flex;flex-direction:column;gap:14px;}
.filters__toggle{display:none;}
.filter{display:flex;flex-direction:column;gap:var(--spacing-xs);position:relative;}
.filter__label{font-family:var(--font-sans-display);font-size:12px;line-height:18px;color:var(--color-text-secondary);}
.filter__control{height:40px;width:100%;border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);color:var(--color-text-primary);font-family:var(--font-sans-display);font-size:14px;line-height:20px;padding:var(--spacing-sm) var(--spacing-md);box-shadow:var(--shadow-skeuo);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235e5d59' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer;}
/* Multi-select (Fase 1): botão + painel de checkboxes */
.filter__ms{background-image:none;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;}
.filter__ms-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary);}
.filter__chev{flex:0 0 16px;color:var(--color-text-secondary);}
.filter__ms[aria-expanded="true"] .filter__chev{transform:rotate(180deg);}
.filter__panel{position:absolute;top:100%;left:0;right:0;margin-top:4px;z-index:30;background:var(--color-white);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);padding:6px;max-height:230px;overflow:auto;display:flex;flex-direction:column;gap:2px;}
.filter__panel[hidden]{display:none;}
.filter__opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--color-text-primary);cursor:pointer;}
.filter__opt:hover{background:var(--color-surface);}
.filter__opt input{accent-color:var(--color-accent);width:15px;height:15px;flex:0 0 15px;cursor:pointer;}
.content{flex:1 1 auto;min-width:0;max-width:928px;}
.search{position:relative;margin-bottom:var(--spacing-4xl);}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--color-text-secondary);}
.search input{height:40px;width:100%;border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);color:var(--color-text-primary);font-family:var(--font-sans-display);font-size:14px;line-height:20px;padding:0 12px 0 40px;box-shadow:0px 1px 1px rgba(75,75,88,0.06);}
.search input::placeholder{color:var(--color-text-secondary);}
.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,var(--card-width));gap:var(--spacing-2xl);justify-content:start;}
.grid-empty{padding:48px 0;color:var(--color-text-secondary);font-size:14px;}
.load-more-wrap{display:flex;justify-content:center;margin-top:var(--spacing-4xl);}
.load-more-wrap[hidden]{display:none;}

/* ============================================================================
   VIEW: PERFIL
   ========================================================================== */
/* Perfil = fundo creme LISO (Figma): cobre o gradiente ambiente, que fica só na listagem */
#view-profile{background:var(--color-bg-page);}
.breadcrumb-bar{background:var(--color-bg-page);}
.breadcrumb-bar__inner{height:50px;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);}
.breadcrumb{font-family:var(--font-sans-display);font-size:12px;line-height:18px;color:var(--color-text-primary);display:flex;gap:6px;align-items:center;}
.breadcrumb b{color:var(--color-text-secondary);font-weight:400;}
.breadcrumb [data-home]{cursor:pointer;}
.breadcrumb__nav{display:flex;gap:var(--spacing-md);}
.profile{padding-block:var(--spacing-md) var(--spacing-2xl);}
.profile__body{display:flex;gap:40px;align-items:flex-start;}
.profile__sidebar{flex:0 0 296px;display:flex;flex-direction:column;gap:var(--spacing-2xl);position:sticky;top:96px;}
.profile__main{flex:1 1 auto;min-width:0;max-width:944px;display:flex;flex-direction:column;gap:var(--spacing-6xl);}
.identity{background:var(--color-white);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-4xl);padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-2xl);}
.identity__image{height:140px;border-radius:var(--radius-2xl);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-surface);}
.identity__image svg{max-width:72%;max-height:44px;}
.identity__image--empty{background:var(--color-surface);color:#c9c7bd;}
.identity__image--empty svg{width:44px;height:44px;}
.identity__text{display:flex;flex-direction:column;gap:var(--spacing-md);}
.identity__badges{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);}
.identity__name{margin:0;font-family:var(--font-serif);font-weight:500;font-size:16px;line-height:24px;color:var(--color-text-primary);}
.identity__actions{display:flex;flex-direction:column;gap:var(--spacing-md);}
.identity__actions .btn{width:100%;}
.detail-card{background:var(--color-white);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-2xl);box-shadow:0px 1px 1px rgba(75,75,88,0.06);}
.quick-links{display:flex;flex-direction:column;gap:var(--spacing-md);}
.quick-links__label,.detail-field__label{font-family:var(--font-sans-display);font-weight:500;font-size:14px;line-height:20px;color:var(--color-label);margin:0;}
.quick-link{display:flex;gap:var(--spacing-sm);align-items:center;background:none;border:0;padding:0;cursor:pointer;font-family:var(--font-sans);font-weight:500;font-size:14px;line-height:20px;color:var(--color-text-secondary);text-align:left;}
.quick-link svg{width:20px;height:20px;flex:0 0 20px;}
.detail-field{display:flex;flex-direction:column;gap:var(--spacing-md);}
.detail-field ul{margin:0;padding-left:21px;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:14px;line-height:20px;}
.detail-field__value{color:var(--color-text-secondary);font-family:var(--font-sans);font-size:14px;line-height:20px;}
.section__heading{margin:0 0 var(--spacing-4xl);font-family:var(--font-serif);font-weight:500;font-size:20px;line-height:30px;color:var(--color-text-primary);}
#about .section__heading{margin-bottom:var(--spacing-xl);}
.profile__main > section{scroll-margin-top:96px;border-radius:var(--radius-2xl);}
.about__text{display:flex;flex-direction:column;gap:var(--spacing-2xl);}
.about__text p{margin:0;font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--color-text-secondary);}
.card-row{display:flex;flex-wrap:wrap;gap:var(--spacing-3xl);}
.card-row > *{flex:0 0 calc((100% - 2*var(--spacing-3xl))/3);min-width:0;}
.case-card{background:var(--color-white);border:var(--stroke-sm) solid #d7dadf;border-radius:var(--radius-2xl);padding:var(--spacing-2xl) var(--spacing-xl);height:160px;display:flex;flex-direction:column;justify-content:space-between;}
.case-card__title{margin:0;font-family:var(--font-serif);font-size:18px;line-height:24px;color:var(--color-text-primary);}
.case-card__link{display:flex;gap:var(--spacing-md);align-items:center;background:none;border:0;padding:0;cursor:pointer;color:var(--color-text-secondary);}
.case-card__link svg{width:24px;height:24px;flex:0 0 24px;}
.case-card__link span{font-family:var(--font-sans);font-weight:300;font-size:12px;line-height:24px;}
.video-card{display:flex;flex-direction:column;gap:var(--spacing-lg);cursor:pointer;}
.video-card__thumb{height:150px;background:var(--color-surface);border-radius:var(--radius-2xl);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.92);}
.video-card__thumb svg{width:56px;height:56px;filter:drop-shadow(0 2px 8px rgba(60,45,35,0.18));transition:transform .2s ease;}
.video-card:hover .video-card__thumb svg{transform:scale(1.08);}
.video-card__title{margin:0;font-family:var(--font-serif);font-size:18px;line-height:24px;color:var(--color-text-primary);}
.service-card{border-left:var(--stroke-sm) solid var(--color-border);padding:var(--spacing-xl) var(--spacing-4xl);display:flex;flex-direction:column;gap:var(--spacing-2xl);}
.service-card__icon{width:32px;height:32px;border:1px solid #4d4c49;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);}
.service-card__icon svg{width:16px;height:16px;}
.service-card__title{margin:0;font-family:var(--font-serif);font-size:18px;line-height:24px;color:var(--color-text-primary);}
.service-card__desc{margin:var(--spacing-xs) 0 0;font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--color-text-secondary);}
.clients{display:flex;flex-wrap:wrap;gap:32px 48px;align-items:center;justify-content:center;padding-block:var(--spacing-lg);}
.clients svg{height:28px;width:auto;}
.cert-card{background:var(--color-white);border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md);}
.cert-card__medal{width:56px;height:80px;}
.cert-card__title{margin:0;font-family:var(--font-serif);font-size:16px;line-height:24px;color:var(--color-text-primary);}
.cert-card__desc{margin:0;font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--color-text-secondary);}
.tst{display:flex;flex-direction:column;gap:var(--spacing-xl);}
.tst__viewport{overflow:hidden;}
.tst__track{display:flex;transition:transform .35s ease;}
.tst__item{flex:0 0 50%;padding:var(--spacing-xl);border-left:var(--stroke-sm) solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-xl);min-height:283px;box-sizing:border-box;}
.tst__logo{height:56px;display:flex;align-items:center;}
.tst__logo svg{max-height:48px;max-width:200px;}
.tst__quote{margin:0;font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--color-quote);flex:1;}
.tst__attrib{font-family:var(--font-sans);font-size:14px;line-height:24px;color:var(--color-attrib);}
.tst__controls{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xl);}
.tst__dots{display:flex;gap:10px;}
.tst__dot{width:8px;height:8px;border-radius:var(--radius-full);background:#d1cfc5;border:0;padding:0;cursor:pointer;}
.tst__dot.is-active{background:var(--color-text-primary);}

/* ============================================================================
   MOVIMENTO / POLISH (§ spec) — reativo e discreto. Base sempre VISÍVEL;
   o movimento só entra sob .js (progressive enhancement) e some no reduce.
   ========================================================================== */
/* Hero fade-up escalonado (§3) */
@keyframes fadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.js .hero__heading,.js .hero__supporting,.js .hero__inner .btn{opacity:0;animation:fadeUp var(--dur-slow) var(--ease) forwards;}
.js .hero__heading{animation-delay:60ms;}
.js .hero__supporting{animation-delay:140ms;}
.js .hero__inner .btn{animation-delay:220ms;}
/* Cross-fade de views (§8) */
#view-listing,#view-profile{transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);}
.view-enter{opacity:0;transform:translateY(8px);}
.view-leave{opacity:0;transform:translateY(-8px);}
/* Reveal on-scroll do perfil (§9) */
.profile__main > section{transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);}
.js .profile__main > section:not(.is-in){opacity:0;transform:translateY(16px);}
.js .profile__main > section .card-row > *{opacity:0;transform:translateY(10px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);}
.profile__main > section.is-in .card-row > *{opacity:1;transform:none;}
.profile__main > section.is-in .card-row > *:nth-child(2){transition-delay:50ms;}
.profile__main > section.is-in .card-row > *:nth-child(3){transition-delay:100ms;}
/* Shimmer discreto nas medalhas quando a seção revela (§9) */
.cert-medal-wrap{position:relative;display:inline-block;overflow:hidden;border-radius:10px;}
.cert-medal-wrap::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,0.55) 50%,transparent 70%);transform:translateX(-130%);}
#certifications.is-in .cert-medal-wrap::after{animation:shimmer 1.1s var(--ease) .35s 1;}
@keyframes shimmer{to{transform:translateX(130%);}}
/* Flash da seção-alvo ao chegar via quick-link (§9) */
@keyframes sectionFlash{0%{background:rgba(217,119,87,0.10);}100%{background:transparent;}}
.section-flash{animation:sectionFlash .6s var(--ease);}
/* Foco dos filtros/busca (§6) */
.filter__control,.search input{transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease);}
.filter__control:focus,.search input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(217,119,87,0.15);}
.filters__toggle{cursor:pointer;}
.filters__toggle svg{transition:transform var(--dur) var(--ease);}
.filters.is-open .filters__toggle svg{transform:rotate(180deg);}
/* Re-render/load-more com fade (§6/§7) */
#partner-grid{transition:opacity var(--dur-fast) var(--ease);}
.load-more-wrap{transition:opacity var(--dur) var(--ease);}
/* Detalhes finos (§10) */
.quick-link,.case-card__link{cursor:pointer;transition:color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease);}
.quick-link:hover,.case-card__link:hover{color:var(--color-text-primary);}
.footer__social a{transition:color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);}
.footer__social a:hover{color:#fff;transform:translateY(-1px);}
.tst__dot{transition:background var(--dur) var(--ease),transform var(--dur) var(--ease);}
.clients svg{filter:grayscale(0.35);opacity:.82;transition:filter var(--dur) var(--ease),opacity var(--dur) var(--ease);}
.clients svg:hover{filter:none;opacity:1;}

/* ---- Acessibilidade (§11) — OBRIGATÓRIO: desliga movimento e garante visível ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
  .bg-ambient{animation:none !important;transform:scale(1.1) !important;}
  .partner-card,.profile__main > section,.profile__main > section .card-row > *,.hero__heading,.hero__supporting,.hero__inner .btn{opacity:1 !important;transform:none !important;}
}

/* ============================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width:900px){
  .main__inner{flex-direction:column;}
  .filters{flex:none;width:100%;}
  .filters__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;height:40px;padding:0 12px;border:var(--stroke-sm) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);font-family:var(--font-sans-display);font-size:14px;color:var(--color-text-primary);cursor:pointer;}
  .filters__toggle svg{width:16px;height:16px;}
  .filters__grid{display:none;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
  .filters.is-open .filters__grid{display:grid;}
  .filters:not(.is-open) .filters__grid{display:none;}
  .profile__body{flex-direction:column;}
  .profile__sidebar{position:static;flex:none;width:100%;}
  .profile__main{max-width:none;width:100%;}
  .card-row > *{flex:0 0 100%;}
  .service-card{border-left:0;border-top:var(--stroke-sm) solid var(--color-border);padding:var(--spacing-xl) 0;}
  .tst__item{flex-basis:100%;}
}
@media (min-width:901px){ .filters__grid{display:contents;} }
@media (max-width:640px){
  .site-header__inner{height:56px;}
  .header__actions{display:none;}
  .header__menu{display:inline-flex;}
  .filters__grid{grid-template-columns:1fr;}
  .site-footer__inner{flex-direction:column;align-items:flex-start;}
}


/* ===== Partner Directory template overrides ===== */
/* Cards & inner links are <a> in the SSR build (native nav). Reset link styling ONLY —
   do NOT touch display, so base .partner-card{display:flex;flex-direction:column} governs,
   and do NOT override .brand__logo / .footer__wordmark so the original rules stand. */
a.partner-card,a.brand,a.quick-link,a.case-card__link,a.video-card{text-decoration:none;color:inherit}
/* CTA/action buttons render as <a class="btn …"> — keep the .btn* variant colors, drop underline */
a.btn{text-decoration:none}
/* Fallback brand mark — only when no brandLogo image is configured (asterisk + serif name) */
.brand--fallback{gap:8px}
.brand--fallback .brand__logo{width:26px;height:26px;color:#d97757}
.brand__name{font-family:'Anthropic Serif Display',Georgia,serif;font-size:22px;font-weight:500;color:#141413;line-height:1}
/* No-JS fallback: reveal content that JS would otherwise animate in */
html:not(.js) .partner-card,html:not(.js) #main>section{opacity:1!important;transform:none!important}
