:root {
  --cream: #faf4e5;
  --ink: #244b35;
  --muted: #65745a;
  --paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23685736' opacity='.065' filter='url(%23n)' d='M0 0h170v170H0z'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body {
  margin: 0;
  background: var(--paper-grain), var(--cream);
  color: var(--ink);
  font-family: "Trebuchet MS", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
::selection { background: #d8ddbc; color: var(--ink); }
h1, h2, h3, p, figure { margin: 0; }
p { font-size: 15px; line-height: 1.8; }
h2 { font: normal 45px/1.12 Georgia, serif; letter-spacing: -.04em; }
h2 em { font-weight: normal; }
h3 { font-weight: normal; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 3px solid #b36d35; outline-offset: 6px; }
svg { display: block; }
.svg-library { position: absolute; overflow: hidden; }
.wrap { width: calc(100% - 110px); max-width: 1120px; margin-inline: auto; }
.eyebrow { font-size: 10px; line-height: 1.6; letter-spacing: .19em; text-transform: uppercase; font-weight: bold; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 10; padding: 14px 20px; background: var(--ink); color: var(--cream); transform: translateY(-160%); border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }

/* The paper letters and the illustration carry the first section. */
.site-header { height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { display: flex; gap: 13px; align-items: center; }
.brand img, .footer-brand img { object-fit: contain; flex-shrink: 0; mix-blend-mode: multiply; }
.brand-name { font: 24px Georgia, serif; letter-spacing: -1px; }
.brand-name small { display: block; margin-top: 5px; font: 9px "Trebuchet MS", Arial, sans-serif; text-transform: uppercase; letter-spacing: .12em; }
.site-nav { display: flex; align-items: center; gap: 26px; font-size: 12px; }
.site-nav a { transition: opacity .2s; }
.site-nav a:hover { opacity: .65; }
.site-nav .nav-investment { border: 1px solid currentColor; padding: 12px 18px; border-radius: 30px; white-space: nowrap; }
.hero { position: relative; min-height: 580px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 25px; align-items: center; padding-block: 25px 80px; }
.hero-copy { position: relative; z-index: 1; }
.hero h1 { font: normal 94px/.95 Georgia, serif; letter-spacing: -.075em; white-space: nowrap; margin: 0 0 25px; }
.letter { display: inline-block; background: #cdd6b2; padding: 0 5px 5px; transform: rotate(-5deg); margin-right: 3px; }
.letter:nth-child(2) { background: #eccc99; transform: rotate(4deg); }
.letter:nth-child(3) { background: #d8e5dc; transform: rotate(-3deg); }
.letter:nth-child(4) { background: #e3bda5; transform: rotate(5deg); }
.letter:nth-child(5) { background: #dfcc86; transform: rotate(-5deg); }
.letter:nth-child(6) { background: #d8d4b9; transform: rotate(3deg); }
.letter:nth-child(7) { background: #bdd0b7; transform: rotate(-4deg); }
.school { font-size: 16px; letter-spacing: .02em; }
.intro { max-width: 380px; margin-top: 34px; font-size: 16px; line-height: 1.7; }
.button { display: inline-flex; align-items: center; gap: 27px; border-radius: 40px; background: var(--ink); color: var(--cream); padding: 17px 25px; font-size: 12px; font-weight: bold; margin-top: 28px; transition: background .25s, transform .25s; }
.button span { font-size: 18px; font-weight: normal; }
.button:hover { background: #426c50; transform: translateY(-3px); }
.hero-art { position: relative; height: 465px; transform: rotate(-3deg); }
.children-art { position: absolute; width: 100%; height: calc(100% - 75px); object-fit: contain; top: 58px; left: 0; }
.hero-decorations { position: absolute; width: 110%; height: 100%; left: -5%; top: 0; overflow: visible; pointer-events: none; }
.hero-age { position: absolute; top: 20px; right: -5px; z-index: 1; background: #ebcf79; width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; text-align: center; font-size: 12px; line-height: 1.5; transform: rotate(13deg); color: #3c4d32; }
.hero-age b { font-size: 20px; }
.hero-art figcaption { position: absolute; bottom: -5px; left: 16%; font: italic 19px Georgia, serif; transform: rotate(-3deg); }
[data-parallax] { transform: translateY(var(--parallax-y, 0px)); }

/* Irregular paper edges separate quiet, readable sections. */
.torn { clip-path: polygon(0 2%,4% 1%,8% 3%,12% 0,16% 2%,20% 1%,24% 3%,28% 0,32% 2%,36% 1%,40% 3%,44% 0,48% 2%,52% 1%,56% 3%,60% 0,64% 2%,68% 1%,72% 3%,76% 0,80% 2%,84% 1%,88% 3%,92% 0,96% 2%,100% 0,100% 98%,96% 100%,92% 97%,88% 99%,84% 98%,80% 100%,76% 98%,72% 99%,68% 97%,64% 100%,60% 98%,56% 99%,52% 97%,48% 100%,44% 98%,40% 99%,36% 97%,32% 100%,28% 98%,24% 99%,20% 97%,16% 100%,12% 98%,8% 99%,4% 97%,0 100%); }
.principles { background: var(--paper-grain), #d8ddbc; padding-block: 57px; }
.principles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px; }
.principle { display: flex; gap: 15px; }
.num { font: italic 28px Georgia, serif; color: #6e7a51; }
.principle h2 { font: normal 24px Georgia, serif; letter-spacing: 0; margin-bottom: 10px; }
.principle p { font-size: 13px; line-height: 1.7; }
.section { padding-block: 95px; }
.section-title { display: flex; gap: 50px; justify-content: space-between; align-items: end; margin-bottom: 45px; }
.section-title .eyebrow { margin-bottom: 15px; }
.section-copy { max-width: 300px; font-size: 14px; line-height: 1.8; }
.section-copy p { font-size: inherit; }
.section-copy p + p { margin-top: 20px; }
.about .section-title { margin-bottom: 0; align-items: center; }
.rhythm-pin { position: relative; }
.rhythm-pin > .rhythm { position: sticky; top: var(--rhythm-pin-top); }
.rhythm { background: var(--paper-grain), #f0e8d3; }
.rhythm-line { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; position: relative; }
.rhythm-line::before { content: ""; position: absolute; top: 37px; left: 5%; right: 5%; height: 1px; background: #a9ad8d; }
.rhythm-item { position: relative; z-index: 1; }
.rhythm-icon { width: 75px; height: 75px; border-radius: 50%; background: var(--cream); display: grid; place-items: center; border: 1px solid #d7d1b9; margin-bottom: 20px; }
.line-icon { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rhythm-icon svg { width: 35px; height: 42px; }
.rhythm-item time { font: 29px Georgia, serif; display: block; margin-bottom: 8px; }
.rhythm-item p { font-size: 13px; line-height: 1.5; }
/* Linha do tempo revelada conforme o scroll (ativada via JS: .rhythm-scroll) */
.rhythm-scroll .rhythm-line::after { content: ""; position: absolute; top: 37px; left: 5%; right: 5%; height: 2px; margin-top: -.5px; background: var(--ink); transform-origin: left center; transform: scaleX(var(--rhythm-progress, 0)); }
.rhythm-scroll .rhythm-item { opacity: 0; transform: translateY(46px); transition: opacity .55s ease, transform .8s cubic-bezier(.34,1.45,.64,1); }
.rhythm-scroll .rhythm-item.is-shown { opacity: 1; transform: none; }
.rhythm-scroll .rhythm-icon { transform: translateY(var(--icon-y, 0px)); transition: background .4s, border-color .4s; }
.rhythm-scroll .rhythm-item.is-current .rhythm-icon { background: #fff; border-color: var(--ink); }
.rhythm-foot { margin-top: 36px; font: italic 14px/1.7 Georgia, serif; color: var(--muted); }

.activities { padding-bottom: 0; }
.activity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none; margin: 0; padding: 0; }
.activity-card { min-height: 175px; padding: 26px; display: flex; align-items: center; gap: 20px; background: #e6ead6; clip-path: polygon(0 3%,7% 1%,20% 3%,34% 0,50% 2%,67% 0,85% 2%,100% 0,99% 97%,85% 100%,68% 98%,50% 100%,32% 98%,16% 100%,0 97%); transition: transform .25s; }
.activity-card:hover { transform: translateY(-4px) rotate(-1deg); }
.activity-card:nth-child(2), .activity-card:nth-child(6) { background: #ead8bd; }
.activity-card:nth-child(3) { background: #d5e3db; }
.activity-card:nth-child(4) { background: #eccabd; }
.activity-card:nth-child(5) { background: #e8dfb1; }
.activity-icon { flex-shrink: 0; width: 53px; height: 65px; }
.activity-card h3 { font: 21px Georgia, serif; margin-bottom: 7px; }
.activity-card p { font-size: 12px; line-height: 1.6; }
.landscape { height: 180px; position: relative; overflow: hidden; margin-top: 45px; }
.landscape > svg { position: absolute; left: 0; bottom: -10px; width: 100%; height: 190px; }
.educators { background: var(--paper-grain), #e4e6d1; }
.educator-grid { display: grid; grid-template-columns: 1fr; gap: 64px; }
.educator { display: grid; grid-template-columns: 95px 1fr; gap: 24px; }
.portrait { width: 95px; height: 119px; background: #c7cfad; display: grid; place-items: center; border-radius: 48% 48% 3px 3px; }
.portrait svg { width: 77px; height: 91px; }
.educator:has(.portrait img) { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); align-items: center; gap: 32px; }
.portrait:has(img) { width: 100%; height: auto; aspect-ratio: 1769 / 889; background: transparent; border-radius: 14px; overflow: hidden; }
.portrait img { width: 100%; height: 100%; object-fit: contain; }
.educator:nth-child(2) .portrait { background: #ddc1a3; }
.educator h3 { font: 25px Georgia, serif; margin-bottom: 12px; }
.educator p { font-size: 14px; }
.placeholder-note { display: inline-block; margin-top: 13px; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: #526047; border-bottom: 1px dashed #899079; padding-bottom: 4px; }

.price-grid { display: grid; grid-template-columns: 1fr 1fr .85fr; gap: 24px; align-items: stretch; }
.price-card { --tilt: -1deg; border: 1px solid #b9bea4; padding: 29px 30px; transform: rotate(var(--tilt)); transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease; }
.price-card:nth-child(2) { --tilt: 1deg; background: #e9eddb; }
.price-card:hover { transform: translateY(-6px) rotate(0deg); box-shadow: 0 14px 28px -18px rgba(40, 48, 30, .45); }
.meal { --tilt: 0deg; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.meal:hover { transform: translateY(-5px); }
.meal:hover svg { animation: meal-wobble .6s ease-in-out; }
@keyframes meal-wobble { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-9deg); } 60% { transform: rotate(6deg); } }

/* Entrada ao rolar: os cards "pousam" na mesa, um após o outro */
.price-grid.reveal-armed > * { opacity: 0; transform: translateY(34px) rotate(calc(var(--tilt) * 4)); transition: opacity .6s ease, transform .8s cubic-bezier(.34,1.45,.64,1); }
.price-grid.reveal-armed > :nth-child(2) { transition-delay: .14s; }
.price-grid.reveal-armed > :nth-child(3) { transition-delay: .28s; }
.price-grid.reveal-armed.is-visible > * { opacity: 1; transform: rotate(var(--tilt)); }
.frequency { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.price { font: 55px/1.2 Georgia, serif; margin-top: 20px; letter-spacing: -.05em; }
.price small { font: 17px Georgia, serif; letter-spacing: 0; margin-right: 4px; }
.period { font-size: 12px; color: var(--muted); margin-top: 7px; }
.meal { display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f0dfbc; padding: 35px 25px 30px; border-radius: 55% 55% 10px 10px; text-align: center; }
.meal svg { width: 37px; height: 43px; margin-bottom: 12px; }
.meal h3 { font: 24px/1.25 Georgia, serif; }
.meal p { font-size: 13px; margin-top: 15px; }
.closing { background: var(--ink); color: var(--cream); padding-block: 70px 30px; }
.closing > .wrap > .eyebrow { margin-bottom: 20px; }
.closing-title { max-width: 740px; font: 52px/1.18 Georgia, serif; letter-spacing: -.03em; }
.closing-subtitle { font-size: 12px; margin-top: 20px; color: #e1e6cc; }
.closing-contact { margin-top: 34px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; font-size: 13px; color: #e1e6cc; }
.whatsapp-link { display: inline-flex; align-items: center; gap: 9px; padding: 10px 18px; border: 1px solid #ffffff55; border-radius: 999px; color: var(--cream); text-decoration: none; font-size: 15px; letter-spacing: .02em; transition: background .25s, color .25s, transform .25s; }
.whatsapp-link svg { width: 19px; height: 19px; flex-shrink: 0; }
.whatsapp-link:hover, .whatsapp-link:focus-visible { background: var(--cream); color: var(--ink); transform: translateY(-2px); }
.footer-line { border-top: 1px solid #ffffff36; padding-top: 23px; margin-top: 65px; display: flex; align-items: center; justify-content: space-between; gap: 25px; font-size: 11px; }
.footer-brand { display: flex; gap: 10px; align-items: center; line-height: 1.8; }
.footer-logo { display: flex; background: var(--cream); border-radius: 3px; isolation: isolate; }
.back-to-top { display: inline-flex; gap: 10px; align-items: center; }

@media (max-width: 1050px) {
  .wrap { width: calc(100% - 70px); }
  .site-nav { gap: 16px; }
  .hero h1 { font-size: 75px; }
  .hero-art { height: 405px; }
  .hero { min-height: 530px; }
  .children-art { top: 65px; }
  .hero-art figcaption { bottom: -15px; }
  .activity-card { padding: 24px 18px; gap: 12px; }
  .educator-grid { gap: 30px; }
  .educator { grid-template-columns: 75px 1fr; gap: 20px; }
  .portrait { width: 75px; height: 100px; }
  .portrait svg { width: 63px; height: 81px; }
  .price-grid { gap: 17px; }
  .price-card { padding: 25px 22px; }
  .price { font-size: 48px; }
}

@media (max-width: 760px) {
  .site-nav > a:not(.nav-investment) { display: none; }
  .hero { gap: 12px; min-height: 470px; }
  .hero h1 { font-size: 60px; }
  .hero-art { height: 340px; }
  .children-art { top: 58px; }
  .hero-age { width: 73px; height: 73px; font-size: 10px; }
  .hero-age b { font-size: 17px; }
  .hero-art figcaption { font-size: 16px; left: 9%; bottom: 0; }
  .principles-grid { gap: 25px; }
  .principle { gap: 10px; }
  .principle h2 { font-size: 21px; }
  .section-title { gap: 25px; }
  h2 { font-size: 38px; }
  .section-copy { max-width: 270px; }
  .activity-grid { grid-template-columns: 1fr 1fr; }
  .educator-grid { grid-template-columns: 1fr; gap: 36px; }
  .price-grid { grid-template-columns: 1fr 1fr; }
  .meal { grid-column: 1 / -1; border-radius: 5px; flex-direction: row; gap: 20px; padding: 22px; }
  .meal svg, .meal p { margin: 0; }
  .meal h3 { font-size: 22px; }
}

@media (max-width: 600px) {
  .educator:has(.portrait img) { grid-template-columns: 1fr; gap: 24px; }
  .educator .portrait:has(img) { width: 100%; max-width: 400px; }
  html { scroll-padding-top: 18px; }
  .wrap { width: calc(100% - 42px); }
  .site-header { height: 96px; gap: 10px; }
  .brand img { width: 64px; height: 64px; }
  .brand { gap: 9px; }
  .brand-name { font-size: 22px; }
  .brand-name small { max-width: 130px; font-size: 8px; line-height: 1.5; }
  .site-nav .nav-investment { padding: 10px 12px; font-size: 10px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; gap: 0; min-height: auto; padding-block: 42px 53px; }
  .hero h1 { font-size: clamp(47px, 14vw, 79px); letter-spacing: -.075em; margin-bottom: 22px; }
  .letter { padding: 0 4px 4px; margin-right: 2px; }
  .school { font-size: 15px; }
  .intro { font-size: 14px; max-width: 360px; margin-top: 24px; }
  .button { padding: 14px 21px; margin-top: 22px; }
  .hero-art { height: auto; aspect-ratio: 1.03; margin: 28px 0 10px; }
  .children-art { width: 100%; left: 0; top: 12%; }
  .hero-decorations { width: 110%; left: -5%; }
  .hero-age { width: 71px; height: 71px; top: 10px; right: 3%; font-size: 10px; }
  .hero-art figcaption { font-size: 16px; bottom: -5px; left: 14%; }
  h2 { font-size: 34px; }
  .section { padding-block: 60px; }
  .section-title { display: block; margin-bottom: 30px; }
  .section-copy { margin-top: 23px; max-width: 100%; font-size: 14px; }
  .principles { padding-block: 39px; }
  .principles-grid { grid-template-columns: 1fr; gap: 27px; }
  .principle { gap: 15px; }
  .principle h2 { font-size: 23px; }
  .principle p { font-size: 13px; }
  .rhythm-line { grid-template-columns: 1fr; gap: 24px; padding-left: 6px; }
  .rhythm-line::before { left: 33px; top: 0; bottom: 15px; right: auto; width: 1px; height: auto; }
  .rhythm-item { display: grid; grid-template-columns: 55px 1fr; column-gap: 22px; align-items: center; }
  .rhythm-icon { width: 55px; height: 55px; grid-row: span 2; margin: 0; }
  .rhythm-icon svg { width: 29px; height: 35px; }
  .rhythm-item time { font-size: 26px; margin-bottom: 3px; }
  .rhythm-item p { font-size: 13px; }
  .rhythm-foot { font-size: 13px; margin-top: 28px; }
  .rhythm-scroll .rhythm-line::after { top: 0; bottom: 15px; left: 33px; right: auto; width: 2px; height: auto; margin: 0 0 0 -.5px; transform-origin: center top; transform: scaleY(var(--rhythm-progress, 0)); }
  .activities { padding-bottom: 0; }
  .activity-grid { gap: 13px; }
  .activity-card { flex-direction: column; align-items: flex-start; gap: 13px; padding: 22px 17px; min-height: 184px; }
  .activity-card h3 { font-size: 19px; }
  .activity-card p { font-size: 12px; }
  .activity-icon { width: 43px; height: 47px; }
  .landscape { height: 125px; margin-top: 25px; }
  .landscape > svg { width: 180%; left: -40%; height: 150px; }
  .educator-grid { gap: 36px; }
  .educator { grid-template-columns: 65px 1fr; gap: 18px; }
  .portrait { width: 65px; height: 88px; }
  .portrait svg { width: 55px; height: 70px; }
  .educator h3 { font-size: 23px; }
  .educator p { font-size: 13px; }
  .price-grid { grid-template-columns: 1fr; gap: 18px; }
  .price-card { padding: 27px; display: grid; grid-template-columns: 1fr auto; gap: 0 15px; align-items: center; }
  .frequency { grid-row: span 2; max-width: 100px; line-height: 1.7; font-size: 11px; }
  .price { font-size: 45px; margin: 0; }
  .period { text-align: right; }
  .meal { display: flex; flex-direction: column; grid-column: auto; gap: 0; padding: 27px; }
  .meal svg { display: none; }
  .meal h3 { font-size: 24px; }
  .meal p { margin-top: 12px; }
  .closing { padding-block: 50px 25px; }
  .closing-title { font-size: 35px; }
  .closing-subtitle { font-size: 11px; }
  .footer-line { margin-top: 40px; }
  .back-to-top { font-size: 10px; }
}

@media (max-width: 360px) {
  .wrap { width: calc(100% - 34px); }
  .brand img { width: 54px; height: 54px; }
  .brand-name small { max-width: 105px; }
  .site-nav .nav-investment { padding: 9px 10px; }
  .price-card { padding: 25px 22px; }
  .price { font-size: 41px; }
  .activity-card { padding: 22px 14px; }
  .activity-card h3 { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  [data-parallax] { transform: none !important; }
  .button:hover, .activity-card:hover { transform: none; }
  .price-card, .price-card:hover, .price-grid.reveal-armed > * { opacity: 1; transform: rotate(var(--tilt)) !important; }
  .meal, .meal:hover { transform: none !important; }
  .meal:hover svg { animation: none; }
  .whatsapp-link:hover, .whatsapp-link:focus-visible { transform: none; }
  .rhythm-scroll .rhythm-item { opacity: 1; transform: none; }
}
