/* Formulário Criança (página 63770)
 * WooCommerce + PPOM continuam a ser o motor funcional.
 * Esta folha adapta o DOM real confirmado no browser: #ppom-box-7.ppom-wrapper.
 */
body.page-formulario { background:#2b180e; }

/* O widget Elementor deixa de fingir que é o papel: o papel pertence ao PPOM real. */
body.page-formulario .cpn-ppom-crianca {
  position:relative;
  width:min(calc(100% - 96px),1400px) !important;
  margin:-50px auto 18px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  z-index:4;
}
body.page-formulario .cpn-ppom-crianca::before,
body.page-formulario .cpn-ppom-crianca::after { content:none !important; }

/* Limpa a montra WooCommerce e preserva o formulário PPOM. */
body.page-formulario .cpn-ppom-crianca .woocommerce-product-gallery,
body.page-formulario .cpn-ppom-crianca .product_title,
body.page-formulario .cpn-ppom-crianca .woocommerce-product-details__short-description,
body.page-formulario .cpn-ppom-crianca .product_meta,
body.page-formulario .cpn-ppom-crianca .summary > .price,
body.page-formulario .cpn-ppom-crianca form.cart > .quantity,
body.page-formulario .cpn-ppom-crianca form.cart > .single_add_to_cart_button,
body.page-formulario .cpn-ppom-crianca .woocommerce-tabs,
body.page-formulario .cpn-ppom-crianca .related { display:none !important; }
body.page-formulario .cpn-ppom-crianca div.product,
body.page-formulario .cpn-ppom-crianca div.product div.summary {
  float:none !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* Shell aplicado ao contentor PPOM REAL confirmado no Inspetor. */
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
  position:relative;
  box-sizing:border-box;
  width:100%;
  margin:0 !important;
  padding:54px 54px 42px !important;
  overflow:hidden;
  border:1px solid rgba(156,105,45,.35);
  border-radius:34px 34px 26px 26px;
  background-color:#f4e5c9 !important;
  background-image:url("../img/web/section-story-paper-full.webp") !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-repeat:repeat-y !important;
  box-shadow:0 24px 65px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.55);
  color:#2f231c;
}
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::before,
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::after {
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
  width:170px;
  height:170px;
  background:url("../img/icons/snowflake.svg") center/contain no-repeat;
  filter:sepia(1) saturate(.8);
}
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::before {
  top:20px; right:24px; transform:rotate(14deg); opacity:.08;
}
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::after {
  left:18px; bottom:70px; transform:rotate(-8deg); opacity:.06;
}
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper > * {
  position:relative;
  z-index:1;
}

/* Primeira aproximação visual dos controlos, sem alterar campos/validação PPOM. */
body.page-formulario #ppom-box-7 .form-control,
body.page-formulario #ppom-box-7 input[type="text"],
body.page-formulario #ppom-box-7 input[type="date"],
body.page-formulario #ppom-box-7 input[type="number"],
body.page-formulario #ppom-box-7 select,
body.page-formulario #ppom-box-7 textarea {
  min-height:48px;
  border:1px solid rgba(145,101,58,.25) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.72) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65) !important;
  color:#2f231c;
}
body.page-formulario #ppom-box-7 textarea { min-height:96px; }
body.page-formulario #ppom-box-7 .form-control-label,
body.page-formulario #ppom-box-7 label {
  color:#3a2a20;
}

@media (max-width:900px) {
  body.page-formulario .cpn-ppom-crianca { width:min(calc(100% - 28px),1400px)!important; }
  body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
    padding:30px 20px 24px !important;
    border-radius:24px;
  }
}
@media (max-width:560px) {
  body.page-formulario .cpn-ppom-crianca { width:calc(100% - 20px)!important; margin:-4px auto 12px!important; }
  body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
    padding:26px 14px 22px !important;
    border-radius:20px;
  }
}

/* v1.99.11 — acabamento global do layout antes de alterar os campos PPOM */
body.page-formulario,
body.page-formulario #page,
body.page-formulario .site,
body.page-formulario .site-main,
body.page-formulario .elementor-location-single,
body.page-formulario .elementor-page {
  background:#2b180e !important;
}

