/* Exclusivo da Home. Usa componentes e tokens existentes sem alterar outras rotas. */
.home-hero.hero { padding-block: clamp(116px, 10vw, 156px) 0; }
.home-hero .hero__title { max-width: 22ch; }
.home-hero .hero__sub { max-width: 58ch; font-size: clamp(17px, 1.3vw, 19px); }
.home-hero .hero__btn { min-height: 52px; font-size: 14px; letter-spacing: 0; text-transform: none; }
.home-affiliation { background: var(--color-white); border-bottom: 1px solid var(--ui-border); }
.home-affiliation__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-block: 22px; }
.home-affiliation p { flex: 1 1 420px; margin: 0; color: var(--color-primary); font-size: 15px; line-height: 1.5; }
.home-affiliation a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--color-primary); font-size: 15px; font-weight: 500; text-decoration: none; }
.home-affiliation a:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-affiliation a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
:is(.home-areas,.home-cases,.home-process,.home-library,.home-testimonials) { padding-block: clamp(48px, 5vw, 80px); }
:is(.home-areas,.home-cases,.home-library,.home-testimonials) .section-head { align-items: start; gap: clamp(24px, 4vw, 56px); }
:is(.home-areas,.home-cases,.home-library,.home-testimonials) .section-head :is(h2,p) { margin: 0; padding: 0; }
.home-areas .solutions { margin-top: clamp(28px, 3vw, 40px); }
.home-areas .sol { padding: clamp(20px, 2.2vw, 32px); }
.home-areas .sol .sol__brand { position: static; display: block; color: var(--card-text); font-size: 15px; letter-spacing: 0; }
.home-areas .sol .sol__title { font-size: clamp(23px, 2vw, 28px); line-height: 1.3; }
.home-areas .sol .sol__desc { font-size: 16px; }
.home-areas .sol .sol__fronts li { font-size: 16px; }
.home-areas .sol .sol__cta { font-size: 15px; min-height: 48px; }
.home-cases { background: var(--color-white); padding-top: 0; }
.home-cases > .container { border-top: 1px solid var(--ui-border); padding-top: clamp(40px, 4vw, 64px); }
.home-cases .cases__grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); grid-template-rows: none; grid-auto-rows: auto; gap: 24px; }
.home-cases .case-card { display: flex; grid-row: auto; padding: clamp(20px,2vw,28px); }
.home-cases .case-card__body { display: flex; flex-direction: column; min-width: 0; padding: 0; gap: 16px; }
.home-cases .case-card :is(h3,p) { margin: 0; min-height: 0; }
.home-cases .case-card h3 { font-size: clamp(20px,1.6vw,24px); line-height: 1.35; }
.home-cases .case-card p { font-size: 16px; line-height: 1.6; }
.home-case-context { display: flex; flex-direction: column; gap: 6px; color: var(--ui-muted); font-size: 14px; line-height: 1.4; }
.home-case-context > span:first-child { color: var(--color-primary); font-weight: 500; }
.home-case-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; margin-top: auto; color: var(--color-primary); font-size: 15px; font-weight: 500; }
@supports (grid-template-rows: subgrid) {
  .home-cases .cases__grid { grid-template-rows: repeat(5,auto); }
  .home-areas .solutions { grid-template-rows: repeat(6,auto); row-gap: 18px; }
  .home-areas .sol { grid-row: span 6; row-gap: 18px; }
  .home-areas .sol :is(.sol__title,.sol__fronts) { margin: 0; }
  .home-cases .case-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 16px; }
  .home-cases .case-card__body { display: contents; }
}
.home-process .process-scene__inner { gap: clamp(28px,4vw,48px); }
.home-process .process-flow { container: home-flow / inline-size; }
.home-process .process-flow__visual { height: clamp(180px,18vw,250px); }
.home-process .process-flow__stages { position: static; grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: none; gap: clamp(12px,2vw,28px); }
.home-process .process-flow__stage { text-align: center; }
.home-commitments { padding-top: 28px; border-top: 1px solid rgba(255,255,255,.2); }
.home-commitments > h3 { color: var(--color-white); font-size: 20px; line-height: 1.4; margin: 0 0 24px; }
.home-commitments__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 24px 32px; }
.home-commitments__grid article { min-width: 0; }
.home-commitments__grid h4 { font-size: 17px; line-height: 1.4; color: var(--color-white); margin: 0 0 10px; }
.home-commitments__grid p { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.85); margin: 0; }
.home-library .library__list { grid-template-columns: repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.home-library .library__link { padding: clamp(20px,2vw,28px); }
.home-library .library__lead { font-size: 16px; line-height: 1.6; }
.home-library .library__more { font-size: 15px; min-height: 44px; }
.home-testimonials { padding-top: 0; }
.home-testimonials > .container { border-top: 1px solid var(--ui-border); padding-top: clamp(40px,4vw,64px); }
.home-testimonials .institutional-voice h3 { font-size: 17px; line-height: 1.4; margin: 0; }
.home-testimonials .institutional-voice__identity p { font-size: 14px; line-height: 1.5; }
.home-testimonials .institutional-voice__identity > div { flex: 1; min-width: 0; }
.home-testimonials .institutional-voice__photo { display: block; flex: 0 0 56px; width: 56px; height: 56px; object-fit: cover; border-radius: 50%; }
.home-testimonials blockquote { margin-inline: 0; }
.home-testimonials blockquote p { margin: 0; font-size: 16px; line-height: 1.6; }
.home-testimonials .institutional-voice__projects { flex: 0 1 auto; margin-bottom: 0; }
.home-testimonials .institutional-voice__ratings { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 16px 0 0; font-size: 14px; line-height: 1.5; }
.home-testimonials .institutional-voice__ratings > div { display: flex; align-items: baseline; gap: 6px; }
.home-testimonials .institutional-voice__ratings dt { color: var(--ui-muted); font-weight: 400; }
.home-testimonials .institutional-voice__ratings dd { margin: 0; color: var(--color-primary); font-weight: 600; white-space: nowrap; }
.home-testimonials .institutional-voice > a { font-size: 14px; margin-top: 12px; }
@media (max-width: 900px) {
  .home-process .process-scene__intro { grid-template-columns: minmax(0,1fr); gap: 20px; }
}
@media (max-width: 860px) {
  .home-areas .solutions { grid-template-columns: minmax(0,1fr); grid-template-rows: none; grid-auto-rows: auto; row-gap: 24px; }
  .home-areas .sol { display: flex; gap: 0; }
  .home-areas .sol .sol__head { display: block; }
  .home-areas .sol .sol__brand { margin-bottom: 16px; }
  .home-areas .sol .sol__title { margin-bottom: 12px; }
  .home-areas .sol .sol__fronts { margin-block: 24px; flex: initial; }
}
/* O Canvas existente troca de orientação pela própria largura, não pela tela. */
@container home-flow (max-width: 680px) {
  .home-process .process-flow__visual { height: 360px; }
  .home-process .process-flow__stages { position: absolute; inset: 0 0 0 55%; grid-template-columns: minmax(0,1fr); grid-template-rows: repeat(4,minmax(0,1fr)); gap: 0; align-items: center; }
  .home-process .process-flow__stage { text-align: left; font-size: 16px; }
}
@media (max-width: 480px) {
  .home-hero .hero__title { font-size: clamp(34px,8.5vw,40px); white-space: normal; }
  .home-hero .hero__actions { align-items: stretch; }
  .home-hero .hero__btn { white-space: normal; }
  .home-affiliation__inner { gap: 8px; padding-block: 20px; }
}

/* Assets anteriores restaurados: estilos restritos à Home. */
.home-areas .sol__media { margin: 0; min-width: 0; }
.home-cases .case-card__visual { width: 100%; min-width: 0; border-radius: var(--ui-radius-control); }

/* Destaque aprovado: composição anterior, dimensionada pela largura disponível. */
.home-areas .areas__head { max-width: 1200px; margin: 0 auto clamp(32px,4vw,48px); }
.home-areas .areas__title { margin: 0; font-size: clamp(30px,4.2vw,56px); line-height: 1.2; }
.home-areas .areas__pill { transform: none; }

/* Cada linha de feedback preenche a largura, inclusive quando incompleta. */
.home-testimonials .institutional-voices__grid {
  --feedback-gap: clamp(24px,3vw,32px);
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--feedback-gap);
}
.home-testimonials .institutional-voice {
  flex: 1 1 max(320px,calc((100% - var(--feedback-gap) - var(--feedback-gap)) / 3));
}

