/* Ideia·App / Plataforma para construtoras — regras EXCLUSIVAS desta página.
   Os estilos comuns app.min.css e solucao.css não são alterados. */

/* Fotografia editorial do topo, atrás da demonstração real. */
.sol-page .sol-hero-visual.is-browser { isolation:isolate; }
.sol-page .obra-hero-photo {
  position:absolute; inset:4% -1% 15% -2%; margin:0; z-index:0;
  overflow:hidden; border-radius:27px;
  background:#1e2943; border:1px solid rgba(123,123,172,.22);
  box-shadow:0 28px 70px rgba(29,43,83,.16);
}
.sol-page .obra-hero-photo img { width:100%;height:100%;object-fit:cover;object-position:62% center; }
.sol-page .obra-hero-photo::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(10,17,37,.02),rgba(14,23,46,.22));
}
.sol-page .sol-hero-visual.is-browser .sol-hero-browser {
  position:relative; z-index:2; zoom:.77; transform:translate(9%,23%);
  box-shadow:0 24px 70px rgba(18,27,50,.35);
}
.sol-page .sol-hero-visual.is-browser .sol-float-a {left:-3%;bottom:8%;top:auto}
.sol-page .sol-hero-visual.is-browser .sol-float-b {right:-3%;top:10%}
.sol-page .sol-hero-visual.is-browser .sol-float-c {right:4%;bottom:6%;left:auto}
:root[data-theme="dark"] .sol-page .obra-hero-photo {border-color:rgba(172,158,255,.32);box-shadow:0 28px 75px rgba(0,0,0,.48)}
:root[data-theme="dark"] .sol-page .obra-hero-photo::after {background:linear-gradient(140deg,rgba(17,27,53,.19),rgba(9,14,29,.40))}

/* Galeria de contexto: três momentos reais do processo de orçamentação. */
.sol-page .obra-pratica .obra-photo-story {
  display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:15px;
  margin:-12px 0 26px;
}
.sol-page .obra-photo-story figure {
  position:relative; margin:0; overflow:hidden; min-width:0;
  height:210px; border-radius:20px;
  border:1px solid var(--border);background:var(--surface-2);
  box-shadow:0 12px 35px rgba(34,44,73,.08);
}
.sol-page .obra-photo-story img {width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.sol-page .obra-photo-story figure:hover img {transform:scale(1.045)}
.sol-page .obra-photo-story figure:nth-child(1) img {object-position:58% 45%}
.sol-page .obra-photo-story figure:nth-child(2) img {object-position:64% 40%}
.sol-page .obra-photo-story figure:nth-child(3) img {object-position:53% 35%}
.sol-page .obra-photo-story figure::after {
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
  background:linear-gradient(180deg,transparent 65%,rgba(6,11,32,.17));
}
:root[data-theme="dark"] .sol-page .obra-photo-story figure {box-shadow:0 15px 38px rgba(0,0,0,.22)}

/* A ação de abrir o ecrã usa apenas iconografia de linha. */
.sol-page .obra-expand {border-color:rgba(67,49,216,.36); color:var(--primary)}
.sol-page .obra-expand svg,
.sol-page .obra-screen-dialog button svg {width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sol-page .obra-expand:focus-visible,
.obra-screen-dialog button:focus-visible {outline:3px solid #907bff;outline-offset:3px}

/* Palco no computador: os sete passos avançam com a deslocação, sem alterar
   os textos nem a forma como solucao.js gera os ecrãs. */
@media (min-width:1100px) and (min-height:690px) and (prefers-reduced-motion:no-preference) {
  html.obra-stage-desktop .sol-page #como-funciona {
    height:calc(100svh + 1320px);min-height:0;padding:0;
    overflow:clip;scroll-margin-top:72px;
  }
  html.obra-stage-desktop .sol-page #como-funciona > .container {
    position:sticky;top:72px;height:calc(100svh - 72px);
    width:100%;max-width:1280px;padding-top:10px;padding-bottom:10px;
    display:flex;flex-direction:column;justify-content:center;gap:16px;
  }
  html.obra-stage-desktop .sol-page #como-funciona .section-head {
    flex:0 0 auto;margin:0 auto 0;max-width:930px;
  }
  html.obra-stage-desktop .sol-page #como-funciona .section-head .eyebrow {margin-bottom:5px}
  html.obra-stage-desktop .sol-page #como-funciona .section-head h2 {font-size:clamp(25px,2.7vw,38px);margin-bottom:7px}
  html.obra-stage-desktop .sol-page #como-funciona .section-head p {font-size:12.5px;line-height:1.4;margin:0}
  html.obra-stage-desktop .sol-page #como-funciona .sol-flow.is-browser {
    display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);
    align-items:center;flex:0 1 auto;gap:clamp(18px,3vw,45px);width:100%;max-width:1210px;
  }
  html.obra-stage-desktop .sol-page #como-funciona .sol-steps {min-width:0}
  html.obra-stage-desktop .sol-page #como-funciona .sol-steps li {margin:0 0 5px}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step {padding:8px 12px;min-height:0;gap:12px}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step-no {width:37px;height:37px;min-width:37px;font-size:13px}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step-copy small {font-size:9.8px}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step-copy strong {font-size:14px;line-height:1.32}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step-copy > span {font-size:11.8px;line-height:1.42}
  html.obra-stage-desktop .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span {max-height:115px}
  html.obra-stage-desktop .sol-page #como-funciona .sol-flow-visual {
    position:static;order:0;min-width:0;align-self:center;gap:12px;
  }
  html.obra-stage-desktop .sol-page #como-funciona .sol-flow-phone {
    zoom:1;width:min(100%,650px);height:clamp(280px,43svh,420px);
  }
  html.obra-stage-desktop .sol-page #como-funciona .sol-flow-nav {gap:14px}
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .w-table {font-size:11px}
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .s-screen {font-size:12px;padding:14px 16px}
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .w-table td,
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .w-table th {padding:8px 7px}
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .w-table th:nth-child(3),
  html.obra-stage-desktop .sol-page #como-funciona .demo-phone.is-browser .w-table td:nth-child(3) {display:table-cell}
}

