/* Ideia·App: páginas de solução (ex.: /festas-sem-filas/).
   Usa os tokens e componentes de app.min.css; aqui só o que é próprio destas páginas. */

.sol-page { background: var(--bg); }
.sol-page .icon-svg { width: 1em; height: 1em; flex: none; }

/* Topo */
.sol-hero { position: relative; overflow: hidden; padding: 132px 0 84px; }
.sol-hero-glow {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 55% 60% at 85% 35%, rgba(93, 99, 245, .16), transparent 70%),
    radial-gradient(ellipse 40% 50% at 10% 90%, rgba(6, 219, 242, .12), transparent 70%);
}
.sol-hero-grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.sol-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--muted); margin-bottom: 22px; }
.sol-crumbs a { color: var(--muted); text-decoration: none; }
.sol-crumbs a:hover { color: var(--primary); }
.sol-crumbs [aria-current] { color: var(--text); font-weight: 600; }
.sol-pill {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; margin-bottom: 22px;
  border-radius: 999px; background: #7549ec13; border: 1px solid rgba(123, 94, 251, .12);
  color: #3d3594; font-size: 11px; font-weight: 800; letter-spacing: .055em;
}
.sol-pill i { display: inline-flex; font-size: 15px; color: var(--primary); }
.sol-hero h1 { font-size: clamp(2.7rem, 4.6vw, 4.6rem); line-height: 1.04; letter-spacing: -.06em; margin: 0 0 22px; }
.sol-lead { font-size: 1.06rem; line-height: 1.7; color: var(--muted); max-width: 580px; margin: 0 0 28px; }
.sol-lead strong { color: var(--text); }
.sol-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 34px; }
.sol-facts { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0; margin: 0; }
.sol-facts li {
  display: flex; flex-direction: column; gap: 2px; min-width: 132px; padding: 14px 18px;
  border-radius: 16px; background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 10px 30px rgba(45, 40, 104, .06);
}
.sol-facts b { font-family: var(--font-head); font-size: 1.5rem; letter-spacing: -.03em; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sol-facts span { font-size: 12.5px; color: var(--muted); }

.sol-hero-visual { position: relative; display: flex; justify-content: center; min-height: 600px; align-items: center; }
.sol-hero-visual:before {
  content: ""; position: absolute; width: 440px; height: 440px; border-radius: 50%;
  background: radial-gradient(circle, rgba(93, 99, 245, .22), rgba(6, 219, 242, .08) 55%, transparent 70%);
}
.sol-hero-phone { transform: rotate(-3deg); z-index: 1; }
.sol-hero-visual .sol-float { z-index: 20; }
.sol-float {
  position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  border-radius: 16px; background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 18px 45px rgba(26, 40, 80, .14); animation: solFloat 6s ease-in-out infinite;
}
.sol-float > i { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; font-size: 18px; background: #ecf0ff; color: #4331d8; }
.sol-float b { display: block; font-size: 14px; color: var(--text); }
.sol-float small { font-size: 12px; color: var(--muted); }
.sol-float-a { left: 0; top: 42%; }
.sol-float-a > i { background: #e7f8f1; color: #0f9b6c; }
.sol-float-b { right: -6px; top: 20%; animation-delay: -2s; }
.sol-float-b > i { background: #fff1e6; color: #e46c12; }
.sol-float-c { right: 2%; bottom: 14%; animation-delay: -4s; }
@keyframes solFloat { 50% { transform: translateY(-8px); } }

/* Secções */
.sol-section .section-head { text-align: center; margin-inline: auto; }
.sol-grid { display: grid; gap: 18px; }
.sol-grid-4 { grid-template-columns: repeat(4, 1fr); }
.sol-grid-3 { grid-template-columns: repeat(3, 1fr); }
.sol-grid-5 { grid-template-columns: repeat(5, 1fr); }
.sol-card, .sol-role {
  padding: 26px 24px; border-radius: 20px; background: var(--surface); border: 1px solid var(--border);
  box-shadow: 0 14px 40px rgba(45, 40, 104, .06); transition: transform .3s var(--pro-ease, ease), box-shadow .3s;
}
.sol-card:hover, .sol-role:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(45, 40, 104, .11); }
.sol-card h3, .sol-role h3 { font-size: 1.08rem; margin: 16px 0 8px; }
.sol-card p, .sol-role p { font-size: 14px; line-height: 1.6; color: var(--muted); margin: 0; }
.sol-role small { display: block; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--primary); margin-bottom: 8px; }
.sol-role h3 { margin-bottom: 4px; }
.sol-ico {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; font-size: 21px;
  background: linear-gradient(135deg, #ecf0ff, #e6f8fc); color: #4331d8;
}

/* Como funciona */
.sol-flow { display: grid; grid-template-columns: 1fr 340px; gap: 64px; align-items: start; max-width: 1060px; margin: 0 auto; }
.sol-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.sol-step {
  width: 100%; display: flex; gap: 16px; align-items: flex-start; text-align: left; cursor: pointer;
  padding: 16px 18px; border-radius: 18px; border: 1px solid transparent; background: transparent;
  color: var(--text); font: inherit; transition: background .25s, border-color .25s, box-shadow .25s;
}
.sol-step:hover { background: var(--surface); border-color: var(--border); }
.sol-step.is-current { background: var(--surface); border-color: rgba(93, 99, 245, .35); box-shadow: 0 14px 40px rgba(45, 40, 104, .1); }
.sol-step-no {
  flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px;
  font-family: var(--font-head); font-weight: 700; font-size: 14px; color: var(--muted);
  background: var(--surface-2); transition: background .25s, color .25s;
}
.sol-step.is-current .sol-step-no { background: linear-gradient(115deg, #8529da, #4331d8); color: #fff; }
.sol-step-copy { display: flex; flex-direction: column; gap: 3px; }
.sol-step-copy small { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--primary); }
.sol-step-copy strong { font-family: var(--font-head); font-size: 1.05rem; letter-spacing: -.02em; }
.sol-step-copy > span { font-size: 14px; line-height: 1.55; color: var(--muted); max-height: 0; overflow: hidden; opacity: 0; transition: max-height .4s ease, opacity .3s; }
.sol-step.is-current .sol-step-copy > span { max-height: 120px; opacity: 1; }
.sol-flow-visual { position: sticky; top: 100px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.sol-flow-phone { cursor: pointer; }
.sol-flow-nav { display: flex; align-items: center; gap: 16px; font-family: var(--font-head); font-weight: 700; font-size: 14px; color: var(--muted); }
.sol-round {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; cursor: pointer;
  background: var(--surface); border: 1px solid var(--border); color: var(--text); font-size: 18px;
}
.sol-round:hover { border-color: var(--primary); color: var(--primary); }

/* Ecrãs extra do telemóvel */
.sol-page .s-item > span .icon-svg { width: 19px; height: 19px; }
.sol-page .s-cart .icon-svg { width: 17px; height: 17px; margin-right: 4px; vertical-align: -3px; }
.s-ticket.sol-late { border-color: #fecaca; background: #fef2f2; }
.s-ticket.sol-late i { background: #dc2626; }
.s-ticket.sol-warn { border-color: #fed7aa; background: #fff7ed; }
.s-ticket.sol-warn i { background: #ea580c; }
.sol-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sol-kpis div { padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px solid #e6ebf5; }
.sol-kpis small { display: block; font-size: 11px; color: #5f6886; }
.sol-kpis b { font-family: var(--font-head); font-size: 18px; color: #08133c; }
.sol-kpis b.bad { color: #dc2626; }

/* Regra de ouro */
.sol-band { padding: 90px 0; background: linear-gradient(135deg, #12192e, #142450 55%, #0d2a45); color: #fff; }
.sol-band-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; }
.sol-band .eyebrow { color: #a99bff; }
.sol-band h2 { color: #fff; font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.1; margin: 0 0 16px; }
.sol-band p { color: #c9c6e8; margin: 0; max-width: 440px; }
.sol-band-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sol-band-list li { display: flex; gap: 14px; padding: 20px; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.sol-band-list li > i { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; font-size: 19px; background: rgba(93, 99, 245, .25); color: #d1daff; }
.sol-band-list b { display: block; font-size: 15px; margin-bottom: 4px; }
.sol-band-list span { font-size: 13.5px; line-height: 1.55; color: #c9c6e8; }

/* O que inclui */
.sol-two { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 1080px; margin: 0 auto; }
.sol-list-card { padding: 32px; border-radius: 22px; background: var(--surface); border: 1px solid var(--border); box-shadow: 0 14px 40px rgba(45, 40, 104, .06); }
.sol-list-card.is-soft { background: linear-gradient(160deg, #f3f5ff, #f0fafd); }
.sol-list-card h3 { font-size: 1.2rem; margin: 0 0 18px; }
.sol-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sol-checks li { position: relative; padding-left: 32px; font-size: 14.5px; line-height: 1.55; }
.sol-checks li:before {
  content: ""; position: absolute; left: 0; top: 1px; width: 21px; height: 21px; border-radius: 7px;
  background: #e7f8f1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f9b6c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.sol-checks.is-plus li:before {
  background: #e8edff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234331d8' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.sol-gear { margin-top: 26px; padding-top: 22px; border-top: 1px dashed rgba(67, 49, 216, .25); }
.sol-gear h4 { font-size: 1rem; margin: 0 0 8px; }
.sol-gear p { font-size: 14px; line-height: 1.6; color: var(--muted); margin: 0; }

/* Para quem */
.sol-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; max-width: 900px; margin: 0 auto; }
.sol-tags span {
  display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--border); font-weight: 600; font-size: 14.5px;
}
.sol-tags i { display: inline-flex; font-size: 17px; color: var(--primary); }
.sol-tip { text-align: center; max-width: 620px; margin: 30px auto 0; color: var(--muted); font-size: 14.5px; }

.sol-narrow { max-width: 860px; }

/* Entrada suave */
.sol-anim .sol-card, .sol-anim .sol-role, .sol-anim .sol-list-card, .sol-anim .sol-band-list li, .sol-anim .sol-tags span {
  opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s var(--pro-ease, ease);
}
.sol-anim .is-in { opacity: 1 !important; transform: none !important; }

/* Tema escuro */
:root[data-theme=dark] .sol-pill { background: rgba(93, 99, 245, .16); color: #ccd6ff; }
:root[data-theme=dark] .sol-ico, :root[data-theme=dark] .sol-float > i { background: rgba(93, 99, 245, .2); color: #c7bbff; }
:root[data-theme=dark] .sol-list-card.is-soft { background: linear-gradient(160deg, #1f2945, #1b2a3d); }
:root[data-theme=dark] .sol-facts li, :root[data-theme=dark] .sol-card, :root[data-theme=dark] .sol-role, :root[data-theme=dark] .sol-list-card { box-shadow: none; }

/* Tablet */
@media (max-width: 1100px) {
  .sol-grid-5 { grid-template-columns: repeat(3, 1fr); }
  .sol-grid-4, .sol-grid-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:999px) {
  .sol-hero-grid, .sol-band-inner, .sol-two { grid-template-columns: 1fr; }
  .sol-hero-visual { min-height: 560px; }
  .sol-flow { grid-template-columns: 1fr; gap: 30px; }
  .sol-flow-visual { position: static; order: -1; }
}

/* Telemóvel */
@media (max-width:999px) {
  .sol-hero { padding: 104px 0 50px; }
  .sol-hero h1 { font-size: clamp(2.4rem, 11vw, 3.3rem); }
  .sol-lead { font-size: 15px; }
  .sol-actions .btn { flex: 1 1 auto; justify-content: center; }
  .sol-facts { gap: 8px; }
  .sol-facts li { min-width: 0; flex: 1 1 0; padding: 10px 12px; }
  .sol-facts b { font-size: 1.2rem; }
  .sol-facts span { font-size: 11px; line-height: 1.35; }
  .sol-hero-visual { min-height: 0; padding: 10px 0 0; }
  .sol-hero-visual:before { width: 300px; height: 300px; }
  .sol-hero-phone { zoom: .78; }
  .sol-float { padding: 9px 12px; gap: 9px; }
  .sol-float > i { width: 30px; height: 30px; font-size: 15px; }
  .sol-float b { font-size: 12.5px; }
  .sol-float small { font-size: 11px; }
  .sol-float-a { left: 0; top: 8%; }
  .sol-float-b { right: 0; top: 52%; }
  .sol-float-c { display: none; }

  /* Cartões em carrossel em vez de uma coluna comprida */
  .sol-grid-4, .sol-grid-5, .sol-grid-3 {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px;
    margin-inline: -16px; padding: 4px 16px 14px; scrollbar-width: none;
  }
  .sol-grid-4::-webkit-scrollbar, .sol-grid-5::-webkit-scrollbar, .sol-grid-3::-webkit-scrollbar { display: none; }
  .sol-grid-4 > *, .sol-grid-5 > *, .sol-grid-3 > * { flex: 0 0 76%; scroll-snap-align: start; }
  .sol-card, .sol-role { padding: 20px; }

  .sol-flow-phone { zoom: .7; }
  .sol-step { padding: 12px 14px; }
  .sol-step:not(.is-current) .sol-step-copy strong { font-size: .95rem; }

  .sol-band { padding: 60px 0; }
  .sol-band-inner { gap: 28px; }
  .sol-band-list { grid-template-columns: 1fr 1fr; gap: 10px; }
  .sol-band-list li { flex-direction: column; gap: 10px; padding: 14px; }
  .sol-band-list span { font-size: 12.5px; }

  .sol-list-card { padding: 22px; }
  .sol-tags { gap: 8px; }
  .sol-tags span { padding: 9px 14px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .sol-float { animation: none; }
}

/* Perguntas: o "+" já vem no .faq-mark */
.sol-page .faq summary:after { display: none; }
/* Rodapé sem a galeria da página inicial */
.sol-page .sol-footer .footer-premium-inner { grid-template-columns: 1fr; }
/* No telemóvel o telemóvel do topo repetia o de "Como funciona": fica só um. */
@media (max-width:999px) {
  .sol-hero-visual { display: none; }
  .sol-hero { padding-bottom: 36px; }
}
@media (max-width:999px) {
  /* Como funciona: telemóvel, setas e só o passo atual */
  .sol-flow { gap: 14px; }
  .sol-steps li:not(.is-on) { display: none; }
  .sol-step, .sol-step:hover { cursor: default; }
  .sol-step.is-current { min-height: 150px; }
  /* O que inclui: as duas listas lado a lado, a deslizar */
  .sol-two {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px;
    margin-inline: -16px; padding: 4px 16px 14px; scrollbar-width: none;
  }
  .sol-two::-webkit-scrollbar { display: none; }
  .sol-two > * { flex: 0 0 86%; scroll-snap-align: start; }
  .sol-checks { gap: 9px; }
  .sol-checks li { font-size: 13.5px; }
}


/* V2 · fotografia editorial — arraial, grelha e pedido NFC.
   As fotografias são recursos locais, sem scripts/estilos externos. */
.sol-hero-photo {
  position:absolute; inset:38px 3% 48px 1%; overflow:hidden; border-radius:32px;
  transform:rotate(2deg); background:var(--surface-2);
  box-shadow:0 35px 80px rgba(23,38,79,.2); border:1px solid var(--border);
}
.sol-hero-photo::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(105deg,rgba(12,21,45,.25),rgba(12,21,45,.24) 68%,rgba(12,21,45,.48));
}
.sol-hero-photo img {display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.sol-hero-visual::before {z-index:0;}
.sol-hero-visual .sol-hero-phone {position:relative;z-index:2;filter:drop-shadow(0 20px 22px rgba(10,17,36,.28));}
.sol-hero-visual .sol-float {z-index:3;}
.sol-pratica-gallery {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:-2px 0 28px;}
.sol-pratica-gallery figure {
  margin:0;aspect-ratio:1.62;overflow:hidden;border-radius:20px;
  border:1px solid var(--border);box-shadow:0 18px 40px rgba(45,40,104,.09);
  background:var(--surface-2);
}
.sol-pratica-gallery img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .sol-pratica-gallery figure:hover img {transform:scale(1.045);}
}
:root[data-theme=dark] .sol-hero-photo {border-color:rgba(205,190,255,.22);box-shadow:0 35px 80px rgba(0,0,0,.35);}
:root[data-theme=dark] .sol-pratica-gallery figure {border-color:rgba(205,190,255,.15);box-shadow:0 15px 40px rgba(0,0,0,.18);}

/* Palco desktop, mesma técnica de sticky + scroll natural usada em stage-scroll.js. */
#como-funciona {scroll-margin-top:72px;}
@media (min-width:1000px) and (min-height:680px) and (prefers-reduced-motion:no-preference){
  .sol-page #como-funciona.is-sol-staged {
    height:calc(7 * 100svh);min-height:0;padding:0;overflow:clip;
    --sol-stage-progress:0;
  }
  .sol-page #como-funciona.is-sol-staged > .container {
    position:sticky;top:72px;height:calc(100svh - 72px);min-height:0;
    display:flex;flex-direction:column;justify-content:center;padding-top:12px;padding-bottom:14px;
  }
  .sol-page #como-funciona.is-sol-staged .section-head {
    flex:0 0 auto;max-width:100%;margin:0 auto 8px;
  }
  .sol-page #como-funciona.is-sol-staged .section-head .eyebrow {margin-bottom:3px;font-size:11px;}
  .sol-page #como-funciona.is-sol-staged .section-head h2 {font-size:clamp(24px,2.5vw,36px);line-height:1.1;margin-bottom:4px;}
  .sol-page #como-funciona.is-sol-staged .section-head p {font-size:12px;line-height:1.4;max-width:750px;margin:0 auto;}
  .sol-page #como-funciona.is-sol-staged .sol-flow {
    width:100%;flex:1 1 auto;min-height:0;max-width:1080px;
    grid-template-columns:minmax(0,1fr) 330px;gap:clamp(18px,3vw,48px);align-items:center;
  }
  .sol-page #como-funciona.is-sol-staged .sol-steps {gap:4px;align-content:center;min-height:0;}
  .sol-page #como-funciona.is-sol-staged .sol-step {padding:8px 11px;gap:12px;border-radius:13px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-no {width:32px;height:32px;font-size:12px;border-radius:9px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy small {font-size:9px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy strong {font-size:clamp(13px,1.13vw,16px);line-height:1.2;}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy > span {font-size:11.5px;line-height:1.35;}
  .sol-page #como-funciona.is-sol-staged .sol-flow-visual {position:static;height:100%;min-height:0;justify-content:center;gap:8px;}
  .sol-page #como-funciona.is-sol-staged .sol-flow-phone {zoom:.72;}
  .sol-page #como-funciona.is-sol-staged > .container::after {
    content:"";flex:0 0 3px;display:block;margin:7px 0 0;border-radius:5px;
    background:linear-gradient(90deg,#8529da,#1164ec) left center / calc(var(--sol-stage-progress,0) * 100%) 100% no-repeat,
               rgba(115,89,188,.14);
  }
}
/* Em portáteis baixos o telemóvel e as sete fases continuam dentro do palco. */
@media (min-width:1000px) and (min-height:680px) and (max-height:780px) and (prefers-reduced-motion:no-preference){
  .sol-page #como-funciona.is-sol-staged .sol-flow-phone {zoom:.62;}
  .sol-page #como-funciona.is-sol-staged .sol-step {padding:5px 9px;}
  .sol-page #como-funciona.is-sol-staged .sol-steps {gap:2px;}
  .sol-page #como-funciona.is-sol-staged .section-head p {font-size:11px;}
}

/* Telemóvel: imagens dentro de zonas que já ocupavam espaço, altura intacta. */
@media (max-width:999px){
  .sol-pratica-gallery {display:none;}
  .sol-pratica-cards .sol-card {position:relative;isolation:isolate;}
  .sol-pratica-cards .sol-card:nth-child(-n+3)::before {display:none;
    content:"";position:absolute;top:12px;right:12px;width:94px;height:64px;
    border-radius:11px;background-position:center;background-size:cover;
    box-shadow:0 5px 15px rgba(15,22,40,.13);border:1px solid var(--border);
  }
  /* Cenário discreto de arraial, por trás do topo: não cria outra secção. */
  .sol-page .sol-hero::before {
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
      linear-gradient(180deg,var(--bg) 1%,rgba(248,250,255,.83) 35%,rgba(248,250,255,.87) 65%,var(--bg) 100%),
      url('/img/pro/demo-2.webp') center 32% / cover no-repeat;
    opacity:.55;
  }
  :root[data-theme=dark] .sol-page .sol-hero::before {
    background:
      linear-gradient(180deg,var(--bg) 1%,rgba(10,21,51,.74) 35%,rgba(10,21,51,.82) 65%,var(--bg) 100%),
      url('/img/pro/demo-2.webp') center 32% / cover no-repeat;
    opacity:.5;
  }
  .sol-page .sol-hero-grid {z-index:1;}
  .sol-page #como-funciona.is-sol-staged > .container::after {
    content:"";display:block;height:3px;margin:8px 0 0;border-radius:5px;
    background:linear-gradient(90deg,#8529da,#1164ec) left center / calc(var(--sol-stage-progress,0) * 100%) 100% no-repeat,
               rgba(115,89,188,.14);
  }
}
@media (prefers-reduced-motion:reduce) {
  .sol-pratica-gallery img {transition:none;}
  .sol-page #como-funciona.is-sol-staged {height:auto;}
}


/* V3 — fidelidade visual ao layout Festas sem filas (claro/escuro).
   Os módulos continuam alimentados pelo HTML e ecras.js originais. */
.sol-page .sol-hero {padding:116px 0 66px;}
.sol-page .sol-hero-grid {grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,4.5vw,68px);}
.sol-page .sol-hero-visual {min-height:460px;aspect-ratio:1.15;}
.sol-page .sol-hero-photo {inset:0;transform:none;border-radius:22px;box-shadow:0 20px 54px rgba(16,27,56,.14);}
.sol-page .sol-hero-photo::after {background:linear-gradient(90deg,transparent 65%,rgba(9,17,40,.12));}
.sol-page .sol-hero-phone,.sol-page .sol-hero-visual .sol-float {display:none;}
.sol-page .sol-hero-visual::before {display:none;}
.sol-page .sol-hero h1 {font-size:clamp(2.8rem,5vw,4.6rem);letter-spacing:-.058em;}
.sol-page .sol-hero h1 .grad {background:var(--grad);-webkit-background-clip:text;background-clip:text;}
.sol-page .sol-hero-glow {opacity:.5;}
:root[data-theme=dark] .sol-page .sol-hero-photo {border-color:rgba(204,214,255,.18);box-shadow:0 26px 68px rgba(0,0,0,.34);}

/* Carrossel de cartões, 4 visíveis no PC, com ícones de traço. */
.sol-page #como-funciona .sol-flow {display:block;max-width:1200px;position:relative;}
.sol-page #como-funciona .sol-steps {
  display:flex;align-items:stretch;gap:14px;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:9px 7px 24px;margin:0 -7px;position:relative;
}
.sol-page #como-funciona .sol-steps::-webkit-scrollbar {display:none;}
.sol-page #como-funciona .sol-steps > li {
  flex:0 0 calc((100% - 42px)/4);min-width:0;scroll-snap-align:start;align-self:stretch;
}
.sol-page #como-funciona .sol-step {
  height:100%;min-height:223px;display:flex;flex-direction:column;align-items:center;
  padding:20px 13px 17px;gap:9px;text-align:center;position:relative;
  border:1px solid var(--border);border-radius:18px;
  background:linear-gradient(150deg,var(--surface),var(--surface-2));
  box-shadow:0 6px 18px rgba(15,27,61,.035);
}
.sol-page #como-funciona .sol-step.is-current {
  background:linear-gradient(155deg,rgba(123,66,248,.13),rgba(121,72,236,.035));
  border-color:rgba(133,84,240,.42);box-shadow:0 9px 30px rgba(117,78,209,.11);
}
.sol-page #como-funciona .sol-step-no {
  position:absolute;top:11px;right:11px;width:30px;height:30px;border-radius:50%;
  font-size:12px;background:rgba(125,74,237,.1);color:var(--primary);
}
.sol-page #como-funciona .sol-step-icon {display:grid;place-items:center;height:43px;flex:none;color:var(--text);}
.sol-page #como-funciona .sol-step-icon .icon-svg {width:34px;height:34px;stroke-width:1.65;}
.sol-page #como-funciona .sol-step-copy {gap:7px;align-items:center;}
.sol-page #como-funciona .sol-step-copy small {font-size:10px;letter-spacing:.04em;}
.sol-page #como-funciona .sol-step-copy strong {font-size:clamp(13px,1.2vw,17px);line-height:1.24;}
.sol-page #como-funciona .sol-step-copy > span {
  max-height:none;opacity:1;overflow:visible;font-size:12px;line-height:1.42;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;
}
.sol-page #como-funciona .sol-step.is-current .sol-step-copy > span {max-height:none;}
:root[data-theme=dark] .sol-page #como-funciona .sol-step {
  background:linear-gradient(150deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  border-color:rgba(216,224,255,.18);box-shadow:none;
}
:root[data-theme=dark] .sol-page #como-funciona .sol-step.is-current {
  background:linear-gradient(145deg,rgba(126,66,201,.42),rgba(81,44,148,.21));
  border-color:rgba(195,144,255,.7);
}
:root[data-theme=dark] .sol-page #como-funciona .sol-step-icon {color:#fff;}
:root[data-theme=dark] .sol-page #como-funciona .sol-step-no {color:#c6d1ff;background:rgba(174,110,250,.2);}

/* Ecrãs originais consultáveis em janela sobreposta, sem altura nova na página. */
.sol-page #como-funciona .sol-preview-launch {
  display:grid;place-items:center;width:42px;height:42px;cursor:pointer;
  margin:0 auto;border:1px solid var(--border);border-radius:50%;
  color:var(--primary);background:var(--surface);box-shadow:0 8px 22px rgba(60,40,130,.07);
}
.sol-page #como-funciona .sol-preview-launch svg {width:22px;height:22px;}
.sol-page #como-funciona .sol-preview-launch:hover {border-color:var(--primary);}
.sol-page #como-funciona .sol-flow-visual {
  display:none;position:fixed;inset:0;z-index:200;top:0;left:0;
  width:100%;height:100dvh;max-height:none;background:rgba(12,18,33,.76);
  backdrop-filter:blur(10px);align-items:center;justify-content:center;
  gap:8px;overflow:auto;padding:52px 20px 20px;
}
.sol-preview-open {overflow:hidden;}
.sol-preview-open .sol-page #como-funciona .sol-flow-visual,
.sol-page.sol-preview-open #como-funciona .sol-flow-visual {display:flex;}
.sol-page .sol-preview-close {
  position:absolute;top:16px;right:18px;width:40px;height:40px;
  display:grid;place-items:center;background:#fff;border:0;border-radius:100%;color:#131a2c;cursor:pointer;
}
.sol-page .sol-preview-close .icon-svg {width:20px;height:20px;}
.sol-page #como-funciona .sol-flow-visual .sol-flow-phone {zoom:.88;}
.sol-page #como-funciona .sol-flow-visual .sol-flow-nav {color:white;}
.sol-page #como-funciona .sol-flow-visual .sol-round {color:#fff;background:rgba(255,255,255,.15);}
.sol-page #como-funciona .section-head {max-width:880px;}
.sol-page .sol-pratica-gallery {gap:16px;}
.sol-page .sol-pratica-gallery figure {border-radius:17px;aspect-ratio:1.55;}
.sol-page .sol-pratica-gallery img {object-fit:cover;}

/* Desktop: palco sticky com progressão a partir do scroll, sem bloquear a roda. */
@media (min-width:1000px) and (min-height:680px) and (prefers-reduced-motion:no-preference) {
  .sol-page #como-funciona.is-sol-staged {height:calc(7 * 85svh);overflow:visible;padding:0;}
  .sol-page #como-funciona.is-sol-staged > .container {
    top:var(--sol-nav-offset,76px);height:calc(100svh - var(--sol-nav-offset,76px));
    padding:35px 0 26px;display:flex;flex-direction:column;justify-content:center;gap:18px;
  }
  .sol-page #como-funciona.is-sol-staged .section-head {max-width:950px;margin:0 auto 16px;}
  .sol-page #como-funciona.is-sol-staged .section-head h2 {font-size:clamp(2rem,3vw,2.65rem);}
  .sol-page #como-funciona.is-sol-staged .section-head p {font-size:14px;line-height:1.55;}
  .sol-page #como-funciona.is-sol-staged .sol-flow {width:100%;max-width:1200px;flex:none;display:block;}
  .sol-page #como-funciona.is-sol-staged .sol-steps {display:flex;gap:14px;min-height:0;}
  .sol-page #como-funciona.is-sol-staged .sol-steps > li {flex:0 0 calc((100% - 42px)/4);}
  .sol-page #como-funciona.is-sol-staged .sol-step {min-height:226px;height:100%;padding:20px 12px 16px;gap:9px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-no {position:absolute;width:30px;height:30px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy small {font-size:10px;}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy strong {font-size:clamp(13px,1.16vw,17px);}
  .sol-page #como-funciona.is-sol-staged .sol-step-copy > span {font-size:12px;line-height:1.42;}
  .sol-page #como-funciona.is-sol-staged > .container::after {flex:none;width:100%;margin:0;height:3px;}
}

@media (min-width:1000px) and (max-width:1100px) {
  .sol-page #como-funciona .sol-steps > li {flex-basis:calc((100% - 28px)/3);}
  .sol-page .sol-hero-visual {min-height:400px;}
}

@media (max-width:999px) {
  .sol-page .sol-hero {padding:90px 0 28px;}
  .sol-page .sol-hero-grid {display:flex;flex-direction:column;gap:0;}
  .sol-page .sol-hero-visual {
    display:block;order:-1;width:100%;min-height:0;height:auto;aspect-ratio:1.82;
    padding:0;margin:0 0 21px;overflow:hidden;border-radius:16px;
  }
  .sol-page .sol-hero-photo {inset:0;transform:none;border-radius:16px;border:0;box-shadow:none;}
  .sol-page .sol-hero-visual::before,.sol-page .sol-hero::before {display:none;}
  .sol-page .sol-hero-text {order:1;}
  .sol-page .sol-crumbs {margin-bottom:8px;font-size:11px;gap:5px;}
  .sol-page .sol-pill {margin-bottom:12px;font-size:9px;padding:8px 10px;}
  .sol-page .sol-hero h1 {font-size:clamp(2.3rem,10.5vw,3.1rem);margin-bottom:12px;line-height:1.06;}
  .sol-page .sol-lead {font-size:14px;line-height:1.55;margin:0 0 17px;}
  .sol-page .sol-actions {gap:8px;margin-bottom:14px;}
  .sol-page .sol-actions .btn {padding:12px 13px;font-size:12px;}
  .sol-page .sol-facts {gap:6px;}
  .sol-page .sol-facts li {padding:8px 7px;border-radius:12px;}
  .sol-page .sol-facts b {font-size:16px;}
  .sol-page .sol-facts span {font-size:10px;}

  /* Quatro cartões visíveis numa janela curta, 7 etapas preservadas. */
  .sol-page #como-funciona .section-head {margin-bottom:16px;}
  .sol-page #como-funciona .sol-steps {
    display:block;max-height:340px;overflow-y:auto;overflow-x:hidden;
    scroll-snap-type:y mandatory;overscroll-behavior-y:contain;
    padding:3px 2px;margin:0;scrollbar-width:none;
  }
  .sol-page #como-funciona .sol-steps > li {display:block!important;margin:0 0 7px;width:100%;scroll-snap-align:start;}
  .sol-page #como-funciona .sol-step, .sol-page #como-funciona .sol-step.is-current {
    min-height:70px;height:auto;width:100%;padding:9px 12px;display:flex;
    flex-direction:row;align-items:center;text-align:left;gap:11px;border-radius:14px;
  }
  .sol-page #como-funciona .sol-step-icon {width:36px;height:36px;flex:0 0 36px;}
  .sol-page #como-funciona .sol-step-icon .icon-svg {width:27px;height:27px;}
  .sol-page #como-funciona .sol-step-no {width:22px;height:22px;top:6px;right:6px;font-size:9px;}
  .sol-page #como-funciona .sol-step-copy {gap:2px;align-items:flex-start;padding-right:23px;}
  .sol-page #como-funciona .sol-step-copy strong {font-size:12.5px;line-height:1.25;}
  .sol-page #como-funciona .sol-step-copy small {font-size:9px;}
  .sol-page #como-funciona .sol-step-copy > span,
  .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span {
    font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;
    -webkit-box-orient:vertical;overflow:hidden;max-height:3em;opacity:1;
  }
  .sol-page #como-funciona .sol-step.is-current {min-height:86px;}
  .sol-page #como-funciona .sol-preview-launch {width:40px;height:40px;margin:8px auto 0;}
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone {zoom:.72;}
  .sol-page #como-funciona .sol-flow-visual {padding-top:44px;}
  .sol-page .sol-pratica-gallery {
    display:flex;overflow-x:auto;overflow-y:hidden;gap:10px;
    padding:2px 0 10px;margin:-3px -16px 12px;padding-inline:16px;
    scroll-snap-type:x mandatory;scrollbar-width:none;
  }
  .sol-page .sol-pratica-gallery figure {
    flex:0 0 82%;margin:0;aspect-ratio:2.3;height:142px;scroll-snap-align:center;border-radius:13px;
  }
  .sol-page .sol-pratica-gallery::-webkit-scrollbar {display:none;}
  .sol-page .sol-pratica-cards .sol-card:nth-child(-n+3)::before {display:none;display:none;}
  .sol-page #como-funciona.is-sol-staged > .container::after {margin:5px 0 0;}
}
@media (max-width:390px) {
  .sol-page .sol-hero-visual {aspect-ratio:1.95;}
  .sol-page #como-funciona .sol-steps {max-height:321px;}
  .sol-page #como-funciona .sol-pratica-gallery figure {height:132px;}
}
@media (prefers-reduced-motion:reduce) {
  .sol-page #como-funciona .sol-steps {scroll-behavior:auto;}
}

/* V3 controls: linha, sem emojis e com estados acessíveis. */
.sol-page .sol-stage-controls {display:flex;align-items:center;justify-content:center;gap:16px;margin:2px auto 0;}
.sol-page .sol-stage-controls .sol-preview-launch {margin:0 0 0 8px;width:38px;height:38px;}
.sol-page .sol-stage-arrow {
  display:grid;place-items:center;cursor:pointer;width:38px;height:38px;border-radius:50%;
  background:var(--surface);color:var(--text);border:1px solid var(--border);
  box-shadow:0 5px 15px rgba(18,31,65,.04);
}
.sol-page .sol-stage-arrow svg {width:20px;height:20px;}
.sol-page .sol-stage-arrow:hover,.sol-page .sol-stage-arrow:focus-visible {border-color:var(--primary);color:var(--primary);}
.sol-page .sol-stage-dots {display:flex;align-items:center;justify-content:center;gap:9px;}
.sol-page .sol-stage-dot {width:8px;height:8px;padding:0;border:0;border-radius:50%;cursor:pointer;background:rgba(134,136,158,.55);transition:background .2s,transform .2s;}
.sol-page .sol-stage-dot.is-current {background:var(--primary);transform:scale(1.2);}
.sol-page .sol-stage-dot:focus-visible {outline:2px solid var(--primary);outline-offset:4px;}
.sol-page .cta-spark svg {display:block;width:1em;height:1em;}
@media (max-width:999px) {
 .sol-page .sol-stage-controls {gap:10px;margin:5px auto 0;}
 .sol-page .sol-stage-controls .sol-preview-launch {margin-left:4px;}
 .sol-page .sol-stage-arrow {width:34px;height:34px;}
 .sol-page .sol-stage-dots {gap:7px;}
 .sol-page .sol-stage-dot {width:7px;height:7px;}
}

.sol-page #como-funciona .sol-stage-controls .sol-preview-launch {margin:0 0 0 10px;width:38px;height:38px;}
.sol-page #como-funciona .sol-stage-controls {justify-content:center;}

/* ===== Ajustes de 04/11: cada secção cabe num ecrã ===== */
.sol-page .sol-gear-card { background: linear-gradient(160deg, #fff8ec, #f3f5ff); }
.sol-page .sol-gear-card p { font-size: 14.5px; line-height: 1.65; color: var(--muted); margin: 0; }
:root[data-theme=dark] .sol-page .sol-gear-card { background: linear-gradient(160deg, #232b40, #1f2638); }

/* PC */
@media (min-width:1000px) {
  .sol-page main > .section { padding: 76px 0; }
  .sol-page .section-head { margin-bottom: 34px; }
  .sol-page .sol-two { grid-template-columns: 1.15fr 1fr .85fr; max-width: 1240px; gap: 18px; }
  .sol-page .sol-list-card { padding: 26px 26px; }
  .sol-page .sol-checks { gap: 9px; }
  .sol-page .sol-checks li { font-size: 14px; }
  /* Na prática: fotografias em faixa mais baixa e cartões mais compactos */
  .sol-page .sol-pratica-gallery { margin-bottom: 18px; }
  .sol-page .sol-pratica-cards .sol-card { padding: 20px 22px; }
  .sol-page .sol-pratica-cards .sol-card h3 { margin: 12px 0 6px; }
  .sol-page .sol-pratica-cards .sol-ico { width: 40px; height: 40px; font-size: 19px; }
  /* Perguntas em duas colunas */
  .sol-page #perguntas .sol-narrow { max-width: 1180px; }
  .sol-page #perguntas .faq { grid-template-columns: 1fr 1fr; align-items: start; gap: 12px 16px; }
}
@media (min-width:1000px) and (max-width:999px) {
  .sol-page .sol-two { grid-template-columns: 1fr 1fr; }
  .sol-page .sol-gear-card { grid-column: 1 / -1; }
}

/* Telemóvel */
@media (max-width:999px) {
  .sol-page main > .section { padding: 46px 0; }
  .sol-page .section-head { margin-bottom: 22px; }
  .sol-page .section-head p { font-size: 14px; margin: 0; }
  .sol-page .sol-two > * { flex-basis: 84%; }
  .sol-page .sol-list-card { padding: 20px; }
  .sol-page .sol-list-card h3 { margin-bottom: 12px; }
  .sol-page .sol-checks { gap: 7px; }
  .sol-page .sol-checks li { font-size: 13.3px; line-height: 1.45; padding-left: 28px; }
  .sol-page .sol-checks li:before { width: 19px; height: 19px; }
  .sol-page .faq { gap: 8px; }
  .sol-page .faq details { padding: 0 16px; }
  .sol-page .faq summary { padding: 13px 0; font-size: 14px; }
  .sol-page .sol-band { padding: 46px 0; }
  .sol-page .sol-band h2 { font-size: 1.9rem; }
  .sol-page .sol-tip { margin-top: 18px; font-size: 13.5px; }
}

/* Na prática no PC: título e fotografias à esquerda, cartões à direita */
@media (min-width:1000px) {
  .sol-page section[aria-labelledby="pratica-title"] > .container {
    display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); column-gap: 44px; align-items: start;
  }
  .sol-page section[aria-labelledby="pratica-title"] .section-head { grid-column: 1; grid-row: 1; text-align: left; margin: 0 0 22px; max-width: none; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-pratica-gallery { grid-column: 1; grid-row: 2; margin: 0; gap: 10px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-pratica-cards { grid-column: 2; grid-row: 1 / span 2; grid-template-columns: 1fr 1fr; gap: 12px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card { padding: 18px 20px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card p { font-size: 13.5px; line-height: 1.55; }
  /* O que inclui: a lista mais comprida fica com mais largura */
  .sol-page .sol-two { grid-template-columns: 1.4fr 1fr .8fr; align-items: start; }
  .sol-page .sol-checks li { font-size: 13.5px; line-height: 1.45; }
}

/* Portáteis pequenos (961-1099px) */
@media (min-width:1000px) and (max-width: 1099px) {
  .sol-page #como-funciona .sol-steps { margin-inline: 0; padding-inline: 0; }
  .sol-page main > .section { padding: 46px 0; }
  .sol-page .sol-hero .sol-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
  .sol-page .sol-hero .sol-actions { flex-wrap: nowrap; gap: 10px; }
  .sol-page .sol-hero .sol-actions .btn { padding-inline: 16px; font-size: 14px; white-space: nowrap; }
  .sol-page .sol-hero .sol-lead { margin-bottom: 18px; }
  .sol-page main > .section .section-head { margin-bottom: 24px; }
  .sol-page .sol-hero-text .sol-hero-points, .sol-page .sol-hero-text ul { margin-top: 14px; }
  .sol-page .sol-hero { padding-top: 100px; padding-bottom: 40px; }
  .sol-page .sol-hero h1 { font-size: 44px; }
  .sol-page .sol-hero-text p { font-size: 15.5px; }
  .sol-page .sol-gear-card { grid-column: auto; }
  .sol-page .sol-grid-5 { gap: 10px; }
  .sol-page .sol-grid-5 .sol-card { padding: 16px; }
  .sol-page .sol-grid-5 .sol-card p { font-size: 13px; line-height: 1.5; }
  .sol-page section[aria-labelledby="pratica-title"] > .container { column-gap: 28px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card { padding: 14px 16px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card p { font-size: 13px; }
}

/* Telemóvel: perguntas e "O que inclui" cabem num ecrã; etiquetas legíveis */
@media (max-width:999px) {
  .sol-page #perguntas .faq { gap: 6px; }
  .sol-page main > #perguntas { padding-bottom: 30px; }
  .sol-page #perguntas .faq summary { padding: 9px 0; font-size: 14px; line-height: 1.35; }
  .sol-page #perguntas .faq > * { min-height: 0; }
  .sol-page .sol-two .sol-list-card { padding: 18px 18px; }
  .sol-page .sol-two .sol-checks { gap: 6px; }
  .sol-page .sol-two .sol-checks li { font-size: 13px; line-height: 1.38; }
  .sol-page .sol-two .sol-list-card h3 { margin-bottom: 10px; }
  .sol-page .sol-pill, .sol-page .sol-step-no { font-size: 10.5px; }
  .sol-page .sol-facts span, .sol-page .sol-facts small { font-size: 11px; }
}

/* Telemóveis estreitos (até 400px) */
@media (max-width: 400px) {
  .sol-page main > .section { padding: 36px 0; }
  .sol-page main > #perguntas { padding-bottom: 24px; }
  .sol-page .sol-band-list { gap: 8px; }
  .sol-page .sol-band-list > * { padding: 12px 14px; }
  .sol-page .sol-band-list p, .sol-page .sol-band-list span { font-size: 13px; line-height: 1.45; }
  .sol-page .sol-two .sol-checks li { font-size: 12.5px; }
  .sol-page #perguntas .faq summary { padding: 8px 0; font-size: 13.5px; }
}

/* PC: «Como funciona» num só ecrã (título numa linha, 4 cartões visíveis e setas) */
@media (min-width:1000px) {
  .sol-page main > #como-funciona { padding: 48px 0 40px; }
  .sol-page #como-funciona .section-head { max-width: 1000px; margin-bottom: 22px; }
  .sol-page #como-funciona .section-head .eyebrow { margin-bottom: 8px; }
  .sol-page #como-funciona .section-head h2 { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.1; margin-bottom: 10px; }
  .sol-page #como-funciona .section-head p { font-size: 15px; margin-bottom: 0; }
}

/* PC com janela baixa (portáteis com o browser aberto, até 820px de altura) */
@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 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; }
  .sol-page main > .section .section-head .eyebrow { margin-bottom: 8px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card { padding: 14px 18px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card h3 { margin: 6px 0 4px; font-size: 15px; }
  .sol-page .sol-two .sol-list-card { padding: 20px 22px; }
  .sol-page .sol-two .sol-checks { columns: 2; column-gap: 22px; display: block; }
  .sol-page .sol-two .sol-checks li { break-inside: avoid; margin-bottom: 7px; font-size: 13px; }
  .sol-page .sol-two { grid-template-columns: 1.6fr 1fr .9fr; }
  .sol-page #perguntas .faq summary { padding-block: 10px; }
  .sol-page #perguntas .faq { gap: 8px 22px; }
  .sol-page .sol-hero { padding-top: 96px; padding-bottom: 36px; }
  .sol-page .sol-hero h1 { font-size: clamp(40px, 4vw, 56px); }
}
@media (min-width:1000px) and (max-height: 820px) {
  .sol-page .sol-two { grid-template-columns: 1.3fr 1.2fr .8fr; }
  .sol-page .sol-two > .is-soft .sol-checks { columns: 1; }
  .sol-page .sol-two .sol-checks li { margin-bottom: 5px; }
  /* Na prática: título e fotografias em cima, 6 cartões em 3 colunas por baixo */
  .sol-page section[aria-labelledby="pratica-title"] > .container { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 36px; align-items: center; }
  .sol-page section[aria-labelledby="pratica-title"] .section-head { grid-column: 1; grid-row: 1; margin-bottom: 18px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-pratica-gallery { grid-column: 2; grid-row: 1; margin-bottom: 18px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-pratica-cards { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(3, 1fr); }
}
@media (min-width:1000px) and (max-height: 820px) {
  /* Ícone ao lado do título para os cartões ficarem mais baixos */
  .sol-page section[aria-labelledby="pratica-title"] .sol-card { display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; align-items: start; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card .sol-ico { grid-row: 1 / span 2; width: 36px; height: 36px; }
  .sol-page section[aria-labelledby="pratica-title"] .sol-card h3 { margin: 2px 0 4px; }
}

/* ===== Cada secção num ecrã (05/11) ===== */
/* O que inclui: 4 cartões (a primeira versão foi dividida em dois) */
@media (min-width:1000px) {
  .sol-page .sol-two, .sol-page .sol-two { grid-template-columns: 1fr 1fr 1fr .85fr; max-width: 1240px; }
  .sol-page .sol-two .sol-checks { columns: 1 !important; }
  .sol-page .sol-two > .is-soft .sol-checks { columns: 1; }
}
@media (min-width:1000px) and (max-height: 820px) {
  .sol-page .sol-two { grid-template-columns: 1fr 1fr 1fr .85fr; }
}
@media (min-width:1000px) and (max-width:999px) {
  .sol-page .sol-gear-card { grid-column: auto; }
}
/* PC com janela muito baixa (até 700px de altura) */
@media (min-width:1000px) and (max-height: 700px) {
  .sol-page .sol-hero { padding-top: 88px; padding-bottom: 24px; }
  .sol-page .sol-hero h1 { font-size: clamp(36px, 3.6vw, 48px); margin-bottom: 10px; }
  .sol-page .sol-hero .sol-crumbs { margin-bottom: 6px; }
  .sol-page .sol-hero .sol-pill { margin-bottom: 10px; }
  .sol-page .sol-hero .sol-lead { font-size: 15px; line-height: 1.5; margin-bottom: 14px; }
  .sol-page .sol-hero .sol-actions { margin-bottom: 12px; }
  .sol-page .sol-hero .sol-facts { margin-top: 0; }
}

/* Telemóvel */
@media (max-width:999px) {
  .sol-page main > .section { padding: 26px 0; }
  .sol-page main > #perguntas { padding-bottom: 22px; }
  .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 */
  .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, .sol-page .sol-role { display: grid; grid-template-columns: 34px 1fr; column-gap: 12px; align-items: start; padding: 16px; }
  .sol-page .sol-card .sol-ico, .sol-page .sol-role .sol-ico { grid-row: 1 / span 3; width: 34px; height: 34px; margin: 0; }
  .sol-page .sol-card h3, .sol-page .sol-role h3 { margin: 0 0 6px; font-size: 15.5px; line-height: 1.25; }
  .sol-page .sol-role small { margin-bottom: 6px; }
  .sol-page .sol-card p, .sol-page .sol-role p { font-size: 13.5px; line-height: 1.5; margin: 0; }

  /* Regra de ouro: carrossel */
  .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-band-list::-webkit-scrollbar { display: none; }
  .sol-page .sol-band-list > li { flex: 0 0 82%; scroll-snap-align: start; display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; }
  .sol-page .sol-band-list > li > i { width: 34px; height: 34px; 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 */
  .sol-page .sol-two .sol-list-card { padding: 16px 18px; }
  .sol-page .sol-two .sol-checks { columns: 1 !important; }
  .sol-page .sol-two .sol-list-card h3 { font-size: 15.5px; line-height: 1.25; }

  /* Para quem: etiquetas lado a lado */
  .sol-page .sol-tags { display: flex; flex-wrap: wrap; gap: 8px; }
  .sol-page .sol-tags > span { padding: 8px 12px; font-size: 13px; width: auto; }
  .sol-page .sol-tip { margin-top: 14px; font-size: 13.5px; }

  /* Perguntas */
  .sol-page #perguntas .faq { gap: 4px; }
  .sol-page #perguntas .faq summary { padding: 8px 0; font-size: 13.5px; line-height: 1.3; }
}

/* PC: «Como funciona» com os passos à esquerda e o telemóvel sempre visível à direita */
@media (min-width:1000px) {
  .sol-page #como-funciona > .container { display: grid; grid-template-columns: minmax(0, 700px) auto; justify-content: center; column-gap: 64px; align-items: center; max-width: 1180px; }
  .sol-page #como-funciona .sol-flow { display: contents; }
  .sol-page #como-funciona .section-head { grid-column: 1; grid-row: 1; text-align: left; margin: 0 0 16px; max-width: none; }
  .sol-page #como-funciona .section-head p { max-width: none; margin-left: 0; }
  .sol-page #como-funciona .sol-steps { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; gap: 5px; overflow: visible; padding: 0; margin: 0; scroll-snap-type: none; align-self: start; }
  .sol-page #como-funciona .sol-steps > li { flex: none; width: 100%; }
  .sol-page #como-funciona .sol-step { min-height: 0; height: auto; width: 100%; flex-direction: row; align-items: center; text-align: left; gap: 12px; padding: 8px 14px; border-radius: 13px; box-shadow: none; }
  .sol-page #como-funciona .sol-step-icon { display: none; }
  .sol-page #como-funciona .sol-step-no { position: static; flex: none; width: 28px; height: 28px; display: grid; place-items: center; font-size: 11.5px; }
  .sol-page #como-funciona .sol-step-copy { align-items: flex-start; gap: 1px; }
  .sol-page #como-funciona .sol-step-copy small { font-size: 9.5px; }
  .sol-page #como-funciona .sol-step-copy strong { font-size: 14.5px; line-height: 1.25; }
  .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; -webkit-line-clamp: unset; font-size: 13px; line-height: 1.45; margin-top: 4px; }
  .sol-page #como-funciona .sol-stage-controls,
  .sol-page #como-funciona .sol-preview-launch,
  .sol-page #como-funciona .sol-preview-close,
  .sol-page #como-funciona .sol-flow-visual .sol-flow-nav { display: none !important; }
  .sol-page #como-funciona .sol-flow-visual,
  .sol-page.sol-preview-open #como-funciona .sol-flow-visual {
    grid-column: 2; grid-row: 1 / span 2; display: flex; position: static; inset: auto; z-index: auto;
    width: auto; height: auto; padding: 0; background: none; backdrop-filter: none; overflow: visible;
  }
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .78; cursor: default; }
}
@media (min-width:1000px) and (max-height: 820px) {
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .7; }
}
@media (min-width:1000px) and (max-height: 700px) {
  .sol-page main > #como-funciona { padding: 30px 0 28px; }
  .sol-page #como-funciona .section-head h2 { font-size: 34px; }
  .sol-page #como-funciona .section-head p { font-size: 14px; }
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .64; }
  .sol-page #como-funciona .sol-step { padding-block: 6px; }
}
@media (min-width:1000px) and (max-height: 620px) {
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .58; }
  .sol-page #como-funciona .sol-steps { gap: 3px; }
}
@media (min-width:1000px) {
  /* Título do passo e quem o usa na mesma linha */
  .sol-page #como-funciona .sol-step-copy { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 10px; }
  .sol-page #como-funciona .sol-step-copy strong { order: -1; }
  .sol-page #como-funciona .sol-step-copy small { opacity: .85; }
  .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span { flex-basis: 100%; }
}

/* Telemóvel: «Como funciona» com o ecrã do passo à esquerda e o texto do passo à direita */
@media (max-width:999px) {
  .sol-page #como-funciona .sol-flow { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; align-items: center; }
  .sol-page #como-funciona .sol-flow-visual,
  .sol-page.sol-preview-open #como-funciona .sol-flow-visual {
    grid-column: 1; grid-row: 1; display: flex; position: static; inset: auto; z-index: auto;
    width: auto; height: auto; padding: 0; background: none; backdrop-filter: none; overflow: visible;
  }
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .42; cursor: default; }
  .sol-page #como-funciona .sol-preview-launch,
  .sol-page #como-funciona .sol-preview-close,
  .sol-page #como-funciona .sol-flow-visual .sol-flow-nav { display: none !important; }
  .sol-page #como-funciona .sol-steps { grid-column: 2; grid-row: 1; 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; flex: none; width: 100%; }
  .sol-page #como-funciona .sol-step, .sol-page #como-funciona .sol-step.is-current {
    flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; min-height: 0;
  }
  .sol-page #como-funciona .sol-step-icon { display: none; }
  .sol-page #como-funciona .sol-step-no { position: static; width: 26px; height: 26px; font-size: 11px; display: grid; place-items: center; }
  .sol-page #como-funciona .sol-step-copy { padding-right: 0; gap: 4px; }
  .sol-page #como-funciona .sol-step-copy small { font-size: 10px; }
  .sol-page #como-funciona .sol-step-copy strong { font-size: 15px; line-height: 1.25; }
  .sol-page #como-funciona .sol-step-copy > span,
  .sol-page #como-funciona .sol-step.is-current .sol-step-copy > span { display: block; -webkit-line-clamp: unset; max-height: none; overflow: visible; font-size: 13px; line-height: 1.45; }
  .sol-page #como-funciona .sol-stage-controls { grid-column: 1 / -1; grid-row: 2; margin: 0; }
  .sol-page #como-funciona.is-sol-staged > .container::after { display: none; }
}
@media (max-width: 360px) {
  .sol-page #como-funciona .sol-flow-visual .sol-flow-phone { zoom: .36; }
  .sol-page #como-funciona .sol-flow { column-gap: 10px; }
  .sol-page #como-funciona .sol-step-copy > span { font-size: 12.5px; }
}

@media (max-width:999px) {
}
@media (max-width:999px) {
  .sol-page .sol-tags { gap: 6px; justify-content: flex-start; }
  .sol-page .sol-tags > span { padding: 6px 10px; font-size: 12.5px; gap: 6px; }
  .sol-page .sol-tags i { font-size: 14px; }
  .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; }
}
/* Telemóveis com pouca altura útil (a maioria, com as barras do browser) */
@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; }
}
/* Perguntas no telemóvel baixo: duas páginas de 4, a deslizar para o lado */
@media (max-width:999px) and (max-height: 700px) {
  .sol-page #perguntas .faq { display: grid; grid-auto-flow: column; grid-template-rows: repeat(4, 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(4n+1) { scroll-snap-align: start; }
  .sol-page #perguntas .faq-more { display: block; }
}
.sol-page #perguntas .faq-more { display: none; margin: 10px 0 0; font-size: 12.5px; color: var(--muted); text-align: center; }
@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-hero .sol-facts span { font-size: 10.5px; }
  .sol-page .sol-card p, .sol-page .sol-role p { font-size: 13px; line-height: 1.45; }
  .sol-page .sol-card, .sol-page .sol-role { padding: 14px; }
  .sol-page .sol-tags > span { font-size: 12px; padding: 5px 9px; }
  .sol-page .sol-tip { font-size: 13px; }
  .sol-page main > .section .section-head h2 { font-size: 23px; }
}
@media (max-width: 340px) and (max-height: 700px) {
  .sol-page .sol-hero { padding-top: 80px; padding-bottom: 16px; }
}
@media (min-width:1000px) and (max-height: 620px) {
  .sol-page .sol-hero { padding-top: 80px; padding-bottom: 14px; }
  .sol-page .sol-hero h1 { font-size: 38px; }
  .sol-page .sol-hero .sol-lead { font-size: 14.5px; margin-bottom: 12px; }
  .sol-page .sol-hero .sol-facts b { font-size: 22px; }
}
@media (min-width:1000px) and (max-width: 1099px) and (max-height: 820px) {
  .sol-page .sol-grid-5 .sol-role { padding: 14px; }
  .sol-page .sol-grid-5 .sol-role .sol-ico { width: 34px; height: 34px; margin-bottom: 8px; }
  .sol-page .sol-grid-5 .sol-role h3 { font-size: 14.5px; }
  .sol-page .sol-grid-5 .sol-role p { font-size: 12.5px; line-height: 1.45; }
}
@media (max-width:999px) and (max-height: 700px) {
  .sol-page #como-funciona .section-head p { font-size: 13.5px; line-height: 1.4; }
  .sol-page #como-funciona .section-head { margin-bottom: 12px; }
}

/* ===== Pedidos de 05/11: Na prática, Um ecrã para cada, Regra de ouro, Para quem é ===== */
@media (max-width:999px) {
  /* Na prática: fotografias inteiras, com a mesma largura das frases, a rolar juntas */
  .sol-page .sol-pratica-gallery, .sol-page .sol-pratica-cards {
    display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    scroll-snap-type: x mandatory; margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px;
  }
  .sol-page .sol-pratica-gallery { margin-top: 0; margin-bottom: 10px; padding-block: 0; }
  .sol-page .sol-pratica-gallery figure,
  .sol-page .sol-pratica-cards > .sol-card { flex: 0 0 78%; max-width: 330px; scroll-snap-align: start; }
  .sol-page .sol-pratica-gallery figure { height: auto; aspect-ratio: 380 / 225; margin: 0; }
  .sol-page .sol-pratica-gallery figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .sol-page .sol-pratica-cards { align-items: stretch; padding-bottom: 4px; }
  .sol-page .sol-pratica-cards > .sol-card { height: auto; }

  /* Um ecrã para cada pessoa e Regra de ouro: quadrados */
  .sol-page .sol-grid-5 > .sol-role,
  .sol-page .sol-band-list > li {
    flex: 0 0 min(66%, 250px); aspect-ratio: 1; height: auto;
    display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0;
  }
  .sol-page .sol-grid-5 > .sol-role .sol-ico { margin-bottom: 12px; }
  .sol-page .sol-band-list > li { padding: 18px; }
  .sol-page .sol-band-list > li > i { margin-bottom: 12px; }
}
/* Para quem é: botões com o mesmo tamanho e alinhados */
.sol-page .sol-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 980px; margin-inline: auto; }
.sol-page .sol-tags > span { flex: 0 0 calc((100% - 30px) / 4); box-sizing: border-box; display: flex; align-items: center; justify-content: flex-start; gap: 8px; min-height: 46px; text-align: left; }
@media (max-width:999px) {
  .sol-page .sol-tags { gap: 8px; }
  .sol-page .sol-tags > span { flex: 0 0 calc((100% - 8px) / 2); min-height: 40px; line-height: 1.25; }
}
.sol-page .sol-tags { align-items: stretch; align-content: flex-start; height: auto; }
.sol-page .sol-tags > span { height: auto; }

/* Rodapé no PC: três colunas alinhadas (marca, contactos, redes) e o © numa linha 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; }
}
@media (min-width:1000px) {
  .sol-page .sol-tags { max-width: 1140px; }
  .sol-page .sol-tags > span { padding: 11px 16px; white-space: nowrap; font-size: 14px; }
}
/* Na prática em telemóveis baixos: título e frases mais compactos (as fotografias ficam inteiras) */
@media (max-width:999px) and (max-height: 680px) {
  .sol-page section[aria-labelledby="pratica-title"] .section-head h2 { font-size: 22px; margin-bottom: 6px; }
  .sol-page section[aria-labelledby="pratica-title"] .section-head p { font-size: 13px; line-height: 1.4; }
  .sol-page section[aria-labelledby="pratica-title"] .section-head { margin-bottom: 10px; }
  .sol-page .sol-pratica-gallery figure,
  .sol-page .sol-pratica-cards > .sol-card { flex-basis: 72%; }
  .sol-page .sol-pratica-cards > .sol-card { padding: 12px 14px; }
  .sol-page .sol-pratica-cards > .sol-card p { font-size: 12.5px; line-height: 1.42; }
  .sol-page .sol-pratica-cards > .sol-card h3 { font-size: 14.5px; margin-bottom: 4px; }
}
@media (max-width:999px) and (max-height: 620px) {
  .sol-page section[aria-labelledby="pratica-title"] .section-head p { font-size: 12.5px; }
  .sol-page .sol-pratica-gallery { margin-bottom: 8px; }
  .sol-page .sol-pratica-cards > .sol-card { padding: 10px 12px; grid-template-columns: 28px 1fr; column-gap: 10px; }
  .sol-page .sol-pratica-cards > .sol-card .sol-ico { width: 28px; height: 28px; }
  .sol-page .sol-pratica-cards > .sol-card p { font-size: 12px; line-height: 1.4; }
}

/* 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; }
}

/* ===== Pedido na mesa (05/11) ===== */
/* Perguntas no telemóvel baixo: 6 perguntas, duas páginas de 3 */
@media (max-width:999px) and (max-height: 700px) {
  .sol-page #perguntas .faq { grid-template-rows: repeat(3, auto); }
  .sol-page #perguntas .faq > .pro-faq-item:nth-child(4n+1) { scroll-snap-align: none; }
  .sol-page #perguntas .faq > .pro-faq-item:nth-child(3n+1) { scroll-snap-align: start; }
}
@media (max-width: 340px) {
  .sol-page .cta-banner { padding: 24px 18px; }
  .sol-page .cta-banner h2 { font-size: 24px; }
  .sol-page .cta-banner p { font-size: 13.5px; }
}

/* Fotografias do topo: em monitores a face da empregada não fica cortada. */
@media (min-width:1000px) {
  .sol-page .sol-hero-photo img { object-position: 72% center; }
}

/* Tablets e telemóveis deitados (ecrã baixo): a foto do topo fica mais pequena, inteira e sem cortes,
   para o título e os botões caberem no mesmo ecrã */
@media (max-width:999px){
  .sol-page .sol-hero-visual{max-width:max(320px,calc((100vh - 330px) * 1.82));margin-inline:auto;width:100%}
}
