/* ————————————————————————————————
   SOLARA SAÚDE — sistema visual
   Creme Solar #FAF7F2 · Espresso #1C1610 · Argila #8C7B6B
   Areia #D4C4B0 · Blush #E8D5C0 · Floresta #3D6B4F · Verde Solara #7CB928
———————————————————————————————— */
:root {
  --creme: #FAF7F2;
  --espresso: #1C1610;
  --argila: #8C7B6B;
  --areia: #D4C4B0;
  --blush: #E8D5C0;
  --blush-2: #F0E9DE;
  --floresta: #3D6B4F;
  --verde: #7CB928;
  --pad: 24px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  background: var(--creme);
  color: var(--espresso);
  font-family: "DM Sans", sans-serif;
  font-weight: 300;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

.display { font-family: "Gupter", serif; font-weight: 700; letter-spacing: -0.015em; }
.display-light { font-family: "Gupter", serif; font-weight: 400; letter-spacing: -0.015em; color: var(--argila); }
.mono {
  font-family: "Space Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.mono-note { color: var(--argila); font-size: 9px; letter-spacing: 0.14em; }
.eyebrow { color: var(--verde); display: block; margin-bottom: 14px; }
.dot { color: var(--verde); }

.wrap { padding-left: var(--pad); padding-right: var(--pad); }
main { max-width: 560px; margin: 0 auto; }

/* ——— nav ——— */
.nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px var(--pad);
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--creme) 86%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.nav .logo { width: 34px; height: 34px; position: relative; cursor: pointer; -webkit-user-select: none; user-select: none; }
.nav .logo img { width: 100%; height: 100%; }
.menu-btn {
  display: flex; align-items: center; gap: 14px;
  background: none; border: 0; cursor: pointer;
  font-family: "Space Mono", monospace; font-size: 10px;
  letter-spacing: 0.18em; color: var(--verde);
}
.menu-btn .bars { display: flex; flex-direction: column; gap: 5px; }
.menu-btn .bars span { display: block; height: 1.2px; background: var(--espresso); width: 26px; transition: transform 0.3s var(--ease-out), width 0.3s var(--ease-out); }
.menu-btn .bars span:last-child { width: 18px; }
.menu-btn:hover .bars span:last-child { width: 26px; }

/* logo bloom easter egg */
.logo .bloom {
  position: absolute; inset: -26px; pointer-events: none;
  opacity: 0;
}
.logo.blooming .bloom { animation: bloom 1.5s var(--ease-out); }
@keyframes bloom {
  0% { opacity: 0; transform: scale(0.4) rotate(0deg); }
  35% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.25) rotate(40deg); }
}

/* ——— menu overlay ——— */
.menu-overlay {
  position: fixed; inset: 0; z-index: 90;
  background: var(--blush-2);
  transform: translateY(-100%);
  transition: transform 0.55s var(--ease-out);
  display: flex; flex-direction: column;
  padding: 14px var(--pad) 40px;
  overflow-y: auto;
}
.menu-overlay.open { transform: translateY(0); }
.menu-top { display: flex; align-items: center; justify-content: space-between; }
.menu-top img { width: 34px; }
.menu-close { background: none; border: 0; cursor: pointer; font-family: "Space Mono", monospace; font-size: 10px; letter-spacing: 0.18em; color: var(--espresso); }
.menu-links { display: flex; flex-direction: column; margin-top: 44px; }
.menu-links a {
  display: flex; align-items: baseline; gap: 14px;
  padding: 13px 0; border-bottom: 1px solid var(--areia);
  font-family: "Gupter", serif; font-weight: 700; font-size: 44px; line-height: 1;
  letter-spacing: -0.01em;
  opacity: 0; transform: translateY(18px);
}
.menu-overlay.open .menu-links a { animation: cascade 0.5s var(--ease-out) forwards; }
.menu-overlay.open .menu-links a:nth-child(1) { animation-delay: 0.10s; }
.menu-overlay.open .menu-links a:nth-child(2) { animation-delay: 0.16s; }
.menu-overlay.open .menu-links a:nth-child(3) { animation-delay: 0.22s; }
.menu-overlay.open .menu-links a:nth-child(4) { animation-delay: 0.28s; }
.menu-overlay.open .menu-links a:nth-child(5) { animation-delay: 0.34s; }
@keyframes cascade { to { opacity: 1; transform: translateY(0); } }
.menu-links .idx { font-family: "Space Mono", monospace; font-size: 10px; color: var(--argila); width: 26px; flex-shrink: 0; letter-spacing: 0.1em; }
.menu-foot { margin-top: auto; padding-top: 48px; position: relative; }
.menu-foot .spiral { position: absolute; top: -28px; right: 4px; opacity: 0.55; }
.menu-foot address { font-style: normal; font-size: 12px; line-height: 18px; color: var(--argila); margin-top: 18px; }

