:root {
  --olive: #788866;
  --olive-deep: #4f6048;
  --sage: #c9d3bd;
  --sand: #fffaf2;
  --clay: #b89570;
  --ink: #283126;
  --muted: #66705f;
  --white: #fffaf2;
  --paper: #eee3d1;
  --line: rgba(79, 96, 72, .18);
  --shadow: 0 22px 60px rgba(40, 49, 38, .14);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

.skip-link {
  position: absolute;
  left: 16px;
  top: -80px;
  z-index: 20;
  background: var(--paper);
  padding: 10px 14px;
  border-radius: 6px;
}

.skip-link:focus {
  top: 16px;
}

.container {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.portal-page {
  min-height: 100svh;
  background: #f8f4eb;
}

.portal-main {
  min-height: 100svh;
  padding: 20px 20px 28px;
}

.portal-content {
  width: min(1160px, 100%);
  margin: 0 auto;
  padding-top: 0;
}

.portal-intro {
  max-width: 680px;
  margin: 0 auto 30px;
  text-align: center;
}

.portal-intro h1 {
  max-width: none;
  font-size: 3.5rem;
}

.portal-intro > p:last-child {
  max-width: 570px;
  margin: 14px auto 0;
  color: var(--muted);
  font-size: 1.02rem;
}

.portal-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.portal-option {
  position: relative;
  display: block;
  height: min(56svh, 570px);
  min-height: 410px;
  overflow: hidden;
  border-radius: 8px;
  color: var(--paper);
  text-decoration: none;
  box-shadow: 0 20px 52px rgba(40, 49, 38, .15);
}

.portal-option img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .55s ease;
}

.portal-option-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(24, 30, 23, .85), rgba(24, 30, 23, .08) 58%),
    linear-gradient(90deg, rgba(24, 30, 23, .36), rgba(24, 30, 23, .04));
}

.portal-option-copy {
  position: absolute;
  inset: auto 28px 26px;
  display: grid;
  gap: 10px;
}

.portal-option-copy small {
  color: #ded5bf;
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.portal-option-copy strong {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 3.1rem;
  font-weight: 700;
  line-height: 1.05;
}

.portal-option-copy b {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-top: 4px;
  padding: 11px 16px;
  border-radius: 6px;
  color: var(--olive-deep);
  background: #f4efe5;
  font-size: .92rem;
}

.portal-option-copy b span {
  font-size: 1.35rem;
  line-height: 1;
}

.portal-option:hover img,
.portal-option:focus-visible img {
  transform: scale(1.045);
}

.portal-option:hover .portal-option-copy b,
.portal-option:focus-visible .portal-option-copy b {
  background: var(--paper);
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px max(20px, calc((100vw - 1120px) / 2));
  color: var(--paper);
  background: rgba(48, 58, 45, .84);
  border-bottom: 1px solid rgba(255, 250, 242, .12);
  backdrop-filter: blur(14px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
}

.brand-mark {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 12px;
  background:
    radial-gradient(circle at 28% 24%, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, #fffaf2, #cddac1);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .5),
    0 10px 22px rgba(0, 0, 0, .18);
  transition: transform .22s ease, box-shadow .22s ease;
}

.brand-mark img {
  width: 23px;
  height: 27px;
  object-fit: contain;
  display: block;
}

.brand:hover .brand-mark {
  transform: translateY(-2px) rotate(-4deg);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .6),
    0 14px 28px rgba(0, 0, 0, .22);
}

.site-header nav {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: .9rem;
  font-weight: 600;
}

.site-header nav a {
  text-decoration: none;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  place-items: center;
  gap: 4px;
  padding: 0;
  border: 1px solid rgba(255, 250, 242, .24);
  border-radius: 999px;
  color: var(--paper);
  background: rgba(255, 250, 242, .08);
  cursor: pointer;
}

.menu-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: transform .2s ease, opacity .2s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.nav-separator {
  color: rgba(255, 250, 242, .55);
  font-weight: 600;
}

.nav-page-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  font-weight: 700;
  white-space: nowrap;
}

.nav-page-link.is-current {
  color: #eef5e5;
}

.nav-page-link.is-current::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 9px;
  border-radius: 999px;
  background: #9fc88e;
  box-shadow: 0 0 0 4px rgba(159, 200, 142, .15);
}

.service-menu {
  position: relative;
}

.service-menu summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  white-space: nowrap;
}

.service-menu summary::-webkit-details-marker {
  display: none;
}

.service-menu summary::after {
  content: "";
  width: 7px;
  height: 7px;
  border: solid currentColor;
  border-width: 0 2px 2px 0;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}

.service-menu[open] summary::after {
  transform: translateY(2px) rotate(225deg);
}

