/*
 * Realiza 2.4: Home inspirada na composição fotográfica aprovada.
 * Mantém Montserrat + Poppins e não altera os templates das páginas internas.
 */

:root {
  --rs-insp-green: #0f7f46;
  --rs-insp-green-bright: #35b957;
  --rs-insp-lime: #8bd858;
  --rs-insp-navy: #071b31;
  --rs-insp-navy-2: #0a2946;
  --rs-insp-paper: #f5f7f6;
}

.rs-header { --rs-header-height: 94px; }
.rs-header.is-compact { --rs-header-height: 84px; }
.rs-brand { width: 225px; }

.rs-inspired-home { overflow: hidden; color: var(--rs-ink); background: #fff; }
.rs-inspired-home * { box-sizing: border-box; }
.rs-inspired-home h1,
.rs-inspired-home h2,
.rs-inspired-home h3 { margin: 0; font-family: var(--rs-heading); }
.rs-inspired-home p { margin: 0; font-family: var(--rs-body); }

.rs-insp-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--rs-insp-lime) !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1.4;
  text-transform: uppercase;
}

.rs-insp-eyebrow::before { display: none; content: none; }
.rs-insp-eyebrow--green { color: var(--rs-insp-green) !important; }

.rs-insp-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.rs-insp-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 25px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--rs-body);
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.2;
  transition: transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease;
}

