@view-transition {
  navigation: auto;
}
:root {
  --shell-leaf: #073b19;
  --shell-green: #2d8b40;
  --shell-lime: #91cd35;
  --shell-cream: #fffdf6;
}
body {
  min-height: 100vh;
}
.site-shell-motto {
  width: 100%;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 6px max(18px, calc((100% - 1360px) / 2));
  background: #063817;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.01em;
}
.site-shell-header {
  position: relative !important;
  isolation: isolate;
  z-index: 30;
  min-height: 198px !important;
  display: flex !important;
  align-items: center !important;
  gap: 38px !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.site-shell-header:before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: #fffffff2;
}
.site-shell-header > a {
  display: flex;
  align-items: center;
  flex: 0 0 290px;
}
.site-shell-header .logo {
  width: 174px !important;
  max-height: 174px;
  object-fit: contain;
  filter: none !important;
}
.site-shell-header .tag,
.site-shell-header .tagline {
  display: none !important;
}
.site-shell-header .menu {
  flex: 1;
  display: flex !important;
  align-items: center;
  justify-content: center !important;
  gap: 0 !important;
  margin: 0 !important;
}
.site-shell-header .menu a {
  position: relative;
  padding: 11px 25px !important;
  color: #46674d !important;
  font-size: 16px !important;
  transition:
    color 0.22s,
    transform 0.22s;
}
.site-shell-header .menu a:not(:last-child) {
  border-right: 1px dotted #668f99 !important;
}
.site-shell-header .menu a:after {
  content: "";
  position: absolute;
  right: 15px;
  bottom: 4px;
  left: 15px;
  height: 2px;
  background: var(--shell-green);
  transform: scaleX(0);
  transition: transform 0.24s;
}
.site-shell-header .menu a:hover,
.site-shell-header .menu a.active {
  color: var(--shell-leaf) !important;
}
.site-shell-header .menu a:hover:after,
.site-shell-header .menu a.active:after {
  transform: scaleX(1);
}
.site-shell-footer {
  position: relative;
  margin-top: 0 !important;
  background: linear-gradient(112deg, #062b14, #145d2b) !important;
  color: #e8f5df !important;
}
.site-shell-footer:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #86c735, #65b9e9, #e61062);
}
.site-shell-footer a {
  color: #fff !important;
}
.site-shell-footer .footer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: 10px 24px;
  padding: 17px 0 10px;
  line-height: 1.55;
}
.site-shell-footer .footer-grid strong {
  color: #b9ef4d;
}
.site-shell-footer .footer-contacts {
  display: grid;
  gap: 4px;
  margin-top: 4px;
}
.site-shell-footer .footer-links {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3px 18px;
  padding-top: 3px;
}
.site-shell-footer .footer-links a {
  color: #e8f5df !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.site-shell-footer .footer-links a:hover {
  color: #b9ef4d !important;
  text-decoration: underline;
}
.site-shell-footer .footer-contact-line {
  display: flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  line-height: 1.25;
  text-decoration: none;
}
.site-shell-footer .footer-contact-line span {
  display: inline-grid;
  place-items: center;
  width: 18px;
  color: #b9ef4d;
  font-weight: 700;
}
.site-shell-footer .footer-whatsapp-icon {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  fill: #25d366;
}
.site-shell-footer .footer-contact-line:hover {
  text-decoration: underline;
}
.site-shell-footer .copy {
  border-top: 1px solid #ffffff2e;
  grid-column: 1 / -1;
  padding: 6px 0 0;
  text-align: center !important;
  font-size: 11px;
}
.site-shell-footer .footer-access {
  position: absolute;
  right: max(18px, calc((100% - 1360px) / 2));
  bottom: 7px;
  display: flex;
  gap: 7px;
  align-items: center;
  font-size: 11px;
  font-weight: normal;
  opacity: 0.76;
}
.site-shell-footer .footer-access a {
  color: #d9eed7 !important;
  text-decoration: none;
}
.site-shell-footer .footer-access a:hover {
  text-decoration: underline;
}
.page-enter {
  animation: bookOpen 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  transform-origin: left center;
}
.page-leaving {
  pointer-events: none;
  animation: bookClose 0.46s cubic-bezier(0.55, 0, 0.8, 0.2) both;
  transform-origin: left center;
}
.page-turn-shadow {
  position: fixed;
  z-index: 99999;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    #062b1938 46%,
    #062b19b0 50%,
    #ffffff40 53%,
    transparent 100%
  );
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
}
.page-leaving + .page-turn-shadow {
  animation: turnShadow 0.46s ease both;
}
@keyframes bookOpen {
  from {
    opacity: 0.3;
    transform: perspective(1600px) rotateY(-16deg) translateX(-2%);
  }
  to {
    opacity: 1;
    transform: perspective(1600px) rotateY(0) translateX(0);
  }
}
@keyframes bookClose {
  to {
    opacity: 0.2;
    transform: perspective(1600px) rotateY(18deg) translateX(3%);
  }
}
@keyframes turnShadow {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  45% {
    opacity: 1;
    transform: scaleX(1);
  }
  100% {
    opacity: 0;
    transform: scaleX(1);
  }
}
@media (max-width: 900px) {
  .site-shell-header {
    min-height: 158px !important;
    gap: 16px !important;
  }
  .site-shell-header > a {
    flex-basis: 160px;
  }
  .site-shell-header .logo {
    width: 128px !important;
    max-height: 128px;
  }
  .site-shell-header .menu a {
    padding: 8px 11px !important;
    font-size: 13px !important;
  }
}
@media (max-width: 700px) {
  .site-shell-motto {
    justify-content: center;
    min-height: 31px;
    font-size: 13px;
  }
  .site-shell-header {
    min-height: 145px !important;
    flex-wrap: wrap;
    justify-content: center;
    padding: 14px 0 !important;
    gap: 4px !important;
  }
  .site-shell-header > a {
    flex: 0 0 auto;
  }
  .site-shell-header .menu {
    order: 2;
    flex-basis: 100%;
    flex-wrap: wrap;
  }
  .site-shell-header .menu a {
    padding: 5px 8px !important;
    font-size: 12px !important;
  }
  .site-shell-footer .footer-grid {
    grid-template-columns: 1fr;
    padding: 31px 0 20px;
    gap: 15px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-enter,
  .page-leaving,
  .page-leaving + .page-turn-shadow {
    animation: none !important;
  }
}
#map path[fill="#2f75da"],
#map circle[fill="#2f75da"] {
  fill: #39a84a !important;
  stroke: #145f2c !important;
}
#map span[style*="color:#314155"] {
  color: #1b7a34 !important;
}
body:has(#map-card) {
  background: linear-gradient(
    180deg,
    #62b7e8,
    #80c98f 36%,
    #8acd31 86%
  ) !important;
  color: #fff;
}
body:has(#map-card) .wrap {
  width: min(1360px, calc(100% - 50px));
}
body:has(#map-card) .heading {
  padding: 40px 0 22px;
}
body:has(#map-card) .heading h1 {
  color: #fff !important;
  font-size: 42px;
}
body:has(#map-card) .heading p {
  color: #efffe8 !important;
  font-size: 16px;
}
body:has(#map-card) .map-card {
  box-shadow: 0 16px 40px #073b1952;
}