.service-menu.is-current summary {
  color: #eef5e5;
}

.service-menu.is-current summary::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #9fc88e;
  box-shadow: 0 0 0 4px rgba(159, 200, 142, .15);
}

.service-submenu {
  position: absolute;
  top: calc(100% + 18px);
  right: 0;
  display: grid;
  min-width: 238px;
  padding: 8px;
  border: 1px solid rgba(255, 250, 242, .16);
  border-radius: 8px;
  color: var(--paper);
  background: rgba(48, 58, 45, .98);
  box-shadow: 0 18px 46px rgba(0, 0, 0, .22);
}

.service-submenu a {
  padding: 10px 12px;
  border-radius: 6px;
  transition: background .2s ease, transform .2s ease;
}

.service-submenu a:hover,
.service-submenu a:focus-visible {
  background: rgba(255, 250, 242, .14);
  transform: translateX(2px);
}

.nav-whatsapp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid rgba(255, 250, 242, .32);
  border-radius: 999px;
  background: rgba(255, 250, 242, .12);
  white-space: nowrap;
  line-height: 1;
}

.nav-contact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.nav-contact a {
  text-decoration: none;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.nav-instagram {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(234, 137, 109, .8);
  border-radius: 999px;
  color: #fffaf2;
  background: linear-gradient(135deg, #d94f70, #d9894e);
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.nav-instagram:hover,
.nav-instagram:focus-visible {
  border-color: rgba(255, 250, 242, .74);
  background: linear-gradient(135deg, #e55c82, #e39a56);
  transform: translateY(-1px);
}

.instagram-icon {
  display: block;
  width: 19px;
  height: 19px;
  fill: currentColor;
}

.wa-icon {
  display: block;
  fill: currentColor;
}

.nav-whatsapp .wa-icon {
  width: 19px;
  height: 19px;
  color: #41d66f;
  flex: 0 0 auto;
}

.hero {
  position: relative;
  min-height: 92svh;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--olive-deep);
}

.hero-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(25, 31, 24, .82), rgba(25, 31, 24, .46) 48%, rgba(25, 31, 24, .12)),
    linear-gradient(0deg, rgba(25, 31, 24, .7), rgba(25, 31, 24, 0) 45%);
}

.hero-content {
  position: relative;
  z-index: 1;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 140px 0 76px;
  color: var(--paper);
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--clay);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.4;
  text-transform: uppercase;
}

h1,
h2 {
  margin: 0;
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: 0;
}

h1 {
  max-width: 760px;
  font-size: clamp(3rem, 7.4vw, 6.5rem);
}

.hero h1 {
  text-shadow: 0 5px 28px rgba(0, 0, 0, .28);
}

.hero-title-shimmer {
  display: inline-block;
  color: var(--paper);
  background: linear-gradient(
    105deg,
    #fffaf2 0%,
    #fffaf2 24%,
    #cfe7bf 39%,
    #5fa368 50%,
    #e9f5dd 61%,
    #fffaf2 76%,
    #fffaf2 100%
  );
  background-size: 240% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: hero-title-shimmer 7s ease-in-out infinite;
  filter: drop-shadow(0 5px 24px rgba(0, 0, 0, .26));
}

.phrase-shimmer {
  display: inline;
  color: var(--olive-deep);
  background: linear-gradient(
    105deg,
    #4f6048 0%,
    #4f6048 25%,
    #7ca56d 40%,
    #b2cd9e 50%,
    #648653 60%,
    #4f6048 75%,
    #4f6048 100%
  );
  background-size: 240% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: phrase-shimmer 7s ease-in-out infinite;
}

.hero .phrase-shimmer,
.site-header .phrase-shimmer,
.nr .phrase-shimmer,
.final-cta .phrase-shimmer,
.site-footer .phrase-shimmer {
  background-image: linear-gradient(
    105deg,
    #eef6e8 0%,
    #eef6e8 25%,
    #b9dca9 40%,
    #fffaf2 50%,
    #cce9bc 60%,
    #eef6e8 75%,
    #eef6e8 100%
  );
}

.hero .btn-primary .phrase-shimmer,
.final-cta .btn-primary .phrase-shimmer {
  background-image: linear-gradient(
    105deg,
    #4f6048 0%,
    #4f6048 25%,
    #7ca56d 40%,
    #b2cd9e 50%,
    #648653 60%,
    #4f6048 75%,
    #4f6048 100%
  );
}

@keyframes hero-title-shimmer {
  0% {
    background-position: 120% 50%;
  }
  45%,
  55% {
    background-position: 50% 50%;
  }
  100% {
    background-position: -35% 50%;
  }
}

