/* Excelsior Group — página Mercado */
.c-azul-marinho{background:#002133}.c-petroleo{background:#356a7a}.c-ardosia{background:#6a909c}
.c-aco{background:#9ab5bd}.c-cinza{background:#8a969c}.c-cinza-claro{background:#b5bfc4}


.m-sec{padding:88px 0}
.m-sec--paper{background:var(--mist)}
.m-summary{padding-bottom:88px}
.m-companies{padding-top:0}
.m-split{display:grid;grid-template-columns:minmax(0,480fr) minmax(0,720fr);column-gap:80px;align-items:start}
.m-text{display:flex;flex-direction:column;gap:44px}
.m-head .sec-num{margin:0}
.m-title{margin:14px 0 0;font-family:'Russo One',sans-serif;font-weight:400;font-size:clamp(26px,2.5vw,34px);line-height:1.25;color:var(--navy)}
.m-kicker{margin:14px 0 0;font-weight:700;font-size:10px;letter-spacing:2.7px;text-transform:uppercase;color:var(--teal)}
.m-head--wide{max-width:900px}
.m-intro{margin:44px 0 0;font-size:17px;line-height:25px;color:var(--body);max-width:900px}

/* Indicadores */
.m-indicators{display:flex;flex-direction:column;gap:28px}
.m-ind{border-top:1px solid var(--rule);padding-top:16px}
.m-ind p{margin:0}
.m-ind__label{font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--body);margin-bottom:8px!important}
.m-ind__value{font-family:'Russo One',sans-serif;font-weight:400;font-size:40px;line-height:48px;color:var(--navy)}
.m-ind__text{margin-top:8px!important;font-size:17px;line-height:25px;color:var(--body)}
.m-ind__tag{margin-top:12px!important;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.m-indicators--row{flex-direction:row;gap:40px;margin-top:44px}
.m-indicators--row .m-ind{flex:1}
.m-indicators--row .m-ind__value{font-size:48px;line-height:58px}
.m-indicators--grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 40px;margin-top:44px}
.m-indicators--grid .m-ind__value{font-size:36px;line-height:44px}

.m-statement{margin:0;font-weight:600;font-size:20px;line-height:28px;color:var(--navy)}
.m-statement--wide{margin-top:44px;font-size:22px;line-height:30px;max-width:900px}

/* Relevante para */
.m-relevant{border-top:1px solid var(--navy);padding-top:16px;display:flex;flex-direction:column;gap:16px}
.m-relevant p{margin:0}
.m-relevant__label{font-weight:700;font-size:10px;letter-spacing:2.7px;text-transform:uppercase;color:var(--teal)}
.m-relevant__who{margin-top:6px!important;font-weight:700;font-size:18px;line-height:21px;color:var(--navy)}
.m-relevant__note{font-size:17px;line-height:25px;color:var(--body)}
.m-relevant--wide{flex-direction:row;align-items:flex-start;gap:40px;margin-top:44px}
.m-relevant--wide > div{flex:0 0 400px}

/* Cartões de dados */
.m-data{display:flex;flex-direction:column;gap:24px}
.m-card{margin:0;background:var(--mist);padding:40px;display:flex;flex-direction:column;gap:28px}
.m-card__head p{margin:0}
.m-card__title{font-weight:700;font-size:20px;line-height:28px;color:var(--navy)}
.m-card__sub{margin-top:8px!important;font-size:16px;line-height:24px;color:var(--body)}
.m-source{margin:0;font-size:14px;line-height:20px;color:var(--body)}
.m-sec--full .m-source{margin-top:44px}
.m-sec--full .m-facts + .m-relevant{margin-top:44px}

/* Barras */
.m-bars{display:flex;flex-direction:column;gap:18px}
.m-bar{display:flex;flex-direction:column;gap:8px}
.m-bar__label{font-size:15px;line-height:18px;color:var(--body)}
.m-bar__row{display:flex;align-items:center;gap:12px}
.m-bar__fill{display:block;height:22px;width:var(--w);transform-origin:left;transition:transform 1.1s var(--ease)}
.m-bar__row b,.m-legend b{font-family:'Russo One',sans-serif;font-weight:400;font-size:16px;color:var(--navy);white-space:nowrap}
[data-reveal]:not(.in-view) .m-bar__fill,[data-reveal]:not(.in-view) .m-div__fill,[data-reveal]:not(.in-view) .m-grp__fill{transform:scaleX(0)}

/* Empilhado */
.m-stacked__bracket{position:relative;margin-left:var(--l);width:var(--w);height:46px}
.m-stacked__bracket span{position:absolute;left:0;top:0;font-family:'Russo One',sans-serif;font-weight:400;font-size:16px;color:var(--navy);white-space:nowrap}
.m-stacked__bracket::after{content:"";position:absolute;left:0;right:0;top:32px;height:10px;border:2px solid var(--navy);border-bottom:0}
.m-stacked__bar{display:flex;gap:3px;height:44px}
.m-stacked__bar span{display:block;min-width:2px}
.m-legend{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,300px));grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:14px 40px}
.m-legend li{display:flex;align-items:center;gap:10px}
.m-legend .sw{width:12px;height:12px;flex:none}
.m-legend .lbl{font-size:15px;color:#2f3d44;flex:1}
.m-legend--inline{display:flex;gap:20px;margin:0 0 20px}
.m-legend--inline .lbl{flex:none}

/* Divergente */
.m-div{position:relative;display:flex;flex-direction:column;gap:22px;padding:10px 0;--axis:52.5%}
.m-div::before{content:"";position:absolute;left:var(--axis);top:0;bottom:0;width:2px;background:var(--navy)}
.m-div__row{position:relative;height:24px}
.m-div__label{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:15px;color:#2f3d44;max-width:calc(var(--axis) - 12px)}
.m-div__fill{position:absolute;top:0;height:24px;left:calc(var(--axis) + 2px);width:var(--w);transform-origin:left;transition:transform 1.1s var(--ease)}
.m-div__row b{position:absolute;top:50%;transform:translateY(-50%);left:calc(var(--axis) + 2px + var(--w) + 8px);font-family:'Russo One',sans-serif;font-weight:400;font-size:16px;color:var(--navy);white-space:nowrap}
.m-div__row.is-neg .m-div__fill{left:auto;right:calc(100% - var(--axis));transform-origin:right}
.m-div__row.is-neg b{left:auto;right:calc(100% - var(--axis) + var(--w) + 8px)}
.m-div__row.is-neg .m-div__label{max-width:calc(var(--axis) - var(--w) - 80px)}

/* Agrupado */
.m-grouped{display:flex;flex-direction:column}
.m-grp{display:grid;grid-template-columns:180px 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:4px;padding:6px 0}
.m-grp__label{grid-row:1/3;align-self:center;font-size:15px;color:#2f3d44}
.m-grp__row{display:flex;align-items:center;gap:8px}
.m-grp__fill{display:block;height:12px;width:calc(var(--w) * 1.25);transform-origin:left;transition:transform 1.1s var(--ease)}
.m-grp__row b{font-weight:700;font-size:13px;color:var(--navy)}
.m-grp__row b.a{color:var(--body)}

/* Tabela */
.m-table-wrap{overflow-x:auto}
.m-table{width:100%;border-collapse:collapse;font-size:16px;line-height:23px;color:#2f3d44}
.m-table th,.m-table td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
.m-table thead th{padding-top:0;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--body)}
.m-table tbody th{font-weight:700;color:var(--navy)}
.m-table tr > :last-child{padding-right:0}

/* Lista */
.m-list{margin:0;border-top:1px solid var(--rule)}
.m-list div{border-bottom:1px solid var(--rule);padding:18px 0}
.m-list dt{font-weight:700;font-size:17px;color:var(--navy)}
.m-list dd{margin:8px 0 0;font-size:17px;line-height:25px;color:var(--body)}

/* Cartões de factos */
.m-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:44px}
.m-fact{background:var(--mist);padding:36px 36px 32px;display:flex;flex-direction:column}
.m-fact p{margin:0}
.m-fact__value{font-family:'Russo One',sans-serif;font-weight:400;font-size:44px;line-height:53px;color:var(--navy)}
.m-fact__text{margin-top:8px!important;font-size:17px;line-height:25px;color:var(--body);padding-bottom:24px;border-bottom:1px solid var(--rule)}
.m-fact__note{margin-top:24px!important;font-size:17px;line-height:25px;color:#2f3d44}
.m-fact__note b{color:var(--navy)}
.m-fact .m-source{margin-top:auto;padding-top:24px}

/* Síntese */
.m-common{margin:44px 0 0;max-width:1000px;font-weight:600;font-size:22px;line-height:30px;color:var(--navy)}
.m-common span{color:var(--teal)}
.m-ccards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px}
.m-ccard{background:#fff;padding:28px 28px 32px;border:1px solid var(--rule)}
.m-ccard__logo{display:flex;align-items:center;height:48px;padding-bottom:20px;border-bottom:1px solid var(--rule);box-sizing:content-box}
.m-ccard__logo img{height:auto;max-height:44px;object-fit:contain}
.m-ccard__label{margin:22px 0 0;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.m-ccard__text{margin:10px 0 0;font-size:16px;line-height:23px;color:#2f3d44}
.m-ccard__list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.m-ccard__list li{position:relative;padding-left:22px;font-size:16px;line-height:23px;color:#2f3d44}
.m-ccard__list li::before{content:"—";position:absolute;left:0;font-weight:700;color:var(--teal)}
.m-banner{margin:44px 0 0;background:var(--scene);padding:28px 36px;font-weight:600;font-size:22px;line-height:30px;color:#fff}
.m-banner span{color:var(--steel)}

/* Sobre estes números */
.m-about{padding:48px 0 96px}
.m-about__grid{display:grid;grid-template-columns:repeat(3,minmax(0,400px));gap:40px;margin-top:48px}
.m-about__grid div{border-top:1px solid var(--rule);padding-top:27px}
.m-about__grid h3{margin:0;font-weight:500;font-size:20px;line-height:24px;color:var(--navy)}
.m-about__grid p{margin:18px 0 0;font-size:18px;line-height:30px;color:var(--body)}

/* Responsivo */
@media (max-width:1100px){
  .m-split{grid-template-columns:minmax(0,1fr);row-gap:48px}
  .m-text{display:grid;grid-template-columns:1fr 1fr;gap:32px 48px}
  .m-text .m-head{grid-column:1/-1}
  .m-indicators--row{display:grid;grid-template-columns:1fr 1fr;gap:32px 40px}
  .m-indicators--grid{grid-template-columns:1fr 1fr}
  .m-facts{grid-template-columns:1fr}
  .m-ccards{grid-template-columns:1fr 1fr}
  .m-about__grid{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:760px){
  .m-sec{padding:56px 0}
  .m-companies{padding-top:0}
  .m-title{font-size:30px;line-height:37px}
  .m-text{display:flex;gap:32px}
  .m-ind__value{font-size:34px;line-height:42px}
  .m-indicators--row{grid-template-columns:1fr;gap:24px}
  .m-indicators--row .m-ind__value{font-size:38px;line-height:46px}
  .m-indicators--grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .m-indicators--grid .m-ind__value{font-size:26px;line-height:32px}
  .m-indicators--grid .m-ind__text{font-size:15px;line-height:22px}
  .m-card{padding:24px 20px}
  .m-relevant--wide{flex-direction:column;gap:16px}
  .m-relevant--wide > div{flex:none}
  .m-legend{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}
  .m-stacked__bracket span{font-size:13px;white-space:normal;top:-4px;line-height:1.15}
  .m-div{--axis:36%;gap:14px}
  .m-div__row{height:46px}
  .m-div__label{top:0;transform:none;max-width:none!important;font-size:13px;line-height:16px}
  .m-div__fill{top:22px}
  .m-div__row b{top:34px;font-size:14px}
  .m-table thead{display:none}
  .m-table,.m-table tbody,.m-table tr,.m-table th,.m-table td{display:block;width:100%}
  .m-table tr{padding:14px 0;border-bottom:1px solid var(--rule)}
  .m-table tbody th,.m-table td{border:0;padding:3px 0}
  .m-table tbody th{font-size:16px;padding-bottom:6px}
  .m-table td{display:grid;grid-template-columns:110px 1fr;gap:10px}
  .m-table td::before{content:attr(data-label);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--body);padding-top:3px}
  .m-grp{grid-template-columns:110px 1fr;column-gap:10px}
  .m-grp__label{font-size:13px;line-height:1.2}
  .m-grp__fill{width:calc(var(--w) * 1.05)}
  .m-table{font-size:14px;line-height:20px}
  .m-table thead th{font-size:10px}
  .m-ccards{grid-template-columns:1fr}
  .m-banner{padding:22px 20px;font-size:18px;line-height:26px}
  .m-common,.m-statement--wide{font-size:19px;line-height:27px}
  .m-about__grid{grid-template-columns:1fr;gap:28px}
}

/* Mobile compacto */
@media (max-width: 600px) {
  .m-sec { padding: 36px 0; }
  .m-head { margin-bottom: 12px; }
  .m-title { font-size: clamp(21px, 6vw, 26px); line-height: 1.15; }
  .m-kicker { margin-top: 4px; }
  .m-split { gap: 18px; }
  .m-indicators { gap: 12px; margin: 14px 0; }
  .m-indicator__value, .m-fact__value { font-size: clamp(26px, 8vw, 34px); }
  .m-statement { margin: 12px 0; font-size: 16px; }
  .m-relevant { margin-top: 14px; padding: 12px 14px; }
  .m-card { padding: 16px 14px; }
  .m-card + .m-card { margin-top: 12px; }
  .m-facts { gap: 12px; }
  .m-fact { padding: 14px; }
  .m-ccards { gap: 12px; }
  .m-ccard { padding: 18px 16px; }
  .m-summary .m-indicators--grid { gap: 10px; }
  .m-about__grid { gap: 14px; }
  .rule { margin: 0; }
}

/* ===== Mercado (telemóvel): espaçamentos e alinhamento ===== */
@media (max-width:600px){
  .m-sec{padding:32px 0}
  .m-sec .wrap{padding-left:var(--pad-x);padding-right:var(--pad-x)}
  .m-head,.m-head--wide{margin:0 0 14px}
  .m-title{font-size:clamp(21px,6vw,25px);line-height:1.15;margin-top:6px}
  .m-kicker{margin-top:4px}
  .m-split{display:block}
  .m-text,.m-data{width:100%}
  .m-indicators{display:grid;grid-template-columns:1fr;gap:0;margin:8px 0 0}
  .m-indicators .m-ind{padding:12px 0;border-top:1px solid var(--rule)}
  .m-indicators .m-ind:first-child .m-ind__value{font-size:clamp(32px,10vw,40px);line-height:1.05}
  .m-ind__value{font-size:26px;line-height:1.1}
  .m-ind__text{font-size:13px;line-height:1.45;margin-top:4px}
  .m-indicators--row,.m-indicators--grid{margin-top:8px}
  .m-intro{margin:0 0 6px;font-size:14.5px}
  .m-statement,.m-statement--wide{margin:14px 0 0;padding:12px 14px;background:var(--mist);border-left:3px solid var(--navy);font-size:14.5px;line-height:1.5}
  .m-relevant,.m-relevant--wide{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--rule)}
  .m-relevant__note{font-size:13.5px;line-height:1.5}
  .mfold__btn{display:block;width:100%;margin:16px 0 0;padding:12px;border:1px solid var(--navy);text-align:center;font-size:11px;letter-spacing:2px}
  .m-data{margin-top:14px}
  .m-card{padding:14px;margin-top:12px}
  .m-facts{margin:10px 0 0;gap:10px}
  .m-fact{padding:12px 14px}
  .m-source{font-size:11px;margin:10px 0 0}
  .wrap > .rule{margin:0}
  .m-summary .m-indicators--grid{grid-template-columns:1fr 1fr;column-gap:16px}
  .m-summary .m-indicators .m-ind:first-child .m-ind__value,.m-summary .m-ind__value{font-size:22px}
  .m-summary .m-ind:nth-child(2){border-top:1px solid var(--rule)}
  .m-common{margin:14px 0 0;padding:12px 14px;background:var(--navy);color:var(--snow);font-size:14px;line-height:1.5}
  .m-common span{color:#9fd3e0}
  .m-ccards{gap:12px;margin-top:12px}
  .m-ccard{padding:16px}
  .m-banner{margin:14px 0 0}
  .m-about .wrap{padding-left:var(--pad-x);padding-right:var(--pad-x)}
  .m-about__grid{gap:12px}
}

@media (max-width:600px){
  .m-sec.is-short .m-ind:not(:first-child),
  .m-sec.is-short .m-statement,.m-sec.is-short .m-statement--wide,
  .m-sec.is-short .m-relevant,.m-sec.is-short .m-relevant--wide,
  .m-sec.is-short .mfold__btn,.m-sec.is-short .m-data,.m-sec.is-short .m-facts,
  .m-sec.is-short .m-source,.m-sec.is-short .m-intro,.m-sec.is-short .m-banner{display:none!important}
  .m-sec.is-short .m-indicators{margin-top:4px}
  .mshort__btn{display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;padding:6px 0;background:none;border:0;border-bottom:1px solid currentColor;font:inherit;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--navy)}
  .m-sec--dark .mshort__btn,.m-sec.m-sec--dark .mshort__btn{color:var(--snow)}
  .m-sec{padding:26px 0}
}
@media (max-width:600px){ .m-ccards.mcar{margin-left:calc(-1*var(--pad-x))!important;margin-right:calc(-1*var(--pad-x))!important;padding-left:var(--pad-x);padding-right:var(--pad-x)} .m-ccards.mcar > *{flex-basis:84%} }
