/* /tiempouf8/ v2 — Diseño del localidade.php de Portugal V1, sin rediseño.
   Clases PT originales mantenidas; solo aisladas dentro de .es-pt-main.
   Componentes corporativos españoles -new fuera de .es-pt-main no se alteran. */
.es-pt-main {
    --bg:#eef2f5;
    --paper:#fff;
    --line:#dde5ea;
    --line2:#edf1f4;
    --text:#17212b;
    --muted:#647482;
    --blue:#17658f;
    --blue2:#247ca8;
    --soft:#f4f7f9;
    --temp:#e11d18;
}
.es-pt-main, .es-pt-main * {
    box-sizing:border-box;
}
.es-pt-main {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:Arial,Helvetica,sans-serif;
}
.es-pt-main {
    max-width:1380px;
    margin:0 auto;
    padding:16px 12px 45px;
}
.es-pt-main .page-grid {
    display:grid;
    grid-template-columns:220px minmax(0,1fr) 260px;
    gap:18px;
    align-items:start;
}
.es-pt-main .left-rail, .es-pt-main .right-rail {
    min-width:0;
}
.es-pt-main .center-column {
    min-width:0;
}
.es-pt-main .rail-box {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:9px;
    overflow:hidden;
    margin-bottom:15px;
}
.es-pt-main .rail-title {
    padding:10px 12px;
    background:var(--blue);
    color:#fff;
    font-weight:700;
    font-size:.95rem;
}
.es-pt-main .rail-body {
    padding:12px;
    color:var(--text);
    font-size:.9rem;
    line-height:1.45;
}
.es-pt-main .ad-placeholder {
    min-height:600px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#8a98a3;
    background:#f8fafb;
    border:1px dashed #c8d1d7;
    border-radius:8px;
    padding:20px;
    font-size:.85rem;
}
.es-pt-main .module-placeholder {
    min-height:130px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#7d8b95;
    background:#f7f9fa;
    border:1px dashed #c8d1d7;
    border-radius:7px;
    padding:16px;
}
.es-pt-main .module-list {
    margin:0;
    padding-left:18px;
}
.es-pt-main .module-list li {
    margin:5px 0;
}
.es-pt-main .module-list a {
    color:#17658f;
    text-decoration:none;
}
.es-pt-main .module-list a:hover {
    text-decoration:underline;
}
.es-pt-main .es-pt-breadcrumb {
    margin:0 0 10px;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.4;
}
.es-pt-main .es-pt-breadcrumb a {
    color:var(--blue);
    text-decoration:none;
}
.es-pt-main .es-pt-breadcrumb a:hover {
    text-decoration:underline;
}
.es-pt-main .es-pt-breadcrumb-sep {
    margin:0 6px;
    color:#9aa7b1;
}
.es-pt-main .forecast-intro {
    margin:12px 0 0;
    color:#40515d;
    font-size:.95rem;
    line-height:1.5;
}
.es-pt-main .day-title {
    margin:0;
}
.es-pt-main .box {
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:9px;
    overflow:hidden;
    margin-bottom:15px;
}
.es-pt-main .now {
    padding:18px;
}
.es-pt-main h1 {
    margin:0 0 4px;
    font-size:clamp(1.8rem,4vw,2.5rem);
}
.es-pt-main .location {
    color:var(--muted);
    margin-bottom:15px;
}
.es-pt-main .now-main {
    display:flex;
    align-items:center;
    gap:25px;
    flex-wrap:wrap;
}
.es-pt-main .now-temp {
    font-size:4rem;
    line-height:1;
    font-weight:700;
}
.es-pt-main .now-condition-wrap {
    display:flex;
    align-items:center;
    gap:12px;
}
.es-pt-main .now-icon {
    width:58px;
    height:58px;
    object-fit:contain;
    flex:0 0 58px;
}
.es-pt-main .now-condition {
    font-size:1.25rem;
    font-weight:700;
}
.es-pt-main .now-time {
    color:var(--muted);
    margin-top:4px;
}
.es-pt-main .weather-warning {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:15px 17px;
    border:1px solid var(--line);
    border-left:7px solid #ffd43b;
    border-radius:9px;
    background:#fff9e8;
    margin-bottom:15px;
}
.es-pt-main .weather-warning.level-orange {
    border-left-color:#ff8a16;
    background:#fff3e8;
}
.es-pt-main .weather-warning.level-red {
    border-left-color:#e53935;
    background:#fdeced;
}
.es-pt-main .weather-warning-main {
    min-width:0;
}
.es-pt-main .weather-warning-kicker {
    font-size:.76rem;
    line-height:1.2;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--muted);
    font-weight:800;
    margin-bottom:4px;
}
.es-pt-main .weather-warning-title {
    font-size:1.05rem;
    line-height:1.3;
    font-weight:800;
}
.es-pt-main .weather-warning-meta {
    margin-top:4px;
    color:var(--muted);
    font-size:.9rem;
    line-height:1.35;
}
.es-pt-main .weather-warning-link {
    flex:0 0 auto;
    display:inline-block;
    padding:9px 13px;
    border-radius:7px;
    background:var(--blue);
    color:#fff;
    text-decoration:none;
    font-weight:700;
    font-size:.9rem;
}
.es-pt-main .weather-warning-link:hover {
    background:var(--blue2);
}
.es-pt-main .day-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    flex-wrap:wrap;
    padding:9px 12px;
    background:var(--blue);
    color:#fff;
}
.es-pt-main .day-title {
    font-size:1.25rem;
    font-weight:700;
}
.es-pt-main .day-summary {
    font-size:.90rem;
    font-weight:600;
}
.es-pt-main .forecast-table-shell {
    width:100%;
    overflow-x:hidden;
}
.es-pt-main .forecast-head, .es-pt-main .forecast-row {
    display:grid;
    grid-template-columns:
        64px
        58px
        86px
        82px
        105px
        100px
        88px
        36px;
    align-items:center;
    justify-content:start;
}
.es-pt-main .forecast-head {
    background:var(--blue2);
    color:#fff;
    font-weight:700;
    font-size:.86rem;
    width:max-content;
    min-width:100%;
}
.es-pt-main .forecast-row {
    width:max-content;
    min-width:100%;
}
.es-pt-main .forecast-head > div {
    padding:8px 7px;
}
.es-pt-main .forecast-row {
    min-height:42px;
    border-bottom:1px solid var(--line2);
}
.es-pt-main .forecast-row:last-child {
    border-bottom:0;
}
.es-pt-main .forecast-row:nth-of-type(even) {
    background:#fbfcfd;
}
.es-pt-main .cell {
    padding:8px 7px;
}
.es-pt-main .time {
    font-weight:700;
}
.es-pt-main .es-forecast-icon-cell {
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
}
.es-pt-main .weather-icon-wrap {
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.es-pt-main .weather-icon {
    display:block;
    width:40px;
    height:40px;
    object-fit:contain;
}
.es-pt-main .glyph {
    width:22px;
    text-align:center;
    font-size:1.2rem;
}
.es-pt-main .weather-text {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.es-pt-main .temperature {
    color:var(--temp);
    font-size:1.08rem;
    font-weight:700;
}
.es-pt-main .apparent {
    font-weight:700;
    white-space:nowrap;
}
.es-pt-main .humidity, .es-pt-main .cloudiness {
    white-space:nowrap;
}
.es-pt-main .wind, .es-pt-main .rain {
    white-space:nowrap;
}
.es-pt-main .head-short {
    display:none;
}
.es-pt-main .toggle {
    display:flex;
    justify-content:center;
    align-items:center;
}
.es-pt-main .toggle button {
    width:25px;
    height:25px;
    padding:0;
    border:1.5px solid #1482bd;
    border-radius:50%;
    background:#fff;
    color:#0877ae;
    font-size:19px;
    line-height:20px;
    cursor:pointer;
}
.es-pt-main .toggle button:hover {
    background:#eef8fc;
}
.es-pt-main .toggle button[aria-expanded="true"] {
    background:#0877ae;
    color:#fff;
}
.es-pt-main .detail {
    display:none;
    background:#f1f4f7;
    border-bottom:1px solid var(--line);
    padding:16px 20px 18px;
}
.es-pt-main .detail.open {
    display:block;
}
.es-pt-main .detail-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px 26px;
    width:100%;
    max-width:none;
}
.es-pt-main .detail-item {
    display:grid;
    grid-template-columns:minmax(120px,1fr) auto;
    gap:12px;
    align-items:center;
}
.es-pt-main .detail-label {
    color:#455560;
}
.es-pt-main .detail-value {
    font-weight:700;
    white-space:nowrap;
}
.es-pt-main .detail-empty {
    grid-column:1 / -1;
    color:var(--muted);
    padding:4px 0;
}
.es-pt-main .source {
    padding:14px 18px;
    color:var(--muted);
    font-size:.8rem;
    line-height:1.5;
}
.es-pt-main .apparent-note {
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid var(--line);
    color:var(--muted);
    font-size:.78rem;
    line-height:1.45;
}
@media(min-width:901px){.es-pt-main .forecast-table-shell {
        width:100%;
    }
.es-pt-main .forecast-head, .es-pt-main .forecast-row {
        grid-template-columns:
            62px
            62px
            minmax(92px,1.05fr)
            minmax(88px,1fr)
            minmax(118px,1.35fr)
            minmax(112px,1.20fr)
            minmax(96px,1fr)
            44px;
        width:100%;
        min-width:0;
        justify-content:stretch;
    }
.es-pt-main .forecast-head > div {
        padding-left:6px;
        padding-right:6px;
        text-align:center;
        white-space:nowrap;
    }
.es-pt-main .forecast-row > .cell {
        text-align:center;
        padding-left:6px;
        padding-right:6px;
    }
.es-pt-main .forecast-row .es-forecast-icon-cell {
        justify-content:center;
    }
.es-pt-main .forecast-row .wind, .es-pt-main .forecast-row .rain, .es-pt-main .forecast-row .humidity, .es-pt-main .forecast-row .cloudiness, .es-pt-main .forecast-row .temperature, .es-pt-main .forecast-row .apparent, .es-pt-main .forecast-row .time {
        text-align:center;
    }}
@media(max-width:1180px){.es-pt-main .page-grid {
        grid-template-columns:minmax(0,1fr) 250px;
    }
.es-pt-main .left-rail {
        display:none;
    }}
@media(max-width:1050px){.es-pt-main .detail-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }}
@media(max-width:900px){.es-pt-main .page-grid {
        display:flex;
        flex-direction:column;
        gap:0;
    }
.es-pt-main .center-column {
        width:100%;
        order:1;
    }
.es-pt-main .right-rail {
        width:100%;
        order:2;
    }
.es-pt-main .left-rail {
        display:none;
    }}