.rs-insp-button svg { width: 16px; flex: 0 0 auto; transition: transform .25s ease; }
.rs-insp-button:hover { transform: translateY(-2px); }
.rs-insp-button:hover svg { transform: translateX(4px); }
.rs-insp-button--primary { color: #fff !important; background: var(--rs-insp-green); }
.rs-insp-button--primary:hover { background: #0f7240; }
.rs-insp-button--outline-light { color: #fff !important; border-color: rgba(255, 255, 255, .78); background: rgba(7, 27, 49, .18); }
.rs-insp-button--outline-light:hover { border-color: #fff; background: rgba(255, 255, 255, .12); }
.rs-insp-button--light { color: var(--rs-insp-navy) !important; border-color: #fff; background: #fff; }
.rs-insp-button--light:hover { border-color: var(--rs-insp-lime); background: var(--rs-insp-lime); }

/* Hero fotográfico */
.rs-insp-hero {
  position: relative;
  min-height: 640px;
  overflow: hidden;
  color: #fff !important;
  background: var(--rs-insp-navy);
  isolation: isolate;
}

.rs-insp-hero::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 18, 33, .98) 0%, rgba(4, 22, 39, .94) 31%, rgba(5, 28, 48, .73) 56%, rgba(5, 30, 50, .38) 100%);
  content: '';
}

.rs-insp-hero::after {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 180px;
  background: linear-gradient(0deg, rgba(4, 18, 33, .60), transparent);
  content: '';
}

.rs-insp-hero__media,
.rs-insp-hero__media img { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; }
.rs-insp-hero__media img { object-fit: cover; object-position: 58% 50%; filter: saturate(.78) contrast(1.06); }
.rs-insp-hero__content { position: relative; z-index: 2; display: flex; min-height: 640px; flex-direction: column; justify-content: center; padding: 72px 0 32px; }
.rs-insp-hero__copy { max-width: 670px; }
body.rs-theme .rs-insp-hero h1.rs-seo-page-title {
  margin-top: 9px;
  margin-bottom: 0;
  color: rgba(255,255,255,.82);
  font-size: 12px;
}
body.rs-theme .rs-insp-hero .rs-hero-campaign {
  max-width: 670px;
  margin-top: 8px;
  color: #fff !important;
  font-size: clamp(39px, 4.1vw, 58px);
  font-weight: 800;
  line-height: 1.07;
  letter-spacing: -.025em;
  text-transform: uppercase;
}

.rs-insp-hero .rs-hero-campaign span { color: var(--rs-insp-lime); }
.rs-insp-hero__copy > p:not(.rs-insp-eyebrow) { max-width: 590px; margin-top: 20px; color: rgba(255, 255, 255, .84); font-size: 14.5px; line-height: 1.7; }
.rs-insp-hero__principles { display: grid; grid-template-columns: repeat(4, 1fr); margin: 66px 0 0; padding: 27px 0 0; border-top: 1px solid rgba(255, 255, 255, .20); list-style: none; }
.rs-insp-hero__principles li { display: flex; min-width: 0; align-items: center; gap: 14px; padding: 0 24px; border-right: 1px solid rgba(255, 255, 255, .17); }
.rs-insp-hero__principles li:first-child { padding-left: 0; }
.rs-insp-hero__principles li:last-child { padding-right: 0; border-right: 0; }
.rs-insp-hero__principles li > span { width: 38px; flex: 0 0 auto; color: var(--rs-insp-lime); font-family: var(--rs-heading); font-size: 30px; line-height: 1; text-align: center; }
.rs-insp-hero__principles strong { display: block; color: #fff; font-family: var(--rs-heading); font-size: 13.5px; font-weight: 700; line-height: 1.35; text-transform: uppercase; }
.rs-insp-hero__principles small { display: block; margin-top: 3px; color: rgba(255, 255, 255, .72); font-size: 11.5px; line-height: 1.45; }

/* Quem somos */
.rs-insp-about { background: #fff; }
.rs-insp-about__grid { display: grid; grid-template-columns: 1fr 1.04fr; align-items: center; gap: 68px; }
.rs-insp-about__media { overflow: hidden; margin: 0; aspect-ratio: 4 / 3; border-radius: 14px; background: var(--rs-insp-paper); box-shadow: 0 18px 44px rgba(7, 27, 49, .10); }
.rs-insp-about__media picture { display: block; width: 100%; height: 100%; }
.rs-insp-about__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.rs-insp-about__copy h2 { max-width: 650px; margin-top: 15px; color: var(--rs-insp-navy); font-size: clamp(30px, 3.15vw, 43px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; text-transform: uppercase; }
.rs-insp-about__copy blockquote { max-width: 630px; margin: 24px 0 20px; padding: 5px 0 5px 20px; border-left: 3px solid var(--rs-insp-green-bright); color: var(--rs-insp-navy); font-family: var(--rs-body); font-size: 14.5px; font-weight: 500; line-height: 1.65; }
.rs-insp-about__copy > p:not(.rs-insp-eyebrow) { max-width: 650px; margin-top: 11px; color: var(--rs-muted); font-size: 13.5px; line-height: 1.72; }
.rs-insp-about__proof { display: flex; max-width: 650px; align-items: center; gap: 17px; margin: 24px 0; padding: 17px 0; border-top: 1px solid var(--rs-line); border-bottom: 1px solid var(--rs-line); }
.rs-insp-about__proof > strong { color: var(--rs-insp-green); font-family: var(--rs-heading); font-size: 27px; font-weight: 800; line-height: 1; white-space: nowrap; }
.rs-insp-about__proof > span { max-width: 190px; color: var(--rs-muted); font-size: 11.5px; line-height: 1.45; }
.rs-insp-about__proof > div { display: flex; margin-left: auto; }
.rs-insp-about__proof i { display: grid; width: 34px; height: 34px; margin-left: -7px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--rs-insp-navy-2); font-family: var(--rs-body); font-size: 11px; font-style: normal; place-items: center; }

/* Soluções */
.rs-insp-services { background: var(--rs-insp-paper); }
.rs-insp-services .rs-container { width: min(calc(100% - 48px), 1320px); }
.rs-insp-services__head { max-width: 850px; margin: 0 auto 48px; text-align: center; }
.rs-insp-services__head .rs-insp-eyebrow { justify-content: center; }
.rs-insp-services__head h2 { margin-top: 12px; color: var(--rs-insp-navy); font-size: clamp(29px, 3.1vw, 42px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; text-transform: uppercase; }
.rs-insp-services__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; align-items: start; }
.rs-insp-service { display: flex; min-width: 0; min-height: 0; overflow: hidden; flex-direction: column; border: 1px solid rgba(7, 27, 49, .08); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(7, 27, 49, .05); transition: transform .3s ease, box-shadow .3s ease; }
.rs-insp-service:hover { box-shadow: 0 16px 34px rgba(7, 27, 49, .10); transform: translateY(-4px); }
.rs-insp-service__media { position: relative; height: 172px; overflow: hidden; flex: 0 0 auto; background: var(--rs-paper-2); }
.rs-insp-service__media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(7, 27, 49, .16)); content: ''; }
.rs-insp-service__media picture { display: block; width: 100%; height: 100%; }
.rs-insp-service__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease; }
.rs-insp-service:hover .rs-insp-service__media img { transform: scale(1.035); }
.rs-insp-service__body { display: flex; flex: 1; flex-direction: column; padding: 23px 22px 25px; }
.rs-insp-service__body > small { color: var(--rs-insp-green); font-size: 9.5px; font-weight: 700; letter-spacing: .10em; text-transform: uppercase; }
body.rs-theme .rs-insp-service h3 { margin-top: 8px; color: var(--rs-insp-navy); font-size: 18px; font-weight: 700; line-height: 1.22; }
body.rs-theme .rs-insp-service p { margin-top: 10px; color: var(--rs-muted); font-size: 12.5px; line-height: 1.65; }
.rs-insp-service a { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--rs-insp-green); font-size: 12.5px; font-weight: 700; }
.rs-insp-service a svg { width: 15px; transition: transform .25s ease; }
.rs-insp-service a:hover svg { transform: translateX(4px); }
.rs-insp-services__all { display: inline-flex; align-items: center; gap: 8px; margin-top: 28px; color: var(--rs-insp-navy); font-size: 13px; font-weight: 700; }
.rs-insp-services__all svg { width: 16px; }

