:root {
  --vms-green:#294f30;
  --vms-green-2:#3d6843;
  --vms-sage:#8ca071;
  --vms-cream:#fbf7ef;
  --vms-paper:#fffdf8;
  --vms-line:#e8dcc8;
  --vms-terracotta:#c86d43;
  --vms-text:#22271f;
  --vms-muted:#66695f;
  --vms-shadow:0 14px 40px rgba(47,60,40,.08);
}
html { scroll-behavior:smooth; }
body.vml-has-proposal, body.vml-has-spaces { margin:0; background:var(--vms-cream); }
body.vml-has-proposal .wp-site-blocks, body.vml-has-spaces .wp-site-blocks { padding:0!important; }
#vms-page, #vms-page * { box-sizing:border-box; }
#vms-page { width:100%; max-width:none; margin:0; overflow:hidden; color:var(--vms-text); background:var(--vms-cream); font-family:'DM Sans',system-ui,-apple-system,sans-serif; }
#vms-page img { max-width:100%; display:block; }
.vms-container { width:min(1180px, calc(100% - 44px)); margin:0 auto; }
.vms-header { position:sticky; top:0; z-index:80; background:rgba(255,253,248,.96); backdrop-filter:blur(12px); border-bottom:1px solid rgba(216,204,185,.8); }
.vms-header__inner { min-height:84px; display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:22px; }
.vms-logo { display:inline-flex; align-items:center; }
.vms-logo img { width:118px; height:auto; max-height:66px; object-fit:contain; }
.vms-nav { display:flex; align-items:center; justify-content:center; gap:24px; min-width:0; }
.vms-nav a { position:relative; padding:30px 0 26px; color:#222; text-decoration:none; font-size:13px; font-weight:600; white-space:nowrap; }
.vms-nav a:hover, .vms-nav a.is-active { color:var(--vms-green); }
.vms-nav a.is-active::after { content:""; position:absolute; left:0; right:0; bottom:20px; height:2px; border-radius:999px; background:var(--vms-green); }
.vms-btn { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 18px; color:white!important; background:var(--vms-green); border-radius:12px; text-decoration:none; font-size:13px; font-weight:800; white-space:nowrap; box-shadow:0 7px 18px rgba(41,79,48,.16); }
.vms-btn:hover { transform:translateY(-1px); }
.vms-menu-toggle { display:none; border:0; background:transparent; color:var(--vms-green); padding:8px; cursor:pointer; }
.vms-menu-toggle .dashicons { width:30px; height:30px; font-size:30px; }
.vms-eyebrow { display:block; margin-bottom:20px; color:var(--vms-green); font-size:13px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.vms-proposal-hero, .vms-spaces-hero { background:linear-gradient(90deg,#fbf7ef 0%,#fffaf2 55%,#f4efe5 100%); }
.vms-proposal-hero__grid, .vms-spaces-hero__grid { min-height:520px; display:grid; grid-template-columns:minmax(340px,.88fr) minmax(500px,1.35fr); align-items:stretch; }
.vms-proposal-hero__copy, .vms-spaces-hero__copy { padding:72px 55px 62px 0; align-self:center; position:relative; z-index:2; }
.vms-proposal-hero h1, .vms-spaces-hero h1 { margin:0 0 26px; color:var(--vms-green); font-family:'Playfair Display',Georgia,serif; font-size:clamp(48px,5.2vw,76px); line-height:.98; letter-spacing:-.025em; font-weight:600; }
.vms-proposal-hero p, .vms-spaces-hero p { max-width:520px; margin:0; font-size:18px; line-height:1.72; color:#2e332c; }
.vms-proposal-hero__visual, .vms-spaces-hero__visual { margin:0; min-height:520px; overflow:hidden; position:relative; }
.vms-proposal-hero__visual::before, .vms-spaces-hero__visual::before { content:""; position:absolute; inset:0 auto 0 0; width:110px; z-index:1; background:linear-gradient(90deg,#fffaf2,rgba(255,250,242,0)); }
.vms-proposal-hero__visual img, .vms-spaces-hero__visual img { width:100%; height:100%; min-height:520px; object-fit:cover; }
.vms-principles { padding:34px 0 46px; }
.vms-principles__list { display:grid; gap:18px; }
.vms-principle { min-height:200px; display:grid; grid-template-columns:minmax(300px,.95fr) minmax(360px,1.1fr) 70px; gap:34px; align-items:center; padding:18px 24px 18px 18px; background:rgba(255,253,248,.9); border:1px solid var(--vms-line); border-radius:24px; box-shadow:var(--vms-shadow); }
.vms-principle figure { margin:0; height:166px; overflow:hidden; border-radius:18px; }
.vms-principle figure img { width:100%; height:100%; object-fit:cover; }
.vms-principle__copy h2 { margin:0 0 14px; color:var(--vms-green); font-family:'Playfair Display',Georgia,serif; font-size:29px; line-height:1.15; font-weight:600; }
.vms-principle__copy h2 span { color:#4c684e; margin-right:5px; }
.vms-principle__copy p { margin:0; font-size:16px; line-height:1.65; }
.vms-principle__icon { width:54px!important; height:54px!important; font-size:48px!important; line-height:54px!important; color:var(--vms-green); justify-self:center; }
.vms-quote { padding:34px 0; color:#fff; text-align:center; background:linear-gradient(135deg,#294f30,#426e47); }
.vms-quote blockquote { margin:0 0 6px; font-family:'Playfair Display',Georgia,serif; font-size:clamp(27px,3.1vw,42px); font-style:italic; }
.vms-quote cite { font-style:normal; letter-spacing:.08em; font-size:12px; text-transform:uppercase; }
/* Espaços */
.vms-spaces-hero__grid { grid-template-columns:minmax(420px,1fr) minmax(500px,1.1fr); }
.vms-spaces-hero__copy { padding-right:44px; }
.vms-spaces-hero h1 { font-size:clamp(46px,4.5vw,69px); line-height:1.04; }
.vms-space-section { padding:54px 0; background:#fffdf8; }
.vms-space-section--tint { background:#f8f3e8; }
.vms-space-layout { display:grid; grid-template-columns:245px 1fr; gap:46px; align-items:start; }
.vms-space-heading { position:sticky; top:110px; }
.vms-space-heading i { width:58px!important; height:58px!important; display:grid!important; place-items:center; margin-bottom:18px; border-radius:50%; background:#e7ecd9; color:var(--vms-green); font-size:28px!important; line-height:58px!important; }
.vms-space-heading h2 { margin:0 0 14px; color:var(--vms-green); font-family:'Playfair Display',Georgia,serif; font-size:31px; font-weight:600; }
.vms-space-heading p { margin:0; color:#4f544a; font-size:14px; line-height:1.7; }
.vms-gallery { display:grid; gap:22px; }
.vms-gallery--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vms-gallery--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vms-gallery figure { margin:0; min-width:0; }
.vms-gallery img { width:100%; aspect-ratio:1.55/1; object-fit:cover; border-radius:18px; box-shadow:var(--vms-shadow); }
.vms-gallery figcaption { display:grid; gap:5px; padding:11px 7px 0; }
.vms-gallery figcaption strong, .vms-feature-wide h3 { color:var(--vms-green); font-family:'Playfair Display',Georgia,serif; font-size:18px; }
.vms-gallery figcaption span, .vms-feature-wide p { color:#50544d; font-size:12px; line-height:1.55; }
.vms-feature-wide { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(190px,.55fr); gap:28px; align-items:center; }
.vms-feature-wide figure { margin:0; overflow:hidden; border-radius:20px; box-shadow:var(--vms-shadow); }
.vms-feature-wide figure img { width:100%; height:340px; object-fit:cover; }
.vms-feature-wide h3 { margin:0 0 8px; }
.vms-feature-wide p { margin:0; font-size:14px; line-height:1.7; }
.vms-feature-wide--reverse { margin-top:28px; grid-template-columns:minmax(0,1.65fr) minmax(190px,.5fr); }
.vms-feature-wide--reverse figure img { height:280px; }
@media (max-width:1080px) {
  .vms-container { width:min(100% - 34px, 980px); }
  .vms-header__inner { grid-template-columns:125px 1fr auto; gap:12px; }
  .vms-nav { gap:15px; }
  .vms-nav a { font-size:12px; }
  .vms-proposal-hero__grid,.vms-spaces-hero__grid { grid-template-columns:1fr 1.18fr; min-height:470px; }
  .vms-proposal-hero__visual,.vms-spaces-hero__visual,.vms-proposal-hero__visual img,.vms-spaces-hero__visual img { min-height:470px; }
  .vms-principle { grid-template-columns:minmax(270px,.9fr) 1fr 52px; gap:24px; }
}
@media (max-width:900px) {
  .vms-header__inner { min-height:72px; grid-template-columns:120px 1fr auto; }
  .vms-menu-toggle { display:inline-flex; justify-self:end; }
  .vms-header .vms-btn { display:none; }
  .vms-nav { position:absolute; left:16px; right:16px; top:calc(100% + 8px); display:none; padding:12px; background:#fffdf8; border:1px solid var(--vms-line); border-radius:18px; box-shadow:0 22px 60px rgba(35,50,34,.18); flex-direction:column; align-items:stretch; gap:0; }
  .vms-nav.is-open { display:flex; }
  .vms-nav a { padding:13px 14px; border-radius:10px; }
  .vms-nav a.is-active::after { display:none; }
  .vms-nav a.is-active { background:#eef1e7; }
  .vms-proposal-hero__grid,.vms-spaces-hero__grid { grid-template-columns:1fr; }
  .vms-proposal-hero__copy,.vms-spaces-hero__copy { padding:48px 10px 34px; text-align:center; }
  .vms-proposal-hero p,.vms-spaces-hero p { margin-inline:auto; }
  .vms-proposal-hero__visual,.vms-spaces-hero__visual { min-height:390px; border-radius:28px 28px 0 0; }
  .vms-proposal-hero__visual::before,.vms-spaces-hero__visual::before { display:none; }
  .vms-proposal-hero__visual img,.vms-spaces-hero__visual img { min-height:390px; max-height:520px; }
  .vms-principle { grid-template-columns:260px 1fr; }
  .vms-principle__icon { display:none!important; }
  .vms-space-layout { grid-template-columns:1fr; gap:24px; }
  .vms-space-heading { position:static; text-align:center; max-width:640px; margin:0 auto; }
  .vms-space-heading i { margin:0 auto 14px; }
}
@media (max-width:650px) {
  .vms-container { width:calc(100% - 26px); }
  .vms-header__inner { grid-template-columns:108px 1fr; min-height:66px; }
  .vms-logo img { width:96px; max-height:54px; }
  .vms-proposal-hero__copy,.vms-spaces-hero__copy { padding:40px 6px 28px; }
  .vms-eyebrow { font-size:11px; }
  .vms-proposal-hero h1,.vms-spaces-hero h1 { font-size:clamp(42px,13vw,58px); }
  .vms-proposal-hero p,.vms-spaces-hero p { font-size:16px; }
  .vms-proposal-hero__visual,.vms-spaces-hero__visual,.vms-proposal-hero__visual img,.vms-spaces-hero__visual img { min-height:330px; }
  .vms-principles { padding-top:22px; }
  .vms-principle { grid-template-columns:1fr; padding:14px; gap:16px; border-radius:20px; }
  .vms-principle figure { height:210px; }
  .vms-principle__copy { padding:0 6px 10px; }
  .vms-principle__copy h2 { font-size:25px; }
  .vms-principle__copy p { font-size:14px; }
  .vms-space-section { padding:42px 0; }
  .vms-gallery--two,.vms-gallery--three { grid-template-columns:1fr; }
  .vms-gallery img { aspect-ratio:1.45/1; }
  .vms-feature-wide,.vms-feature-wide--reverse { grid-template-columns:1fr; gap:16px; }
  .vms-feature-wide figure img,.vms-feature-wide--reverse figure img { height:260px; }
  .vms-feature-wide>div { padding:0 4px; }
  .vms-quote { padding:28px 14px; }
}


/* v2.5.3 — ajuste específico da imagem “Balanços e movimento”.
   Preserva a fotografia completa, sem o recorte horizontal agressivo aplicado
   aos demais destaques panorâmicos. */
.vms-feature-wide--swings figure {
  background:#eef2e7;
}
.vms-feature-wide--swings figure img {
  display:block;
  width:100%;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
}
@media (max-width:650px) {
  .vms-feature-wide--swings figure img {
    width:100%;
    height:auto !important;
    max-height:none !important;
  }
}


/* v2.5.4 — Proposta da Vivenda: fotografias sem cortes. */
.vms-page--proposal .vms-proposal-hero__visual {
    min-height: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible !important;
    background: #eef1e7;
}
.vms-page--proposal .vms-proposal-hero__visual::before {
    display: none !important;
}
.vms-page--proposal .vms-proposal-hero__visual img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 680px;
    object-fit: contain !important;
    object-position: center center !important;
}
.vms-page--proposal .vms-principle {
    align-items: center;
}
.vms-page--proposal .vms-principle figure {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #f1f3ea;
}
.vms-page--proposal .vms-principle figure img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    border-radius: 18px;
}
@media (max-width: 900px) {
    .vms-page--proposal .vms-proposal-hero__visual img {
        max-height: none !important;
    }
}
@media (max-width: 650px) {
    .vms-page--proposal .vms-principle figure {
        height: auto !important;
    }
    .vms-page--proposal .vms-principle figure img {
        height: auto !important;
        max-height: none !important;
    }
}

/* v2.5.5 — correção robusta da seção “Balanços e movimento”.
   Garante que a fotografia ocupe a coluna principal inteira, sem encolher,
   preservando sua proporção original e mantendo o texto na coluna lateral. */
.vms-page--spaces .vms-feature-wide--swings {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.65fr) minmax(210px, .5fr) !important;
  gap: 28px !important;
  align-items: center !important;
}
.vms-page--spaces .vms-feature-wide--swings > figure {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  background: transparent !important;
}
.vms-page--spaces .vms-feature-wide--swings > figure > img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 20px !important;
}
.vms-page--spaces .vms-feature-wide--swings > div {
  min-width: 0 !important;
}
@media (max-width: 900px) {
  .vms-page--spaces .vms-feature-wide--swings {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .vms-page--spaces .vms-feature-wide--swings > figure,
  .vms-page--spaces .vms-feature-wide--swings > figure > img {
    width: 100% !important;
  }
}

/* v2.5.7 — Proposta da Vivenda: imagens em proporção natural, sem recorte.
   A diagramação deixa de impor altura fixa ou preenchimento por cover. */
.vms-page--proposal .vms-proposal-hero__grid {
  align-items: center !important;
  min-height: 0 !important;
  padding-top: 30px;
  padding-bottom: 30px;
}
.vms-page--proposal .vms-proposal-hero__visual {
  min-height: 0 !important;
  height: auto !important;
  overflow: hidden !important;
  border-radius: 24px;
  background: #f1f3ea;
  align-self: center;
}
.vms-page--proposal .vms-proposal-hero__visual img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}
.vms-page--proposal .vms-principles__list {
  gap: 26px;
}
.vms-page--proposal .vms-principle {
  min-height: 0 !important;
  grid-template-columns: minmax(320px, .95fr) minmax(360px, 1.05fr) 58px !important;
  align-items: center !important;
  padding: 22px !important;
}
.vms-page--proposal .vms-principle figure {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #f1f3ea;
}
.vms-page--proposal .vms-principle figure img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 900px) {
  .vms-page--proposal .vms-proposal-hero__grid {
    padding-top: 0;
  }
  .vms-page--proposal .vms-proposal-hero__visual {
    width: min(720px, 100%);
    margin: 0 auto 28px !important;
  }
  .vms-page--proposal .vms-principle {
    grid-template-columns: minmax(260px, .95fr) minmax(0, 1.05fr) !important;
  }
  .vms-page--proposal .vms-principle__icon {
    display: none !important;
  }
}
@media (max-width: 650px) {
  .vms-page--proposal .vms-principle {
    grid-template-columns: 1fr !important;
    padding: 14px !important;
  }
  .vms-page--proposal .vms-principle figure,
  .vms-page--proposal .vms-principle figure img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
}

/* v2.6.0 — Proposta da Vivenda: substituição dos recortes antigos por
   fotografias limpas e enquadradas em 16:9. O arquivo de imagem já possui a
   mesma proporção do frame; portanto nenhum rosto, mão ou material pedagógico
   é cortado pela diagramação. */
.vms-page--proposal .vms-principle {
  grid-template-columns: minmax(360px, 1fr) minmax(360px, 1.05fr) 58px !important;
  align-items: center !important;
}
.vms-page--proposal .vms-principle > figure {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #f4efe5 !important;
}
.vms-page--proposal .vms-principle > figure > img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
@media (max-width: 900px) {
  .vms-page--proposal .vms-principle {
    grid-template-columns: minmax(300px, 1fr) minmax(0, 1fr) !important;
  }
}
@media (max-width: 650px) {
  .vms-page--proposal .vms-principle {
    grid-template-columns: 1fr !important;
  }
  .vms-page--proposal .vms-principle > figure {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
  }
}

/* v2.6.2 — o ícone de Autonomia usa a mesma coluna à direita dos demais
   princípios, garantindo alinhamento visual uniforme em desktop. */
