/* ============================================================
   ALGODÃO DOCE — REPAGINAÇÃO 2026
   Camada visual complementar. Mantém identidade, logo, fundos,
   textos e tipografia original, modernizando composição e efeitos.
   ============================================================ */

:root {
  --pink: #f39dc2;
  --pink-strong: #ef6faf;
  --pink-soft: #ffe2ef;
  --blue: #30a0ea;
  --blue-strong: #178fdc;
  --blue-soft: #dff4fc;
  --yellow: #ffd75e;
  --yellow-soft: #fff4bc;
  --violet: #9b83e6;
  --mint: #83dfc1;
  --ink: #50505a;
  --ink-dark: #34343d;
  --paper: #fffdfd;
  --white: #fff;
  --shadow: 0 22px 60px rgba(55, 70, 110, .14);
  --shadow-hover: 0 32px 75px rgba(55, 70, 110, .22);
  --radius-xl: 42px;
  --radius-lg: 28px;
  --radius-md: 20px;
  --transition: cubic-bezier(.2,.75,.2,1);
}

html { scroll-behavior: smooth; }
body {
  overflow-x: hidden;
  background: #fff;
  color: var(--ink);
}
body.nav-open { overflow: hidden; }
body::selection { background: var(--pink); color: #fff; }

* { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }

/* Ambient color + cursor */
.site-ambient {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 8;
  overflow: hidden;
}
.ambient-ball,
.ambient-star {
  position: absolute;
  opacity: .23;
  filter: blur(.2px);
  animation: ambientFloat 10s ease-in-out infinite;
}
.ambient-ball { border-radius: 50%; }
.ambient-ball--pink { width: 24px; height: 24px; background: var(--pink); top: 24%; left: 2%; }
.ambient-ball--blue { width: 16px; height: 16px; background: var(--blue); top: 67%; right: 3%; animation-delay: -3s; }
.ambient-ball--yellow { width: 28px; height: 28px; background: var(--yellow); top: 82%; left: 5%; animation-delay: -6s; }
.ambient-ball--violet { width: 12px; height: 12px; background: var(--violet); top: 41%; right: 2%; animation-delay: -8s; }
.ambient-star { font: 28px/1 Arial, sans-serif; color: var(--pink-strong); }
.ambient-star--1 { top: 31%; left: 4%; }
.ambient-star--2 { top: 57%; right: 4%; color: var(--blue); animation-delay: -4s; }
.ambient-star--3 { top: 88%; right: 8%; color: var(--yellow); animation-delay: -7s; }

.cursor-glow {
  position: fixed;
  z-index: 9999;
  top: -170px;
  left: -170px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(243,157,194,.10), rgba(48,160,234,.03) 45%, transparent 70%);
  transition: transform .08s linear;
}

@keyframes ambientFloat {
  0%,100% { transform: translate3d(0,0,0) rotate(0); }
  50% { transform: translate3d(8px,-22px,0) rotate(10deg); }
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 2000;
  width: 100%;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  box-shadow: 0 8px 35px rgba(57,62,90,.05);
  transition: .35s var(--transition);
}
.site-header.is-scrolled {
  box-shadow: 0 15px 50px rgba(57,62,90,.12);
  background: rgba(255,255,255,.96);
}
.contact-ribbon {
  min-height: 34px;
  background: linear-gradient(90deg, var(--blue-soft), #eefbff 52%, var(--pink-soft));
  border-bottom: 1px solid rgba(48,160,234,.08);
}
.contact-ribbon__inner {
  max-width: 1380px;
  min-height: 34px;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 25px;
  font-family: Calibri, Arial, sans-serif;
  font-size: 13px;
  letter-spacing: .2px;
}
.contact-ribbon__inner span,
.contact-ribbon__inner i { color: #65707b; }
.contact-ribbon__inner i { color: var(--pink-strong); margin-right: 6px; }
.contact-ribbon__tag {
  border-radius: 999px;
  padding: 4px 10px;
  background: rgba(255,255,255,.6);
}
.nav-shell {
  max-width: 1380px;
  min-height: 112px;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  transition: .35s var(--transition);
}
.site-header.is-scrolled .nav-shell { min-height: 88px; }
.brand {
  display: flex;
  align-items: center;
  align-self: stretch;
  width: min(265px, 24vw);
  position: relative;
  z-index: 3;
}
.brand::after {
  content: '';
  position: absolute;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--yellow);
  right: 5%;
  top: 15%;
  opacity: .23;
  z-index: -1;
  animation: pulseCandy 3s ease-in-out infinite;
}
.brand img {
  width: 100%;
  max-height: 138px;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: .35s var(--transition);
}
.site-header.is-scrolled .brand img { max-height: 104px; }
.main-nav {
  display: flex;
  align-items: stretch;
  gap: 6px;
}
.main-nav a {
  min-height: 64px;
  padding: 10px 14px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  text-align: center;
  font-size: 14px;
  line-height: 1.08;
  letter-spacing: .65px;
  text-transform: uppercase;
  color: var(--ink-dark);
  transition: .3s var(--transition);
}
.main-nav a::before {
  content: '';
  position: absolute;
  inset: auto 12px 7px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--pink), var(--blue));
  transform: scaleX(0);
  transition: .35s var(--transition);
}
.main-nav a::after {
  content: '';
  position: absolute;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  top: -65px;
  right: -55px;
  background: var(--pink-soft);
  transition: .4s var(--transition);
  z-index: -1;
}
.main-nav a:nth-child(2n)::after { background: var(--blue-soft); }
.main-nav a:nth-child(3n)::after { background: var(--yellow-soft); }
.main-nav a:hover {
  color: var(--pink-strong);
  transform: translateY(-3px);
  background: rgba(255,255,255,.85);
}
.main-nav a:hover::before { transform: scaleX(1); }
.main-nav a:hover::after { transform: scale(2.8); opacity: .65; }
.nav-toggle { display: none; }

@keyframes pulseCandy {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.14); }
}

/* Shared */
.home-modern,
.section-modern,
.site-footer { position: relative; z-index: 10; }
.section-modern { padding: 95px 0; }
.section-inner { width: min(1320px, 90%); margin: 0 auto; }
.two-columns { display: grid; grid-template-columns: 1.05fr .95fr; gap: 80px; align-items: center; }
.section-eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 8px 13px;
  border-radius: 999px;
  background: var(--pink-soft);
  color: var(--pink-strong);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-size: 12px;
  margin-bottom: 13px;
}
.section-eyebrow--light { background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.2); }
.section-heading { margin-bottom: 45px; }
.section-heading h2,
.about-copy h2 {
  margin: 0;
  color: var(--ink-dark);
  font-size: clamp(38px, 4.7vw, 68px);
  font-weight: normal;
  line-height: .98;
  letter-spacing: -1px;
}
.about-copy h2 span { color: var(--pink-strong); }
.section-heading p {
  margin-top: 11px;
  font: 18px/1.5 Calibri, Arial, sans-serif;
  color: #74747d;
}
.section-heading--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.title-strokes { display: flex; gap: 0; margin: 18px 0 32px; }
.title-strokes i { display: block; height: 5px; border-radius: 999px; }
.title-strokes i:nth-child(1) { width: 44px; background: var(--pink); }
.title-strokes i:nth-child(2) { width: 65px; background: var(--blue); }
.title-strokes i:nth-child(3) { width: 27px; background: var(--yellow); }
.title-strokes--center { justify-content: center; }
.section-heading:not(.section-heading--row) { text-align: center; }

.reveal-modern,
[data-scrollreveal] {
  opacity: 0;
  transform: translate3d(0, 30px, 0) scale(.985);
  transition: opacity .8s var(--transition), transform .8s var(--transition);
}
.reveal-modern.is-revealed,
[data-scrollreveal].is-revealed {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}