/* Tablet: sem palco forçado, mas manter fotografia e leitura do monitor. */
@media (min-width:1000px) and (max-width:1099px) {
  .sol-page .sol-hero-visual.is-browser .sol-hero-browser {zoom:.80;transform:translateY(18%)}
  .sol-page .sol-hero-visual.is-browser {max-width:720px;margin:auto;width:100%}
  .sol-page .sol-flow.is-browser .sol-flow-phone {zoom:1;width:100%;max-width:650px}
  .sol-page .obra-photo-story figure {height:180px}
}

/* Telemóvel: a página não cresce. Fotografias aplicadas sem novos blocos
   verticais; ecrã em largura útil, tabelas em cartões legíveis e scroll interno. */
@media (max-width:999px) {
  .sol-page .sol-hero {position:relative;isolation:isolate;overflow:hidden;padding-bottom:32px}
  .sol-page .sol-hero::after {
    content:"";position:absolute;z-index:-1;pointer-events:none;
    top:76px;right:-90px;width:min(92%,420px);height:275px;
    background:linear-gradient(90deg,var(--bg) 4%,rgba(93,99,245,.05) 85%),url("img/orcamentacao.webp") center/cover no-repeat;
    opacity:.17;mask-image:linear-gradient(to bottom,#000 5%,transparent 95%);
  }
  :root[data-theme="dark"] .sol-page .sol-hero::after {opacity:.22}
  .sol-page .obra-photo-story {display:none!important}
  .sol-page .obra-pratica .sol-card:nth-child(1) {
    background-image:linear-gradient(110deg,var(--surface) 58%,transparent 110%),url("img/equipa-plantas.webp");
    background-size:cover;background-position:right center;
  }
  .sol-page .obra-pratica .sol-card:nth-child(4) {
    background-image:linear-gradient(110deg,var(--surface) 58%,transparent 110%),url("img/obra-no-terreno.webp");
    background-size:cover;background-position:right center;
  }
  .sol-page #como-funciona {padding-top:40px;padding-bottom:44px}
  .sol-page #como-funciona .section-head {margin-bottom:22px}
  .sol-page #como-funciona .section-head p {font-size:14px}
  .sol-page #como-funciona .sol-flow.is-browser {display:flex;flex-direction:column;gap:9px}
  .sol-page #como-funciona .sol-flow-visual {position:static;order:-1;width:100%;gap:8px}
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone {
    zoom:1!important;transform:none!important;box-sizing:border-box;
    width:100%;max-width:560px;height:255px;margin:0 auto;
    padding:31px 5px 5px;border-radius:14px;
  }
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone::before {top:6px;height:18px;font-size:9px}
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone::after {top:10px}
  .sol-page #como-funciona .demo-phone.is-browser .demo-screen {
    cursor:default;overscroll-behavior:contain;
  }
  .sol-page #como-funciona .demo-phone.is-browser .s-screen {
    height:100%;overflow-y:auto!important;overflow-x:hidden!important;
    padding:12px!important;gap:10px!important;
    font-size:12px!important;line-height:1.42;
    scroll-behavior:smooth;overscroll-behavior:contain;
  }
  .sol-page #como-funciona .demo-phone.is-browser .w-top {gap:8px;flex-wrap:wrap}
  .sol-page #como-funciona .demo-phone.is-browser .w-top b {font-size:14px}
  .sol-page #como-funciona .demo-phone.is-browser .w-top .w-btn {font-size:10px;padding:5px 7px}
  .sol-page #como-funciona .demo-phone.is-browser .w-table {
    display:block;width:100%;max-width:100%;border:0;background:transparent;
    border-radius:0;font-size:12px!important;
  }
  .sol-page #como-funciona .demo-phone.is-browser .w-table thead {display:none}
  .sol-page #como-funciona .demo-phone.is-browser .w-table tbody {display:grid;gap:8px}
  .sol-page #como-funciona .demo-phone.is-browser .w-table tr {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;
    padding:9px 10px;border:1px solid #e3e5ee;border-radius:11px;background:#fff;
  }
  .sol-page #como-funciona .demo-phone.is-browser .w-table tr.hl-row {background:#f3f5ff;border-color:#ced8ff}
  .sol-page #como-funciona .demo-phone.is-browser .w-table tr.warn-row {background:#fff7ed;border-color:#fed7aa}
  .sol-page #como-funciona .demo-phone.is-browser .w-table tr.tot {background:#f0f2f9}
  .sol-page #como-funciona .demo-phone.is-browser .w-table td,
  .sol-page #como-funciona .demo-phone.is-browser .w-table td:nth-child(3) {
    display:block!important;min-width:0;border:0;padding:0!important;
    font-size:11.8px!important;white-space:normal;overflow-wrap:anywhere;
    background:transparent;
  }
  .sol-page #como-funciona .demo-phone.is-browser .w-table td:first-child {grid-column:1/-1;font-weight:750;color:#252a39}
  .sol-page #como-funciona .demo-phone.is-browser .w-table td::before {
    content:attr(data-obra-label);display:block;margin-bottom:2px;
    color:#72738b;font-weight:650;font-size:9px;line-height:1.25;
    text-transform:uppercase;letter-spacing:.035em;
  }
  .sol-page #como-funciona .demo-phone.is-browser .w-table td:empty {display:none!important}
  .sol-page #como-funciona .demo-phone.is-browser .w-alert {padding:9px 10px;font-size:11px;line-height:1.4}
  .sol-page #como-funciona .demo-phone.is-browser .w-note {font-size:11.5px;line-height:1.45}
  .sol-page #como-funciona .demo-phone.is-browser .w-kpis {grid-template-columns:1fr 1fr;gap:7px}
  .sol-page #como-funciona .demo-phone.is-browser .w-kpis div {padding:9px}
  .sol-page #como-funciona .demo-phone.is-browser .w-kpis small {font-size:10px}
  .sol-page #como-funciona .demo-phone.is-browser .w-kpis b {font-size:17px}
  .sol-page #como-funciona .demo-phone.is-browser .w-list div {gap:3px;padding:9px}
  .sol-page #como-funciona .demo-phone.is-browser .w-list span {white-space:normal;font-size:11px}
  .sol-page #como-funciona .demo-phone.is-browser .w-chart {flex:none;min-height:150px}
  .sol-page #como-funciona .sol-flow-nav {gap:11px;flex-wrap:nowrap}
  .sol-page #como-funciona .sol-round {width:38px;height:38px}
  .sol-page #como-funciona .sol-step {padding:11px 13px}
  .sol-page #como-funciona .sol-step.is-current {min-height:136px}
  .sol-page #como-funciona .sol-step-copy > span {font-size:12.5px;line-height:1.45}
  .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span {max-height:none}
}
@media (max-width:360px) {
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone {height:240px}
  .sol-page #como-funciona .demo-phone.is-browser .s-screen {padding:9px!important}
}