/* ——— buttons ——— */
.btn {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 12px;
  border-radius: 999px; padding: 16px 24px;
  font-family: "DM Sans", sans-serif; font-weight: 500; font-size: 15px;
  position: relative; overflow: hidden;
  transition: transform 0.25s var(--ease-out);
  cursor: pointer; white-space: nowrap;
}
.btn:active { transform: scale(0.97); }
.btn-dark { background: var(--espresso); color: var(--creme); }
.btn-line { border: 1px solid var(--espresso); color: var(--espresso); background: transparent; }
.btn .pulse {
  width: 7px; height: 7px; border-radius: 999px; background: var(--verde);
  animation: heartbeat 1.2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes heartbeat {
  0%, 100% { transform: scale(1); opacity: 1; }
  35% { transform: scale(1.45); opacity: 0.75; }
  60% { transform: scale(1); }
}
.btn .arrow { color: var(--verde); font-family: "Space Mono", monospace; }
.btn .ripple {
  position: absolute; border-radius: 999px; background: rgba(124, 185, 40, 0.35);
  transform: scale(0); animation: ripple 0.6s var(--ease-out) forwards;
  pointer-events: none;
}
@keyframes ripple { to { transform: scale(3.4); opacity: 0; } }

/* ——— hero ——— */
.hero { padding-top: 26px; position: relative; }
.hero-meta { display: flex; justify-content: space-between; color: var(--argila); padding-bottom: 18px; }
.hero h1 { font-size: clamp(64px, 19vw, 86px); }
.hero h1 .l { display: block; }
.hero h1 .l1 { line-height: 0.74; }
.hero h1 .l2 { line-height: 0.80; font-weight: 400; color: var(--argila); }
.hero h1 .l3 { line-height: 0.86; }
.hero-sub { margin-top: 26px; max-width: 300px; font-size: 15px; line-height: 1.55; }
.hero-cta { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.scroll-hint { color: var(--argila); font-size: 10px; letter-spacing: 0.14em; }

.corona {
  position: absolute; top: 30px; right: -44px;
  opacity: 0.5; pointer-events: none;
  animation: spin 360s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.hero-photo { margin-top: 30px; }
.hero-photo .frame { border-radius: 6px; overflow: hidden; position: relative; height: 250px; }
.hero-photo .frame img {
  position: absolute; top: -10%; left: 0;
  width: 100%; height: 120%; object-fit: cover;
  will-change: transform;
}
.hero-photo .tag {
  position: absolute; bottom: 12px; left: 12px;
  display: flex; align-items: center; gap: 8px;
  background: rgba(250, 247, 242, 0.88); border-radius: 999px; padding: 7px 14px;
  font-family: "Space Mono", monospace; font-size: 9px; letter-spacing: 0.14em;
}
.hero-photo .tag i { width: 5px; height: 5px; border-radius: 999px; background: var(--verde); }

/* ——— marquee ——— */
.marquee { margin-top: 40px; border-top: 1px solid var(--areia); border-bottom: 1px solid var(--areia); overflow: hidden; }
.marquee-track {
  display: flex; gap: 0; width: max-content;
  animation: marquee 24s linear infinite;
}
.marquee:hover .marquee-track, .marquee:active .marquee-track { animation-play-state: paused; }
.marquee-track span {
  padding: 14px 0; white-space: nowrap;
  font-family: "Space Mono", monospace; font-size: 11px; letter-spacing: 0.16em;
  color: var(--floresta);
}
@keyframes marquee { to { transform: translateX(-50%); } }

/* ——— sections ——— */
.section { margin-top: 72px; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; }
h2.title { font-size: clamp(40px, 12vw, 52px); }
h2.title .l { display: block; }
h2.title .l1 { line-height: 0.82; }
h2.title .l2 { line-height: 0.92; font-weight: 400; color: var(--argila); }
.lead { margin-top: 20px; max-width: 310px; font-size: 15px; line-height: 1.55; }

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; }
.reveal-line { display: block; overflow: hidden; }
.reveal-line > span { display: block; transform: translateY(110%); transition: transform 0.8s var(--ease-out); }
.in .reveal-line > span { transform: none; }
.reveal-line:nth-child(2) > span { transition-delay: 0.08s; }
.reveal-line:nth-child(3) > span { transition-delay: 0.16s; }

/* word-by-word manifesto */
.manifesto p { margin-top: 22px; max-width: 310px; font-size: 15px; line-height: 1.55; }
.manifesto p .w { opacity: 0.18; transition: opacity 0.4s ease; }
.manifesto p .w.on { opacity: 1; }

/* ——— conveyor de especialidades ——— */
.conveyor {
  margin-top: 10px; position: relative;
  overflow-x: clip; overflow-y: visible;
  padding: 26px 0 30px;
}
.conveyor-track {
  display: flex; width: max-content;
  animation: convey 54s linear infinite;
}
.conveyor.paused .conveyor-track { animation-play-state: paused; }
.card {
  width: 300px; height: 400px; flex-shrink: 0;
  margin-right: -86px; /* sobreposição */
  border-radius: 12px; padding: 20px;
  display: flex; flex-direction: column;
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #FFFEFB 0%, #F7F0E5 44%, #E9DBC6 100%);
  box-shadow:
    0 30px 56px rgba(28, 22, 16, 0.16),
    0 6px 14px rgba(28, 22, 16, 0.07),
    inset 0 1.5px 0 rgba(255, 255, 255, 0.95),
    inset 0 -10px 18px rgba(140, 123, 107, 0.14),
    inset 1px 0 0 rgba(255, 255, 255, 0.4);
  position: relative;
  transition:
    transform 0.7s cubic-bezier(0.33, 1, 0.4, 1),
    box-shadow 0.7s cubic-bezier(0.33, 1, 0.4, 1),
    opacity 0.7s cubic-bezier(0.33, 1, 0.4, 1),
    filter 0.7s cubic-bezier(0.33, 1, 0.4, 1);
}
.card:nth-child(even) {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #F9F2E7 0%, #EFE2CE 50%, #E0CFB5 100%);
}
.card.pop {
  box-shadow:
    0 52px 90px rgba(28, 22, 16, 0.24),
    0 10px 22px rgba(28, 22, 16, 0.10),
    inset 0 1.5px 0 rgba(255, 255, 255, 0.95),
    inset 0 -10px 18px rgba(140, 123, 107, 0.12);
  z-index: 60;
}
/* com um card em destaque, os demais recuam: menores, mais escuros, sem capturar o mouse */
.conveyor.paused .card:not(.pop) {
  pointer-events: none;
  transform: scale(0.95);
  opacity: 0.55;
  filter: brightness(0.96) saturate(0.85);
}
/* 3 conjuntos no track → desloca exatamente 1 conjunto */
@keyframes convey { to { transform: translateX(calc(-100% / 3)); } }
.card .top-logo { width: 18px; height: 18px; opacity: 0.9; flex-shrink: 0; }

/* variações de cor por especialidade */
.card.card--fisio {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #FCFDF8 0%, #F2F4E4 44%, #E0E5C9 100%);
  color: #7CB928;
}
.card.card--nutri {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #FFFDF7 0%, #F8EEDC 46%, #EAD8B9 100%);
  color: #B98A45;
}
.card.card--psico {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #FDF8F4 0%, #F4E6DC 46%, #E7D0C0 100%);
  color: #C08A74;
}
.card.card--masso {
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(165deg, #F8FAF6 0%, #EAEFE5 46%, #D9E1D0 100%);
  color: #3D6B4F;
}
.card .illo { flex: 1; display: flex; align-items: center; justify-content: center; position: relative; }
.card .nicho {
  position: absolute; width: 200px; height: 206px;
  border-radius: 100px 100px 10px 10px;
  background: linear-gradient(180deg, #EADDC9 0%, #F7F1E8 62%, #EFE5D4 100%);
  box-shadow:
    inset 0 10px 20px rgba(140, 123, 107, 0.22),
    inset 0 -3px 6px rgba(255, 255, 255, 0.85),
    0 1px 0 rgba(255, 255, 255, 0.8);
  opacity: 0.6;
}
.card .illo svg { position: relative; }
.card h3 { font-family: "Gupter", serif; font-weight: 700; font-size: 36px; line-height: 0.86; letter-spacing: -0.015em; color: var(--espresso); }
.card h3 small { display: block; font-weight: 400; font-size: 28px; color: var(--argila); margin-top: 3px; }
.card h3 .arrow { font-family: "Space Mono", monospace; font-size: 12px; color: var(--verde); margin-left: 6px; }

/* draw animations inside active cards — lentas, com in/out suave, em loop */
.card .draw {
  stroke-dasharray: 600; stroke-dashoffset: 600; opacity: 0;
  animation: draw 11s cubic-bezier(0.45, 0, 0.25, 1) infinite;
}
@keyframes draw {
  0%   { stroke-dashoffset: 600; opacity: 0; }
  10%  { opacity: 1; }
  52%  { stroke-dashoffset: 0; opacity: 1; }
  78%  { stroke-dashoffset: 0; opacity: 1; }
  94%  { stroke-dashoffset: 0; opacity: 0; }
  100% { stroke-dashoffset: 600; opacity: 0; }
}
.card .spin-slow { animation: spin 40s linear infinite; transform-origin: center; }
.conveyor-note { display: flex; justify-content: space-between; margin-top: 16px; }

/* ——— equipe: loop horizontal lento ——— */
.team-loop { overflow: hidden; padding: 22px 0 6px; }
.team-track {
  display: flex; width: max-content;
  animation: teamloop 75s linear infinite;
}
.team-loop:hover .team-track, .team-loop:active .team-track { animation-play-state: paused; }
@keyframes teamloop { to { transform: translateX(-50%); } }
.team-card { flex-shrink: 0; width: 218px; margin-right: 14px; }
.team-card .ph { width: 218px; height: 270px; border-radius: 6px; overflow: hidden; background: var(--blush); }
.team-card .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.team-card:hover .ph img { transform: scale(1.04); }
.team-card .row { display: flex; justify-content: space-between; align-items: baseline; padding-top: 10px; }
.team-card .row b { font-family: "Gupter", serif; font-weight: 700; font-size: 22px; line-height: 0.95; }
.team-card .row .mono { font-size: 9px; color: var(--verde); letter-spacing: 0.1em; }
.team-card .role { font-size: 12px; color: var(--argila); padding-top: 3px; }

/* ——— espaço collage ——— */
.collage { display: flex; gap: 12px; margin-top: 24px; align-items: flex-end; }
.collage .big { width: 58%; border-radius: 6px; overflow: hidden; height: 240px; }
.collage .col { display: flex; flex-direction: column; gap: 12px; flex: 1; }
.collage .small { border-radius: 6px; overflow: hidden; height: 114px; }
.collage img { width: 100%; height: 100%; object-fit: cover; }
[data-parallax] { will-change: transform; }

/* ——— CTA final ——— */
.cta-final {
  margin-top: 80px; background: var(--blush-2);
  padding: 54px var(--pad) 48px; position: relative; overflow: hidden;
}
.sun-arcs { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); opacity: 0.6; }
.cta-final h2 { font-size: clamp(46px, 14vw, 58px); margin-top: 96px; }
.cta-final .actions { display: flex; flex-direction: column; gap: 13px; margin-top: 28px; }
.cta-final .actions .btn { justify-content: space-between; }

/* ——— footer ——— */
footer { padding: 36px var(--pad) 44px; }
.footer-cacto { display: flex; justify-content: center; padding-bottom: 26px; }
.footer-cacto .draw-once { stroke-dasharray: 700; stroke-dashoffset: 700; transition: stroke-dashoffset 1.6s var(--ease-out); }
.footer-cacto.in .draw-once { stroke-dashoffset: 0; }
.footer-row { display: flex; justify-content: space-between; align-items: center; }
.footer-row img { width: 26px; }
footer address { font-style: normal; font-size: 12px; line-height: 18px; color: var(--argila); margin-top: 14px; }

/* ——— nav links (desktop) ——— */
.nav-links { display: none; }

/* ——— página equipe ——— */
.person { margin-top: 30px; }
.person .photo { position: relative; overflow: hidden; }
.person .photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.person .caption { padding: 14px var(--pad) 6px; }
.person .caption .row { display: flex; justify-content: space-between; align-items: baseline; }
.person .caption b { font-family: "Gupter", serif; font-weight: 700; font-size: 34px; line-height: 0.9; }
.person .caption .mono { color: var(--verde); font-size: 9px; letter-spacing: 0.1em; }
.person .caption .role { font-size: 13px; color: var(--argila); padding-top: 4px; max-width: 320px; }
.person .bio-inner { padding: 14px var(--pad) 6px; display: flex; flex-direction: column; gap: 12px; }
.person .bio p { font-size: 14px; line-height: 1.6; }
.person .bio p:nth-child(even) { color: var(--argila); }
.person + .person { border-top: 1px solid var(--areia); padding-top: 26px; }

.constellation { margin: 64px 0 0; text-align: left; }
.constellation .node { animation: floaty 5s ease-in-out infinite; transform-origin: center; }
.constellation .node:nth-child(odd) { animation-duration: 6.4s; }
@keyframes floaty { 50% { transform: translateY(-3px); } }

/* ——— página espaço ——— */
.masonry { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.masonry .row2 { display: flex; gap: 12px; }
.masonry figure { border-radius: 6px; overflow: hidden; position: relative; flex: 1; cursor: pointer; }
.masonry img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease-out); }
.masonry figure:hover img { transform: scale(1.03); }
.masonry figcaption {
  position: absolute; bottom: 10px; left: 10px;
  font-family: "Space Mono", monospace; font-size: 9px; letter-spacing: 0.12em;
  background: rgba(250, 247, 242, 0.85); border-radius: 999px; padding: 6px 12px;
}
.masonry .tall { height: 300px; }
.masonry .mid { height: 200px; }
.masonry .wide { height: 190px; }

.lightbox {
  position: fixed; inset: 0; z-index: 150; background: rgba(250, 247, 242, 0.96);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  opacity: 0; pointer-events: none; transition: opacity 0.35s ease;
}
.lightbox.open { opacity: 1; pointer-events: auto; }
.lightbox img {
  max-width: 100%; max-height: 80vh; border-radius: 8px;
  clip-path: ellipse(150% 0% at 50% 0%);
  transition: clip-path 0.6s var(--ease-out);
}
.lightbox.open img { clip-path: ellipse(150% 150% at 50% 50%); }
.lightbox .close { position: absolute; top: 20px; right: 24px; font-family: "Space Mono", monospace; font-size: 11px; letter-spacing: 0.16em; cursor: pointer; }

/* ——— página contato ——— */
.map-block {
  margin-top: 26px; border-radius: 6px; overflow: hidden; position: relative;
  height: 210px; background: linear-gradient(160deg, #F0E9DE 0%, #E8DBC8 100%);
  display: flex; align-items: center; justify-content: center;
}
.map-block .grid line { stroke: var(--areia); stroke-width: 0.8; }
.map-block .pin { display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; }
.map-block .pin img { width: 32px; animation: bounce-in 0.9s var(--ease-out); }
@keyframes bounce-in {
  0% { transform: translateY(-40px); opacity: 0; }
  60% { transform: translateY(4px); opacity: 1; }
  80% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.address-block { margin-top: 36px; }
.address-block b { font-family: "Gupter", serif; font-weight: 700; font-size: 28px; line-height: 0.95; display: block; }
.address-block span { color: var(--argila); font-size: 14px; display: block; padding-top: 5px; }

/* vagalumes easter egg */
.firefly { position: fixed; width: 6px; height: 6px; border-radius: 999px; background: var(--verde); z-index: 300; pointer-events: none; box-shadow: 0 0 10px 2px rgba(124,185,40,0.6); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

@media (min-width: 560px) {
  :root { --pad: 32px; }
  .corona { right: 0; }
}

/* ————————————————————————————————
   DESKTOP ≥ 900px
———————————————————————————————— */
@media (min-width: 900px) {
  :root { --pad: 64px; }
  main { max-width: none; margin: 0; }
  .wrap { padding-left: var(--pad); padding-right: var(--pad); }

  .nav { padding: 22px var(--pad); }
  .nav .logo { width: 40px; height: 40px; }
  .nav-links {
    display: flex; align-items: center; gap: 34px;
    margin-left: auto; margin-right: 40px;
  }
  .nav-links a {
    font-family: "Space Mono", monospace; font-size: 11px;
    letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--espresso); position: relative; padding-bottom: 3px;
  }
  .nav-links a::after {
    content: ""; position: absolute; left: 0; bottom: 0;
    width: 100%; height: 1px; background: var(--verde);
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.35s var(--ease-out);
  }
  .nav-links a:hover::after { transform: scaleX(1); }

  .menu-overlay { padding: 22px var(--pad) 64px; }
  .menu-links { margin-top: 56px; max-width: 720px; }
  .menu-links a { font-size: 72px; padding: 18px 0; }
  .menu-foot { max-width: 720px; }

  /* hero em duas colunas */
  .hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    column-gap: 56px; align-items: start;
    padding-top: 48px;
  }
  .hero-meta { grid-column: 1 / -1; padding-bottom: 34px; }
  .hero h1 { font-size: clamp(86px, 9vw, 132px); grid-column: 1; }
  .hero .corona { position: absolute; top: 90px; right: var(--pad); width: 230px; height: 230px; opacity: 0.45; }
  .hero-sub { font-size: 17px; max-width: 380px; margin-top: 34px; }
  .hero-cta { margin-top: 28px; }
  .hero-photo {
    grid-column: 2; grid-row: 2 / span 4;
    margin-top: 0; align-self: stretch;
  }
  .hero-photo .frame { height: 100%; min-height: 420px; }
  .scroll-hint { grid-column: 1; }

  .section { margin-top: 120px; }
  h2.title { font-size: clamp(56px, 6vw, 84px); }
  .lead { font-size: 17px; max-width: 420px; }

  /* manifesto: título à esquerda, texto à direita */
  .manifesto { display: grid; grid-template-columns: 1.2fr 0.8fr; column-gap: 64px; align-items: end; }
  .manifesto .eyebrow { grid-column: 1 / -1; }
  .manifesto h2.title { font-size: clamp(48px, 5vw, 72px) !important; }
  .manifesto p { font-size: 17px; max-width: 420px; margin-top: 0; }

  /* conveyor maior */
  .card { width: 340px; height: 454px; margin-right: -92px; padding: 24px; }
  .card h3 { font-size: 42px; }
  .card h3 small { font-size: 32px; }
  .card .nicho { width: 226px; height: 234px; border-radius: 113px 113px 10px 10px; }

  /* equipe: cards maiores */
  .team-loop { padding: 30px 0 8px; }
  .team-card { width: 280px; margin-right: 22px; }
  .team-card .ph { width: 280px; height: 348px; }
  .team-card .row b { font-size: 26px; }

  /* espaço: colagem mais alta */
  .collage { gap: 18px; }
  .collage .big { height: 420px; }
  .collage .small { height: 200px; }

  /* CTA final */
  .cta-final { margin-top: 140px; padding: 80px var(--pad) 90px; display: grid; grid-template-columns: 1.2fr 0.8fr; column-gap: 64px; align-items: end; }
  .cta-final .eyebrow { grid-column: 1 / -1; }
  .cta-final h2 { font-size: clamp(64px, 7vw, 104px); margin-top: 120px; }
  .cta-final .actions { margin-top: 0; max-width: 380px; justify-self: end; width: 100%; }
  .sun-arcs { width: 480px; height: auto; }

  footer { padding: 56px var(--pad) 64px; }

  /* página equipe: foto à esquerda, conteúdo à direita */
  .person {
    display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    column-gap: 56px; align-items: start;
    padding: 0 var(--pad); margin-top: 90px;
  }
  .person .photo { grid-column: 1; grid-row: 1 / span 3; border-radius: 8px; }
  .person .photo img { aspect-ratio: 3 / 4; }
  .person .caption { padding: 8px 0 0; grid-column: 2; }
  .person .caption b { font-size: 52px; }
  .person .caption .role { font-size: 15px; }
  .person .bio { grid-column: 2; }
  .person .bio-inner { padding: 18px 0 0; max-width: 520px; }
  .person .bio p { font-size: 15px; }
  .person + .person { border-top: 1px solid var(--areia); padding-top: 70px; }

  .constellation { margin-top: 110px; padding: 0 var(--pad); }
  .constellation svg { max-width: 560px; }

  /* página espaço: masonry em grid */
  .masonry { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .masonry .row2 { display: contents; }
  .masonry .tall { height: 460px; grid-column: span 2; }
  .masonry .mid { height: 320px; margin: 0 !important; }
  .masonry .wide { height: 320px; grid-column: span 2; }

  /* página contato */
  .address-block b { font-size: 40px; }
  .map-block { height: 340px; max-width: 760px; }
}