@media(max-width:760px){.es-pt-main {
        padding-left:8px;
        padding-right:8px;
    }
.es-pt-main .box {
        border-left:0;
        border-right:0;
        border-radius:0;
    }
.es-pt-main .weather-warning {
        align-items:flex-start;
        flex-direction:column;
        border-right:0;
        border-radius:0;
    }
.es-pt-main .day-head {
        flex-wrap:nowrap;
    }
.es-pt-main .day-summary {
        display:none;
    }
.es-pt-main .forecast-head {
        display:grid;
        grid-template-columns:
            38px
            30px
            40px
            42px
            minmax(56px,1fr)
            48px
            38px
            26px;
        width:100%;
        min-width:0;
        font-size:.68rem;
    }
.es-pt-main .forecast-head > div {
        padding:6px 2px;
        text-align:center;
        overflow:hidden;
    }
.es-pt-main .forecast-row {
        grid-template-columns:
            38px
            30px
            40px
            42px
            minmax(56px,1fr)
            48px
            38px
            26px;
        width:100%;
        min-width:0;
        font-size:.78rem;
    }
.es-pt-main .head-full {
        display:none;
    }
.es-pt-main .head-short {
        display:inline;
    }
.es-pt-main .cell {
        padding:8px 4px;
    }
.es-pt-main .es-forecast-icon-cell {
        justify-content:center;
    }
.es-pt-main .weather-icon-wrap {
        width:29px;
        height:30px;
        flex-basis:29px;
    }
.es-pt-main .weather-icon {
        width:29px;
        height:29px;
    }
.es-pt-main .glyph {
        width:18px;
    }
.es-pt-main .now-icon {
        width:48px;
        height:48px;
        flex-basis:48px;
    }
.es-pt-main .wind {
        white-space:normal;
        line-height:1.15;
    }
.es-pt-main .rain {
        white-space:normal;
    }
.es-pt-main .detail {
        padding:14px 14px 16px;
    }
.es-pt-main .detail-grid {
        grid-template-columns:1fr;
        gap:9px;
    }}