/* Ecrã ampliado, aproveitando a mesma marcação HTML original. */
.obra-screen-dialog {
  position:fixed;inset:0;width:min(94vw,880px);max-width:880px;
  max-height:90dvh;margin:auto;padding:0;border:1px solid rgba(158,144,224,.38);
  border-radius:20px;background:#f7f8fc;color:#08133c;
  box-shadow:0 30px 100px rgba(4,9,22,.52);
}
.obra-screen-dialog::backdrop {background:rgba(9,14,26,.78);backdrop-filter:blur(5px)}
.obra-screen-dialog-card {display:flex;flex-direction:column;max-height:90dvh;overflow:hidden}
.obra-screen-dialog-toolbar {display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:48px;padding:6px 10px;background:#e8eaf2;border-bottom:1px solid #d6d8e5}
.obra-screen-dialog button {display:grid;place-items:center;border:1px solid #c9c9d7;background:#fff;color:#232c45;border-radius:11px;width:35px;height:35px;cursor:pointer}
.obra-screen-dialog-body {padding:16px;overflow:auto;overscroll-behavior:contain}
.obra-screen-dialog-body .s-screen {height:auto;display:flex;flex-direction:column;gap:15px;color:#171d2e;font-size:14px;line-height:1.5}
.obra-screen-dialog-body .w-table {font-size:13px;width:100%}
.obra-screen-dialog-body .w-table th,.obra-screen-dialog-body .w-table td {padding:9px 10px}
.obra-screen-dialog-body .w-table th:nth-child(3),.obra-screen-dialog-body .w-table td:nth-child(3) {display:table-cell}
.obra-screen-dialog-body .w-top b {font-size:18px}
.obra-screen-dialog-body .w-kpis b {font-size:20px}
.obra-screen-dialog-body .w-chart {height:200px;flex:none}
.obra-screen-dialog-body .w-list span {white-space:normal}
@media(max-width:600px){
  .obra-screen-dialog {width:calc(100vw - 18px);max-height:93dvh;border-radius:15px}
  .obra-screen-dialog-card {max-height:93dvh}
  .obra-screen-dialog-body {padding:12px}
  .obra-screen-dialog-body .s-screen {gap:12px;font-size:13px}
  .obra-screen-dialog-body .w-table {display:block;border:0;background:transparent}
  .obra-screen-dialog-body .w-table thead {display:none}
  .obra-screen-dialog-body .w-table tbody {display:grid;gap:10px}
  .obra-screen-dialog-body .w-table tr {display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:13px;border:1px solid #e0e2eb;background:#fff;border-radius:13px}
  .obra-screen-dialog-body .w-table td,.obra-screen-dialog-body .w-table td:nth-child(3) {display:block!important;padding:0!important;border:0;font-size:13px;background:transparent;overflow-wrap:anywhere}
  .obra-screen-dialog-body .w-table td:first-child {grid-column:1/-1;font-weight:700}
  .obra-screen-dialog-body .w-table td::before {content:attr(data-obra-label);display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#71748c;font-weight:650;margin-bottom:3px}
  .obra-screen-dialog-body .w-table td:empty {display:none!important}
  .obra-screen-dialog-body .w-kpis {grid-template-columns:repeat(2,1fr)}
  .obra-screen-dialog-body .w-list div {flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
 .sol-page .obra-photo-story img {transition:none}
 .sol-page .obra-photo-story figure:hover img {transform:none}
}

/* ===== Ajustes de 05/11 (cada secção num ecrã; scroll como nas Festas) ===== */
/* PC */
@media (min-width:1000px) {
  /* Como funciona: passos em lista à esquerda, ecrã sempre à direita */
  .sol-page #como-funciona > .container { max-width: 1240px; }
  .sol-page #como-funciona .section-head { margin-bottom: 18px; }
  .sol-page #como-funciona .sol-flow.is-browser { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 36px; align-items: center; max-width: 1240px; }
  .sol-page #como-funciona .sol-flow.is-browser .sol-flow-visual { position: static; order: 0; gap: 10px; }
  .sol-page #como-funciona .sol-steps { display: flex; flex-direction: column; gap: 5px; }
  .sol-page #como-funciona .sol-steps li { margin: 0; }
  .sol-page #como-funciona .sol-step { padding: 8px 12px; min-height: 0; gap: 12px; align-items: center; }
  .sol-page #como-funciona .sol-step-no { width: 28px; height: 28px; min-width: 28px; font-size: 11.5px; }
  .sol-page #como-funciona .sol-step-copy { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 1px; }
  .sol-page #como-funciona .sol-step-copy strong { order: -1; font-size: 14.5px; line-height: 1.25; }
  .sol-page #como-funciona .sol-step-copy small { font-size: 9.5px; }
  .sol-page #como-funciona .sol-step-copy > span { display: none; }
  .sol-page #como-funciona .sol-step.is-current { padding-block: 11px; }
  .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span { display: block; flex-basis: 100%; max-height: none; opacity: 1; font-size: 13px; line-height: 1.45; margin-top: 4px; }
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { zoom: .92; width: 100%; max-width: 680px; }

  /* O que inclui: listas em duas colunas */
  .sol-page .sol-two .sol-checks { columns: 2; column-gap: 26px; }
  .sol-page .sol-two .sol-checks li { break-inside: avoid; }
  /* Perguntas em duas colunas */
  .sol-page #perguntas .sol-narrow { max-width: 1180px; }
  .sol-page #perguntas .faq { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; align-items: start; }
  /* Para quem é: botões iguais e alinhados */
  .sol-page .sol-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 1140px; margin-inline: auto; align-content: flex-start; }
  .sol-page .sol-tags > span { flex: 0 0 calc((100% - 20px) / 3); box-sizing: border-box; display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 11px 16px; white-space: nowrap; font-size: 14px; }
}
/* PC com janela baixa (portátil com o browser aberto) */
@media (min-width:1000px) and (max-height: 820px) {
  .sol-page main > .section { padding: 40px 0; }
  .sol-page main > .section .section-head { margin-bottom: 20px; }
  .sol-page main > .section .section-head .eyebrow { margin-bottom: 8px; }
  .sol-page main > .section .section-head h2 { font-size: clamp(30px, 3vw, 42px); line-height: 1.1; margin-bottom: 10px; }
  .sol-page main > .section .section-head p { font-size: 15px; line-height: 1.5; margin-bottom: 0; }
  /* Topo: texto mais compacto; a composição da direita encolhe por inteiro (sem cortar a fotografia) */
  .sol-page .sol-hero { padding-top: 92px; padding-bottom: 24px; }
  .sol-page .sol-hero h1 { font-size: clamp(38px, 3.8vw, 54px); margin-bottom: 12px; }
  .sol-page .sol-hero .sol-crumbs { margin-bottom: 8px; }
  .sol-page .sol-hero .sol-pill { margin-bottom: 12px; }
  .sol-page .sol-hero .sol-lead { font-size: 15px; line-height: 1.5; margin-bottom: 16px; }
  .sol-page .sol-hero .sol-actions { margin-bottom: 14px; }
  /* Cartões com o ícone ao lado do título */
  .sol-page .sol-grid-4 .sol-card, .sol-page .obra-pratica .sol-card { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; align-items: start; padding: 16px 18px; }
  .sol-page .sol-grid-4 .sol-card .sol-ico, .sol-page .obra-pratica .sol-card .sol-ico { grid-row: 1 / span 2; width: 34px; height: 34px; margin: 0; }
  .sol-page .sol-grid-4 .sol-card h3, .sol-page .obra-pratica .sol-card h3 { margin: 2px 0 6px; font-size: 15.5px; }
  .sol-page .sol-grid-4 .sol-card p, .sol-page .obra-pratica .sol-card p { font-size: 13.5px; line-height: 1.5; margin: 0; }
  /* Na prática: título à esquerda e fotografias à direita, cartões por baixo */
  .sol-page .obra-pratica > .container { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); column-gap: 32px; align-items: center; }
  .sol-page .obra-pratica .section-head { grid-column: 1; grid-row: 1; text-align: left; margin: 0 0 20px; }
  .sol-page .obra-pratica .obra-photo-story { grid-column: 2; grid-row: 1; margin: 0 0 20px; gap: 12px; }
  .sol-page .obra-pratica .sol-grid-3 { grid-column: 1 / -1; grid-row: 2; gap: 12px; }
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { zoom: .8; }
}
@media (min-width:1000px) and (max-height: 700px) {
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { zoom: .74; }
  .sol-page main > #como-funciona { padding: 30px 0; }
}
/* Portáteis pequenos (961-1180px) */
@media (min-width:1000px) and (max-width: 1180px) {
  .sol-page #como-funciona .sol-flow.is-browser { grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 24px; }
  .sol-page .sol-grid-5 { grid-template-columns: repeat(5, 1fr); gap: 10px; }
  .sol-page .sol-grid-5 .sol-role { padding: 14px; }
  .sol-page .sol-grid-5 .sol-role p { font-size: 12.5px; line-height: 1.45; }
  .sol-page .sol-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width:1000px) and (max-height: 820px) {
  .sol-page .sol-two { gap: 18px; }
  .sol-page .sol-two > * { padding: 20px 22px; }
  .sol-page .sol-two h3 { margin-bottom: 10px; }
  .sol-page .sol-two .sol-checks li { font-size: 13.5px; line-height: 1.4; margin-bottom: 7px; padding-block: 0; }
}
@media (min-width:1000px) and (max-height: 700px) {
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { zoom: .68; }
  .sol-page #como-funciona .section-head { margin-bottom: 12px; }
  .sol-page #como-funciona .section-head p { display: none; }
}
/* Na prática em todos os PCs: título à esquerda, fotografias (no tamanho original) à direita */
@media (min-width:1000px) {
  .sol-page .obra-pratica > .container { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); column-gap: 32px; align-items: center; }
  .sol-page .obra-pratica .section-head { grid-column: 1; grid-row: 1; text-align: left; margin: 0 0 20px; }
  .sol-page .obra-pratica .obra-photo-story { grid-column: 2; grid-row: 1; margin: 0 0 20px; }
  .sol-page .obra-pratica .sol-grid-3 { grid-column: 1 / -1; grid-row: 2; }
}
@media (min-width:1000px) and (max-height: 820px) {
  /* O topo tinha 44px vazios por baixo da composição; a fotografia fica igual */
  .sol-page .sol-hero { padding-top: 84px; }
  .sol-page .sol-hero-visual.is-browser { min-height: 560px; }
  .sol-page .obra-pratica .sol-grid-3 { gap: 10px; }
  .sol-page .obra-pratica .sol-card { padding: 13px 16px; }
  .sol-page .obra-pratica .section-head h2 { font-size: clamp(28px, 2.7vw, 38px); }
  .sol-page .sol-two .sol-checks li { margin-bottom: 5px; }
  .sol-page .sol-two > * { padding: 18px 20px; }
}
@media (min-width:1000px) and (max-width: 1180px) {
  .sol-page .sol-hero h1 { font-size: 38px; }
  .sol-page .sol-hero .sol-lead { font-size: 14.5px; }
  .sol-page .obra-pratica .sol-card p { font-size: 13px; line-height: 1.45; }
}
@media (min-width:1000px) {
  .sol-page .obra-pratica .section-head h2 { font-size: clamp(30px, 3vw, 50px); line-height: 1.1; }
}
@media (min-width:1000px) and (max-width: 1180px) and (max-height: 820px) {
  .sol-page .sol-hero h1 { font-size: 34px; }
  .sol-page .sol-hero { padding-top: 78px; }
}
@media (min-width:1000px) and (max-width: 1180px) and (max-height: 820px) {
  .sol-page .sol-hero .sol-actions { display: flex; flex-wrap: nowrap; gap: 10px; }
  .sol-page .sol-hero .sol-actions .btn { padding: 12px 16px; font-size: 14px; white-space: nowrap; }
  .sol-page .sol-hero .sol-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .sol-page .sol-hero .sol-facts li { font-size: 12.5px; line-height: 1.35; }
}

/* ===== Telemóvel: cada secção num ecrã (como nas Festas) ===== */
@media (max-width:999px) {
  .sol-page main > .section { padding: 26px 0; }
  .sol-page main > .section .section-head { margin-bottom: 14px; }
  .sol-page main > .section .section-head .eyebrow { margin-bottom: 6px; }
  .sol-page main > .section .section-head h2 { font-size: 25px; line-height: 1.15; margin-bottom: 8px; }
  .sol-page main > .section .section-head p { font-size: 14px; line-height: 1.45; margin-bottom: 0; }

  /* Topo (o texto; a fotografia de fundo fica igual) */
  .sol-page .sol-hero { padding-top: 84px; padding-bottom: 22px; }
  .sol-page .sol-hero .sol-crumbs { display: none; }
  .sol-page .sol-hero .sol-pill { margin-bottom: 10px; font-size: 10px; }
  .sol-page .sol-hero h1 { font-size: 34px; line-height: 1.08; margin-bottom: 10px; }
  .sol-page .sol-hero .sol-lead { font-size: 14.5px; line-height: 1.5; margin-bottom: 14px; }
  .sol-page .sol-hero .sol-actions { gap: 8px; margin-bottom: 12px; }
  .sol-page .sol-hero .sol-actions .btn { padding-block: 11px; }
  .sol-page .sol-hero .sol-facts { margin: 0; }

  /* Cartões: ícone ao lado do título */
  .sol-page .sol-card { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; align-items: start; padding: 16px; }
  .sol-page .sol-card .sol-ico { grid-row: 1 / span 3; width: 34px; height: 34px; margin: 0; }
  .sol-page .sol-card h3 { margin: 0 0 6px; font-size: 15.5px; line-height: 1.25; }
  .sol-page .sol-card p { font-size: 13.5px; line-height: 1.5; margin: 0; }

  /* Como funciona: o ecrã em cima e só o passo atual por baixo */
  .sol-page #como-funciona { padding-top: 26px; padding-bottom: 26px; }
  .sol-page #como-funciona .section-head { margin-bottom: 12px; }
  .sol-page #como-funciona .section-head p { font-size: 13.5px; line-height: 1.4; }
  .sol-page #como-funciona .sol-steps { display: block; max-height: none !important; overflow: visible; padding: 0; margin: 0; }
  .sol-page #como-funciona .sol-steps > li:not(.is-on) { display: none !important; }
  .sol-page #como-funciona .sol-steps > li.is-on { display: block !important; width: 100%; }
  .sol-page #como-funciona .sol-step.is-current { min-height: 0; }

  /* Um ecrã para cada pessoa e Regra de ouro: quadrados a deslizar */
  .sol-page .sol-grid-5, .sol-page .sol-band-list { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; }
  .sol-page .sol-grid-5::-webkit-scrollbar, .sol-page .sol-band-list::-webkit-scrollbar { display: none; }
  .sol-page .sol-grid-5 > .sol-role,
  .sol-page .sol-band-list > li {
    flex: 0 0 min(66%, 250px); aspect-ratio: 1; height: auto; scroll-snap-align: start; box-sizing: border-box;
    display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0; padding: 18px;
  }
  .sol-page .sol-grid-5 > .sol-role .sol-ico, .sol-page .sol-band-list > li > i { width: 34px; height: 34px; margin: 0 0 12px; }
  .sol-page .sol-grid-5 > .sol-role h3 { font-size: 15.5px; margin: 0 0 4px; }
  .sol-page .sol-grid-5 > .sol-role small { margin-bottom: 6px; }
  .sol-page .sol-grid-5 > .sol-role p, .sol-page .sol-band-list > li p { font-size: 13.5px; line-height: 1.5; margin: 0; }
  .sol-page .sol-band-copy { margin-bottom: 14px; }
  .sol-page .sol-band-copy h2 { font-size: 25px; line-height: 1.15; margin-bottom: 8px; }
  .sol-page .sol-band-copy p { font-size: 14px; line-height: 1.45; margin: 0; }

  /* O que inclui: as duas listas lado a lado, a deslizar */
  .sol-page .sol-two { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .sol-page .sol-two::-webkit-scrollbar { display: none; }
  .sol-page .sol-two > * { flex: 0 0 88%; scroll-snap-align: start; box-sizing: border-box; padding: 16px 18px; }
  .sol-page .sol-two .sol-checks { columns: 1 !important; }
  .sol-page .sol-two h3 { font-size: 15.5px; line-height: 1.25; }
  .sol-page .sol-two .sol-checks li { font-size: 13.5px; line-height: 1.4; margin-bottom: 6px; }

  /* Para quem é: botões iguais, dois por linha */
  .sol-page .sol-tags { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
  .sol-page .sol-tags > span { flex: 0 0 calc((100% - 8px) / 2); box-sizing: border-box; display: flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 10px; font-size: 12.5px; line-height: 1.25; white-space: normal; }
  .sol-page .sol-tip { margin-top: 14px; font-size: 13.5px; }

  /* Perguntas */
  .sol-page #perguntas .pro-faq-item { padding-inline: 14px; }
  .sol-page #perguntas .faq summary { padding: 8px 0; font-size: 13px; line-height: 1.3; gap: 8px; }
  .sol-page #perguntas .faq-index { display: none; }
  .sol-page #perguntas .faq-mark { width: 24px; height: 24px; flex: none; }
}
.sol-page #perguntas .faq-more { display: none; margin: 10px 0 0; font-size: 12.5px; color: var(--muted); text-align: center; }
@media (max-width:999px) and (max-height: 760px) {
  /* Perguntas: duas páginas de 3, a deslizar para o lado */
  .sol-page #perguntas .faq { display: grid; grid-auto-flow: column; grid-template-rows: repeat(3, auto); grid-auto-columns: 100%; column-gap: 16px; row-gap: 6px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; align-items: start; }
  .sol-page #perguntas .faq::-webkit-scrollbar { display: none; }
  .sol-page #perguntas .faq > .pro-faq-item:nth-child(3n+1) { scroll-snap-align: start; }
  .sol-page #perguntas .faq-more { display: block; }
}
@media (max-width:999px) and (max-height: 700px) {
  .sol-page .sol-hero .sol-actions .btn-ghost { display: none; }
  .sol-page .sol-hero .sol-pill { font-size: 9.5px; padding-block: 6px; letter-spacing: .02em; }
  .sol-page .sol-hero .sol-lead { font-size: 14px; line-height: 1.45; }
  .sol-page .sol-hero .sol-facts b { font-size: 20px; }
}
@media (max-width: 340px) {
  .sol-page .sol-hero h1 { font-size: 30px; }
  .sol-page .sol-hero .sol-lead { font-size: 13.5px; }
  .sol-page .sol-card p { font-size: 13px; line-height: 1.45; }
  .sol-page .sol-card { padding: 14px; }
  .sol-page main > .section .section-head h2 { font-size: 23px; }
}

/* Rodapé no PC: três colunas alinhadas (marca, contactos, redes) e o © por baixo */
@media (min-width:1000px) {
  .sol-page .sol-footer .footer-premium-inner { display: block; max-width: 1180px; }
  .sol-page .sol-footer .footer-premium-copy {
    display: grid; grid-template-columns: 1.4fr 1fr 1fr; column-gap: 48px; row-gap: 14px; align-items: center;
    grid-template-areas: "logo meta social" "text meta social" "copy copy copy";
  }
  .sol-page .sol-footer .logo { grid-area: logo; align-self: end; }
  .sol-page .sol-footer .footer-premium-text { grid-area: text; align-self: start; margin: 0; max-width: 440px; }
  .sol-page .sol-footer .footer-premium-meta { grid-area: meta; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; justify-self: center; }
  .sol-page .sol-footer .footer-premium-meta .footer-sep { display: none; }
  .sol-page .sol-footer .footer-social { grid-area: social; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; justify-self: end; }
  .sol-page .sol-footer .muted { grid-area: copy; margin: 18px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); text-align: center; }
}
/* Rodapé no telemóvel: centrado e uniforme */
@media (max-width:999px) {
  .sol-page .sol-footer { padding: 40px 0 28px; }
  .sol-page .sol-footer .footer-premium-copy { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0; }
  .sol-page .sol-footer .logo { margin: 0 auto 14px; }
  .sol-page .sol-footer .footer-premium-text { max-width: 340px; margin: 0 auto 22px; font-size: 14px; line-height: 1.55; }
  .sol-page .sol-footer .footer-premium-meta { flex-direction: column; align-items: center; gap: 12px; width: 100%; max-width: 340px; margin: 0 auto 16px; }
  .sol-page .sol-footer .footer-premium-meta .footer-sep { display: none; }
  .sol-page .sol-footer .footer-premium-cta { width: 100%; justify-content: center; }
  .sol-page .sol-footer .footer-social { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; max-width: 340px; margin: 0 auto; }
  .sol-page .sol-footer .footer-social-link { justify-content: center; }
  .sol-page .sol-footer .muted { width: 100%; max-width: 340px; margin: 22px auto 0; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.12); text-align: center; font-size: 13px; }
}
/* O que inclui: três cartões (a primeira versão foi dividida em dois) */
@media (min-width:1000px) {
  .sol-page .sol-two { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .sol-page .sol-two .sol-checks { columns: 1; }
}
/* O que inclui: o «Começa pelo vosso Excel» passou a ser um cartão próprio */
.sol-page .sol-gear-card { display: flex; align-items: center; }
.sol-page .sol-gear-card .sol-gear { margin: 0; }
@media (min-width:1000px) {
  .sol-page .sol-two { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width:1000px) and (max-width: 1180px) {
  .sol-page .sol-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width:999px) {
  .sol-page .sol-two { align-items: flex-start; }
}
/* Como funciona em telemóveis com pouca altura útil */
@media (max-width:999px) and (max-height: 700px) {
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { height: 200px; }
  .sol-page #como-funciona .sol-flow.is-browser { gap: 6px; }
  .sol-page #como-funciona .sol-flow-visual { gap: 6px; }
  .sol-page #como-funciona .sol-round { width: 34px; height: 34px; }
  .sol-page #como-funciona .sol-step, .sol-page #como-funciona .sol-step.is-current { padding: 10px 12px; gap: 10px; }
  .sol-page #como-funciona .sol-step-copy > span { font-size: 12.5px; line-height: 1.4; }
  .sol-page #como-funciona .section-head h2 { font-size: 23px; }
  .sol-page #como-funciona .section-head p { font-size: 13px; }
}
@media (max-width:999px) and (max-height: 600px) {
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { height: 170px; }
  .sol-page #como-funciona { padding-top: 18px; padding-bottom: 18px; }
}
@media (max-width:999px) {
  /* Número do passo ao lado do texto */
  .sol-page #como-funciona .sol-step, .sol-page #como-funciona .sol-step.is-current { flex-direction: row; align-items: flex-start; }
  .sol-page #como-funciona .sol-step-icon { display: none; }
  .sol-page #como-funciona .sol-step-no { position: static; flex: none; width: 26px; height: 26px; min-width: 26px; font-size: 11px; display: grid; place-items: center; }
}
@media (max-width:999px) and (max-height: 700px) {
  .sol-page #como-funciona .section-head { margin-bottom: 10px; }
  .sol-page .sol-two > * { padding: 14px 16px; }
  .sol-page .sol-two h3 { margin-bottom: 8px; }
  .sol-page .sol-two .sol-checks li { font-size: 13px; line-height: 1.38; margin-bottom: 5px; }
}
@media (max-width:999px) and (max-height: 600px) {
  .sol-page #como-funciona .section-head h2 { font-size: 21px; margin-bottom: 6px; }
  .sol-page #como-funciona .section-head p { font-size: 12.5px; line-height: 1.38; }
  .sol-page #como-funciona .section-head .eyebrow { margin-bottom: 4px; }
  .sol-page #como-funciona .sol-step, .sol-page #como-funciona .sol-step.is-current { padding: 8px 10px; }
  .sol-page #como-funciona .sol-step-copy > span { font-size: 12px; line-height: 1.38; }
  .sol-page #como-funciona .sol-step-copy strong { font-size: 14px; }
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { height: 160px; }
}
@media (max-width: 340px) {
  .sol-page .sol-two .sol-checks li { font-size: 12.5px; }
  .sol-page .cta-banner { padding: 24px 18px; }
  .sol-page .cta-banner h2 { font-size: 24px; }
  .sol-page .cta-banner p { font-size: 13.5px; }
}
@media (max-width: 340px) and (max-height: 600px) {
  .sol-page #como-funciona .sol-flow-phone,
  .sol-page #como-funciona .demo-phone.is-browser.sol-flow-phone { height: 145px; }
  .sol-page #como-funciona .section-head h2 { font-size: 20px; }
  .sol-page #como-funciona .section-head { margin-bottom: 6px; }
}
@media (max-width:999px) { .sol-page .sol-tags > span { min-height: 46px; } }