@keyframes phrase-shimmer {
  0% {
    background-position: 120% 50%;
  }
  45%,
  55% {
    background-position: 50% 50%;
  }
  100% {
    background-position: -20% 50%;
  }
}

h2 {
  font-size: clamp(2rem, 4.2vw, 4.25rem);
}

h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35;
}

p {
  margin: 0;
}

.hero-lead {
  max-width: 660px;
  margin-top: 24px;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  line-height: 1.55;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 32px;
}

.hero-actions span {
  font-size: .95rem;
  color: rgba(255, 250, 242, .86);
}

.btn {
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 22px;
  border-radius: 6px;
  font-weight: 700;
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  cursor: pointer;
}

.btn:hover {
  transform: translateY(-2px);
}

.btn-primary {
  color: #fff;
  background: var(--olive-deep);
  box-shadow: 0 14px 32px rgba(30, 44, 30, .25);
}

.hero .btn-primary,
.final-cta .btn-primary {
  background: #f4efe5;
  color: var(--olive-deep);
}

.btn-secondary {
  color: var(--paper);
  background: rgba(255, 250, 242, .13);
  border: 1px solid rgba(255, 250, 242, .34);
}

.section {
  padding: 96px 0;
}

.soft {
  background: var(--sand);
}

#oficina-verde {
  background: #eee3d1;
}

.split {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 70px;
  align-items: start;
}

.text-flow {
  display: grid;
  gap: 18px;
  color: var(--muted);
  font-size: 1.05rem;
}

.section-heading {
  max-width: 780px;
  display: grid;
  gap: 16px;
}

.section-heading.compact {
  max-width: 670px;
  margin-bottom: 38px;
}

.section-heading p {
  color: var(--muted);
  font-size: 1.03rem;
}

.feature-grid,
.benefit-grid,
.quote-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 42px;
}

.feature,
.benefit-grid div,
blockquote {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 35px rgba(79, 96, 72, .07);
}

.feature {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  padding: 22px;
}

.card-icon {
  display: inline-grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(79, 96, 72, .13);
  border-radius: 16px;
  color: var(--olive-deep);
  background:
    radial-gradient(circle at 28% 22%, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 32%),
    linear-gradient(135deg, #edf4e8, #d7e3ca);
  box-shadow: 0 12px 28px rgba(79, 96, 72, .13);
  font-weight: 800;
  line-height: 1;
}

.card-icon::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  mask: var(--icon) center / contain no-repeat;
}