/* O shell do PPOM sobrepõe ligeiramente o hero, como no original Ricco. */
body.page-formulario .cpn-ppom-crianca {
  margin-top:-50px !important;
  margin-bottom:0 !important;
}

/* Barra de progresso visual inserida por JS; não interfere com a validação PPOM. */
body.page-formulario #ppom-box-7 .cpn-form-progress {
  margin:0 0 36px;
  padding:15px 18px;
  border:1px solid rgba(157,102,44,.23);
  border-radius:14px;
  background:rgba(255,250,240,.56);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
body.page-formulario #ppom-box-7 .cpn-form-progress__top {
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-bottom:10px; font-size:.72rem; letter-spacing:.04em; color:#6e5845;
}
body.page-formulario #ppom-box-7 .cpn-form-progress__top strong { color:#9d1d20; }
body.page-formulario #ppom-box-7 .cpn-form-progress__track {
  height:6px; border-radius:20px; background:rgba(123,84,44,.15); overflow:hidden;
}
body.page-formulario #ppom-box-7 .cpn-form-progress__track span {
  display:block; width:14.28%; height:100%; border-radius:inherit;
  background:linear-gradient(90deg,#97171c,#c58b35); transition:width .35s ease;
}

/* Aspeto dos campos PPOM inspirado diretamente no formulario.css original. */
body.page-formulario #ppom-box-7 .ppom-field-wrapper { margin-bottom:20px !important; }
body.page-formulario #ppom-box-7 .form-control-label,
body.page-formulario #ppom-box-7 label { font-size:.94rem; line-height:1.25; color:#33271f; }
body.page-formulario #ppom-box-7 .form-control {
  min-height:52px !important; padding:0 15px !important;
  border:1px solid rgba(132,94,58,.28) !important; border-radius:8px !important;
  background:rgba(255,255,255,.64) !important; color:#241b16 !important;
  box-shadow:inset 0 1px 2px rgba(85,49,24,.045) !important;
}
body.page-formulario #ppom-box-7 textarea.form-control { min-height:168px !important; padding:15px !important; }
body.page-formulario #ppom-box-7 .form-control:focus {
  border-color:#b38239 !important; background:#fffdf8 !important;
  box-shadow:0 0 0 3px rgba(190,143,64,.14),0 5px 18px rgba(80,48,25,.06) !important;
}

/* O botão REAL do WooCommerce volta a aparecer e recebe o visual do original. */
body.page-formulario .cpn-ppom-crianca form.cart > .single_add_to_cart_button {
  display:flex !important; align-items:center; justify-content:center; gap:10px;
  width:min(100%,430px); min-height:58px; margin:28px auto 10px !important;
  padding:14px 28px !important; border:0 !important; border-radius:999px !important;
  background:linear-gradient(180deg,#c8111e,#a20510) !important;
  color:#fffaf0 !important; font-weight:800 !important; letter-spacing:.04em !important;
  text-transform:uppercase; box-shadow:0 10px 24px rgba(129,9,16,.22) !important;
}
body.page-formulario .cpn-ppom-crianca form.cart > .single_add_to_cart_button::before {
  content:"✈"; font-size:1.15em;
}

/* Fecho ilustrado da página, usando o asset original do frontend Ricco. */
body.page-formulario .cpn-ppom-crianca::after {
  content:"" !important; display:block !important; position:relative !important;
  width:100vw; height:auto; aspect-ratio:1920/430;
  margin:0 0 0 calc(50% - 50vw) !important;
  background:url("../img/web/kits-footer-desktop.webp") center bottom/cover no-repeat !important;
  pointer-events:none; z-index:0;
}

@media (max-width:820px) {
  body.page-formulario .cpn-ppom-crianca { margin-top:0 !important; }
}
@media (max-width:640px) {
  body.page-formulario .cpn-ppom-crianca::after {
    aspect-ratio:750/500;
    background-image:url("../img/web/kits-footer-mobile.webp") !important;
  }
}


/* v1.99.12 — uma única folha contínua: PPOM + uploads + botão real */
body.page-formulario .cpn-ppom-crianca form.cart {
  position:relative !important;
  box-sizing:border-box !important;
  width:100% !important;
  margin:0 !important;
  padding:54px 54px 42px !important;
  overflow:hidden !important;
  border:1px solid rgba(156,105,45,.35) !important;
  border-radius:34px 34px 26px 26px !important;
  background-color:#f4e5c9 !important;
  background-image:url("../img/web/section-story-paper-full.webp") !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-repeat:repeat-y !important;
  box-shadow:0 24px 65px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.55) !important;
  color:#2f231c !important;
}

