/* Design system supplied by the client. Shared identity across public and private pages. */
:root {
  --primary: #7D7959;
  --primary-dark: #6F6A49;
  --primary-light: #8E8867;
  --primary-soft: #96916F;
  --background: #FFFFFF;
  --background-secondary: #F7F7F5;
  --surface-soft: #F9F9F7;
  --accent: #878262;
  --text: #342F2B;
  --text-secondary: #69655D;
  --text-muted: #918E87;
  --border: #E8E7E2;
  --border-soft: #EFEFEB;
  --border-strong: #D7D5CD;
  --radius: 8px;
  --shadow-sm: 0 4px 16px rgba(0,0,0,.06);
  --shadow-md: 0 8px 24px rgba(0,0,0,.10);
  --font: 'Poppins', 'Montserrat', Arial, sans-serif;
}
body { font-family: var(--font); color: var(--text); background: var(--background); font-size: 14px; line-height: 1.65; }
h1,h2,h3,h4,h5,h6,.font-serif,.font-display { font-family: var(--font); font-weight: 600; text-wrap: balance; }
h1 { font-size: 30px; line-height: 1.25; letter-spacing: -.02em; }
h2 { font-size: 26px; line-height: 1.3; letter-spacing: -.015em; }
h3 { font-size: 20px; line-height: 1.35; }
p { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--primary-dark); outline-offset: 2px; }
svg.lucide { stroke-width: 1.5px; }
.brand-logo-green,.panel-logo,.panel-header-logo { filter: grayscale(1) sepia(.4); }
.brand-logo-white { filter: brightness(0) invert(1); }
.public-site .max-w-7xl { max-width: 1152px; }
.public-site main > section { padding: 64px 24px; scroll-margin-top: 88px; }
.public-site h1 { font-size: 30px; line-height: 1.25; letter-spacing: -.02em; }
.public-site h2 { font-size: 26px; line-height: 1.3; letter-spacing: -.015em; }
.public-site h3 { font-size: 20px; line-height: 1.35; }
.public-site h4 { font-size: 14px; line-height: 1.5; }
.public-site h1 span,.public-site h2 span { font-style: normal; }
.public-site .text-lg { font-size: 16px; line-height: 1.6; }
.public-site .text-sm { font-size: 12px; line-height: 1.55; }
.public-site .text-xs { font-size: 12px; line-height: 1.55; }
.public-site .glass-header { background: #fff; border-bottom: 1px solid var(--border); }
.public-site header > div { min-height: 72px; }
.public-site header nav { gap: 20px; font-size: 12px; }
.brand-logo-header { transform: scale(2.25); transform-origin: left center; }
.brand-logo-footer { transform: scale(1.8); transform-origin: left center; }
.public-site .fade-in { opacity: 1; transform: none; }
.public-site .blob { display: none; }
.public-site main a.rounded-full,.public-site header a.rounded-full,.public-site .mobile-link.rounded-full {
  align-items: center; justify-content: center; min-height: 44px; padding: 0 36px;
  font-size: 11px; font-weight: 500; line-height: 1.3; letter-spacing: .02em;
  text-transform: uppercase; border-radius: 999px; box-shadow: none;
  transition: background-color 180ms ease, transform 180ms ease;
}
.public-site main a.rounded-full { display: inline-flex; }
.public-site main a.rounded-full:hover { transform: translateY(-1px); }
.public-site main a.rounded-full:active { transform: translateY(0); }
.public-site .rounded-3xl,.public-site .rounded-\[2rem\],.public-site .rounded-\[2\.5rem\] { border-radius: var(--radius); }
.public-site .shadow-xl,.public-site .shadow-2xl { box-shadow: var(--shadow-md); }
.public-site .shadow-sm,.public-site .shadow-lg { box-shadow: var(--shadow-sm); }
.public-site #inicio { background: var(--background-secondary); }
#inicio > .grid { grid-template-columns: 1fr 1fr; gap: 48px; min-height: 430px; }
#inicio > .grid > div { grid-column: auto; margin: 0; padding-right: 0; min-width: 0; }
#inicio h1 { max-width: 480px; }
#inicio p { max-width: 490px; margin-bottom: 32px; }
#inicio .hero-media { width: 100%; max-width: 430px; margin: auto; }
#inicio .hero-frame { height: 430px; border-radius: 14px; overflow: hidden; }
.hero-portrait { height: 100%; width: auto; max-width: 100%; margin: 0 auto; border-radius: 14px; object-fit: contain; object-position: bottom center; }
#inicio .border-t { gap: 20px; padding-top: 24px; }
#inicio .border-t .text-base { font-size: 12px; }
.public-site main > .brand-statement { background: var(--accent); padding: 24px; }
.brand-statement p { font-size: 20px; font-weight: 500; }
#como-funciona .grid,#planos .grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
#como-funciona .grid > div,#planos article { padding: 24px; border-radius: 8px; box-shadow: none; }
#como-funciona .grid > div { background: #fff; transition: box-shadow 180ms ease; }
#como-funciona .grid > div:hover { box-shadow: var(--shadow-sm); }
.public-site .mb-16,.public-site .mb-14 { margin-bottom: 40px; }
.public-site #sobre { background: var(--accent); color: #fff; }
#sobre > .grid { gap: 48px; }
#sobre .text-text,#sobre h2,#sobre h4 { color: #fff; }
#sobre img { max-height: 480px; object-fit: cover; object-position: center; border-radius: 14px; box-shadow: none; }
#sobre li { gap: 10px; align-items: flex-start; }
#sobre li > div:first-child { padding: 2px; background: #fff; color: var(--primary); border: 1px solid #DAD8CE; box-shadow: none; }
#sobre li svg { width: 14px; height: 14px; }
#sobre a.rounded-full { background: #fff; color: var(--primary-dark); }
#sobre a.rounded-full:hover { background: var(--background-secondary); }
.public-site #planos,.public-site #depoimentos,.public-site #localizacao { background: var(--background-secondary); }
#planos article.bg-primary-dark { background: var(--primary-dark); }
#planos article.bg-primary-dark .text-secondary { color: #fff; }
#planos article.bg-primary-dark a { background: #fff; color: var(--primary-dark); }
#depoimentos .grid > div { border-radius: 8px; padding: 18px; box-shadow: none; }
#depoimentos .italic { font-style: normal; }
#agendar > div { background: #fff; border-radius: 12px; box-shadow: var(--shadow-md); }
#agendar > div > .bg-primary { background: var(--primary-dark); }
#localizacao > .grid { grid-template-columns: .9fr 1.1fr; gap: 64px; }
#localizacao iframe { border-radius: 12px; }
.public-site footer { background: var(--accent); padding: 40px 24px 24px; }
.public-site footer .grid { grid-template-columns: 1fr .7fr 1.2fr 1fr; gap: 24px; margin-bottom: 24px; padding-bottom: 32px; }
.public-site footer .text-secondary,.public-site footer [class*='text-white/'],#planos [class*='text-white/'],#agendar [class*='text-white/'] { color: #fff; }
.public-site footer a { overflow-wrap: anywhere; }
.public-site footer h4 { font-size: 16px; margin-bottom: 16px; }
.public-site footer .brand-logo-footer { height: 80px; }
@media (max-width: 1023px) {
  #inicio > .grid { gap: 24px; }
  .public-site footer .grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .public-site { font-size: 12px; line-height: 1.55; }
  .public-site main > section { padding: 40px 18px; }
  .public-site h1 { font-size: 21px; }
  .public-site h2 { font-size: 19px; }
  .public-site h3 { font-size: 16px; }
  .public-site .text-lg { font-size: 14px; line-height: 1.55; }
  .public-site .text-xs { font-size: 10px; line-height: 1.5; }
  .public-site header > div { padding: 0 18px; min-height: 64px; }
  .public-site main a.rounded-full,.public-site .mobile-link.rounded-full { min-height: 38px; padding: 10px 24px; font-size: 9px; }
  .public-site #inicio { background: #fff; }
  #inicio > .grid { display: flex; flex-direction: column; gap: 20px; text-align: center; }
  #inicio h1,#inicio p { margin-left: auto; margin-right: auto; }
  #inicio .flex-wrap { justify-content: center; }
  #inicio .flex-wrap:not(.border-t) { margin-bottom: 24px; gap: 10px; }
  #inicio .flex-wrap:not(.border-t) a { width: 100%; }
  #inicio .hero-frame { height: 340px; }
  #inicio > .grid > div { width: 100%; }
  #inicio .border-t { gap: 16px; }
  .public-site main > .brand-statement { padding: 20px 18px; }
  .brand-statement p { font-size: 16px; }
  #como-funciona .grid,#planos .grid { grid-template-columns: 1fr; gap: 10px; }
  #como-funciona .grid > div,#planos article { padding: 18px; }
  #sobre > .grid,#localizacao > .grid { display: flex; flex-direction: column; gap: 24px; }
  #sobre img { max-height: 400px; }
  #localizacao > .grid > div { width: 100%; }
  #agendar > div > div { padding: 24px 18px; }
  .public-site .mb-16,.public-site .mb-14 { margin-bottom: 24px; }
  .public-site footer { padding: 28px 18px; text-align: center; }
  .public-site footer .grid { display: flex; flex-direction: column; align-items: center; gap: 24px; }
  .public-site footer .grid > div { width: 100%; max-width: 340px; }
  .public-site footer li { justify-content: center; }
  .brand-logo-footer { transform-origin: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