.icon-plant { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2.4c1.6 2 2.2 3.9 1.8 5.7 1.2-1.4 3-2.1 5.6-2.1-.3 2.5-1.3 4.2-3 5.1 1.8.1 3.5 1.1 5.2 3-2 1.6-3.9 2.2-5.7 1.8 1.4 1.2 2.1 3 2.1 5.6-2.5-.3-4.2-1.3-5.1-3-.1 1.8-1.1 3.5-3 5.2-1.6-2-2.2-3.9-1.8-5.7-1.2 1.4-3 2.1-5.6 2.1.3-2.5 1.3-4.2 3-5.1-1.8-.1-3.5-1.1-5.2-3 2-1.6 3.9-2.2 5.7-1.8-1.4-1.2-2.1-3-2.1-5.6 2.5.3 4.2 1.3 5.1 3 .1-1.8 1.1-3.5 3-5.2Zm0 6.4c-1.8 0-3.2 1.4-3.2 3.2s1.4 3.2 3.2 3.2 3.2-1.4 3.2-3.2-1.4-3.2-3.2-3.2Zm0 1.8c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4-1.4-.6-1.4-1.4.6-1.4 1.4-1.4Z'/%3E%3C/svg%3E"); }
.icon-kit { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 6h10l1 4h2v10H4V10h2l1-4Zm2 0V4h6v2H9Zm-1 6v6h8v-6H8Zm2 1.5h4V16h-4v-2.5Z'/%3E%3C/svg%3E"); }
.icon-guide { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 4 7v6c0 4 3.4 6.8 8 8 4.6-1.2 8-4 8-8V7l-8-4Zm0 4.2 4.5 2.2-4.5 2.2-4.5-2.2L12 7.2Zm-1 6.1v4.5c-2.1-.9-3.5-2.4-3.8-4.5l3.8 1.9Zm2 4.5v-4.5l3.8-1.9c-.3 2.1-1.7 3.6-3.8 4.5Z'/%3E%3C/svg%3E"); }
.icon-gift { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 7h-3.1c.4-.6.6-1.2.6-1.9C17.5 3.4 16.1 2 14.4 2c-1.1 0-2 .6-2.6 1.5C11.2 2.6 10.3 2 9.2 2 7.5 2 6.1 3.4 6.1 5.1c0 .7.2 1.3.6 1.9H4v5h1v9h14v-9h1V7Zm-5.6-3c.6 0 1.1.5 1.1 1.1 0 1.1-1.2 1.7-2.5 1.9.1-1.5.5-3 1.4-3Zm-5.2 0c.9 0 1.3 1.5 1.4 3-1.3-.2-2.5-.8-2.5-1.9C8.1 4.5 8.6 4 9.2 4ZM11 19H7v-7h4v7Zm0-9H6V9h5v1Zm6 9h-4v-7h4v7Zm1-9h-5V9h5v1Z'/%3E%3C/svg%3E"); }
.icon-pause { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM9 8h2v8H9V8Zm4 0h2v8h-2V8Z'/%3E%3C/svg%3E"); }
.icon-senses { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4C7 4 3.4 8.1 2 12c1.4 3.9 5 8 10 8s8.6-4.1 10-8c-1.4-3.9-5-8-10-8Zm0 13a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm0-2.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z'/%3E%3C/svg%3E"); }
.icon-access { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm9 9H3v3h6v8h6v-8h6v-3Z'/%3E%3C/svg%3E"); }
.icon-team { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm8 0a4 4 0 1 1 0-8 4 4 0 0 1 0 8ZM2 21c.4-4.1 2.8-7 6-7s5.6 2.9 6 7H2Zm8.4-6.8c1.3-1.3 3.1-2.2 5.1-2.2 3.4 0 6 2.8 6.5 7h-6.4a8.9 8.9 0 0 0-5.2-4.8Z'/%3E%3C/svg%3E"); }
.icon-focus { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 2h2v3a7 7 0 0 1 6 6h3v2h-3a7 7 0 0 1-6 6v3h-2v-3a7 7 0 0 1-6-6H2v-2h3a7 7 0 0 1 6-6V2Zm1 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0-3a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z'/%3E%3C/svg%3E"); }
.icon-heart { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 21C7 16.7 4 13.8 4 9.8 4 6.6 6.5 4 9.7 4c1.8 0 3.3.9 4.3 2.2C15 4.9 16.5 4 18.3 4 21.5 4 24 6.6 24 9.8c0 4-3 6.9-8 11.2l-2 1.7-2-1.7Z'/%3E%3C/svg%3E"); }

.benefit-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0;
}

.benefit-grid div {
  min-height: 116px;
  display: grid;
  align-content: space-between;
  gap: 20px;
  padding: 22px;
  color: var(--olive-deep);
  font-weight: 700;
}

.benefit-grid .card-icon {
  background: #eef3e9;
}

.nr {
  color: var(--paper);
  background: var(--olive-deep);
}

.nr .eyebrow {
  color: var(--sage);
}

.nr p {
  margin-top: 18px;
  color: rgba(255, 250, 242, .82);
}

.tag-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 24px;
  border: 1px solid rgba(255, 250, 242, .22);
  border-radius: 8px;
  background:
    radial-gradient(circle at 16% 12%, rgba(255, 250, 242, .16), rgba(255, 250, 242, 0) 32%),
    rgba(255, 250, 242, .08);
}

.place-list li {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 14px;
  border-radius: 999px;
  font-weight: 700;
}

.tag-panel span {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 84px;
  padding: 15px;
  overflow: hidden;
  border-radius: 8px;
  color: var(--paper);
  font-weight: 800;
  border: 1px solid rgba(255, 250, 242, .2);
  background:
    linear-gradient(135deg, rgba(255, 250, 242, .14), rgba(255, 250, 242, .05));
  box-shadow: 0 14px 30px rgba(0, 0, 0, .08);
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
}

.tag-panel span::after {
  content: "";
  position: absolute;
  inset: auto -26px -36px auto;
  width: 88px;
  height: 88px;
  border-radius: 999px;
  background: rgba(255, 250, 242, .08);
  transition: transform .24s ease, opacity .24s ease;
}

.tag-panel span:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 250, 242, .38);
  background:
    linear-gradient(135deg, rgba(255, 250, 242, .19), rgba(255, 250, 242, .07));
  box-shadow: 0 20px 40px rgba(0, 0, 0, .13);
}

.tag-panel span:hover::after {
  transform: scale(1.18);
  opacity: .95;
}

.nr-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 52px;
  height: 52px;
  flex: 0 0 auto;
  border-radius: 16px;
  color: var(--olive-deep);
  background:
    radial-gradient(circle at 28% 22%, rgba(255, 255, 255, .94), rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, #fffaf2, #cad7bf);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .52),
    0 14px 26px rgba(0, 0, 0, .18);
  z-index: 1;
  transition: transform .22s ease, background .22s ease;
}

.nr-icon::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  -webkit-mask: var(--nr-icon) center / contain no-repeat;
  mask: var(--nr-icon) center / contain no-repeat;
}

.tag-panel span:hover .nr-icon {
  transform: rotate(-4deg) scale(1.06);
  background:
    radial-gradient(circle at 28% 22%, rgba(255, 255, 255, .96), rgba(255, 255, 255, 0) 34%),
    linear-gradient(135deg, #fff7de, #d8e3cc);
}

.nr-sipat { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 3h10a2 2 0 0 1 2 2v16H5V5a2 2 0 0 1 2-2Zm2 4v2h2v2h2V9h2V7h-2V5h-2v2H9Zm0 8h6v-2H9v2Zm0 4h8v-2H9v2Z'/%3E%3C/svg%3E"); }
.nr-yellow { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 9.8 7.4 5 8.1l3.5 3.4-.8 4.8L12 14l4.3 2.3-.8-4.8L19 8.1l-4.8-.7L12 3Zm0 14.5c-2.1 0-4 1.1-5 2.8 1.5.5 3.1.7 5 .7s3.5-.2 5-.7c-1-1.7-2.9-2.8-5-2.8Z'/%3E%3C/svg%3E"); }
.nr-white { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.5 3.5c-1.2 2.1-1.3 4.8.1 7 1.4 2.1 3.8 3.2 6.2 2.9-.8 4.4-4.6 7.6-9.1 7.6A9.2 9.2 0 0 1 3.5 11.8c0-4.5 3.2-8.3 7.6-9.1-.3 2.4.8 4.8 2.9 6.2.7.4 1.4.7 2.1.9-.9-1.8-1.1-4-.6-6.3Z'/%3E%3C/svg%3E"); }
.nr-program { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 4h14v16H5V4Zm2 4h10V6H7v2Zm0 4h4v-2H7v2Zm6 0h4v-2h-4v2Zm-6 4h4v-2H7v2Zm6 0h4v-2h-4v2Z'/%3E%3C/svg%3E"); }
.nr-team { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm8 0a3 3 0 1 1 0-6 3 3 0 0 1 0 6ZM3 19c.4-3.4 2.3-5.2 5-5.2s4.6 1.8 5 5.2H3Zm8.7-5c.9-.7 2-1 3.3-1 3.1 0 5.2 1.9 5.7 6h-6c-.3-2.1-1.3-3.8-3-5Z'/%3E%3C/svg%3E"); }
.nr-health { --nr-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 21S4 16.3 4 9.4C4 6.5 6 4 8.8 4c1.5 0 2.6.7 3.2 1.7C12.6 4.7 13.7 4 15.2 4 18 4 20 6.5 20 9.4 20 16.3 12 21 12 21Zm-1-6 2.1-4.2 1.4 2.2H18v-2h-2.4l-2.7-4.3L10.8 11H6v2h3.6L11 15Z'/%3E%3C/svg%3E"); }
}

.gallery-section {
  background: #faf7ef;
}

.gallery-only {
  min-height: calc(100svh - 140px);
  padding-top: 126px;
}

.photo-carousel {
  display: grid;
  gap: 18px;
}

.carousel-main {
  display: grid;
  place-items: center;
  min-height: clamp(460px, 66vh, 760px);
  padding: 18px;
  overflow: hidden;
  border-radius: 8px;
  background: #2f382d;
  box-shadow: var(--shadow);
}

.carousel-main img {
  max-width: 100%;
  max-height: clamp(430px, 62vh, 720px);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  animation: carousel-kenburns 4.8s ease both;
}

.carousel-main img.is-changing {
  animation: carousel-kenburns 4.8s ease both;
}

.carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.carousel-button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--olive-deep);
  background: var(--paper);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.carousel-status {
  min-width: 76px;
  color: var(--muted);
  font-weight: 700;
  text-align: center;
}

.carousel-thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
  gap: 10px;
}

.carousel-thumbs button {
  height: 74px;
  overflow: hidden;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  opacity: .64;
}

.carousel-thumbs button.is-active {
  border-color: var(--olive-deep);
  opacity: 1;
}

.carousel-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@keyframes carousel-kenburns {
  from {
    opacity: .72;
    transform: scale(.965);
  }
  to {
    opacity: 1;
    transform: scale(1.035);
  }
}

.video-section {
  background: linear-gradient(180deg, var(--paper), #f7f3ea);
}

.video-showcase {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(320px, 1.14fr);
  gap: 28px;
  align-items: center;
  margin-bottom: 22px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 18px 45px rgba(79, 96, 72, .08);
}

.video-copy-panel {
  display: grid;
  gap: 18px;
  align-content: center;
}

.video-copy-panel h2 {
  font-size: clamp(2rem, 3.6vw, 3.9rem);
}

.video-copy-panel p:not(.eyebrow) {
  color: var(--muted);
  font-size: 1.02rem;
}

.video-copy-panel .btn {
  width: fit-content;
}

.video-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.video-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #faf7ef;
  box-shadow: 0 12px 35px rgba(79, 96, 72, .07);
}

.video-frame {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #151814;
  cursor: pointer;
}

.play-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  margin: auto;
  width: 72px;
  height: 72px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 250, 242, .94);
  box-shadow: 0 0 0 0 rgba(255, 250, 242, .46), 0 18px 44px rgba(0, 0, 0, .28);
  cursor: pointer;
  animation: play-pulse 1.8s ease-in-out infinite;
}

.play-overlay::before {
  content: "";
  position: absolute;
  left: 29px;
  top: 23px;
  width: 0;
  height: 0;
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-left: 18px solid var(--olive-deep);
}

.video-frame.is-playing .play-overlay {
  opacity: 0;
  pointer-events: none;
}

@keyframes play-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 250, 242, .46), 0 18px 44px rgba(0, 0, 0, .28);
  }
  70% {
    transform: scale(1.08);
    box-shadow: 0 0 0 18px rgba(255, 250, 242, 0), 0 18px 44px rgba(0, 0, 0, .28);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(255, 250, 242, 0), 0 18px 44px rgba(0, 0, 0, .28);
  }
}

.video-frame-featured {
  aspect-ratio: 16 / 9;
}

.video-card video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #111;
  pointer-events: none;
}

.video-poster {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}

.video-frame:hover .video-poster {
  transform: scale(1.035);
  filter: saturate(1.04) contrast(1.02);
}

.video-frame-featured .video-poster {
  object-position: center;
}

.video-card div {
  padding: 18px;
}

.video-card .video-frame {
  padding: 0;
}

.video-card p {
  margin-top: 6px;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.5;
}

.featured-video {
  align-self: stretch;
}

.testimonials {
  background: var(--paper);
}

.quote-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0;
}

blockquote {
  margin: 0;
  padding: 28px;
  color: var(--olive-deep);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.45rem;
  line-height: 1.32;
}

.places {
  background: var(--sand);
}

.place-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.place-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 86px;
  padding: 16px;
  border-radius: 8px;
  color: var(--olive-deep);
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(79, 96, 72, .08);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.place-list li:hover {
  transform: translateY(-4px);
  border-color: rgba(79, 96, 72, .34);
  box-shadow: 0 18px 38px rgba(79, 96, 72, .14);
}

.place-list b {
  font-size: 1rem;
  line-height: 1.25;
}

.place-icon {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  border-radius: 18px;
  color: var(--olive-deep);
  background:
    radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .96), rgba(255, 255, 255, 0) 30%),
    linear-gradient(135deg, #eef4e8, #d9e4cc);
  box-shadow: inset 0 0 0 1px rgba(79, 96, 72, .08), 0 12px 26px rgba(79, 96, 72, .12);
  line-height: 1;
}

.place-icon::before {
  content: "";
  width: 30px;
  height: 30px;
  background: currentColor;
  mask: var(--place-icon) center / contain no-repeat;
}

.place-company { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 21V3h10v4h6v14H4Zm3-3h2v-2H7v2Zm0-4h2v-2H7v2Zm0-4h2V8H7v2Zm4 8h2v-2h-2v2Zm0-4h2v-2h-2v2Zm0-4h2V8h-2v2Zm4 8h2v-2h-2v2Zm0-4h2v-2h-2v2Z'/%3E%3C/svg%3E"); }
.place-clinic { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3h4v6h6v4h-6v8h-4v-8H4V9h6V3Z'/%3E%3C/svg%3E"); }
.place-school { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 1 8l11 5 9-4.1V15h2V8L12 3Zm-6 9.2V16c0 2 3 4 6 4s6-2 6-4v-3.8l-6 2.7-6-2.7Z'/%3E%3C/svg%3E"); }
.place-home { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 3 10v11h6v-6h6v6h6V10l-9-7Zm0 5.5a4 4 0 0 1 4 4h-2a2 2 0 0 0-4 0H8a4 4 0 0 1 4-4Z'/%3E%3C/svg%3E"); }
.place-event { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v16H4V5h3V2Zm-1 8v9h12v-9H6Zm3 2 2.1 1.2L13 11l1.9 2.2L17 12l-1.2 2.5L18 16l-2.8.2L14.5 19 13 16.6 10.5 19l.3-2.8L8 16l2.2-1.5L9 12Z'/%3E%3C/svg%3E"); }
.place-institution { --place-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2 3 6v3h18V6l-9-4ZM5 11v7H3v3h18v-3h-2v-7h-3v7h-2v-7h-4v7H8v-7H5Z'/%3E%3C/svg%3E"); }

.final-cta {
  padding: 102px 0;
  color: var(--paper);
  background:
    linear-gradient(rgba(78, 90, 70, .9), rgba(78, 90, 70, .9)),
    url("/assets/cta.jpg?v=20260525-8") center/cover;
}

.cta-inner {
  max-width: 780px;
}

.cta-inner p:not(.eyebrow) {
  max-width: 640px;
  margin: 22px 0 28px;
  color: rgba(255, 250, 242, .84);
  font-size: 1.08rem;
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.section-actions {
  justify-content: center;
  margin-top: 28px;
}

.site-footer {
  padding: 40px 0;
  color: rgba(255, 250, 242, .78);
  background: #303a2d;
}

.footer-grid {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.footer-credit {
  flex-basis: 100%;
  text-align: center;
}

.footer-credit-break {
  display: none;
}

.site-footer strong {
  display: block;
  color: var(--paper);
  margin-bottom: 6px;
}

.site-footer p {
  margin: 3px 0;
}

.site-footer a {
  color: var(--paper);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.whatsapp-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 12;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  min-height: 58px;
  padding: 0;
  border-radius: 999px;
  color: #fff;
  background: #2f7d46;
  box-shadow: 0 14px 34px rgba(22, 83, 42, .28);
  font-weight: 800;
  text-decoration: none;
  text-align: center;
  line-height: 1.15;
  animation: whatsapp-pulse 1.9s ease-in-out infinite;
}

.whatsapp-float .wa-icon {
  width: 31px;
  height: 31px;
  color: #fff;
}

@keyframes whatsapp-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(47, 125, 70, .45), 0 14px 34px rgba(22, 83, 42, .28);
  }
  70% {
    transform: scale(1.06);
    box-shadow: 0 0 0 15px rgba(47, 125, 70, 0), 0 14px 34px rgba(22, 83, 42, .28);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(47, 125, 70, 0), 0 14px 34px rgba(22, 83, 42, .28);
  }
}

.modal-open {
  overflow: hidden;
}

.video-modal {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 24px;
}

.video-modal[hidden] {
  display: none;
}

.video-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 31, 25, .78);
  backdrop-filter: blur(9px);
}

.video-dialog {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  width: min(760px, 100%);
  height: min(760px, calc(100svh - 48px));
  max-height: calc(100svh - 48px);
  overflow: hidden;
  padding: 22px;
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .38);
}

.video-dialog video {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  display: block;
  object-fit: contain;
  border-radius: 7px;
  background: #111;
}

.feature-video-dialog {
  width: min(980px, 100%);
  height: min(820px, calc(100svh - 48px));
}

.feature-video-dialog video {
  object-fit: contain;
}

.video-copy {
  padding: 4px 46px 0 4px;
}

.video-copy h2 {
  color: var(--olive-deep);
  font-size: clamp(1.6rem, 4svh, 3.2rem);
}

.video-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--olive-deep);
  background: var(--paper);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 860px) {
  .portal-content {
    padding-top: 0;
  }

  .portal-option {
    min-height: 380px;
  }

  .portal-option-copy strong {
    font-size: 2.55rem;
  }

  .site-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    padding: 8px 12px;
  }

  .site-header .brand {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  .menu-toggle {
    display: inline-grid;
    grid-column: 3;
    grid-row: 1;
  }

  .site-header nav {
    position: absolute;
    top: 100%;
    left: 12px;
    right: 12px;
    display: none;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 0;
    padding: 8px;
    border: 1px solid rgba(255, 250, 242, .14);
    border-radius: 8px;
    font-size: .92rem;
    background: rgba(48, 58, 45, .98);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .24);
  }

  .site-header.is-menu-open nav {
    display: grid;
  }

  .site-header nav a {
    padding: 12px 14px;
    border-radius: 6px;
  }

  .site-header nav a:hover,
  .site-header nav a:focus-visible {
    background: rgba(255, 250, 242, .12);
  }

  .nav-separator {
    display: none;
  }

  .nav-contact {
    grid-column: 2;
    grid-row: 1;
  }

  .service-submenu {
    top: calc(100% + 13px);
  }

  .nav-whatsapp {
    padding: 6px 9px;
    min-height: 38px;
  }

  .hero {
    min-height: 88svh;
  }

  .hero-overlay {
    background:
      linear-gradient(90deg, rgba(25, 31, 24, .84), rgba(25, 31, 24, .5)),
      linear-gradient(0deg, rgba(25, 31, 24, .68), rgba(25, 31, 24, 0) 50%);
  }

  .hero-content {
    padding: 118px 0 54px;
  }

  .section {
    padding: 70px 0;
  }

  .split,
  .benefit-grid,
  .quote-grid,
  .feature-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .feature-grid {
    margin-top: 32px;
  }

  .carousel-thumbs {
    display: flex;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .carousel-thumbs button {
    flex: 0 0 82px;
  }

  .video-showcase {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .video-copy-panel .btn {
    width: 100%;
  }

  .video-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px) {
  .portal-main {
    padding: 16px 10px;
  }

  .portal-content {
    padding-top: 0;
  }

  .portal-intro {
    margin-bottom: 22px;
  }

  .portal-intro h1 {
    font-size: 2.45rem;
  }

  .portal-intro > p:last-child {
    font-size: .9rem;
  }

  .portal-options {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .portal-option {
    height: 36svh;
    min-height: 274px;
  }

  .portal-option-copy {
    inset: auto 18px 17px;
    gap: 7px;
  }

  .portal-option-copy strong {
    font-size: 2.25rem;
  }

  .portal-option-copy b {
    padding: 8px 12px;
    font-size: .83rem;
  }

  .container,
  .hero-content {
    width: min(100% - 28px, 1120px);
  }

  .site-header {
    gap: 5px 8px;
    padding: 7px 10px 6px;
  }

  .brand {
    gap: 7px;
    font-size: .84rem;
    white-space: nowrap;
  }

  .brand-mark {
    width: 32px;
    height: 32px;
    border-radius: 10px;
  }

  .site-header nav {
    gap: 5px;
    white-space: nowrap;
  }

  .site-header nav > a {
    min-height: 29px;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: .69rem;
  }

  .service-menu summary {
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid rgba(255, 250, 242, .22);
    border-radius: 999px;
  }

  .nav-page-link {
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid rgba(255, 250, 242, .22);
    border-radius: 999px;
    font-size: .78rem;
  }

  .service-submenu {
    right: auto;
    left: 0;
    min-width: 222px;
  }

  .nav-whatsapp {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
  }

  .nav-whatsapp span {
    display: none;
  }

  .nav-whatsapp .wa-icon {
    width: 16px;
    height: 16px;
  }

  .nav-instagram {
    width: 34px;
    height: 34px;
  }

  .nav-instagram .instagram-icon {
    width: 16px;
    height: 16px;
  }

  .hero-content,
  .section,
  .section-heading,
  .text-flow,
  .video-copy-panel,
  .cta-inner,
  .footer-grid,
  .split {
    text-align: center;
  }

  .hero-content {
    padding-top: 96px;
  }

  .section-heading,
  .section-heading.compact,
  .cta-inner {
    margin-left: auto;
    margin-right: auto;
  }

  .feature,
  .benefit-grid div {
    align-items: center;
    justify-items: center;
    text-align: center;
  }

  h1 {
    font-size: clamp(2.65rem, 15vw, 4.1rem);
  }

  h2 {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  .hero-actions {
    align-items: stretch;
    justify-content: center;
  }

  .btn {
    width: 100%;
  }

  .video-modal {
    padding: 12px;
  }

  .video-dialog {
    height: min(640px, calc(100svh - 24px));
    max-height: calc(100svh - 24px);
    padding: 14px;
  }

  .video-copy {
    padding: 8px 42px 0 2px;
  }

  .video-copy h2 {
    font-size: clamp(1.35rem, 3.8svh, 2.1rem);
  }

  .carousel-main {
    min-height: 360px;
    padding: 10px;
  }

  .carousel-main img {
    max-height: 340px;
  }

  .tag-panel,
  .place-list,
  .cta-actions {
    justify-content: center;
  }

  .tag-panel {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .tag-panel span {
    justify-content: flex-start;
    text-align: left;
  }

  .place-list {
    grid-template-columns: 1fr;
  }

  .place-list li {
    justify-content: center;
  }

  .quote-grid blockquote {
    text-align: center;
  }

  .video-grid {
    grid-template-columns: 1fr;
  }

  .video-frame {
    aspect-ratio: 16 / 10;
  }

  .video-frame-featured {
    aspect-ratio: 16 / 9;
  }

  .footer-grid {
    display: grid;
  }

  .footer-credit-break {
    display: initial;
  }

  .whatsapp-float {
    right: 14px;
    bottom: 14px;
    width: 54px;
    min-height: 54px;
  }
}

@media (max-width: 380px) {
  .corporate-page .brand {
    font-size: .76rem;
  }
}