@media(max-width:430px){.es-pt-main .forecast-head, .es-pt-main .forecast-row {
        grid-template-columns:
            36px
            28px
            38px
            40px
            minmax(52px,1fr)
            45px
            36px
            24px;
    }
.es-pt-main .forecast-row {
        font-size:.74rem;
    }
.es-pt-main .temperature {
        font-size:1rem;
    }
.es-pt-main .apparent {
        font-size:.86rem;
    }
.es-pt-main .wind, .es-pt-main .rain, .es-pt-main .cloudiness {
        line-height:1.12;
    }
.es-pt-main .toggle button {
        width:23px;
        height:23px;
    }}
@media(min-width:1181px){.es-pt-main .left-rail {
        position:sticky;
        top:12px;
        align-self:start;
    }}

/* Ajustes estrictamente necesarios para el laboratorio español (no cambian la maqueta PT) */
.es-pt-main .es-lab-note{font-size:.82rem;color:#697886;margin:0 0 12px;line-height:1.5}
.es-pt-main .es-lab-note a{color:#17658f}
.es-pt-main .es-lab-warn{padding:12px 15px;margin-bottom:15px;background:#fff8e5;border:1px solid #efddad;border-left:5px solid #e6a825;border-radius:8px;color:#583d00;font-size:.88rem}
.es-pt-main .es-lab-subtitle{color:#647482;font-size:.82rem;margin-top:8px}
.es-pt-main .es-lab-ad{color:#798895;border:1px dashed #dae1e7;padding:8px 12px;border-radius:7px;font-size:.76rem;text-align:center;margin:12px 0;background:#fafbfc}
.es-pt-main .es-lab-related-note{font-size:.82rem;color:#647482}
.es-pt-main .es-lab-empty{padding:20px 18px;color:#5c6c77}
/* Los iconos de las filas utilizan una clase propia para evitar el padding !important de main.css (.weather). */

/* Index de pruebas v1 */
.es-loc-main{max-width:1100px;margin:auto;padding:28px 18px}.es-loc-panel{padding:22px;background:#fff;border:1px solid #dde5ea;border-radius:9px}.es-loc-main a{color:#17658f}

/* ===== 20/10/2026 — Corrección del encajonamiento de la v2 =====
   El CSS corporativo para <main> limitaba la anchura porque la plantilla
   de Portugal fijaba max-width, pero no declaraba width:100%.
   Se limita al main de este laboratorio para no afectar al resto del sitio. */
body .pusher > main.es-pt-main {
    box-sizing: border-box;
    display: block;
    float: none;
    clear: both;
    width: 100% !important;
    max-width: 1380px !important;
    min-width: 0;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 16px 12px 45px;
}
/* La franja de migas no es la barra de navegación del CSS corporativo. */
.es-pt-main .es-pt-breadcrumb {
    display:block;
    width:auto;
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    margin:0 0 10px;
    color:#647482;
    font-size:.82rem;
    font-weight:400;
    line-height:1.4;
}
.es-pt-main .es-pt-breadcrumb a {
    color:#17658f;
    text-decoration:none;
    font-weight:400;
}
.es-pt-main .es-pt-breadcrumb-sep {margin:0 6px;color:#9aa7b1}
.es-pt-main h1 {line-height:1.14;overflow-wrap:break-word}
/* Si falta espacio, scroll horizontal de la tabla, nunca recorte. */
@media (min-width:761px) {
  .es-pt-main .forecast-table-shell {overflow-x:auto;overflow-y:hidden}
  .es-pt-main .forecast-head,
  .es-pt-main .forecast-row {min-width:685px}
}
/* No reservar el lateral vacío de anuncios cuando estrangula la previsión. */
@media (max-width:1399px) {
  .es-pt-main .page-grid {grid-template-columns:minmax(0,1fr) 250px}
  .es-pt-main .left-rail {display:none}
}
@media (max-width:1099px) {
  .es-pt-main .page-grid {display:flex;flex-direction:column;gap:0}
  .es-pt-main .center-column,.es-pt-main .right-rail {width:100%;min-width:0}
  .es-pt-main .center-column {order:1}
  .es-pt-main .right-rail {order:2}
  .es-pt-main .left-rail {display:none}
}
@media (max-width:760px) {
  .es-pt-main .forecast-table-shell {overflow-x:hidden}
}

/* La hoja corporativa main.css resetea a normal el peso de todos los elementos.
   Portugal muestra las cabeceras de la tabla en negrita. */
.es-pt-main .forecast-head > div {font-weight:700}


/* v6 — columnas horarias y precipitación; aislado en /tiempouf8/. */
.es-pt-main .forecast-row .wind-info,
.es-pt-main .forecast-row .rain-info {
    display:inline-flex;
    align-items:baseline;
    justify-content:center;
    gap:.25em;
}
.es-pt-main .forecast-row .rain-unit {white-space:nowrap}

@media (max-width:760px) {
    /* Proporciones que se adaptan al espacio disponible, sin huecos artificiales. */
    .es-pt-main .forecast-head,
    .es-pt-main .forecast-row {
        grid-template-columns:12% 9% 12% 12% 19% 17% 11% 8%;
        width:100%;
        min-width:0;
        justify-content:stretch;
    }
    .es-pt-main .forecast-head > div {
        padding-left:1px;
        padding-right:1px;
        white-space:nowrap;
    }
    .es-pt-main .forecast-row > .cell {
        min-width:0;
        padding:6px 1px;
        text-align:center;
    }
    .es-pt-main .forecast-row .wind-info,
    .es-pt-main .forecast-row .rain-info {
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:2px;
        line-height:1.15;
        white-space:nowrap;
    }
    .es-pt-main .forecast-row .wind,
    .es-pt-main .forecast-row .rain {
        overflow:hidden;
    }
    .es-pt-main .forecast-row .wind-speed,
    .es-pt-main .forecast-row .wind-dir,
    .es-pt-main .forecast-row .rain-amount,
    .es-pt-main .forecast-row .rain-unit {
        display:block;
        line-height:1.2;
    }
    .es-pt-main .forecast-row .wind-dir,
    .es-pt-main .forecast-row .rain-unit {
        font-size:.88em;
    }
    .es-pt-main .forecast-row .toggle button {margin:0 auto}
}


/* v7 — La precipitación es una sola medida: número + l/m² en una línea.
   Mantenemos ÚNICAMENTE el viento en dos líneas en móviles. */
@media (max-width:760px) {
    .es-pt-main .forecast-row .rain-info {
        display:inline-flex;
        flex-direction:row;
        align-items:baseline;
        justify-content:center;
        flex-wrap:nowrap;
        gap:.16em;
        white-space:nowrap;
        max-width:100%;
    }
    .es-pt-main .forecast-row .rain-amount,
    .es-pt-main .forecast-row .rain-unit {
        display:inline;
        flex:0 0 auto;
        white-space:nowrap;
    }
    /* Dos puntos de ancho pasan del viento a la precipitación. */
    .es-pt-main .forecast-head,
    .es-pt-main .forecast-row {
        grid-template-columns:12% 9% 12% 12% 17% 19% 11% 8%;
    }
}

/* v8: humedad ocupa la séptima columna; la nubosidad queda exclusivamente
   en el detalle desplegable. La cuadrícula ya se adapta a 8 columnas. */
@media (max-width:760px) {
    .es-pt-main .forecast-head > .humidity,
    .es-pt-main .forecast-row > .humidity {
        display:block;
    }
}

/* v9: los tramos largos se muestran sin ensanchar la columna de la hora. */
.es-pt-main .forecast-row .time-start,
.es-pt-main .forecast-row .time-end {display:block;white-space:nowrap}
.es-pt-main .forecast-row .time-end {font-size:.76em;font-weight:500;line-height:1.25}
.es-pt-main .es-forecast-interval-note {font-size:.86rem;line-height:1.5;color:var(--text);margin:0 0 10px}
@media(max-width:760px){
  .es-pt-main .forecast-row .time-end {font-size:.70em;letter-spacing:-.025em}
}

/* v10 — Lectura más cómoda en escritorio para España y Europa.
   Mantener exactamente la tipografía móvil que ya funciona. */
@media (min-width: 901px) {
    .es-pt-main .forecast-head { font-size: 15px; }
    .es-pt-main .forecast-head > div { font-weight: 600; }
    .es-pt-main .forecast-row { font-size: 16px; }
    .es-pt-main .forecast-row .time { font-weight: 600; }
    .es-pt-main .forecast-row .temperature { font-size: 1.16rem; }
    .es-pt-main .detail { font-size: 15px; }
}

/* v12 — La herencia del peso también se aplica en móvil.
   No modifica tamaños, diseño ni el peso especial de .time-end. */
.es-pt-main .forecast-head > div > span { font-weight: inherit; }
.es-pt-main .forecast-row .time-start { font-weight: inherit; }