/* Additional discovery uses existing services and retains both catalog CTAs. */
.home-needs { position: relative; z-index: 1; min-width: 0; border-top: 1px solid var(--card-divider); color: var(--card-text); }
.home-needs summary { cursor: pointer; padding-block: 12px; min-height: 44px; font-size: 15px; font-weight: 500; line-height: 1.5; }
.home-needs ul { list-style: none; padding: 0 0 12px; margin: 0; }
.home-needs a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-block: 10px; min-height: 44px; color: var(--card-text); font-size: 15px; line-height: 1.5; text-decoration: none; }
.home-needs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.home-needs :is(summary,a):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@supports (grid-template-rows: subgrid) {
  .home-areas .solutions { grid-template-rows: repeat(7,auto); }
  .home-areas .sol { grid-row: span 7; }
}

/* One documented feature, with all existing secondary cases retained. */
.home-cases .cases__grid:has(.home-case--feature) { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; align-items: stretch; gap: 24px; }
.home-cases .case-card { display: flex; grid-row: auto; gap: 18px; }
.home-cases .case-card__body { display: flex; flex-direction: column; flex: 1; gap: 14px; }
.home-cases .home-case--feature { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); grid-template-rows: none; align-items: stretch; gap: 28px; }
.home-cases .home-case--feature h3 { font-size: clamp(25px,2.4vw,34px); }
.home-cases .case-card__visual { position: relative; flex: 0 0 auto; aspect-ratio: 16 / 9; max-height: 320px; }
.home-cases .home-case--feature .case-card__visual { aspect-ratio: auto; height: 100%; min-height: 260px; max-height: none; }
.home-case-deliveries { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-top: 14px; border-top: 1px solid var(--ui-border); margin: 0; }
.home-case-deliveries dt { font-size: 13px; color: var(--ui-muted); }
.home-case-deliveries dd { margin: 4px 0 0; font-size: 15px; line-height: 1.5; }
.home-case-deliveries strong { font-weight: 700; color: var(--color-primary); }
.home-process .process-flow__stage { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.home-process .process-flow__stage small { display: block; font-size: 14px; line-height: 1.45; font-weight: 400; color: rgba(255,255,255,.8); }
.home-library__highlight { align-self: flex-start; display: inline-flex; padding: 5px 10px; border-radius: var(--ui-radius-control); font-size: 14px; font-weight: 500; background: var(--color-primary); color: white; }
.home-library--featured .library__link { border-color: var(--color-primary); background: rgba(1,22,85,.025); }
.home-library__metadata { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ui-muted); }
@container page-layout (max-width: 900px) {
  .home-cases .cases__grid:has(.home-case--feature) { grid-template-columns: minmax(0,1fr); }
  .home-cases .home-case--feature { grid-row: auto; grid-template-columns: minmax(0,1fr); }
  .home-cases .home-case--feature .case-card__visual { height: auto; min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width:860px) { .home-areas .sol { grid-row: auto; } }