/* O PPOM deixa de ser uma segunda folha; passa a viver dentro da folha do form.cart. */
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::before,
body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper::after {
  content:none !important;
}

/* Elementos finais do WooCommerce/PPOM permanecem dentro do mesmo papel. */
body.page-formulario .cpn-ppom-crianca form.cart > * {
  position:relative;
  z-index:1;
}
body.page-formulario .cpn-ppom-crianca form.cart > .single_add_to_cart_button {
  margin:34px auto 0 !important;
}

@media (max-width:900px) {
  body.page-formulario .cpn-ppom-crianca form.cart {
    padding:30px 20px 26px !important;
    border-radius:24px !important;
  }
}
@media (max-width:560px) {
  body.page-formulario .cpn-ppom-crianca form.cart {
    padding:26px 14px 22px !important;
    border-radius:20px !important;
  }
}
\n\n/* v1.99.13 — acabamento inferior: nota informativa + botão real centrado */
body.page-formulario .cpn-ppom-crianca form.cart > .cpn-form-data-note {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  width:100% !important;
  margin:26px auto 10px !important;
  color:#6e5845 !important;
  font-size:.78rem !important;
  line-height:1.35 !important;
  text-align:center !important;
  clear:both !important;
}
body.page-formulario .cpn-ppom-crianca .cpn-form-data-note__icon {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  border-radius:50% !important;
  background:#2f8b68 !important;
  color:#fff !important;
  font-size:11px !important;
  font-weight:700 !important;
}
body.page-formulario .cpn-ppom-crianca form.cart > .single_add_to_cart_button {
  float:none !important;
  clear:both !important;
  position:relative !important;
  left:auto !important;
  right:auto !important;
  display:flex !important;
  width:min(100%,430px) !important;
  margin:10px auto 0 !important;
}

/* v1.99.14 — alinhamento final da nota e respiro antes da imagem inferior */
body.page-formulario .cpn-ppom-crianca form.cart > .cpn-form-data-note {
  display:grid !important;
  grid-template-columns:18px auto !important;
  justify-content:center !important;
  align-items:center !important;
  column-gap:8px !important;
  width:100% !important;
  margin:26px auto 10px !important;
  text-align:center !important;
}
body.page-formulario .cpn-ppom-crianca form.cart > .cpn-form-data-note > span:last-child {
  text-align:center !important;
}
body.page-formulario .cpn-ppom-crianca::after {
  margin:30px 0 0 calc(50% - 50vw) !important;
}


