:root {
  --ink: #073d45;
  --ink-soft: #47676c;
  --green: #087b79;
  --green-dark: #045263;
  --sage: #dcefed;
  --cream: #f5faf9;
  --line: #cce4e2;
  --orange: #de293b;
  --shadow: 0 24px 65px rgba(5, 71, 77, .13);
  --brand-red: #df2638;
  --brand-teal: #087d79;
  --brand-blue: #075976;
}

.site-header { background: rgba(247, 251, 250, .97); border-color: rgba(6, 93, 99, .12); }
.brand-logo-horizontal { width: 188px; height: auto; }
.desktop-nav a { color: #496b6e; }
.desktop-nav a:hover { color: var(--brand-teal); }

.hero {
  background: radial-gradient(55% 85% at 82% 18%, #e1f1ef 0%, rgba(225, 241, 239, 0) 76%),
              linear-gradient(180deg, #f9fcfb 0%, #eff8f6 100%);
}
.hero:before { border-color: rgba(7, 89, 118, .12); box-shadow: 0 0 0 68px rgba(7, 89, 118, .025), 0 0 0 135px rgba(7, 89, 118, .018); }
.eyebrow { color: #0a6871; }
.eyebrow-dot { background: var(--brand-red); box-shadow: 0 0 0 4px #fae3e6; }
.gradient-text {
  background-image: linear-gradient(110deg, #075976 8%, #0a8980 35%, #056477 65%, #075976 90%);
  background-size: 240% 100%;
}
.hero-assurances { border-color: #d3e6e3; }
.hero-assurances span { color: #396970; }
.hero-assurances svg { color: var(--brand-teal); }
.hero-visual:before { border-color: rgba(3, 108, 116, .24); }
.image-card { border-color: #dcece9; box-shadow: 0 15px 40px rgba(5, 68, 75, .15); }
.image-card-icon { color: var(--brand-red); background: #fde9eb; }
.image-caption { color: #607f80; }

.button-primary,
.button-light,
.header-cta,
.mobile-bar {
  background: linear-gradient(110deg, #04566b 0%, #087f7b 32%, #0b6684 66%, #04566b 100%);
  background-size: 280% 280%;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .34);
  box-shadow: 0 13px 28px rgba(4, 88, 106, .2);
  animation: brand-button-flow 6s ease-in-out infinite;
}
.button-primary:hover,
.button-light:hover,
.header-cta:hover,
.mobile-bar:hover {
  background: linear-gradient(110deg, #04566b 0%, #087f7b 32%, #0b6684 66%, #04566b 100%);
  background-size: 280% 280%;
  color: #fff;
  filter: brightness(.94);
  box-shadow: 0 16px 31px rgba(4, 88, 106, .27);
}
.button-light { border-color: rgba(255, 255, 255, .6); }
.final-cta .button-light {
  background: linear-gradient(110deg, #d8f6f1 0%, #bce7e6 32%, #d4eff5 66%, #d8f6f1 100%);
  background-size: 280% 280%;
  color: #064b59;
  border-color: #d7f4f0;
  box-shadow: 0 13px 29px rgba(0, 38, 45, .18);
}
.final-cta .button-light:hover {
  background: linear-gradient(110deg, #d8f6f1 0%, #bce7e6 32%, #d4eff5 66%, #d8f6f1 100%);
  background-size: 280% 280%;
  color: #064b59;
  filter: brightness(.97);
}
.mobile-bar { border: 2px solid #f4fbfa; }
@keyframes brand-button-flow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.signal-strip { background: #dff0ed; border-color: #cee5e1; }
.signal-inner a { color: #075f6a; }
.section-label { color: #087e80; }
.need-card { border-color: #dfece9; box-shadow: 0 10px 29px rgba(5, 74, 78, .045); }
.need-card:hover { box-shadow: 0 17px 35px rgba(5, 74, 78, .1); }
.need-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  min-height: 370px;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(7, 90, 91, .14);
  background-color: #0a555b;
  background-size: cover;
  background-position: center;
}
.need-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(2, 43, 51, .04) 10%, rgba(2, 43, 51, .36) 48%, rgba(2, 43, 51, .94) 100%);
}
.need-card-companhia { background-image: url('/card-companhia.jpg'); }
.need-card-rotina { background-image: url('/card-rotina.jpg'); }
.need-card-familia { background-image: url('/card-familia.jpg'); }
.need-card .card-number { z-index: 1; color: #fff; text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }
.need-card .card-icon { z-index: 1; width: 47px; height: 47px; margin-bottom: 14px; background: rgba(240, 252, 249, .94); color: #087d79; }
.need-card h3 { z-index: 1; color: #fff; text-shadow: 0 1px 7px rgba(0, 0, 0, .35); }
.need-card p { z-index: 1; color: #e9f5f2; line-height: 1.55; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.inline-cta { background: #e9f5f3; border-color: #cee7e3; }
.inline-cta a { color: #075f68; }
.section-situation { background: #e2f1ef; }
.situation-list { border-color: #b8d9d5; }
.situation-list > div { border-color: #c9e3df; }
.situation-list p { color: #35636a; }
.check { background: #c7e9e4; color: #075e68; }
.text-link { border-color: #087e80; }
.step { border-color: #c9e3df; }
.step:before { background: var(--brand-red); }
.step-number { background: #e0f2ef; }
.section-faq { background: #f3f9f8; }
.faq-list, .faq-list details { border-color: #cadfdc; }
.faq-list summary:after { border-color: #aacdca; }
.final-cta { background: linear-gradient(115deg, #063f55 0%, #075c66 58%, #08736f 100%); }
.final-cta .section-label { color: #b7e2de; }
.final-cta p { color: #d2eae7; }
.site-footer { background: #f7fbfa; border-color: #dce9e7; }
.footer-inner { min-height: 172px; }
.footer-logo { display: block; flex: 0 0 126px; }
.full-logo-crop { position: relative; display: block; width: 126px; height: 126px; overflow: hidden; border-radius: 50%; background: #fff; box-shadow: 0 3px 18px rgba(6, 83, 89, .09); }
.full-logo-crop img { position: absolute; width: 246px; height: 246px; max-width: none; left: -60px; top: -60px; }
.footer-inner p { color: #55787a; }

@media (max-width: 700px) {
  .brand-logo-horizontal { width: 152px; }
  .footer-inner { gap: 11px; }
  .footer-logo { order: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .button-primary, .button-light, .header-cta, .mobile-bar { animation: none; }
}

/* The supplied brand photograph is the hero canvas. The left fade protects
   the message while keeping the caregiver and the older adult visible. */
.hero {
  background-image:
    linear-gradient(90deg, rgba(249, 252, 251, .98) 0%, rgba(249, 252, 251, .96) 28%, rgba(249, 252, 251, .78) 44%, rgba(249, 252, 251, .28) 60%, rgba(249, 252, 251, 0) 78%),
    url('/hero-desktop.jpg');
  background-repeat: no-repeat;
  background-position: center, center 50%;
  background-size: cover;
}
.hero::before { display: none; }
.hero-mobile-photo { display: none; }
.hero-grid {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  min-height: 680px;
  padding-top: 70px;
  padding-bottom: 70px;
}
.hero-content { max-width: 590px; }
.hero h1 { font-size: clamp(42px, 4.35vw, 62px); }
.hero-copy { max-width: 535px; }
@media (min-width: 701px) and (max-width: 1100px) {
  .hero-content { max-width: min(570px, 62%); }
  .hero h1 { font-size: clamp(39px, 4.5vw, 53px); }
}

@media (max-width: 700px) {
  .hero {
    background: linear-gradient(180deg, #f9fcfb 0%, #eff8f6 100%);
  }
  .hero-mobile-photo {
    position: relative;
    display: block;
    height: clamp(270px, 76vw, 340px);
    overflow: hidden;
    background: #dcebe7;
  }
  .hero-mobile-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 70%;
  }
  .hero-mobile-photo::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 37%;
    background: linear-gradient(180deg, rgba(249, 252, 251, 0), #f9fcfb 94%);
    pointer-events: none;
  }
  .hero-grid {
    display: block;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 38px;
  }
  .hero-content { max-width: 100%; }
  .hero-content .eyebrow { display: none; }
  .hero h1 { font-size: clamp(39px, 9vw, 54px); margin-top: 0; }
  .hero-copy { max-width: 100%; }
  .mobile-bar {
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
  }
  .show-mobile-bar .mobile-bar {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
  .signal-inner a span { display: inline; margin-left: 8px; }
}

@media (max-width: 420px) {
  .hero-mobile-photo { height: 270px; }
  .need-card { min-height: 345px; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-bar { transition: none; }
}
