/* Extensão dos componentes existentes, restrita à página de cases. */
.cases-page main section[id] { scroll-margin-top: 120px; }
.cases-page .cases-skip-link {
    position: fixed;
    top: 12px;
    left: 16px;
    z-index: 10000;
    padding: 12px 20px;
    border-radius: 12px;
    color: #fff;
    background: var(--purple-dark);
    transform: translateY(-180%);
}
.cases-page .cases-skip-link:focus { transform: none; }
.cases-page :focus-visible { outline: 3px solid var(--lilac); outline-offset: 5px; }
.cases-page .section-kicker { font-size: .875rem; letter-spacing: .05em; }
.cases-page .cases-hero {
    padding-bottom: 40px;
    color: #fff;
    background:
        radial-gradient(circle at 72% 32%, rgba(137, 103, 219, .26), transparent 34%),
        var(--purple-dark);
}
.cases-page .cases-hero .hero-orbit { border-color: rgba(255, 255, 255, .1); }
@media (min-width: 1211px) {
    body.cases-page > .site-header + main > .cases-hero { padding-top: 124px; }
}
.cases-page .cases-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
    font-size: .875rem;
    color: rgba(255, 255, 255, .68);
}
.cases-page .cases-breadcrumb a { color: #e0b9ff; }
.cases-page .hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 64px; }
.cases-page .hero h1 {
    color: #fff;
    font-family: "Plus Jakarta Sans", "Space Grotesk", Nunito, sans-serif;
    font-size: clamp(2.5rem, 4vw, 3.625rem);
    font-weight: 500;
    line-height: 1.12;
    letter-spacing: -.045em;
}
.cases-page .hero h1 em { color: #e0b9ff; }
.cases-page .hero-copy > p {
    margin: 18px 0 22px;
    color: rgba(255, 255, 255, .78);
    font-size: 1.125rem;
}
.cases-page .cases-hero-panel {
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    color: var(--ink);
    box-shadow: var(--shadow);
}
.cases-page .cases-hero-panel h2 {
    font: 500 clamp(1.75rem, 2.5vw, 2.25rem)/1.2 "Plus Jakarta Sans", sans-serif;
    letter-spacing: -.035em;
}
.cases-page .cases-hero-panel > p { margin: 16px 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.cases-page .logo-strip {
    height: 104px;
    margin-top: 28px;
    background: transparent;
}
.cases-page .logo-strip__track li {
    background: transparent;
    box-shadow: none;
    -webkit-mask: none;
    mask: none;
}
.cases-page .cases-story { padding-block: 72px; }
.cases-page .cases-story--soft { background: var(--soft); }
.cases-page .cases-story-heading { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.cases-page .cases-story-heading .section-heading { margin: 0; max-width: 780px; }
.cases-page .cases-story-heading h2 {
    font-family: "Plus Jakarta Sans", "Space Grotesk", Nunito, sans-serif;
    font-size: clamp(2rem, 3.4vw, 2.875rem);
    font-weight: 500;
    line-height: 1.22;
    letter-spacing: -.03em;
    color: var(--purple-dark);
}
.cases-page .cases-story-heading p { margin: 14px 0 0; line-height: 1.55; }
.cases-page .cases-company-logo { width: 216px; height: 96px; object-fit: contain; flex: 0 0 auto; }
.cases-page .cases-story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 32px; }
.cases-page .cases-story-content { min-width: 0; }
.cases-page .cases-story-content h3 { margin: 0 0 10px; font: 600 1.375rem/1.3 "Plus Jakarta Sans", sans-serif; color: var(--purple-dark); }
.cases-page .cases-context > p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.cases-page .cases-solution { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.cases-page .cases-solution ul { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.cases-page .cases-solution li { display: flex; align-items: flex-start; gap: 12px; font-size: 1rem; line-height: 1.5; }
.cases-page .cases-solution i { flex-shrink: 0; color: var(--purple); font-size: 1.375rem; line-height: 1.6; }
.cases-page .case-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.cases-page .case-tags span { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--purple); background: #f5f1fc; font-size: .875rem; line-height: 1.4; }
.cases-page .cases-story-evidence { min-width: 0; display: grid; gap: 14px; }
.cases-page .cases-quote { min-height: 0; margin: 0; padding: 26px; background: #f7f4fc; }
.cases-page .cases-story--soft .cases-quote { background: #fff; }
.cases-page .cases-quote > span { font-size: 3.5rem; }
.cases-page .cases-quote blockquote { margin: 10px 0 20px; font: 500 1rem/1.6 Nunito, sans-serif; color: var(--ink); }
.cases-page .cases-quote .person { align-items: center; gap: 14px; }
.cases-page .cases-quote .person img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.cases-page .cases-quote .person strong { font-size: 1rem; }
.cases-page .cases-quote .person small { font-size: .875rem; line-height: 1.5; }
.cases-page .cases-benefits { min-height: 0; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 22px; }
.cases-page .cases-benefits > small { font-size: .875rem; color: #e2d7f7; }
.cases-page .cases-benefits .cases-benefits-hint { display: none; }
.cases-page .cases-benefits .cases-benefits-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; min-width: 0; padding: 0; border: 0; }
.cases-page .cases-benefits-track > div { min-width: 0; padding: 0 0 0 12px; }
.cases-page .cases-benefits strong { font: 600 1.125rem/1.3 "Plus Jakarta Sans", sans-serif; overflow-wrap: anywhere; }
.cases-page .cases-benefits span { margin-top: 5px; font-size: .875rem; color: rgba(255,255,255,.85); line-height: 1.45; }
.cases-page #nater-joao-lepaus { padding-block: 56px; }
.cases-page #nater-joao-lepaus .cases-story-heading { margin-bottom: 24px; }
.cases-page #nater-joao-lepaus summary { list-style: none; cursor: pointer; }
.cases-page #nater-joao-lepaus summary::-webkit-details-marker { display: none; }
.cases-page .cases-context-preview {
    display: block;
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.55;
}
.cases-page .cases-quote-preview {
    display: block;
    margin: 10px 0 12px;
    color: var(--ink);
    font: 500 1rem/1.6 Nunito, sans-serif;
}
.cases-page .cases-details-open-label,
.cases-page .cases-details-close-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    color: var(--purple);
    font-size: .875rem;
    font-weight: 800;
}
.cases-page .cases-details-close-label,
.cases-page details[open] .cases-details-open-label,
.cases-page details[open] .cases-context-preview,
.cases-page details[open] .cases-quote-preview { display: none; }
.cases-page details[open] .cases-details-close-label { display: inline-flex; }
.cases-page .cases-context-details > p {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.6;
}
.cases-page .cases-quote-details:not([open]) { margin-bottom: 20px; }
.cases-page .cases-quote-details[open] blockquote { margin-top: 12px; }
.cases-page .cases-technology .platform-card p { font-size: 1rem; }
.cases-page .cases-technology .platform-card h3 { font-size: 1.1875rem; }
.cases-page .cases-powered { grid-template-columns: 1fr; gap: 18px; margin: 32px 0 0; padding: 24px; }
.cases-page .cases-powered__brand { border: 0; }
.cases-page .cases-powered__brand img { width: 110px; height: 32px; object-fit: contain; }
.cases-page .cases-powered__eyebrow, .cases-page .cases-powered__copy p { font-size: .875rem; }
.cases-page .cases-powered__copy strong { font-size: 1rem; }
.cases-page .cases-contact { padding: 90px 0; }
.cases-page .cases-contact .cta-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; }
.cases-page .cases-contact .cta-copy p { font-size: 1.125rem; }
.cases-page .cases-contact-actions { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.cases-page .cases-contact .button-primary { color: var(--purple-dark); background: #fff; border: 1px solid #fff; box-shadow: 0 14px 35px rgba(0,0,0,.12); }
.cases-page .cases-contact-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; color: #fff; font-size: 1rem; text-align: center; }
.cases-page .button { max-width: 100%; white-space: normal; text-align: center; height: auto; min-height: 58px; padding-block: 14px; }
.cases-page .cases-directory { padding-block: 82px; background: var(--soft); }
.cases-page .cases-directory__heading { max-width: 780px; margin-bottom: 34px; }
.cases-page .cases-directory__heading h2,
.cases-page .cases-related__heading h2,
.cases-page .case-detail-section-heading h2 {
    color: var(--purple-dark);
    font-family: "Plus Jakarta Sans", "Space Grotesk", Nunito, sans-serif;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 500;
    line-height: 1.16;
    letter-spacing: -.04em;
}
.cases-page .cases-directory__heading h2 em { color: var(--purple); }
.cases-page .cases-directory__heading p,
.cases-page .case-detail-section-heading p { margin: 14px 0 0; color: var(--muted); font-size: 1.0625rem; line-height: 1.65; }
.cases-page .case-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cases-page .case-directory-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(48, 11, 93, .045);
}
.cases-page .case-directory-card__logo { display: grid; height: 92px; margin-bottom: 24px; place-items: center; border-radius: 17px; background: #faf8fd; }
.cases-page .case-directory-card__logo img { width: 176px; height: 70px; object-fit: contain; }
.cases-page .case-directory-card h3 { margin: 12px 0; color: var(--purple-dark); font: 600 1.375rem/1.3 "Plus Jakarta Sans", sans-serif; letter-spacing: -.025em; }
.cases-page .case-directory-card p { margin: 0 0 22px; color: var(--muted); font-size: .9875rem; line-height: 1.6; }
.cases-page .case-directory-card > a { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--purple); font-weight: 800; }
.cases-page .case-directory-card > a:hover { gap: 12px; }
.cases-page .case-detail-hero {
    position: relative;
    overflow: hidden;
    padding: 124px 0 58px;
    color: #fff;
    background: radial-gradient(circle at 72% 32%, rgba(137, 103, 219, .26), transparent 34%), var(--purple-dark);
}
.cases-page .case-detail-hero .hero-orbit { border-color: rgba(255, 255, 255, .1); }
.cases-page .case-detail-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); align-items: center; gap: 64px; }
.cases-page .case-detail-hero__copy h1 { max-width: 760px; margin: 14px 0 0; color: #fff; font: 500 clamp(2.5rem, 4vw, 3.625rem)/1.12 "Plus Jakarta Sans", sans-serif; letter-spacing: -.045em; }
.cases-page .case-detail-hero__copy > p { max-width: 720px; margin: 18px 0; color: rgba(255, 255, 255, .78); font-size: 1.125rem; line-height: 1.65; }
.cases-page .case-detail-hero__copy .case-tags { margin-bottom: 24px; }
.cases-page .case-detail-hero__copy .case-tags span { border-color: rgba(255, 255, 255, .2); color: #fff; background: rgba(255, 255, 255, .1); }
.cases-page .case-detail-brand-card { display: grid; min-height: 290px; padding: 36px; place-content: center; justify-items: center; border-radius: 28px; color: var(--ink); background: #fff; box-shadow: 0 24px 60px rgba(17, 0, 33, .2); text-align: center; }
.cases-page .case-detail-brand-card img { width: min(240px, 100%); height: 108px; object-fit: contain; }
.cases-page .case-detail-brand-card small { margin: 18px 0 8px; color: var(--purple); font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cases-page .case-detail-brand-card strong { max-width: 360px; color: var(--purple-dark); font: 600 1.0625rem/1.5 "Plus Jakarta Sans", sans-serif; }
.cases-page .case-detail-story { padding-block: 72px; }
.cases-page .case-detail-section-heading { max-width: 780px; margin-bottom: 30px; }
.cases-page .cases-related { padding-block: 76px; background: var(--soft); }
.cases-page .cases-related__heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 30px; }
.cases-page .cases-related__heading > div { max-width: 760px; }
.cases-page .cases-related__heading > a { flex: 0 0 auto; color: var(--purple); font-weight: 800; }
.cases-page .case-directory-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1050px) {
    .cases-page .hero-grid { grid-template-columns: 1fr; gap: 24px; }
    .cases-page .cases-hero-panel { max-width: 700px; }
    .cases-page .cases-story-grid { grid-template-columns: 1fr; gap: 32px; }
    .cases-page .cases-story-heading { gap: 28px; }
    .cases-page .cases-company-logo { width: 168px; height: 76px; }
    .cases-page .cases-contact .cta-grid { grid-template-columns: 1fr; gap: 30px; }
    .cases-page .cases-contact-actions { align-items: flex-start; }
    .cases-page .case-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cases-page .case-detail-hero__grid { grid-template-columns: 1fr; gap: 28px; }
    .cases-page .case-detail-brand-card { min-height: 220px; }
}
@media (max-width: 700px) {
    .cases-page main section[id] { scroll-margin-top: 90px; }
    .cases-page .cases-hero { padding-bottom: 28px; }
    .cases-page .cases-story,
    .cases-page #nater-joao-lepaus { padding-block: 44px; }
    .cases-page .cases-breadcrumb { margin-bottom: 20px; }
    .cases-page .hero h1 { font-size: clamp(2rem, 7.5vw, 2.75rem); }
    .cases-page .cases-hero-panel { padding: 22px; }
    .cases-page .logo-strip { height: 88px; margin-top: 22px; }
    .cases-page .cases-story-heading,
    .cases-page #nater-joao-lepaus .cases-story-heading { align-items: stretch; flex-direction: column-reverse; gap: 14px; margin-bottom: 22px; }
    .cases-page .cases-company-logo { box-sizing: border-box; width: 208px; height: 88px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 18px; background: #fff; object-position: center; }
    .cases-page .cases-story-heading .section-kicker { margin-bottom: 12px; }
    .cases-page .cases-story-heading h2 { font-size: clamp(1.75rem, 7vw, 2.125rem); line-height: 1.17; }
    .cases-page .cases-story-heading p { margin-top: 10px; font-size: 1rem; line-height: 1.55; }
    .cases-page .cases-story-grid { gap: 16px; }
    .cases-page .cases-story-content { display: grid; gap: 12px; }
    .cases-page .cases-story-content :is(.cases-context, .cases-solution) { min-width: 0; margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 8px 28px rgba(48, 11, 93, .035); }
    .cases-page .cases-story-content h3 { margin-bottom: 10px; font-size: 1.1875rem; }
    .cases-page .cases-solution ul { margin-bottom: 0; gap: 12px; }
    .cases-page .case-tags { gap: 7px; padding-block: 2px; }
    .cases-page .cases-story-evidence { gap: 12px; }
    .cases-page .cases-quote { padding: 20px; border-radius: 20px; }
    .cases-page .cases-quote blockquote { margin-bottom: 18px; }
    .cases-page .cases-benefits { padding: 20px 0 12px 20px; border-radius: 20px; overflow: hidden; }
    .cases-page .cases-benefits > small { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; padding-right: 20px; }
    .cases-page .cases-benefits .cases-benefits-hint { display: inline; margin: 0; color: #e2d7f7; font-size: .75rem; font-weight: 700; }
    .cases-page .cases-benefits .cases-benefits-track { grid-template-columns: none; grid-auto-columns: minmax(190px, 78%); grid-auto-flow: column; gap: 10px; overflow-x: auto; padding: 2px 20px 10px 2px; scroll-snap-type: x mandatory; scrollbar-width: thin; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
    .cases-page .cases-benefits-track > div { padding: 16px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 15px; background: rgba(255, 255, 255, .09); scroll-snap-align: start; }
    .cases-page .cases-benefits strong { font-size: 1.125rem; }
    .cases-page .cases-benefits span { font-size: .875rem; }
    .cases-page .cases-technology .platform-cards { grid-template-columns: 1fr; gap: 16px; }
    .cases-page .cases-technology .platform-card { padding: 26px; }
    .cases-page .cases-technology .platform-card__ico { width: 46px; height: 46px; font-size: 24px; }
    .cases-page .cases-technology .platform-intro { text-align: left; }
    .cases-page .cases-technology .platform-intro h2 { max-width: none; font-size: 2rem; }
    .cases-page .cases-contact { padding: 75px 0; }
    .cases-page .cases-contact-actions { align-items: stretch; }
    .cases-page .cases-directory,
    .cases-page .cases-related { padding-block: 48px; }
    .cases-page .cases-directory__heading { margin-bottom: 24px; }
    .cases-page .cases-directory__heading h2,
    .cases-page .cases-related__heading h2,
    .cases-page .case-detail-section-heading h2 { font-size: clamp(1.75rem, 7vw, 2.125rem); line-height: 1.18; }
    .cases-page .cases-directory__heading p,
    .cases-page .case-detail-section-heading p { font-size: 1rem; line-height: 1.55; }
    .cases-page .case-directory-grid,
    .cases-page .case-directory-grid--related { grid-template-columns: 1fr; gap: 14px; }
    .cases-page .case-directory-card { padding: 20px; border-radius: 20px; }
    .cases-page .case-directory-card__logo { height: 80px; margin-bottom: 18px; }
    .cases-page .case-directory-card__logo img { width: 156px; height: 62px; }
    .cases-page .case-directory-card h3 { font-size: 1.25rem; }
    .cases-page .case-detail-hero { padding: 94px 0 34px; }
    .cases-page .case-detail-hero .cases-breadcrumb { margin-bottom: 18px; }
    .cases-page .case-detail-hero__copy h1 { margin-top: 10px; font-size: clamp(2rem, 9vw, 2.75rem); }
    .cases-page .case-detail-hero__copy > p { margin: 14px 0; font-size: 1rem; line-height: 1.55; }
    .cases-page .case-detail-hero__copy .case-tags { margin-bottom: 18px; }
    .cases-page .case-detail-brand-card { min-height: 0; padding: 22px; border-radius: 22px; }
    .cases-page .case-detail-brand-card img { height: 78px; }
    .cases-page .case-detail-brand-card small { margin-top: 12px; }
    .cases-page .case-detail-story { padding-block: 44px; }
    .cases-page .case-detail-section-heading { margin-bottom: 22px; }
    .cases-page .cases-related__heading { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    html:has(.cases-page) { scroll-behavior: auto; }
    .cases-page *, .cases-page *::before, .cases-page *::after { animation: none !important; transition: none !important; }
}