/* v1.99.15 — a ilustração final encosta visualmente ao footer, sem alterar o footer global */
body.page-formulario .cpn-ppom-crianca {
  margin-bottom:0 !important;
}
body.page-formulario .cpn-ppom-crianca::after {
  display:block !important;
  margin-top:30px !important;
  margin-right:0 !important;
  margin-bottom:-1px !important;
  margin-left:calc(50% - 50vw) !important;
}
/* Remove apenas nesta página o espaço estrutural depois do widget que contém o formulário. */
body.page-formulario .elementor-element:has(> .elementor-widget-container > .cpn-ppom-crianca),
body.page-formulario .elementor-element:has(.cpn-ppom-crianca) {
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
/* O rodapé começa imediatamente onde termina a composição final. */
body.page-formulario .elementor-location-footer,
body.page-formulario footer,
body.page-formulario .site-footer {
  margin-top:0 !important;
}


/* v1.99.16 — remove a faixa estrutural entre a composição final e o footer.
 * O fecho ilustrado continua 30px abaixo da folha; apenas o espaço DEPOIS da imagem é eliminado.
 */
body.page-formulario .elementor-section:has(.cpn-ppom-crianca),
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) > .elementor-container,
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) .elementor-column,
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) .elementor-column-wrap,
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) .elementor-widget-wrap,
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) .elementor-widget-shortcode,
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) .elementor-widget-shortcode > .elementor-widget-container {
  margin-bottom:0 !important;
  padding-bottom:0 !important;
  min-height:0 !important;
}
body.page-formulario .elementor-section:has(.cpn-ppom-crianca) {
  height:auto !important;
}
body.page-formulario .cpn-ppom-crianca::after {
  margin-bottom:-2px !important;
  vertical-align:bottom !important;
}
body.page-formulario .elementor-location-footer,
body.page-formulario footer,
body.page-formulario .site-footer {
  margin-top:0 !important;
  padding-top:0 !important;
}
\n\n/* v1.99.17 — topo do formulário: barra + primeiro cabeçalho de secção, sem alterar os campos PPOM */
body.page-formulario #ppom-box-7 .cpn-form-progress {
  margin:0 0 34px !important;
}
body.page-formulario #ppom-box-7 .cpn-step-head,
body.page-formulario #ppom-box-8 .cpn-step-head,
body.page-formulario #ppom-box-9 .cpn-step-head {
  display:grid !important;
  grid-template-columns:58px minmax(0,1fr) 30px !important;
  align-items:center !important;
  gap:16px !important;
  width:100% !important;
  margin:0 0 26px !important;
  padding:0 0 22px !important;
  border-bottom:1px solid rgba(157,102,44,.28) !important;
}
body.page-formulario #ppom-box-7 .cpn-step-number,
body.page-formulario #ppom-box-8 .cpn-step-number,
body.page-formulario #ppom-box-9 .cpn-step-number {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:58px !important;
  height:58px !important;
  border-radius:50% !important;
  background:#a3131a !important;
  color:#fff7e8 !important;
  font-family:var(--font-display) !important;
  font-size:2rem !important;
  font-weight:400 !important;
  line-height:1 !important;
  box-shadow:0 5px 12px rgba(116,13,18,.18) !important;
}

body.page-formulario #ppom-box-7 .cpn-step-copy h2,
body.page-formulario #ppom-box-8 .cpn-step-copy h2,
body.page-formulario #ppom-box-9 .cpn-step-copy h2 {
  margin:0 0 4px !important;
  color:#9d1d20 !important;
  font-family:var(--font-display) !important;
  font-size:clamp(1.8rem,2.6vw,2.55rem) !important;
  font-weight:400 !important;
  line-height:1 !important;
  letter-spacing:-.025em !important;
}
body.page-formulario #ppom-box-7 .cpn-step-copy p,
body.page-formulario #ppom-box-8 .cpn-step-copy p,
body.page-formulario #ppom-box-9 .cpn-step-copy p {
  margin:0 !important;
  color:#6e5845 !important;
  font-size:.9rem !important;
  line-height:1.4 !important;
}
body.page-formulario #ppom-box-7 .cpn-step-star,
body.page-formulario #ppom-box-8 .cpn-step-star,
body.page-formulario #ppom-box-9 .cpn-step-star {
  color:#b8863f !important;
  font-size:1.35rem !important;
  text-align:right !important;
  opacity:.9 !important;
}
@media (max-width:640px) {
  body.page-formulario #ppom-box-7 .cpn-step-head {
    grid-template-columns:50px minmax(0,1fr) 22px !important;
    gap:12px !important;
    margin-bottom:20px !important;
    padding-bottom:18px !important;
  }
  body.page-formulario #ppom-box-7 .cpn-step-number {
    width:50px !important;
    height:50px !important;
    font-size:1.75rem !important;
  }
  body.page-formulario #ppom-box-7 .cpn-step-copy h2 { font-size:1.8rem !important; }
  body.page-formulario #ppom-box-7 .cpn-step-copy p { font-size:.8rem !important; }
}

/* v1.99.24 — mobile: o bloco de texto do hero volta ao fluxo normal.
 * A fotografia continua no topo e o postal sobrepõe a transição, mas o papel
 * com título/texto passa a contar para a altura real do hero. Assim o PPOM só
 * começa DEPOIS do hero e deixa de passar por cima do papel/título. */