/* Banner Fazer meu plano */
.rs-insp-plan { position: relative; min-height: 340px; overflow: hidden; color: #fff; background: var(--rs-insp-navy); isolation: isolate; }
.rs-insp-plan::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(4, 19, 35, .96) 0%, rgba(4, 23, 40, .88) 35%, rgba(4, 28, 47, .52) 63%, rgba(4, 30, 48, .14) 100%); content: ''; }
.rs-insp-plan__media { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; filter: saturate(.85) contrast(1.04); }
.rs-insp-plan__media img,
img.rs-insp-plan__media { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.rs-insp-plan__inner { position: relative; z-index: 2; display: flex; min-height: 340px; align-items: center; }
.rs-insp-plan__inner > div { max-width: 590px; }
body.rs-theme .rs-insp-plan h2 { color: #fff !important; font-size: clamp(29px, 3.1vw, 42px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; text-transform: uppercase; }
.rs-insp-plan__inner i { display: block; width: 34px; height: 3px; margin: 18px 0; background: var(--rs-insp-lime); }
body.rs-theme .rs-insp-plan p { color: rgba(255, 255, 255, .88) !important; font-size: 13.5px; line-height: 1.7; }
.rs-insp-plan .rs-insp-button { margin-top: 24px; }

/* Chamada final totalmente verde, com elementos gráficos próprios */
.rs-insp-final { position: relative; overflow: hidden; min-height: 360px; background: linear-gradient(115deg, #07553a 0%, #0b7142 52%, #167a3f 100%); isolation: isolate; }
.rs-insp-final::before { position: absolute; z-index: 0; top: -250px; right: 4%; width: 620px; height: 620px; border: 1px solid rgba(2, 44, 31, .52); border-radius: 50%; box-shadow: 0 0 0 86px rgba(2, 44, 31, .18), 0 0 0 172px rgba(2, 44, 31, .12); content: ''; }
.rs-insp-final::after { position: absolute; z-index: 0; right: 8%; bottom: 82px; width: 330px; height: 2px; background: rgba(2, 44, 31, .48); box-shadow: 0 -56px 0 rgba(2, 44, 31, .28), 0 56px 0 rgba(2, 44, 31, .20); content: ''; transform: rotate(-14deg); }
.rs-insp-final__copy { position: relative; z-index: 1; display: flex; width: min(calc(100% - 64px), var(--rs-container)); min-height: 360px; flex-direction: column; align-items: flex-start; justify-content: center; margin-inline: auto; padding: 70px 0; background: transparent; }
.rs-insp-final__copy::after { position: absolute; right: 24%; bottom: 42px; width: 18px; height: 18px; border: 3px solid rgba(2, 44, 31, .68); border-radius: 50%; content: ''; }
.rs-insp-final__copy > * { position: relative; z-index: 1; }
body.rs-theme .rs-insp-final h2 { max-width: 720px; margin-top: 12px; color: #fff !important; font-size: clamp(28px, 3vw, 41px); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; text-transform: uppercase; }
body.rs-theme .rs-insp-final__copy > p:not(.rs-insp-eyebrow) { max-width: 620px; margin-top: 16px; color: #fff !important; font-size: 13px; line-height: 1.7; }
.rs-insp-final .rs-insp-button { margin-top: 24px; }

@media (max-width: 1100px) {
  .rs-insp-hero__principles { grid-template-columns: 1fr 1fr; row-gap: 24px; }
  .rs-insp-hero__principles li:nth-child(2) { border-right: 0; }
  .rs-insp-hero__principles li:nth-child(3) { padding-left: 0; }
  .rs-insp-services__grid { grid-template-columns: repeat(2, 1fr); }
  .rs-insp-service { min-height: 300px; }
}

@media (max-width: 900px) {
  .rs-header { --rs-header-height: 88px; }
  .rs-header.is-compact { --rs-header-height: 82px; }
  .rs-brand { width: 205px; }
  .rs-insp-hero::before { background: linear-gradient(90deg, rgba(4, 18, 33, .96) 0%, rgba(4, 22, 39, .87) 58%, rgba(5, 28, 48, .58) 100%); }
  .rs-insp-hero__copy { max-width: 74%; }
  .rs-insp-about__grid { grid-template-columns: 1fr; gap: 46px; }
  .rs-insp-about__media { width: 100%; }
  .rs-insp-about__copy { max-width: 700px; }
  .rs-insp-final__copy { padding: 60px 0; }
}

@media (max-width: 640px) {
  .rs-header { --rs-header-height: 86px; }
  .rs-header.is-compact { --rs-header-height: 80px; }
  .rs-brand { width: 178px; }
  .rs-insp-hero { min-height: 0; }
  .rs-insp-hero::before { background: rgba(4, 19, 35, .84); }
  .rs-insp-hero::after { height: 240px; background: linear-gradient(0deg, rgba(4, 18, 33, .78), transparent); }
  .rs-insp-hero__media img { object-position: 50% 50%; }
  .rs-insp-hero__content { min-height: 720px; padding: 62px 0 36px; }
  .rs-insp-hero__copy { max-width: none; }
  .rs-insp-hero .rs-hero-campaign { max-width: 100%; font-size: clamp(35px, 10vw, 43px); }
  .rs-insp-hero__copy > p:not(.rs-insp-eyebrow) { font-size: 13.5px; }
  .rs-insp-actions { align-items: stretch; flex-direction: column; }
  .rs-insp-actions .rs-insp-button { width: 100%; }
  .rs-insp-hero__principles { grid-template-columns: 1fr 1fr; margin-top: 48px; padding-top: 24px; }
  .rs-insp-hero__principles li { gap: 10px; padding: 0 10px 0 0; border-right: 0; }
  .rs-insp-hero__principles li:nth-child(2n) { padding-left: 10px; }
  .rs-insp-hero__principles li > span { width: 30px; font-size: 24px; }
  .rs-insp-hero__principles strong { font-size: 11px; }
  .rs-insp-hero__principles small { font-size: 10px; }
  .rs-insp-about__grid { gap: 36px; }
  .rs-insp-about__media { aspect-ratio: 4 / 3; }
  .rs-insp-about__copy h2 { font-size: clamp(28px, 8.2vw, 36px); }
  .rs-insp-about__proof { align-items: flex-start; flex-wrap: wrap; }
  .rs-insp-about__proof > div { margin-left: 0; }
  .rs-insp-services__head { margin-bottom: 36px; text-align: left; }
  .rs-insp-services__head .rs-insp-eyebrow { justify-content: flex-start; }
  .rs-insp-services__grid { grid-template-columns: 1fr; }
  .rs-insp-service { min-height: 0; }
  .rs-insp-service__media { height: 200px; }
  .rs-insp-plan { min-height: 420px; }
  .rs-insp-plan::before { background: rgba(4, 20, 36, .72); }
  .rs-insp-plan__media img,
  img.rs-insp-plan__media { object-position: 50% 50%; }
  .rs-insp-plan__inner { min-height: 420px; align-items: flex-end; padding: 56px 0; }
  .rs-insp-plan h2 { font-size: clamp(29px, 8.6vw, 38px); }
  .rs-insp-plan .rs-insp-button { width: 100%; }
  .rs-insp-final::before { top: -160px; right: -250px; width: 520px; height: 520px; }
  .rs-insp-final::after { right: -90px; bottom: 72px; width: 280px; }
  .rs-insp-final__copy { width: min(calc(100% - 40px), var(--rs-container)); min-height: 390px; padding: 58px 0; }
  .rs-insp-final__copy::after { right: 10px; bottom: 32px; }
}

@media (max-width: 440px) {
  .rs-insp-hero__content { min-height: 790px; }
  .rs-insp-hero__principles { grid-template-columns: 1fr; row-gap: 0; }
  .rs-insp-hero__principles li,
  .rs-insp-hero__principles li:nth-child(2n) { padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .rs-insp-hero__principles li:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .rs-insp-button,
  .rs-insp-button svg,
  .rs-insp-service,
  .rs-insp-service__media img,
  .rs-insp-service a svg { transition: none; }
  .rs-insp-button:hover,
  .rs-insp-service:hover,
  .rs-insp-service:hover .rs-insp-service__media img { transform: none; }
}