/* Hero */
.hero-modern { position: relative; background: #fff; }
.hero-slider {
  height: min(700px, calc(100vh - 120px));
  min-height: 560px;
  overflow: hidden;
  position: relative;
  background: #c9d9e6;
}
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transform: scale(1.035);
  transition: opacity 1.05s ease, transform 1.8s var(--transition);
}
.hero-slide.is-active { opacity: 1; pointer-events: auto; transform: scale(1); z-index: 2; }
.hero-slide > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.08);
  transition: transform 8s linear;
}
.hero-slide.is-active > img { transform: scale(1); }
.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(27,31,45,.72) 0%, rgba(27,31,45,.40) 43%, rgba(27,31,45,.05) 72%),
    linear-gradient(0deg, rgba(20,30,45,.25), transparent 45%);
}
.hero-copy {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: max(6vw, calc((100vw - 1320px)/2));
  width: min(650px, 82vw);
  transform: translateY(-46%);
  color: #fff;
}
.hero-kicker {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 9px 15px;
  margin-bottom: 18px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  font: 700 13px/1 Calibri, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  opacity: 0;
  transform: translateY(20px);
  transition: .7s .2s var(--transition);
}
.hero-kicker i { color: var(--yellow); }
.hero-copy h1 {
  margin: 0 0 18px;
  max-width: 650px;
  color: #fff;
  font-size: clamp(40px, 5vw, 74px);
  font-weight: normal;
  line-height: .99;
  text-shadow: 0 5px 30px rgba(0,0,0,.2);
  opacity: 0;
  transform: translateY(28px);
  transition: .8s .32s var(--transition);
}
.hero-copy h1 strong { color: #fff; font-weight: normal; position: relative; }
.hero-copy h1 strong::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 9px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--pink), var(--yellow));
  opacity: .8;
  z-index: -1;
}
.hero-copy p {
  max-width: 610px;
  margin: 0;
  color: rgba(255,255,255,.9);
  font: 20px/1.5 Calibri, Arial, sans-serif;
  text-shadow: 0 2px 15px rgba(0,0,0,.15);
  opacity: 0;
  transform: translateY(28px);
  transition: .8s .43s var(--transition);
}
.hero-actions {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  opacity: 0;
  transform: translateY(25px);
  transition: .8s .55s var(--transition);
}
.hero-slide.is-active .hero-kicker,
.hero-slide.is-active .hero-copy h1,
.hero-slide.is-active .hero-copy p,
.hero-slide.is-active .hero-actions { opacity: 1; transform: translateY(0); }
.btn-candy {
  min-height: 52px;
  padding: 0 22px;
  border-radius: 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  font-size: 15px;
  letter-spacing: .4px;
  box-shadow: 0 14px 34px rgba(0,0,0,.12);
  transition: .28s var(--transition);
}
.btn-candy i { color: inherit; }
.btn-candy:hover { transform: translateY(-4px) scale(1.02); color: #fff; box-shadow: 0 22px 38px rgba(0,0,0,.18); }
.btn-candy--pink { background: linear-gradient(135deg, var(--pink-strong), var(--pink)); }
.btn-candy--blue { background: linear-gradient(135deg, var(--blue-strong), #56b8f6); }
.btn-candy--yellow { background: linear-gradient(135deg, #f0b71c, var(--yellow)); color: #4a4230; }
.btn-candy--yellow:hover { color: #4a4230; }
.btn-candy--glass { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.36); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.hero-arrow {
  position: absolute;
  z-index: 6;
  top: 50%;
  width: 50px;
  height: 50px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: .25s ease;
}
.hero-arrow i { color: #fff; }
.hero-arrow:hover { background: #fff; transform: translateY(-50%) scale(1.08); }
.hero-arrow:hover i { color: var(--pink-strong); }
.hero-arrow--prev { left: 24px; }
.hero-arrow--next { right: 24px; }
.hero-dots {
  position: absolute;
  z-index: 6;
  left: max(6vw, calc((100vw - 1320px)/2));
  bottom: 44px;
  display: flex;
  gap: 9px;
}
.hero-dots button {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  cursor: pointer;
  transition: .35s var(--transition);
}
.hero-dots button.is-active { width: 35px; background: var(--pink); }
.hero-scroll {
  position: absolute;
  z-index: 5;
  right: 42px;
  bottom: 38px;
  color: rgba(255,255,255,.84);
  font: 12px/1 Calibri, Arial, sans-serif;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero-scroll span { display: block; width: 38px; height: 1px; background: rgba(255,255,255,.65); animation: scrollLine 1.6s ease-in-out infinite; }
@keyframes scrollLine { 0%,100% { transform: scaleX(.35); transform-origin:left; } 50% { transform: scaleX(1); } }
.hero-wave {
  position: absolute;
  z-index: 4;
  left: -2%; right: -2%; bottom: -1px;
  height: 42px;
  background: #fff;
  clip-path: polygon(0 58%, 8% 75%, 18% 50%, 30% 76%, 42% 47%, 54% 72%, 66% 44%, 79% 70%, 91% 48%, 100% 61%, 100% 100%, 0 100%);
}

/* Identity strip */
.identity-strip {
  width: min(1180px, 88%);
  margin: -9px auto 0;
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-radius: 26px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow);
}
.identity-strip > div {
  min-height: 95px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 20px;
  border-right: 1px solid #f1edf1;
  font: 16px/1.25 Calibri, Arial, sans-serif;
}
.identity-strip > div:last-child { border-right: 0; }
.identity-strip i { font-size: 24px; }
.identity-strip > div:nth-child(1) i { color: var(--pink-strong); }
.identity-strip > div:nth-child(2) i { color: var(--blue); }
.identity-strip > div:nth-child(3) i { color: #53b98f; }
.identity-strip > div:nth-child(4) i { color: #e2ad19; }
.identity-strip strong { color: var(--ink-dark); }

/* About */
.about-modern {
  background:
    radial-gradient(circle at 8% 25%, rgba(243,157,194,.12) 0 6%, transparent 6.3%),
    radial-gradient(circle at 92% 80%, rgba(48,160,234,.09) 0 8%, transparent 8.3%),
    #fff;
}
.about-copy { position: relative; }
.about-copy h3 {
  margin: 0 0 22px;
  color: var(--ink-dark);
  font: 700 clamp(22px, 2.2vw, 31px)/1.18 Calibri, Arial, sans-serif;
  letter-spacing: -.3px;
}
.about-copy > p,
.etapa-card p {
  margin: 0 0 13px;
  color: #696974;
  font: 17px/1.65 Calibri, Arial, sans-serif;
  text-align: left;
}
.etapa-card {
  margin: 28px 0;
  padding: 25px;
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 22px;
  align-items: start;
  border: 1px solid rgba(48,160,234,.11);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(223,244,252,.68), rgba(255,255,255,.97) 55%, rgba(255,226,239,.45));
  box-shadow: 0 18px 50px rgba(49,103,140,.09);
  transition: transform .25s ease, box-shadow .25s ease;
}
.etapa-logo {
  min-height: 115px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 25px rgba(54,78,102,.08);
}
.etapa-logo img { width: 100%; height: auto; float: none; margin: 0; }
.etapa-card p { font-size: 15px; margin-bottom: 10px; }
.text-link-modern {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  color: var(--blue);
  font-size: 18px;
  transition: .25s ease;
}
.text-link-modern span {
  width: 41px;
  height: 41px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blue-soft);
  transition: .25s ease;
}
.text-link-modern i { color: var(--blue); }
.text-link-modern:hover { color: var(--pink-strong); transform: translateX(4px); }
.text-link-modern:hover span { background: var(--pink-soft); }
.text-link-modern:hover i { color: var(--pink-strong); }
.about-visual { position: relative; min-height: 580px; display: flex; align-items: center; justify-content: center; }
.photo-frame {
  position: relative;
  width: 88%;
  border-radius: 46% 54% 45% 55% / 50% 42% 58% 50%;
  padding: 10px;
  background: linear-gradient(135deg, var(--pink), var(--yellow) 42%, var(--blue));
  box-shadow: 0 30px 80px rgba(72,86,116,.2);
  animation: morphShape 9s ease-in-out infinite;
}
.photo-frame::after {
  content: '';
  position: absolute;
  inset: 17px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: inherit;
  pointer-events: none;
}
.photo-frame img {
  width: 100%;
  aspect-ratio: 1 / .9;
  display: block;
  float: none;
  object-fit: cover;
  border-radius: inherit;
  margin: 0;
}
.photo-caption {
  position: absolute;
  right: 2%;
  bottom: 4%;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #707078;
  font: italic 14px/1 Calibri, Arial, sans-serif;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.floating-badge {
  position: absolute;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 17px 38px rgba(55,70,110,.18);
  animation: floatBadge 5s ease-in-out infinite;
}
.floating-badge i { font-size: 25px; color: #fff; }
.floating-badge--one { left: 0; top: 18%; background: linear-gradient(135deg, var(--pink-strong), var(--pink)); }
.floating-badge--two { right: 0; bottom: 15%; width: 58px; height: 58px; background: linear-gradient(135deg, var(--blue), #74c9fb); animation-delay: -2.2s; }
.floating-ring { position: absolute; width: 120px; height: 120px; border: 3px dashed var(--yellow); border-radius: 50%; right: 1%; top: 7%; opacity: .55; animation: spinSlow 18s linear infinite; }
@keyframes morphShape { 0%,100%{ border-radius:46% 54% 45% 55% / 50% 42% 58% 50%; } 50% { border-radius:56% 44% 56% 44% / 43% 57% 43% 57%; } }
@keyframes floatBadge { 0%,100%{ transform:translateY(0) rotate(-3deg); } 50%{ transform:translateY(-17px) rotate(5deg); } }
@keyframes spinSlow { to { transform: rotate(360deg); } }

/* Story */
.story-modern {
  overflow: hidden;
  background:
    radial-gradient(circle at 11% 25%, rgba(255,255,255,.17) 0 4px, transparent 5px),
    radial-gradient(circle at 89% 65%, rgba(255,255,255,.13) 0 5px, transparent 6px),
    linear-gradient(125deg, #f18eb9 0%, var(--pink) 43%, #9f93e7 100%);
}
.story-modern::before,
.story-modern::after {
  content: '';
  position: absolute;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  filter: blur(4px);
  opacity: .18;
}
.story-modern::before { left: -140px; top: -150px; background: #fff; }
.story-modern::after { right: -130px; bottom: -170px; background: var(--blue); }
.story-inner {
  position: relative;
  z-index: 2;
  width: min(1040px, 88%);
  margin: 0 auto;
  text-align: center;
}
.story-icon {
  width: 94px;
  height: 94px;
  margin: 0 auto 18px;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.17);
  border: 1px solid rgba(255,255,255,.24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transform: rotate(-4deg);
  box-shadow: 0 18px 50px rgba(90,46,90,.17);
}
.story-icon img { width: 65px; max-height: 65px; object-fit: contain; }
.story-inner p {
  margin: 10px auto 0;
  color: #fff;
  font-size: clamp(24px, 2.8vw, 38px);
  line-height: 1.35;
  text-shadow: 0 3px 20px rgba(76,38,82,.14);
}
.story-confetti i { position: absolute; width: 10px; height: 24px; border-radius: 999px; opacity: .9; }
.story-confetti i:nth-child(1){ background:var(--yellow); left:-3%; top:5%; transform:rotate(20deg); }
.story-confetti i:nth-child(2){ background:var(--blue); left:5%; bottom:1%; transform:rotate(-36deg); }
.story-confetti i:nth-child(3){ background:#fff; right:2%; top:11%; transform:rotate(48deg); }
.story-confetti i:nth-child(4){ background:var(--mint); right:7%; bottom:2%; transform:rotate(-20deg); }
.story-confetti i:nth-child(5){ background:var(--yellow); left:17%; top:-5%; transform:rotate(90deg); }
.story-confetti i:nth-child(6){ background:var(--blue-soft); right:18%; top:-2%; transform:rotate(70deg); }

/* Facilities */
.facilities-modern {
  background:
    linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}
.facility-grid {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  grid-auto-rows: 185px;
  gap: 18px;
}
.facility-card {
  position: relative;
  overflow: hidden;
  border-radius: 30px;
  box-shadow: 0 14px 42px rgba(55,70,110,.11);
  background: var(--blue-soft);
  transition: transform .25s ease, box-shadow .25s ease;
  transform-style: preserve-3d;
}
.facility-card:nth-child(1) { grid-column: span 4; grid-row: span 2; }
.facility-card:nth-child(2) { grid-column: span 3; }
.facility-card:nth-child(3) { grid-column: span 3; }
.facility-card:nth-child(4) { grid-column: span 3; }
.facility-card:nth-child(5) { grid-column: span 3; }
.facility-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .65s var(--transition), filter .65s ease; }
.facility-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 58%, rgba(40,45,60,.28)); opacity:0; transition:.35s ease; }
.facility-card:hover { box-shadow: var(--shadow-hover); }
.facility-card:hover img { transform: scale(1.07); filter: saturate(1.1); }
.facility-card:hover::after { opacity:1; }
.facility-card__shine {
  position: absolute;
  z-index: 2;
  top: -30%; left: -120%;
  width: 55%; height: 160%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transform: rotate(19deg);
  transition: .8s ease;
}
.facility-card:hover .facility-card__shine { left: 150%; }
.facility-card__button {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 16px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.88);
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
  opacity: 0;
  transform: translateY(12px) scale(.9);
  transition: .35s var(--transition);
}
.facility-card__button i { color: var(--pink-strong); }
.facility-card:hover .facility-card__button { opacity:1; transform:translateY(0) scale(1); }

/* Testimonials */
.testimonials-modern {
  background:
    radial-gradient(circle at 0 30%, rgba(243,157,194,.15), transparent 23%),
    radial-gradient(circle at 100% 80%, rgba(48,160,234,.12), transparent 25%),
    #f9f9fb;
  overflow: hidden;
}
.testimonials-layout { display:grid; grid-template-columns: .7fr 1.3fr; gap: 55px; align-items: center; }
.testimonial-art {
  position: relative;
  min-height: 520px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.testimonial-art::before {
  content:'';
  position:absolute;
  width: 85%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pink-soft), var(--blue-soft));
  filter: blur(1px);
}
.testimonial-art img { position:relative; z-index:2; width:92%; max-height:540px; object-fit:contain; }
.quote-float {
  position:absolute;
  z-index:3;
  right:3%; top:10%;
  width:78px; height:78px;
  display:flex; align-items:center; justify-content:center;
  border-radius:25px;
  background:var(--pink-strong);
  color:#fff;
  font:78px/1 Georgia,serif;
  padding-top:20px;
  box-shadow:0 18px 40px rgba(239,111,175,.28);
  transform:rotate(7deg);
}
.testimonial-slider {
  min-height: 520px;
  padding: 38px;
  border-radius: 36px;
  background: rgba(255,255,255,.93);
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
}
.testimonial-slider::before {
  content:'';
  position:absolute;
  left:0; top:38px; bottom:38px;
  width:5px;
  border-radius:999px;
  background:linear-gradient(var(--pink),var(--blue),var(--yellow));
}
.testimonial-card { display:none; animation:testimonialIn .6s var(--transition); }
.testimonial-card.is-active { display:block; }
.testimonial-card p {
  margin:0;
  color:#60606a;
  font: 17px/1.63 Calibri,Arial,sans-serif;
  text-align:left;
}
.quote-icon { width:62px; height:62px; border-radius:20px; background:var(--pink-soft); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.quote-icon img { width:44px; max-height:44px; object-fit:contain; }
.testimonial-controls { display:flex; align-items:center; justify-content:flex-end; gap:15px; margin-top:28px; }
.testimonial-controls button { width:45px; height:45px; border:0; border-radius:50%; cursor:pointer; background:#f1f2f5; transition:.25s ease; }
.testimonial-controls button i { color:#666973; }
.testimonial-controls button:hover { background:var(--pink-strong); transform:translateY(-2px); }
.testimonial-controls button:hover i { color:#fff; }
.testimonial-count { min-width:65px; font:14px/1 Calibri,Arial,sans-serif; color:#a1a1a8; }
.testimonial-count strong { font-size:22px; color:var(--ink-dark); }
.testimonial-count span { color:#aaa; }
@keyframes testimonialIn { from{opacity:0;transform:translateX(22px)} to{opacity:1;transform:none} }

/* Blog */
.blog-modern { background:#fff; }
.blog-deco { display:flex; gap:13px; align-items:center; font:26px/1 Arial,sans-serif; }
.blog-deco span:nth-child(1) { color:var(--pink); }
.blog-deco span:nth-child(2) { color:var(--blue); }
.blog-deco span:nth-child(3) { color:#e6b622; }
.blog-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:20px; }
.news-list-actions { display:flex; justify-content:flex-end; margin-top:32px; }
@media (min-width: 981px) {
  #material-escolar .blog-card:nth-child(4) { grid-column:3 / span 4; }
  #material-escolar .blog-card:nth-child(5) { grid-column:7 / span 4; }
}
.blog-card {
  grid-column: span 4;
  min-height: 365px;
  overflow:hidden;
  border-radius:28px;
  background:#fff;
  box-shadow:0 14px 40px rgba(55,70,110,.10);
  transition:transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover { box-shadow:var(--shadow-hover); }
.blog-card__image { height:250px; overflow:hidden; position:relative; }
.blog-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--transition); }
.blog-card:hover .blog-card__image img { transform:scale(1.07); }
.blog-card__tag { position:absolute; left:16px; top:16px; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.9); color:var(--pink-strong); font:700 12px/1 Calibri,Arial,sans-serif; text-transform:uppercase; letter-spacing:.8px; }
.blog-card__body { padding:20px 22px 23px; }
.blog-card__body p { min-height:46px; margin:0 0 16px; color:var(--ink-dark); font:700 18px/1.28 Calibri,Arial,sans-serif; }
.blog-card__body span { color:var(--blue); font-size:15px; }
.blog-card__body i { color:var(--blue); margin-left:7px; transition:transform .25s ease; }
.blog-card:hover .blog-card__body i { transform:translateX(5px); }

/* Footer */
.site-footer {
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 20%, rgba(48,160,234,.18), transparent 22%),
    radial-gradient(circle at 90% 90%, rgba(243,157,194,.18), transparent 25%),
    #24242b;
  padding:70px 0 0;
}
.footer-inner { width:min(1320px,90%); margin:0 auto; display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:22px; position:relative; z-index:2; }
.footer-about { padding:30px 30px 30px 0; }
.footer-mini-title { color:#fff; font-size:32px; margin-bottom:15px; }
.footer-about p { color:#bcbcc4; font:16px/1.6 Calibri,Arial,sans-serif; text-align:left; }
.footer-card { min-height:195px; padding:24px; border:1px solid rgba(255,255,255,.08); border-radius:26px; background:rgba(255,255,255,.045); transition:.3s ease; }
.footer-card:hover { background:rgba(255,255,255,.075); transform:translateY(-5px); }
.footer-card__icon { width:45px;height:45px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--pink-strong),var(--pink));margin-bottom:17px; }
.footer-card:nth-child(3) .footer-card__icon { background:linear-gradient(135deg,var(--blue-strong),var(--blue)); }
.footer-card:nth-child(4) .footer-card__icon { background:linear-gradient(135deg,#e0aa1b,var(--yellow)); }
.footer-card__icon i { color:#fff; }
.footer-card h2 { margin:0 0 11px; color:#fff; font-size:22px; font-weight:normal; }
.footer-card p { margin:0 0 6px; color:#bcbcc4; font:14px/1.45 Calibri,Arial,sans-serif; }
.footer-card p i { color:var(--mint); }
.social-links { display:flex;gap:10px; }
.social-links a { width:43px;height:43px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.09);transition:.25s ease; }
.social-links a i { color:#fff;font-size:18px; }
.social-links a:hover { background:var(--pink-strong);transform:translateY(-4px) rotate(-3deg); }
.footer-bottom { width:min(1320px,90%); margin:45px auto 0; min-height:75px; border-top:1px solid rgba(255,255,255,.09); display:flex; align-items:center; justify-content:space-between; gap:20px; color:#85858d; font:13px/1.4 Calibri,Arial,sans-serif; }
.footer-bottom img { height:24px; width:auto; opacity:.75; }
.footer-bubbles span { position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.08); }
.footer-bubbles span:nth-child(1){width:150px;height:150px;left:-60px;top:25px}.footer-bubbles span:nth-child(2){width:75px;height:75px;left:7%;top:45px}.footer-bubbles span:nth-child(3){width:180px;height:180px;right:-70px;bottom:5px}.footer-bubbles span:nth-child(4){width:50px;height:50px;right:9%;top:28px}
.back-to-top { position:fixed;z-index:1700;right:22px;bottom:22px;width:48px;height:48px;border:0;border-radius:16px;background:linear-gradient(135deg,var(--pink-strong),var(--pink));box-shadow:0 14px 35px rgba(239,111,175,.27);opacity:0;pointer-events:none;transform:translateY(15px);transition:.3s ease;cursor:pointer; }
.back-to-top i { color:#fff; }
.back-to-top.is-visible { opacity:1;pointer-events:auto;transform:none; }
.back-to-top:hover { transform:translateY(-4px) rotate(-4deg); }

/* ------------------------------------------------------------
   PÁGINAS INTERNAS — modernização sem alterar conteúdo
   ------------------------------------------------------------ */
body > .back { opacity:.28; filter:saturate(1.05); }
.interno {
  height:215px !important;
  line-height:1.1 !important;
  padding:0 max(5%,calc((100vw - 1320px)/2)) !important;
  display:flex !important;
  align-items:center;
  color:#fff !important;
  font-size:clamp(36px,5vw,64px) !important;
  letter-spacing:.5px !important;
  text-transform:none;
  background-position:center !important;
  border-radius:0 0 44px 44px;
  overflow:hidden;
  box-shadow:0 22px 55px rgba(55,70,110,.16);
  position:relative;
}
.interno::before { content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,43,57,.58),rgba(48,160,234,.18),rgba(243,157,194,.15));z-index:-1; }
.interno::after { content:'✦';position:absolute;right:7%;top:50%;transform:translateY(-50%);font:70px/1 Arial;color:rgba(255,255,255,.22);animation:spinSlow 15s linear infinite; }
.frente { background:rgba(255,255,255,.96) !important; }
.noventa {
  width:min(1180px,90%) !important;
  padding:70px 0 !important;
  font-family:Calibri,Arial,sans-serif;
}
.noventa h1,.noventa h2,.advogado h1,.advogado h2 { color:var(--ink-dark); }
.noventa h1 { font-size:clamp(36px,4vw,55px);font-weight:normal;margin-bottom:18px; }
.noventa h2 { font-size:clamp(24px,2.5vw,34px);font-weight:normal;margin-bottom:12px;color:var(--pink-strong); }
.noventa p,.noventa,.advogado p,.artigo p,.artigo li { font-family:Calibri,Arial,sans-serif !important;color:#656570;line-height:1.68; }
.noventa p { font-size:17px;padding-bottom:13px !important; }
.noventa b { font-family:Calibri,Arial,sans-serif;color:var(--ink-dark); }
.eixo { margin:30px 0; padding:22px; border-radius:28px; background:#fff; box-shadow:var(--shadow); }
.eixo img { display:block;width:min(900px,100%) !important;margin:0 auto !important;border-radius:18px; }
.escola { width:min(1320px,92%) !important;margin:0 auto 70px !important;display:grid !important;grid-template-columns:repeat(4,1fr);gap:16px;position:relative;z-index:99; }
.escola img { width:100% !important;height:250px;object-fit:cover;border-radius:24px;box-shadow:0 12px 34px rgba(55,70,110,.11);transition:.45s var(--transition); }
.escola img:hover { transform:translateY(-7px) scale(1.02);box-shadow:var(--shadow-hover); }
.info_escola2 { width:min(760px,88%) !important;margin:50px auto 80px !important;padding:40px !important;border-radius:32px !important;background:rgba(255,255,255,.94) !important;border:1px solid rgba(243,157,194,.2);box-shadow:var(--shadow);font-size:clamp(23px,2.5vw,34px) !important;line-height:1.35;text-align:center; }
.rotina img { border-radius:30px;box-shadow:var(--shadow); }
.meio-contato { border-radius:30px; }
.meio-contato img { border-radius:30px; }
.contop { padding:25px 5% !important;background:#fff !important;border:0 !important;box-shadow:0 12px 35px rgba(55,70,110,.06); }
.box-cont { border-right:1px solid #eee !important; }
.artigo { width:min(1180px,90%) !important;margin:0 auto;padding:28px !important;border:1px solid #eee !important;border-radius:24px;background:#fff;margin-bottom:16px;transition:.3s ease; }
.artigo:hover { transform:translateY(-5px);background:#fff !important;box-shadow:var(--shadow); }
.saiba2 { border-radius:16px !important;background:linear-gradient(135deg,var(--blue-strong),var(--blue)) !important;box-shadow:0 12px 28px rgba(48,160,234,.22); }
input.campo,textarea.area { padding:10px 4px;font-family:Calibri,Arial,sans-serif;outline:none;transition:.25s ease; }
input.campo:focus,textarea.area:focus { border-bottom-color:var(--pink-strong); }

/* Hide old structures if cached markup coexists */
body > .topo,
body > .header,
body > .headerMobile { display:none !important; }
.sobe { display:none !important; }

/* Responsive */
@media (max-width: 1120px) {
  .main-nav a { padding:9px 9px;font-size:12px; }
  .two-columns { gap:45px; }
  .testimonial-slider { padding:30px; }
  .footer-inner { grid-template-columns:1.35fr 1fr 1fr; }
  .footer-social { grid-column:2 / 4; min-height:auto; }
}

@media (max-width: 980px) {
  .site-ambient { display:none; }
  .cursor-glow { display:none; }
  .contact-ribbon { display:none; }
  .nav-shell { min-height:84px !important;padding:0 18px; }
  .brand { width:190px;max-width:52vw; }
  .brand img,.site-header.is-scrolled .brand img { max-height:82px; }
  .nav-toggle {
    width:50px;height:50px;padding:0;border:0;border-radius:16px;background:var(--blue-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;position:relative;z-index:4;
  }
  .nav-toggle span { width:24px;height:3px;border-radius:999px;background:var(--blue-strong);transition:.3s ease; }
  .nav-open .nav-toggle span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .nav-open .nav-toggle span:nth-child(2){opacity:0}
  .nav-open .nav-toggle span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  .main-nav {
    position:fixed;z-index:2;inset:84px 0 auto 0;max-height:calc(100vh - 84px);overflow:auto;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:10px;background:rgba(255,255,255,.98);box-shadow:0 25px 40px rgba(45,55,75,.13);transform:translateY(-130%);opacity:0;pointer-events:none;transition:.45s var(--transition);
  }
  .nav-open .main-nav { transform:translateY(0);opacity:1;pointer-events:auto; }
  .main-nav a { min-height:72px;padding:14px;border:1px solid #f0eef0;background:#fff;font-size:13px; }
  .main-nav a:nth-child(1),.main-nav a:nth-child(4){background:var(--pink-soft)}
  .main-nav a:nth-child(2),.main-nav a:nth-child(5){background:var(--blue-soft)}
  .main-nav a:nth-child(3),.main-nav a:nth-child(6){background:var(--yellow-soft)}

  .hero-slider { height:640px;min-height:640px; }
  .hero-slide > img { object-position:center; }
  .hero-overlay { background:linear-gradient(0deg,rgba(27,31,45,.72) 0%,rgba(27,31,45,.34) 72%,rgba(27,31,45,.12)); }
  .hero-copy { left:6%;top:auto;bottom:92px;transform:none;width:88%; }
  .hero-copy h1 { font-size:clamp(39px,8.5vw,60px); }
  .hero-copy p { font-size:17px; }
  .hero-arrow { top:43%;width:44px;height:44px; }
  .hero-arrow--prev { left:12px; }.hero-arrow--next { right:12px; }
  .hero-dots { left:6%;bottom:50px; }
  .hero-scroll { display:none; }
  .identity-strip { grid-template-columns:1fr 1fr;margin-top:18px; }
  .identity-strip > div:nth-child(2) { border-right:0; }
  .identity-strip > div:nth-child(-n+2) { border-bottom:1px solid #f1edf1; }
  .section-modern { padding:72px 0; }
  .two-columns { grid-template-columns:1fr;gap:45px; }
  .about-visual { min-height:auto; }
  .photo-frame { width:min(600px,90%); }
  .etapa-card { grid-template-columns:120px 1fr; }
  .facility-grid { grid-template-columns:repeat(2,1fr);grid-auto-rows:220px; }
  .facility-card:nth-child(n) { grid-column:span 1;grid-row:span 1; }
  .facility-card:nth-child(1) { grid-column:span 2; }
  .testimonials-layout { grid-template-columns:1fr;gap:25px; }
  .testimonial-art { min-height:360px; }
  .testimonial-art img { max-height:390px; }
  .testimonial-slider { min-height:0; }
  .blog-card { grid-column:span 6; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .footer-about { grid-column:1 / -1; }
  .footer-social { grid-column:auto; }
  .escola { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 640px) {
  .hero-slider { height:610px;min-height:610px; }
  .hero-copy { bottom:82px; }
  .hero-kicker { font-size:11px; }
  .hero-copy h1 { font-size:39px; }
  .hero-copy p { font-size:15.5px;line-height:1.45; }
  .btn-candy { min-height:48px;padding:0 17px;font-size:14px; }
  .hero-actions { margin-top:20px; }
  .hero-arrow { display:none; }
  .identity-strip { width:92%;grid-template-columns:1fr; }
  .identity-strip > div { min-height:70px;justify-content:flex-start;padding:15px 24px;border-right:0;border-bottom:1px solid #f1edf1 !important; }
  .identity-strip > div:last-child { border-bottom:0 !important; }
  .section-inner { width:90%; }
  .section-modern { padding:62px 0; }
  .section-heading h2,.about-copy h2 { font-size:43px; }
  .about-copy h3 { font-size:24px; }
  .etapa-card { grid-template-columns:1fr;padding:20px; }
  .etapa-logo { width:150px;min-height:90px; }
  .about-visual { padding:10px 0 25px; }
  .photo-frame { width:92%;border-radius:34px;animation:none; }
  .photo-frame img { border-radius:28px;aspect-ratio:1/.9; }
  .floating-badge--one { left:-2%;top:10%; }.floating-badge--two { right:-2%; }
  .floating-ring { width:80px;height:80px;right:-1%; }
  .story-inner p { font-size:24px; }
  .facility-grid { grid-template-columns:1fr;grid-auto-rows:245px; }
  .facility-card:nth-child(n) { grid-column:span 1; }
  .testimonial-art { min-height:300px; }
  .testimonial-slider { padding:25px 23px; }
  .testimonial-card p { font-size:15.5px; }
  .section-heading--row { align-items:flex-start; }
  .blog-deco { display:none; }
  .blog-grid { grid-template-columns:1fr; }
  .blog-card { grid-column:span 1;min-height:0; }
  .blog-card__image { height:230px; }
  .footer-inner { grid-template-columns:1fr; }
  .footer-about,.footer-social { grid-column:auto; }
  .footer-about { padding:10px 0 22px; }
  .footer-bottom { min-height:95px;flex-direction:column;justify-content:center;text-align:center;padding:18px 0; }
  .interno { height:160px !important;border-radius:0 0 28px 28px;font-size:38px !important; }
  .noventa { padding:45px 0 !important; }
  .noventa p { font-size:16px; }
  .escola { grid-template-columns:1fr;gap:12px; }
  .escola img { height:auto;max-height:330px; }
  .info_escola2 { padding:28px !important;font-size:23px !important; }
  .back-to-top { right:14px;bottom:14px; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:.01ms !important; }
  .reveal-modern,[data-scrollreveal] { opacity:1 !important;transform:none !important; }
}

/* ============================================================
   AJUSTE 08/09/2026 — FULL WIDTH + CONTROLES SOBREPOSTOS
   - remove limites máximos que deixavam folga excessiva nas laterais
   - faz header, seções e footer acompanharem 100% da viewport
   - mantém apenas o respiro interno por padding
   - garante que o botão de voltar ao topo fique sobre o layout
   ============================================================ */

html {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: clip;
  overflow-y: auto;
  scrollbar-gutter: auto;
}

/* Em navegadores que ainda suportam scrollbar sobreposta,
   não reserva uma coluna lateral para ela. */
@supports (overflow: overlay) {
  html { overflow-y: overlay; }
}

body {
  width: 100%;
  min-width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
}

/* Estruturas externas sempre ocupando toda a largura disponível */
.site-header,
.contact-ribbon,
.home-modern,
.hero-modern,
.hero-slider,
.section-modern,
.about-modern,
.story-modern,
.facilities-modern,
.testimonials-modern,
.blog-modern,
.frente,
.interno,
.site-footer {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Antes estes blocos tinham max-width de 1320/1380px.
   Agora acompanham telas grandes sem criar uma faixa vazia lateral. */
.contact-ribbon__inner,
.nav-shell,
.section-inner,
.footer-inner,
.footer-bottom {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: clamp(24px, 4.2vw, 82px);
  padding-right: clamp(24px, 4.2vw, 82px);
}

/* Mantém o conteúdo da seção institucional equilibrado em telas largas,
   mas leva a composição visual mais perto da borda direita. */
.about-modern .section-inner {
  padding-right: clamp(20px, 2.4vw, 48px);
}

.about-visual {
  justify-content: flex-end;
}

.photo-frame {
  width: min(720px, 100%);
}

/* O botão é flutuante e nunca deve participar da largura do documento. */
.back-to-top {
  position: fixed !important;
  z-index: 99999 !important;
  right: 16px !important;
  bottom: 16px !important;
  left: auto !important;
  top: auto !important;
  margin: 0 !important;
  float: none !important;
}

/* Scrollbar mais discreta no Chrome/Edge/Safari. A trilha transparente
   evita a sensação de uma barra branca separada do layout. */
html::-webkit-scrollbar {
  width: 9px;
}
html::-webkit-scrollbar-track {
  background: transparent;
}
html::-webkit-scrollbar-thumb {
  background: rgba(48, 160, 234, .35);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
html::-webkit-scrollbar-thumb:hover {
  background: rgba(239, 111, 175, .58);
  border: 2px solid transparent;
  background-clip: padding-box;
}

@media (max-width: 980px) {
  .contact-ribbon__inner,
  .nav-shell,
  .section-inner,
  .footer-inner,
  .footer-bottom {
    width: 100% !important;
    padding-left: 18px;
    padding-right: 18px;
  }

  .about-modern .section-inner {
    padding-left: 18px;
    padding-right: 18px;
  }

  .about-visual {
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .contact-ribbon__inner,
  .nav-shell,
  .section-inner,
  .footer-inner,
  .footer-bottom,
  .about-modern .section-inner {
    padding-left: 15px;
    padding-right: 15px;
  }

  .back-to-top {
    right: 10px !important;
    bottom: 10px !important;
  }
}

/* Cardápio semanal */
.snack-page { background:linear-gradient(180deg,#fff6fa 0%,#f6fbff 65%,#fff 100%); padding:60px 24px 80px; }
.snack-wrap { max-width:1200px; margin:0 auto; }
.snack-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:38px; }
.snack-intro h1 { font-size:clamp(38px,5vw,62px); line-height:1.1; color:var(--ink-dark); margin:12px 0 16px; }
.snack-intro h1 span { color:#c54c87; }
.snack-intro p { font-size:20px; line-height:1.5; }
.snack-intro-icon { display:grid; place-items:center; flex-shrink:0; width:112px; height:112px; background:#fff; border:2px dashed #f4b4cf; border-radius:32px; font-size:60px; transform:rotate(8deg); }
.snack-calendar { background:rgba(255,255,255,.85); border:1px solid #eee8f0; border-radius:30px; padding:28px; box-shadow:0 18px 50px rgba(55,70,110,.07); }
.snack-calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px; }
.snack-calendar-heading h2 { font-size:28px; color:var(--ink-dark); }
.snack-calendar-heading > span { font:600 13px/1.4 Calibri,Arial,sans-serif; padding:8px 14px; background:#f2f4fa; border-radius:20px; }
.snack-days { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.snack-day { --day-color:#ffe1ed; --day-ink:#a23968; background:#fff; border:1px solid var(--day-color); border-radius:20px; overflow:hidden; min-width:0; }
.snack-day:nth-child(2) { --day-color:#dff2ff; --day-ink:#216790; }
.snack-day:nth-child(3) { --day-color:#fff1bf; --day-ink:#7a6018; }
.snack-day:nth-child(4) { --day-color:#dcf5e9; --day-ink:#286c51; }
.snack-day:nth-child(5) { --day-color:#eee3ff; --day-ink:#70479a; }
.snack-day-top { position:relative; padding:20px 16px 18px; background:var(--day-color); text-align:center; border-top:6px solid var(--day-ink); }
.snack-day-label { display:block; text-align:left; color:var(--day-ink); font:700 11px/1 Calibri,Arial,sans-serif; letter-spacing:2px; }
.snack-food-icon { display:block; font-size:38px; margin:12px 0; }
.snack-day h3 { color:var(--day-ink); font-size:26px; line-height:1.1; }
.snack-day h3 small { display:block; color:inherit; font-size:16px; font-weight:400; margin-top:4px; }
.snack-day ul { padding:10px 16px 18px; margin:0; }
.snack-day li { position:relative; padding:13px 0 13px 15px; font:400 17px/1.45 Calibri,Arial,sans-serif; overflow-wrap:break-word; }
.snack-day li + li { border-top:1px dashed #e7e7ec; }
.snack-day li::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--day-ink); position:absolute; top:23px; left:0; }
.snack-note { display:flex; align-items:flex-start; gap:20px; margin-top:28px; padding:28px 32px; border:1px solid #efdea0; border-left:6px solid #e6be48; border-radius:22px; background:#fff9e5; }
.snack-note-icon { font-size:32px; flex-shrink:0; }
.snack-note h2 { font-size:26px; color:#745a21; margin-bottom:10px; }
.snack-note p { font:400 18px/1.65 Calibri,Arial,sans-serif; color:#665b40; }
.snack-note .snack-reminder { display:inline-block; background:#fff; border-radius:12px; padding:10px 16px; margin-top:16px; font-weight:700; color:#745a21; }
.snack-reminder i { color:inherit; margin-right:8px; }
@media (max-width:1050px) {
  .snack-days { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .snack-page { padding:36px 16px 48px; }
  .snack-intro-icon { width:70px; height:70px; font-size:38px; border-radius:22px; }
  .snack-intro p { font-size:18px; }
  .snack-calendar { padding:18px; border-radius:22px; }
  .snack-calendar-heading { align-items:flex-start; flex-direction:column; gap:10px; }
  .snack-days { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .snack-note { padding:22px 18px; gap:12px; }
  .snack-note-icon { display:none; }
}
@media (max-width:440px) {
  .snack-days { grid-template-columns:1fr; }
  .snack-intro-icon { display:none; }
  .snack-day { display:grid; grid-template-columns:110px minmax(0,1fr); }
  .snack-day h3 { font-size:23px; }
}

/* Proposta nutricional */
.nutrition-page { padding:58px 24px 80px; background:linear-gradient(180deg,#f0fbf6 0%,#fffdf8 42%,#fff 100%); }
.nutrition-wrap { max-width:1160px; margin:0 auto; }
.nutrition-intro { text-align:center; max-width:760px; margin:0 auto 38px; }
.nutrition-intro h1 { font-size:clamp(36px,5vw,58px); line-height:1.15; color:var(--ink-dark); margin:12px 0 16px; }
.nutrition-intro h1 span { color:#347b5d; }
.nutrition-intro > p { font-size:21px; line-height:1.5; }
.nutrition-page h2 { font-size:32px; line-height:1.2; color:var(--ink-dark); }
.nutrition-page p { font-size:18px; line-height:1.75; }
.nutrition-goal { display:flex; align-items:center; gap:30px; padding:38px 42px; border:1px solid #bde4ce; border-radius:30px; background:#e0f4e9; box-shadow:0 15px 40px rgba(45,110,78,.07); }
.nutrition-goal-icon { display:grid; place-items:center; flex-shrink:0; width:90px; height:90px; border-radius:26px; background:#fff; transform:rotate(-6deg); }
.nutrition-goal-icon i { font-size:38px; color:#347b5d; }
.nutrition-kicker { display:block; color:#37694d; font:700 12px/1.4 Calibri,Arial,sans-serif; text-transform:uppercase; letter-spacing:2px; margin-bottom:8px; }
.nutrition-goal h2 { color:#285c41; margin-bottom:12px; }
.nutrition-goal p { color:#365b46; font-size:22px; line-height:1.6; }
.nutrition-foundation { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin:48px 0 0; }
.nutrition-foundation h2 { margin:12px 0 20px; }
.nutrition-foundation-copy { padding:26px 30px; background:#fff; border:1px solid #e8ece8; border-radius:24px; }
.nutrition-section { margin-top:52px; }
.nutrition-section-heading { margin-bottom:24px; }
.nutrition-section-heading h2 { margin-top:10px; }
.nutrition-objectives { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; padding:0; margin:0; }
.nutrition-objectives li { padding:24px; border:1px solid #eee6d6; background:#fff8e6; border-radius:22px; }
.nutrition-objectives li:nth-child(2) { background:#edf7ff; border-color:#d5e9f6; }
.nutrition-objectives li:nth-child(3) { background:#fff0f6; border-color:#f1dce6; }
.nutrition-objectives li:nth-child(4) { background:#f3effc; border-color:#e5dcf6; }
.nutrition-objectives li > span { display:inline-grid; place-items:center; background:#fff; color:#6c5879; width:42px; height:42px; border-radius:14px; font:700 16px/1 Calibri,Arial,sans-serif; margin-bottom:16px; }
.nutrition-objectives p { line-height:1.5; color:var(--ink-dark); }
.nutrition-activities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.nutrition-activity { background:#fff; padding:28px; border:1px solid #e9e9ef; border-radius:24px; box-shadow:0 8px 26px rgba(55,70,110,.04); }
.nutrition-activity-icon { display:inline-grid; place-items:center; width:46px; height:46px; background:#eaf6ef; border-radius:15px; margin-bottom:16px; }
.nutrition-activity-icon i { color:#377557; font-size:21px; }
.nutrition-activity:nth-child(3n+2) .nutrition-activity-icon { background:#fff0f6; }
.nutrition-activity:nth-child(3n+2) .nutrition-activity-icon i { color:#ac4a79; }
.nutrition-activity:nth-child(3n) .nutrition-activity-icon { background:#edf4ff; }
.nutrition-activity:nth-child(3n) .nutrition-activity-icon i { color:#3d6b9f; }
.nutrition-activity h3 { color:var(--ink-dark); font-size:24px; line-height:1.25; margin:0 0 12px; }
.nutrition-note { display:flex; align-items:center; gap:18px; padding:24px 28px; margin-top:26px; border:1px solid #eedc9d; border-left:5px solid #dfb84e; border-radius:20px; background:#fff8e1; }
.nutrition-note > i { color:#b78927; font-size:26px; }
.nutrition-note strong { color:#745a21; }
.nutrition-schedule { margin-top:44px; padding:32px; background:#f0f6fc; border:1px solid #dce8f3; border-radius:26px; }
.nutrition-schedule h2 { margin:10px 0; }
.nutrition-schedule dl { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin:24px 0 0; }
.nutrition-schedule dl > div { padding:20px 12px; text-align:center; border-radius:16px; background:#fff; }
.nutrition-schedule dt { font-size:19px; margin-bottom:10px; color:#465870; }
.nutrition-schedule dd { font:700 22px/1.3 Calibri,Arial,sans-serif; color:#356a91; margin:0; }
@media (max-width:900px) {
  .nutrition-objectives { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nutrition-foundation { grid-template-columns:1fr; gap:22px; }
  .nutrition-schedule dl { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .nutrition-page { padding:36px 16px 48px; }
  .nutrition-goal { padding:26px; gap:20px; flex-direction:column; align-items:flex-start; }
  .nutrition-goal-icon { width:60px; height:60px; border-radius:18px; }
  .nutrition-goal-icon i { font-size:28px; }
  .nutrition-goal p { font-size:20px; }
  .nutrition-page h2 { font-size:28px; }
  .nutrition-objectives,.nutrition-activities { grid-template-columns:1fr; gap:14px; }
  .nutrition-objectives li { display:flex; align-items:flex-start; gap:16px; padding:20px; }
  .nutrition-objectives li > span { flex-shrink:0; margin:0; }
  .nutrition-foundation-copy,.nutrition-activity { padding:24px; }
  .nutrition-note { align-items:flex-start; padding:22px; }
  .nutrition-note > i { margin-top:6px; }
  .nutrition-schedule { padding:24px 18px; }
  .nutrition-schedule dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nutrition-schedule dl > div:last-child { grid-column:1 / -1; }
}

/* Rotina pedagógica */
.routine-page { padding:48px 24px 80px; background:radial-gradient(ellipse at 5% 3%,#fff0d8,transparent 35%),radial-gradient(ellipse at 100% 22%,#eeeaff,transparent 40%),#fffafc; }
.routine-wrap { max-width:1160px; margin:0 auto; }
.routine-intro { text-align:center; margin:0 auto 36px; max-width:800px; }
.routine-toy-blocks { display:flex; justify-content:center; gap:10px; margin-bottom:28px; }
.routine-toy-blocks span { display:grid; place-items:center; width:50px; height:50px; border-radius:13px; background:#ffe0ec; color:#a93b6a; box-shadow:0 5px 0 #edbdd0; font:700 28px/1 Calibri,Arial,sans-serif; transform:rotate(-10deg); }
.routine-toy-blocks span:nth-child(2) { background:#dceeff; color:#326b98; box-shadow:0 5px 0 #bfd8ed; transform:translateY(-8px) rotate(5deg); }
.routine-toy-blocks span:nth-child(3) { background:#fff0b9; color:#826319; box-shadow:0 5px 0 #e8d792; transform:rotate(10deg); }
.routine-intro h1 { font-size:clamp(36px,5vw,60px); line-height:1.15; color:var(--ink-dark); margin:12px 0 16px; }
.routine-intro h1 span { color:#9460a9; }
.routine-page p { font-size:18px; line-height:1.75; }
.routine-intro > p { font-size:22px; }
.routine-page h2 { font-size:30px; line-height:1.2; color:var(--ink-dark); }
.routine-belief { display:flex; align-items:center; gap:26px; padding:32px 36px; background:#fff; border:1px solid #eadff0; border-radius:28px; box-shadow:0 12px 35px rgba(90,65,110,.05); }
.routine-belief-icon { display:grid; place-items:center; flex-shrink:0; width:74px; height:74px; border-radius:24px; background:#fff0f6; }
.routine-belief-icon i { color:#bb5282; font-size:30px; }
.routine-belief h2 { margin-bottom:12px; }
.routine-pillars { margin-top:48px; }
.routine-section-heading { margin-bottom:26px; text-align:center; }
.routine-section-heading h2 { margin-top:10px; }
.routine-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.routine-card { --routine-tint:#ffedf3; --routine-accent:#a83e6c; --routine-border:#f0cbdc; position:relative; padding:28px 30px 30px; background:#fff; border:1px solid var(--routine-border); border-top:6px solid var(--routine-border); border-radius:26px; box-shadow:0 10px 28px rgba(65,55,95,.04); }
.routine-card:nth-child(2) { --routine-tint:#eaf5ff; --routine-accent:#346e9b; --routine-border:#c9e3f5; }
.routine-card:nth-child(3) { --routine-tint:#fff7d9; --routine-accent:#826421; --routine-border:#eee0ac; }
.routine-card:nth-child(4) { --routine-tint:#f3edff; --routine-accent:#7851a2; --routine-border:#dfd1f3; }
.routine-card:nth-child(5) { --routine-tint:#eaf8ef; --routine-accent:#34734e; --routine-border:#c7e8d3; }
.routine-card:nth-child(6) { --routine-tint:#e9f8f8; --routine-accent:#2f7478; --routine-border:#c3e5e7; }
.routine-card-heading { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.routine-icon { display:grid; place-items:center; flex-shrink:0; width:58px; height:58px; border-radius:18px; background:var(--routine-tint); transform:rotate(-5deg); }
.routine-icon i { font-size:26px; color:var(--routine-accent); transform:rotate(5deg); }
.routine-card-label { color:var(--routine-accent); font:700 13px/1.5 Calibri,Arial,sans-serif; letter-spacing:.6px; }
.routine-card h3 { color:var(--routine-accent); font-size:29px; line-height:1.2; margin:0 0 16px; }
.routine-card-copy p + p { margin-top:14px; }
.routine-groups { display:flex; align-items:center; gap:24px; margin-top:30px; padding:30px 36px; border:1px dashed #c8b5df; border-radius:26px; background:#f3edfb; }
.routine-groups-icon { display:grid; place-items:center; flex-shrink:0; width:66px; height:66px; border-radius:20px; background:#fff; }
.routine-groups-icon i { color:#8960a3; font-size:28px; }
.routine-groups h2 { color:#6f4a8b; margin-bottom:10px; }
@media (max-width:760px) {
  .routine-page { padding:36px 16px 48px; }
  .routine-grid { grid-template-columns:1fr; gap:20px; }
  .routine-belief,.routine-groups { padding:26px; align-items:flex-start; gap:18px; }
  .routine-belief-icon,.routine-groups-icon { width:50px; height:50px; border-radius:16px; }
  .routine-belief-icon i,.routine-groups-icon i { font-size:23px; }
  .routine-card { padding:24px; }
  .routine-page h2 { font-size:27px; }
}
@media (max-width:440px) {
  .routine-belief,.routine-groups { flex-direction:column; }
  .routine-intro > p { font-size:20px; }
  .routine-card h3 { font-size:26px; }
}

/* Escola: história e mosaico de espaços */
.school-page { background:linear-gradient(180deg,#fff7ec 0%,#fffafc 35%,#f8fbff 75%,#fff 100%); padding:52px 24px 70px; }
.school-wrap { max-width:1200px; margin:0 auto; }
.school-intro { text-align:center; max-width:850px; margin:0 auto 46px; }
.school-intro h1 { font-size:clamp(36px,4.5vw,58px); color:#41404d; line-height:1.14; margin:16px 0 20px; }
.school-intro h1 span { color:#ad5480; }
.school-page p { font-size:18px; line-height:1.75; }
.school-intro > p { font-size:21px; }
.school-jump { display:inline-flex; align-items:center; gap:18px; padding:13px 22px; margin-top:24px; background:#fff; border:1px solid #e9ccda; border-radius:30px; color:#92456c; font-size:17px; }
.school-jump span { color:inherit; }
.school-page h2 { font-size:32px; line-height:1.2; color:#41404d; }
.school-gallery { scroll-margin-top:160px; }
.school-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-bottom:24px; }
.school-heading h2 { margin-top:8px; }
.school-heading > p { max-width:290px; color:#827284; font-size:17px; }
.school-mosaic { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(3,210px); gap:18px; }
.school-photo { position:relative; margin:0; min-width:0; overflow:hidden; border-radius:24px; background:#eae3da; box-shadow:0 8px 24px #3e354f12; }
.school-photo--facade { grid-column:span 2; grid-row:span 2; }
.school-photo--garden { grid-column:span 2; }
.school-photo:nth-child(5),.school-photo:nth-child(6) { grid-column:span 2; }
.school-photo a { display:block; width:100%; height:100%; }
.school-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.school-photo:hover img { transform:scale(1.025); }
.school-photo figcaption { position:absolute; left:0; right:0; bottom:0; padding:35px 20px 18px; background:linear-gradient(transparent,rgba(22,30,32,.76)); color:#fff; font:600 15px/1.4 Calibri,Arial,sans-serif; pointer-events:none; }
.school-photo--facade figcaption { font-size:20px; padding:45px 24px 22px; }
.school-photo a:focus-visible { outline:4px solid #a7437b; outline-offset:-5px; }
.school-story { display:grid; grid-template-columns:1fr 1.2fr; gap:44px; align-items:start; margin-top:64px; }
.school-name-card { position:relative; padding:34px; background:#fff0f6; border:1px solid #f0d6e3; border-radius:30px; }
.school-story-heart { display:block; color:#bb5f88; font-size:66px; line-height:1; margin-bottom:18px; }
.school-name-card h2 { color:#a34f77; margin:12px 0 18px; }
.school-name-card p { color:#796072; font-size:21px; line-height:1.7; }
.school-history { padding-top:12px; }
.school-since { display:inline-block; color:#366c80; background:#e1f0f8; padding:8px 16px; border-radius:20px; font:700 13px/1.3 Calibri,Arial,sans-serif; }
.school-history h2 { margin:18px 0; }
.school-history p + p { margin-top:16px; }
.school-learning { margin-top:64px; padding:36px; border:1px solid #dae7f1; border-radius:30px; background:#edf5fc; }
.school-learning-heading { display:flex; justify-content:space-between; align-items:center; gap:32px; margin-bottom:28px; }
.school-learning-heading h2 { margin:10px 0 14px; }
.school-learning-heading img { width:145px; height:auto; flex-shrink:0; border-radius:16px; }
.school-learning-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.school-learning-grid article { padding:24px; background:#fff; border:1px solid #e0e9f2; border-radius:22px; }
.school-learning-icon { display:grid; place-items:center; width:48px; height:48px; background:#fff1cf; border-radius:15px; margin-bottom:18px; }
.school-learning-icon i { color:#8c722d; font-size:22px; }
.school-learning-grid article:nth-child(2) .school-learning-icon { background:#e4f5ea; }
.school-learning-grid article:nth-child(2) i { color:#3e8059; }
.school-learning-grid article:nth-child(3) .school-learning-icon { background:#f0e9fc; }
.school-learning-grid article:nth-child(3) i { color:#79539e; }
.school-learning-grid h3 { font-size:24px; line-height:1.25; color:#485c72; margin-bottom:16px; }
.school-learning-grid p { font-size:17px; line-height:1.75; }
.school-learning-grid p + p { margin-top:16px; }
.school-quote { max-width:830px; margin:48px auto 0; text-align:center; padding:0 20px; }
.school-quote > span { display:block; font-size:80px; color:#deb1c9; line-height:1; height:65px; }
.school-quote blockquote { font-size:24px; line-height:1.6; color:#80647a; margin:0; }
.school-quote figcaption { margin-top:18px; color:#95718a; font:600 13px/1.5 Calibri,Arial,sans-serif; letter-spacing:1px; }
@media (max-width:1000px) {
 .school-learning-grid { grid-template-columns:1fr; }
 .school-story { gap:28px; }
 .school-mosaic { grid-template-rows:repeat(3,180px); gap:14px; }
}
@media (max-width:700px) {
 .school-page { padding:36px 16px 48px; }
 .school-heading,.school-learning-heading { flex-direction:column; align-items:flex-start; gap:16px; }
 .school-heading > p { max-width:none; }
 .school-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; grid-auto-rows:180px; gap:12px; }
 .school-photo--facade { grid-column:1 / -1; grid-row:span 2; }
 .school-photo--garden { grid-column:1 / -1; }
 .school-photo:nth-child(5),.school-photo:nth-child(6) { grid-column:span 1; }
 .school-photo { border-radius:18px; }
 .school-photo figcaption { padding:30px 12px 14px; font-size:14px; }
 .school-story { grid-template-columns:1fr; margin-top:40px; }
 .school-name-card { padding:26px; }
 .school-learning { padding:24px 18px; margin-top:40px; }
 .school-learning-heading img { width:110px; }
 .school-page h2 { font-size:28px; }
 .school-quote blockquote { font-size:21px; }
}
@media (max-width:420px) {
 .school-mosaic { grid-template-columns:1fr; grid-auto-rows:230px; }
 .school-photo--facade { grid-row:span 1; }
 .school-photo--facade figcaption { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { .school-photo img { transition:none; } .school-photo:hover img { transform:none; } }

/* Leitura de notícias */
.news-detail-page { padding:30px 24px 64px; background:linear-gradient(180deg,#fff3f8 0%,#fbf9fd 35%,#f7fbff 100%); }
.news-detail-wrap { max-width:1080px; margin:auto; }
.news-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:28px; font:400 14px/1.5 Calibri,Arial,sans-serif; }
.news-breadcrumb a { color:#9a4e77; }
.news-breadcrumb > span { color:#9b8c9f; }
.news-article { background:#fff; border:1px solid #eee3ed; border-radius:30px; overflow:hidden; box-shadow:0 16px 50px rgba(87,62,105,.05); }
.news-article-heading { max-width:900px; margin:auto; padding:46px 40px 34px; text-align:center; }
.news-category { display:inline-flex; align-items:center; gap:9px; padding:9px 16px; border-radius:30px; color:#9c4d76; background:#fff0f6; font:700 13px/1.4 Calibri,Arial,sans-serif; }
.news-category i { color:inherit; font-size:12px; }
.news-article-heading h1 { font-size:clamp(30px,4vw,48px); line-height:1.2; color:#493f50; margin:22px 0; overflow-wrap:anywhere; }
.news-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.news-meta span,.news-meta time { font:400 14px/1.5 Calibri,Arial,sans-serif; color:#8b7b92; }
.news-cover { margin:0 32px; border-radius:22px; overflow:hidden; background:#f7f4f8; }
.news-cover a { display:block; }
.news-cover img { display:block; width:100%; height:auto; max-height:620px; object-fit:contain; }
.news-reading-area { max-width:840px; margin:auto; padding:38px 40px 42px; }
.news-article-body { font:400 19px/1.85 Calibri,Arial,sans-serif; color:#56515b; overflow-wrap:anywhere; display:flow-root; }
.news-article-body p,.news-article-body li,.news-article-body div { font-family:Calibri,Arial,sans-serif; }
.news-article-body p { margin:0 0 1.15em; line-height:1.85; }
.news-article-body h2,.news-article-body h3,.news-article-body h4 { color:#845177; line-height:1.3; margin:1.2em 0 .65em; }
.news-article-body h2 { font-size:29px; }.news-article-body h3 { font-size:25px; }
.news-article-body a { color:#8c487b; text-decoration:underline; text-underline-offset:3px; }
.news-article-body ul,.news-article-body ol { padding-left:26px; margin:0 0 22px; }
.news-article-body ul > li { list-style:disc; }.news-article-body ol > li { list-style:decimal; }
.news-article-body li { margin-bottom:8px; }
.news-article-body img,.news-article-body video { max-width:100%!important; height:auto!important; border-radius:14px; }
.news-article-body iframe { max-width:100%; }
.news-article-body table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }
.news-article-body td,.news-article-body th { padding:10px; border:1px solid #e7ddeb; }
.news-article-body blockquote { margin:24px 0; padding:20px 24px; border-left:4px solid #dc9dbd; background:#fff5fa; border-radius:0 14px 14px 0; }
.news-source { background:#f9f6fb; border:1px solid #eee5f2; border-radius:16px; padding:18px 22px; margin-top:30px; overflow-wrap:anywhere; }
.news-source > span { display:block; font:700 11px/1.5 Calibri,Arial,sans-serif; text-transform:uppercase; letter-spacing:1px; color:#9c81a4; margin-bottom:8px; }
.news-source a,.news-source p { font:400 15px/1.6 Calibri,Arial,sans-serif; color:#785686; }
.news-photo-section { padding:0 32px 32px; }
.news-photo-section h2 { font-size:30px; color:#654f70; margin:8px 0 22px; }
.news-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.news-photo-grid a { position:relative; display:block; border-radius:18px; overflow:hidden; background:#f2edf6; }
.news-photo-grid img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.news-photo-grid span { position:absolute; bottom:12px; right:12px; padding:7px 12px; border-radius:20px; background:#fff; color:#865b97; font:700 12px/1.4 Calibri,Arial,sans-serif; }
.news-return { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:30px; padding:30px 34px; border-radius:24px; border:1px solid #e0d9ed; background:#f1ebfa; }
.news-return h2 { font-size:27px; line-height:1.25; color:#715280; margin:10px 0; }
.news-return p { font-size:18px; line-height:1.5; color:#8b7897; }
.news-return > a,.news-not-found > a { display:inline-flex; justify-content:center; align-items:center; gap:20px; flex-shrink:0; padding:14px 22px; border-radius:30px; background:#94609f; color:#fff; font:700 15px/1.5 Calibri,Arial,sans-serif; }
.news-return > a span { color:inherit; }
.news-not-found { text-align:center; background:#fff; padding:60px 26px; border:1px solid #eee3ed; border-radius:28px; }
.news-not-found > span { display:block; color:#c67c9f; font-size:65px; }
.news-not-found h1 { font-size:36px; color:#735780; margin-bottom:18px; }
.news-not-found p { font-size:20px; line-height:1.6; margin-bottom:26px; }
.news-detail-page a:focus-visible { outline:3px solid #975caa; outline-offset:4px; }
@media(max-width:700px) {
 .news-detail-page { padding:24px 16px 42px; }
 .news-article { border-radius:22px; }
 .news-article-heading { padding:30px 22px 26px; }
 .news-cover { margin:0 16px; border-radius:16px; }
 .news-reading-area { padding:28px 22px; }
 .news-photo-section { padding:0 18px 22px; }
 .news-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .news-return { padding:26px; flex-direction:column; align-items:flex-start; }
}
@media(max-width:420px) { .news-photo-grid { grid-template-columns:1fr; } .news-meta { gap:8px; } }

/* Rodapé leve: azul, lavanda e rosa */
.site-footer {
  background:radial-gradient(ellipse at 12% 0%,rgba(255,255,255,.85),transparent 48%),linear-gradient(115deg,#e2f2fd 0%,#edf0fc 46%,#fce4ef 100%);
  padding-top:64px;
  border-top:1px solid #e7e9f5;
}
.site-footer::before { content:''; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,#99cfea,#c9b9e7,#f2b2cd); opacity:.65; }
.footer-inner { align-items:start; gap:24px; }
.footer-about { padding:0 24px 0 0; }
.footer-brand { display:inline-flex; padding:10px 16px; background:#fff; border:1px solid #e9e6f1; border-radius:20px; box-shadow:0 7px 22px rgba(86,94,144,.05); margin-bottom:20px; }
.footer-brand img { display:block; width:132px; height:84px; object-fit:contain; }
.footer-mini-title { font-size:26px; line-height:1.2; color:#556885; margin-bottom:14px; }
.footer-about p { color:#66738a; font-size:16px; line-height:1.75; max-width:430px; }
.footer-card { background:rgba(255,255,255,.6); border:1px solid rgba(255,255,255,.95); border-radius:24px; padding:25px; min-height:225px; box-shadow:0 10px 30px rgba(88,77,132,.035); transition:background .25s ease,box-shadow .25s ease; }
.footer-card:hover { background:rgba(255,255,255,.85); box-shadow:0 12px 30px rgba(88,77,132,.07); transform:none; }
.footer-card__icon { background:#dfedf9; width:48px; height:48px; border-radius:16px; margin-bottom:20px; }
.footer-card__icon i { color:#4f7ca4; font-size:19px; }
.footer-card:nth-child(3) .footer-card__icon { background:#ece5fa; }
.footer-card:nth-child(3) .footer-card__icon i { color:#8865a6; }
.footer-card:nth-child(4) .footer-card__icon { background:#fbe0ec; }
.footer-card:nth-child(4) .footer-card__icon i { color:#b05a83; }
.footer-card h2 { color:#54617b; font-size:24px; margin-bottom:13px; }
.footer-card p { color:#6c7488; font-size:15px; line-height:1.65; }
.footer-card p a { color:#5c6c88; }
.footer-card p a:hover { color:#9c4e78; text-decoration:underline; text-underline-offset:4px; }
.footer-card p i { color:#478568; margin-right:4px; }
.footer-social > p { margin-bottom:16px; }
.site-footer .social-links a { background:#fff; border:1px solid #ebdfea; width:44px; height:44px; border-radius:15px; }
.site-footer .social-links a i { color:#97638e; }
.site-footer .social-links a:first-child i { color:#557ca5; }
.site-footer .social-links a:hover { background:#fff3f9; transform:translateY(-3px); }
.footer-bottom { position:relative; z-index:2; margin-top:38px; border-top:1px solid rgba(139,139,170,.17); background:rgba(255,255,255,.22); min-height:80px; }
.footer-bottom > span { color:#74778b; font:13px/1.6 Calibri,Arial,sans-serif; }
.footer-bottom img { opacity:.85; }
.footer-bubbles,.footer-sparkles { pointer-events:none; }
.footer-bubbles span { border:1px solid rgba(144,163,196,.2); background:rgba(255,255,255,.13); }
.footer-bubbles span:nth-child(1) { width:190px; height:190px; left:-100px; top:130px; }
.footer-bubbles span:nth-child(2) { width:24px; height:24px; left:37%; top:20px; background:#d1e7f4; border:0; }
.footer-bubbles span:nth-child(3) { width:210px; height:210px; right:-110px; bottom:50px; }
.footer-bubbles span:nth-child(4) { width:16px; height:16px; right:27%; top:30px; background:#f0cee1; border:0; }
.footer-sparkles span { position:absolute; font:28px/1 Georgia,serif; color:#b5a0cb; }
.footer-sparkles span:nth-child(1) { left:23%; top:24px; color:#aacbdd; }
.footer-sparkles span:nth-child(2) { right:8%; top:19px; color:#cfa2bd; }
.footer-sparkles span:nth-child(3) { right:35%; bottom:95px; font-size:30px; opacity:.5; }
.site-footer a:focus-visible { outline:3px solid #9273ae; outline-offset:5px; border-radius:8px; }
@media(max-width:980px) { .footer-about { padding:0 0 8px; }.footer-about p { max-width:650px; }.footer-card { min-height:220px; } }
@media(max-width:640px) { .site-footer { padding-top:42px; }.footer-inner { gap:16px; }.footer-card { min-height:0; padding:23px; }.footer-card__icon { margin-bottom:14px; }.footer-bottom { margin-top:28px; }.footer-sparkles span:nth-child(3) { display:none; } }
@media(prefers-reduced-motion:reduce) { .site-footer .social-links a,.footer-card { transition:none; }.site-footer .social-links a:hover { transform:none; } }