@media (max-width:640px) {
  body.page-formulario .form-hero {
    position:relative !important;
    display:block !important;
    box-sizing:border-box !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding-top:325px !important;
    overflow:visible !important;
    background:#f2dfbd !important;
  }

  body.page-formulario .form-hero__bg,
  body.page-formulario .form-hero__shade {
    position:absolute !important;
    top:0 !important;
    right:0 !important;
    bottom:auto !important;
    left:0 !important;
    width:100% !important;
    height:325px !important;
  }

  body.page-formulario .form-hero__inner {
    position:relative !important;
    display:block !important;
    box-sizing:border-box !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.page-formulario .form-hero__copy {
    position:relative !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    display:block !important;
    box-sizing:border-box !important;
    width:100% !important;
    min-height:0 !important;
    margin:0 !important;
    padding:38px 20px 52px !important;
    text-align:center !important;
    background:#f4e5c9 url("../img/web/section-story-paper-full.webp") center/cover no-repeat !important;
  }

  body.page-formulario .form-hero__seal-wrap {
    position:absolute !important;
    top:-40px !important;
    right:10px !important;
    bottom:auto !important;
    left:auto !important;
    width:122px !important;
    z-index:7 !important;
  }
}



/* v1.99.27 — mobile consolidado.
 * Substitui as tentativas acumuladas 1.99.18–1.99.26 por uma única regra.
 * O widget do formulário sai da largura intrínseca do Elementor e usa o viewport;
 * toda a cadeia WooCommerce/PPOM herda 100% dessa largura. */
@media (max-width:640px) {
  body.page-formulario .elementor-element.elementor-widget-shortcode.cpn-ppom-crianca {
    display:block !important;
    box-sizing:border-box !important;
    position:relative !important;
    inset:auto !important;
    transform:none !important;
    width:calc(100vw - 24px) !important;
    max-width:calc(100vw - 24px) !important;
    min-width:calc(100vw - 24px) !important;
    margin-top:-44px !important;
    margin-right:0 !important;
    margin-bottom:0 !important;
    margin-left:calc(50% - 50vw + 12px) !important;
    flex:none !important;
    flex-basis:auto !important;
    align-self:auto !important;
  }

  body.page-formulario .cpn-ppom-crianca > .elementor-widget-container,
  body.page-formulario .cpn-ppom-crianca .elementor-shortcode,
  body.page-formulario .cpn-ppom-crianca .woocommerce,
  body.page-formulario .cpn-ppom-crianca .single-product,
  body.page-formulario .cpn-ppom-crianca #product-24,
  body.page-formulario .cpn-ppom-crianca #product-24 > .summary.entry-summary,
  body.page-formulario .cpn-ppom-crianca form.cart,
  body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
    display:block !important;
    box-sizing:border-box !important;
    float:none !important;
    clear:both !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-right:0 !important;
    margin-left:0 !important;
  }

  body.page-formulario .cpn-ppom-crianca form.cart {
    padding:26px 14px 22px !important;
  }

  body.page-formulario #ppom-box-7 .row,
  body.page-formulario #ppom-box-7 [class*="col-"] {
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
}


/* v1.99.28 — mobile: o shell visual está no form.cart.
 * O #ppom-box-7 ainda conservava o padding antigo de desktop (54px + 54px),
 * retirando 108px de largura útil aos campos. No mobile fica sem padding próprio;
 * a margem interna passa a ser controlada apenas pelo form.cart. */
@media (max-width:640px) {
  body.page-formulario .cpn-ppom-crianca #ppom-box-7.ppom-wrapper {
    padding:0 !important;
  }

  body.page-formulario .cpn-ppom-crianca form.cart {
    padding:26px 14px 22px !important;
  }
}


/* v1.99.29 — mobile: remove o padding lateral de 54px do próprio widget Elementor.
 * O espaçamento interior da folha fica exclusivamente a cargo do form.cart (14px). */