/* Cabeçalho compacto comum: logo preservado, navegação na faixa verde. */
.site-shell-header {
  min-height: 96px !important;
  gap: 20px !important;
  padding: 0 !important;
  align-items: center !important;
}
.site-shell-header:before {
  display: block !important;
  background: linear-gradient(105deg, #e9eeed, #c6cfcd 58%, #aeb9b6) !important;
  box-shadow: 0 4px 12px #172c2440;
}
.site-shell-header > a,
.site-shell-header > .logo {
  display: flex !important;
  align-items: center;
  flex: 0 0 118px !important;
}
.site-shell-header .logo {
  width: 102px !important;
  max-height: 88px !important;
  object-fit: contain;
  filter: drop-shadow(0 4px 5px #0008) !important;
}
.site-shell-header .menu {
  order: 0;
  gap: 10px !important;
  justify-content: center !important;
  flex: 1 !important;
  flex-wrap: wrap !important;
}
.site-shell-header .menu a,
.site-shell-header .menu a:not(:last-child) {
  border: 0 !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  color: #164224 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 16px !important;
  font-weight: 700;
  line-height: 1.1;
  text-decoration: none !important;
  transition:
    transform 0.14s,
    box-shadow 0.14s,
    background-color 0.14s,
    color 0.14s !important;
}
.site-shell-header .menu a:after {
  display: none !important;
}
.site-shell-header .menu a:hover {
  color: #07521f !important;
  background: #eff9e7d9 !important;
  box-shadow: 0 7px 14px #17462a2e !important;
  transform: translateY(-1px) !important;
}
.site-shell-header .menu a:active,
.site-shell-header .menu a.active {
  color: #07521f !important;
  background: #dff2cae8 !important;
  transform: translateY(1px) !important;
  box-shadow: 0 3px 8px #17462a24 !important;
}
.site-shell-header .menu a.active {
  font-weight: 800;
}
.site-shell-motto {
  order: 2;
  width: auto !important;
  min-height: 0 !important;
  margin: 0 0 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
  color: #164224 !important;
  white-space: nowrap;
  font-size: 13px !important;
  text-shadow: 0 1px 1px #fff;
}
.site-shell-header .tag,
.site-shell-header .tagline {
  display: none !important;
}
@media (max-width: 1050px) {
  .site-shell-header {
    min-height: 112px !important;
    gap: 12px !important;
  }
  .site-shell-header > a,
  .site-shell-header > .logo {
    flex-basis: 96px !important;
  }
  .site-shell-header .logo {
    width: 86px !important;
    max-height: 76px !important;
  }
  .site-shell-header .menu {
    gap: 7px !important;
  }
  .site-shell-header .menu a,
  .site-shell-header .menu a:not(:last-child) {
    padding: 8px 11px !important;
    font-size: 12px !important;
  }
  .site-shell-motto {
    font-size: 12px !important;
  }
}
@media (max-width: 1250px) and (min-width: 1051px) {
  .site-shell-header .menu {
    gap: 6px !important;
  }
  .site-shell-header .menu a,
  .site-shell-header .menu a:not(:last-child) {
    padding: 9px 12px !important;
    font-size: 14px !important;
  }
}
@media (max-width: 700px) {
  .site-shell-header {
    min-height: auto !important;
    padding: 9px 0 12px !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }
  .site-shell-header > a,
  .site-shell-header > .logo {
    flex-basis: 74px !important;
  }
  .site-shell-header .logo {
    width: 68px !important;
    max-height: 62px !important;
  }
  .site-shell-motto {
    font-size: 11px !important;
  }
  .site-shell-header .menu {
    order: 3 !important;
    flex-basis: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    padding: 3px 1px 7px !important;
  }
  .site-shell-header .menu a,
  .site-shell-header .menu a:not(:last-child) {
    flex: 0 0 auto;
    padding: 7px 9px !important;
    font-size: 12px !important;
    border-radius: 8px !important;
  }
}
.site-shell-header > a img {
  width: 102px !important;
  max-height: 88px !important;
  object-fit: contain;
  filter: drop-shadow(0 4px 5px #0008) !important;
}
@media (max-width: 1050px) {
  .site-shell-header > a img {
    width: 86px !important;
    max-height: 76px !important;
  }
}
@media (max-width: 700px) {
  .site-shell-header > a img {
    width: 68px !important;
    max-height: 62px !important;
  }
}
/* Movimento leve de natureza: apenas transformações, sem imagens extras ou vídeo. */
.nature-motion {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.nature-motion .leaf {
  position: absolute;
  left: var(--left);
  top: var(--top);
  width: var(--size, 20px);
  height: calc(var(--size, 20px) * 0.58);
  border-radius: 100% 0 100% 0;
  background: linear-gradient(135deg, #d9ef8d, #4f9b46);
  box-shadow: 0 3px 7px #06381733;
  opacity: 0.55;
  transform-origin: center;
  animation: natureLeaf var(--time, 6s) ease-in-out var(--delay, 0s) infinite;
}
.nature-motion .bird {
  position: absolute;
  left: var(--left);
  top: var(--top);
  width: 18px;
  height: 10px;
  opacity: 0.58;
  animation: natureBird var(--time, 9s) ease-in-out var(--delay, 0s) infinite;
}
.nature-motion .bird:before,
.nature-motion .bird:after {
  content: "";
  position: absolute;
  top: 2px;
  width: 10px;
  height: 7px;
  border-top: 2px solid #f7fff0;
  border-radius: 80% 80% 0 0;
}
.nature-motion .bird:before {
  right: 8px;
  transform: rotate(18deg);
}
.nature-motion .bird:after {
  left: 8px;
  transform: rotate(-18deg);
}
.nature-motion .butterfly {
  position: absolute;
  left: var(--left);
  top: var(--top);
  width: 13px;
  height: 13px;
  opacity: 0.55;
  animation: natureButterfly var(--time, 8s) ease-in-out var(--delay, 0s)
    infinite;
}
.nature-motion .butterfly:before,
.nature-motion .butterfly:after {
  content: "";
  position: absolute;
  top: 1px;
  width: 8px;
  height: 10px;
  background: linear-gradient(135deg, #fff4a8, #f4a2c2);
  border-radius: 85% 20% 85% 20%;
  box-shadow: 0 1px 4px #17341d44;
}
.nature-motion .butterfly:before {
  right: 6px;
  transform-origin: right bottom;
}
.nature-motion .butterfly:after {
  left: 6px;
  transform: scaleX(-1);
  transform-origin: left bottom;
}
@keyframes natureLeaf {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-22deg);
  }
  50% {
    transform: translate3d(22px, 12px, 0) rotate(26deg);
  }
}
@keyframes natureBird {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(38px, -16px, 0) scale(1.08);
  }
}
@keyframes natureButterfly {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-8deg);
  }
  50% {
    transform: translate3d(28px, -22px, 0) rotate(12deg);
  }
}
.hero > .nature-motion {
  z-index: 0;
}
.field-story-page > .nature-motion {
  position: fixed;
  top: 96px;
  bottom: 0;
}
.field-story-page .layout {
  position: relative;
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .nature-motion * {
    animation: none !important;
  }
}
.field-story-page {
  position: relative;
}
.field-story-page > .nature-motion {
  position: absolute;
  top: 96px;
  bottom: auto;
  width: 100%;
  height: calc(100% - 96px);
  min-height: 650px;
}

/* Na Home, as folhas continuam soprando também no computador. */
@media (min-width: 801px) {
  body:has(#showcase) .hero > .nature-motion .leaf {
    will-change: transform;
    animation: homeLeafBreeze var(--time, 6s) ease-in-out var(--delay, 0s)
      infinite !important;
  }
}
@keyframes homeLeafBreeze {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(-24deg) scale(0.96);
  }
  42% {
    transform: translate3d(30px, 10px, 0) rotate(34deg) scale(1.08);
  }
  68% {
    transform: translate3d(17px, -5px, 0) rotate(12deg) scale(1);
  }
}

/* Rodapé compacto em todas as páginas públicas. */
@media (max-width: 700px) {
  .site-shell-footer .footer-grid {
    grid-template-columns: 1fr;
    padding: 18px 0 12px;
    gap: 10px;
  }
  .site-shell-footer .footer-links {
    justify-content: flex-start;
    gap: 5px 14px;
  }
  .site-shell-footer .copy {
    padding-top: 8px;
    text-align: left !important;
  }
  .site-shell-footer .footer-access {
    position: static;
    grid-column: 1 / -1;
    padding-top: 3px;
  }
}