@media (max-width:640px) {
  body.page-formulario .elementor-element.elementor-widget-shortcode.cpn-ppom-crianca {
    padding:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* v1.99.31 — acabamento estrutural dos 7 passos, grelha desktop e papel mais legível. */
body.page-formulario .cpn-ppom-crianca form.cart {
  background-color:#f8ecd6 !important;
  background-image:linear-gradient(rgba(255,250,240,.58),rgba(255,250,240,.58)),url("../img/web/section-story-paper-full.webp") !important;
}
body.page-formulario #ppom-box-7 .row {
  display:flex !important;
  flex-wrap:wrap !important;
  margin-left:-8px !important;
  margin-right:-8px !important;
}
body.page-formulario #ppom-box-7 .ppom-field-wrapper {
  box-sizing:border-box !important;
  padding-left:8px !important;
  padding-right:8px !important;
  margin-bottom:16px !important;
}
@media (min-width:641px) {
  body.page-formulario #ppom-box-7 .ppom-field-wrapper.col-md-6 {
    flex:0 0 50% !important;
    width:50% !important;
    max-width:50% !important;
  }
  body.page-formulario #ppom-box-7 .ppom-field-wrapper.col-md-12 {
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
  }
}
body.page-formulario #ppom-box-7 .form-control,
body.page-formulario #ppom-box-7 select.form-control {
  min-height:46px !important;
  height:46px !important;
}
body.page-formulario #ppom-box-7 textarea.form-control {
  min-height:128px !important;
  height:auto !important;
}
body.page-formulario #ppom-box-7 .cpn-step-head:not([data-step="1"]),
body.page-formulario #ppom-box-8 .cpn-step-head:not([data-step="1"]),
body.page-formulario #ppom-box-9 .cpn-step-head:not([data-step="1"]) {
  clear:both !important;
  flex:0 0 100% !important;
  width:100% !important;
  margin-top:30px !important;
}
body.page-formulario #ppom-box-7 .cpn-form-progress {
  background:rgba(255,255,255,.58) !important;
}
@media (max-width:640px) {
  body.page-formulario #ppom-box-7 .row { margin-left:0 !important; margin-right:0 !important; }
  body.page-formulario #ppom-box-7 .ppom-field-wrapper { padding-left:0 !important; padding-right:0 !important; }
}

/* v1.99.32 — primeira secção em duas colunas, ajudas de escolha e uploads mais legíveis. */
@media (min-width:641px) {
  body.page-formulario #ppom-box-7 .cpn-first-section-grid {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    column-gap:22px !important;
    row-gap:0 !important;
    width:100% !important;
    clear:both !important;
  }
  body.page-formulario #ppom-box-7 .cpn-first-section-grid > .ppom-field-wrapper {
    width:100% !important;
    max-width:100% !important;
    flex:none !important;
  }
}
body.page-formulario #ppom-box-7 .cpn-choice-help {
  display:block;
  margin:4px 0 10px;
  color:#745947;
  font-size:13px;
  line-height:1.35;
  font-style:italic;
}
body.page-formulario .cpn-ppom-crianca input[type="file"]::file-selector-button,
body.page-formulario .cpn-ppom-crianca .fileinput-button,
body.page-formulario .cpn-ppom-crianca .btn-file,
body.page-formulario .cpn-ppom-crianca .ppom-upload-button,
body.page-formulario .cpn-ppom-crianca button[class*="upload"],
body.page-formulario .cpn-ppom-crianca label[class*="upload"] {
  color:#4a2c20 !important;
}


/* v1.99.33 — cabeçalho da secção 1 em linha própria, sem barra de progresso, e hover dos uploads. */
body.page-formulario #ppom-box-7 .cpn-form-progress {
  display:none !important;
}
body.page-formulario #ppom-box-7 .cpn-step-head[data-step="1"] {
  display:flex !important;
  width:100% !important;
  max-width:100% !important;
  clear:both !important;
  margin-bottom:18px !important;
}
@media (min-width:641px) {
  body.page-formulario #ppom-box-7 .cpn-step-head[data-step="1"] .cpn-step-copy h2 {
    white-space:nowrap !important;
  }
}
body.page-formulario .cpn-ppom-crianca input[type="file"]::file-selector-button,
body.page-formulario .cpn-ppom-crianca .fileinput-button,
body.page-formulario .cpn-ppom-crianca .btn-file,
body.page-formulario .cpn-ppom-crianca .ppom-upload-button,
body.page-formulario .cpn-ppom-crianca button[class*="upload"],
body.page-formulario .cpn-ppom-crianca label[class*="upload"] {
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease !important;
}
body.page-formulario .cpn-ppom-crianca input[type="file"]::file-selector-button:hover,
body.page-formulario .cpn-ppom-crianca .fileinput-button:hover,
body.page-formulario .cpn-ppom-crianca .btn-file:hover,
body.page-formulario .cpn-ppom-crianca .ppom-upload-button:hover,
body.page-formulario .cpn-ppom-crianca button[class*="upload"]:hover,
body.page-formulario .cpn-ppom-crianca label[class*="upload"]:hover {
  background:#9d1d20 !important;
  border-color:#9d1d20 !important;
  color:#fff !important;
  transform:translateY(-1px);
}


/* v1.99.34 — estrela alinhada, placeholders e consentimentos finais. */
body.page-formulario #ppom-box-7 .cpn-step-head[data-step="1"] .cpn-step-star {
  margin-left:auto !important;
  justify-self:end !important;
  align-self:center !important;
}
body.page-formulario .cpn-consents {
  clear:both;
  width:100%;
  margin:24px 0 18px;
  padding:18px 20px;
  border-top:1px solid rgba(157,102,44,.28);
  border-bottom:1px solid rgba(157,102,44,.28);
}
body.page-formulario .cpn-consent-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 12px;
  color:#4a2c20;
  font-size:14px;
  line-height:1.45;
  cursor:pointer;
}
body.page-formulario .cpn-consent-row:last-child { margin-bottom:0; }
body.page-formulario .cpn-consent-row input[type="checkbox"] {
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:2px 0 0;
  accent-color:#9d1d20;
}
body.page-formulario .cpn-consent-row a {
  color:#9d1d20;
  text-decoration:underline;
  text-underline-offset:2px;
}
body.page-formulario .cpn-consent-row strong { color:#9d1d20; }
@media (max-width:640px) {
  body.page-formulario .cpn-consents { padding:16px 0; }
  body.page-formulario .cpn-consent-row { font-size:13px; }
}

/* Formulário Bebé — grelha dos campos */
body.page-formulario #ppom-box-8 .form-row {
  display:flex !important;
  flex-wrap:wrap !important;
  margin-left:-8px !important;
  margin-right:-8px !important;
}

/* Formulário Bebé — colunas no desktop */
@media (min-width:641px) {

  body.page-formulario #ppom-box-8 .ppom-field-wrapper.col-md-4 {
    flex:0 0 33.333333% !important;
    width:33.333333% !important;
    max-width:33.333333% !important;
  }

  body.page-formulario #ppom-box-8 .ppom-field-wrapper.col-md-6 {
    flex:0 0 50% !important;
    width:50% !important;
    max-width:50% !important;
  }

  body.page-formulario #ppom-box-8 .ppom-field-wrapper.col-md-8 {
    flex:0 0 66.666667% !important;
    width:66.666667% !important;
    max-width:66.666667% !important;
  }

  body.page-formulario #ppom-box-8 .ppom-field-wrapper.col-md-12 {
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
  }

}
	/* Formulário Bebé — campos a 100% no mobile */
@media (max-width:640px) {

  body.page-formulario #ppom-box-8 .ppom-field-wrapper {
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}	
/* =========================================================
   FORMULÁRIO ADULTO — PPOM 9
   Grelha base
   ========================================================= */

body.page-formulario #ppom-box-9 .form-row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-left: -8px !important;
    margin-right: -8px !important;
}

body.page-formulario #ppom-box-9 .ppom-field-wrapper {
    box-sizing: border-box !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    margin-bottom: 16px !important;
}

@media (min-width: 641px) {

    body.page-formulario #ppom-box-9 .ppom-field-wrapper.col-md-6 {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
    }

    body.page-formulario #ppom-box-9 .ppom-field-wrapper.col-md-12 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 640px) {

    body.page-formulario #ppom-box-9 .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.page-formulario #ppom-box-9 .ppom-field-wrapper {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Formulário Bebé — cabeçalhos das secções a toda a largura */
body.page-formulario #ppom-box-8 .form-row > .cpn-step-head {
    flex: 0 0 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
}