.pd-portada { padding: calc(var(--cabecera-alto) + clamp(40px, 8vh, 88px)) var(--margen) clamp(28px, 5vh, 52px); }
.pd-portada .lamina { margin-bottom: clamp(16px, 2.6vh, 28px); }
.pd-titulo em, .gr-titulo em { font-family: var(--serif); font-style: italic; }
.pd-rotulo { display: block; width: 100%; margin-bottom: clamp(16px, 2.4vh, 24px); color: var(--ceniza); }
.campo { display: grid; gap: 9px; min-width: 0; align-content: start; }
.campo__ayuda + .campo__error:empty { display: none; }
.campo__ayuda[hidden] { display: none; }
.campo__rotulo { color: var(--ceniza); padding-left: 4px; }
.campo__opcional { margin-left: 0.6em; opacity: 0.7; }
.campo__caja { width: 100%; min-height: 54px; padding: 0 24px; border: 1px solid var(--humo); border-radius: 999px; background: var(--carbon); color: var(--hueso);
  font: 400 1.1875rem/1.2 var(--serif); letter-spacing: 0; -webkit-appearance: none; appearance: none;
  transition: border-color var(--d-respuesta), background-color var(--d-respuesta); }
.campo__caja::placeholder { color: var(--ceniza); opacity: 0.7; }
.campo__caja:hover { border-color: rgba(234, 223, 196, 0.3); }
.campo__caja:focus-visible { outline: 1px solid var(--hueso); outline-offset: 3px; border-color: rgba(234, 223, 196, 0.42); }
.campo__caja[aria-invalid="true"] { border-color: var(--tinta-texto); }
.campo__caja:-webkit-autofill { -webkit-text-fill-color: var(--hueso); box-shadow: 0 0 0 60px var(--carbon) inset; caret-color: var(--hueso); }
.campo__ayuda { min-height: 1.4rem; padding-left: 4px; color: var(--ceniza); font-size: 1.0625rem; line-height: 1.3; }
.campo__error { min-height: 1.4rem; padding-left: 4px; color: var(--tinta-texto); font-family: var(--serif); font-style: italic; font-size: 1.0625rem; line-height: 1.3; }
.pd-hoja { row-gap: clamp(40px, 7vh, 64px); align-items: start; padding-bottom: clamp(64px, 10vh, 112px); }
.pd-form { display: grid; gap: clamp(36px, 6vh, 56px); min-width: 0; }
.pd-grupo { display: grid; gap: 18px; min-width: 0; border: 0; padding: 0; margin: 0; }
.pd-grupo legend { padding: 0; }
.pd-par { display: grid; gap: 18px; }
@media (min-width: 640px) { .pd-par { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px var(--canal); align-items: start; } }
.pd-ciudades { display: flex; flex-wrap: wrap; gap: 10px; }
.pd-ciudad { position: relative; display: inline-flex; }
.pd-ciudad input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; -webkit-appearance: none; appearance: none; border: 0; background: none; border-radius: 999px; }
.pd-ciudad span { display: inline-flex; align-items: center; min-height: 52px; padding: 0.08em 26px 0; border: 1px solid var(--humo); border-radius: 999px; color: var(--hueso);
  font: 400 var(--t-micro)/1 var(--antigua); letter-spacing: 0.1em; text-transform: uppercase; transition: background-color var(--d-respuesta), color var(--d-respuesta), border-color var(--d-respuesta); }
.pd-ciudad input:checked + span { background: var(--hueso); border-color: var(--hueso); color: var(--noche); }
.pd-ciudad input:focus-visible + span { outline: 1px solid var(--hueso); outline-offset: 4px; }
@media (hover: hover) { .pd-ciudad input:not(:checked):hover + span { border-color: rgba(234, 223, 196, 0.42); } }
.pd-autoriza { display: grid; gap: 6px; justify-items: start; }
.pd-casilla { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; align-items: start; cursor: pointer; }
.pd-casilla input { position: absolute; left: 0; top: 0; width: 30px; height: 30px; margin: 0; opacity: 0; cursor: pointer; -webkit-appearance: none; appearance: none; border: 0; background: none; border-radius: 50%; }
.pd-casilla__marca { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(234, 223, 196, 0.42); border-radius: 50%; transition: border-color var(--d-respuesta); }
.pd-casilla__marca::before { content: ''; width: 18px; height: 18px; background: var(--tinta); -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat;
  transform: scale(0) rotate(-60deg); opacity: 0; transition: transform 0.5s var(--resorte), opacity 0.2s; }
.pd-casilla input:checked + .pd-casilla__marca { border-color: var(--tinta); }
.pd-casilla input:checked + .pd-casilla__marca::before { transform: none; opacity: 1; }
.pd-casilla input:focus-visible + .pd-casilla__marca { outline: 1px solid var(--hueso); outline-offset: 4px; }
.pd-casilla input[aria-invalid="true"] + .pd-casilla__marca { border-color: var(--tinta-texto); }
.pd-casilla__texto { font-size: 1.0625rem; line-height: 1.4; color: var(--hueso); max-width: 46ch; padding-top: 2px; }
.pd-politica { display: inline-flex; align-items: center; min-height: 44px; margin-left: 44px; color: var(--ceniza); }
.pd-autoriza .campo__error { margin-left: 40px; }
.pd-papel { padding: clamp(24px, 3vw, 36px); background: var(--carbon); border-radius: var(--radio-suave); }
@media (min-width: 900px) { .pd-resumen { position: sticky; top: calc(var(--bajo-cabecera) + 24px); transition: top 0.5s var(--expo); } }
.pd-resumen__cabeza { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.pd-resumen__titulo { font-family: var(--antigua); font-size: 2.125rem; line-height: 1; }
.pd-cambiar { min-height: 44px; color: var(--ceniza); }
.pd-lineas li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 1.1875rem; line-height: 1.25; }
.pd-lineas li > span:last-child { font-family: var(--antigua); font-size: 1.25rem; letter-spacing: 0.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pd-lineas li .cifra { margin-right: 0.15em; }
.pd-promo { display: flex; align-items: flex-start; gap: 12px; margin: 14px 0 4px; padding: 14px 18px; border-radius: var(--radio-suave); background: var(--noche); color: var(--hueso); font-family: var(--serif); font-style: italic; font-size: 1.25rem; line-height: 1.3; }
.pd-promo::before { content: ''; flex: none; width: 18px; height: 18px; margin-top: 5px; background: var(--tinta); -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; }
.pd-promo .cifra { font-style: normal; }
.pd-cuentas { display: grid; gap: 2px; margin-top: 18px; }
.pd-cuentas > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 7px 0; }
.pd-cuentas dt { color: var(--ceniza); }
.pd-cuentas dd { text-align: right; }
.pd-envio__a { color: var(--hueso); }
.pd-pendiente { color: var(--ceniza); font-style: italic; font-size: 1.0625rem; }
.pd-plazo { display: block; margin-top: 2px; color: var(--ceniza); font-family: var(--serif); font-style: italic; font-size: 1rem; letter-spacing: 0; }
.pd-cuentas .es-total { margin-top: 8px; padding-top: 12px; }
.pd-cuentas .es-total dd { font-size: 1.875rem; line-height: 1; }
.pd-cuentas[aria-busy="true"] dd { opacity: 0.55; transition: opacity 0.2s; }
.pd-aviso { margin-top: 14px; color: var(--tinta-texto); font-style: italic; font-size: 1.0625rem; line-height: 1.35; }
.pd-aviso button { display: inline; margin-left: 0.4em; color: var(--hueso); font-style: normal; }
.pd-pago { display: grid; justify-items: center; gap: 4px; margin-top: 22px; }
.pd-nota { margin-top: 12px; color: var(--ceniza); }
.dudas { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; color: var(--ceniza); }
.pd-pago--cerrada .dudas { justify-self: center; }
.pd-cerrada { margin-bottom: 14px; font-size: 1.0625rem; line-height: 1.4; color: var(--hueso); }
.pd-pago--cerrada { justify-items: stretch; }
.pd-vacio { display: grid; justify-items: start; gap: 14px; padding: clamp(8px, 2vh, 24px) var(--margen) clamp(80px, 14vh, 160px); }
.pd-flor, .gr-flor { display: block; width: 52px; height: 52px; background: var(--tinta); -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; }
.pd-vacio__titulo { margin-bottom: 14px; font-family: var(--serif); font-style: italic; font-size: var(--t-entrada); line-height: 1.1; }
.gr { min-height: 100svh; padding: calc(var(--cabecera-alto) + clamp(40px, 8vh, 88px)) var(--margen) clamp(64px, 10vh, 112px); }
.gr .lamina { margin-bottom: clamp(16px, 2.6vh, 28px); }
.gr-titulo { outline: none; }
.gr-estado { display: grid; justify-items: start; gap: 16px; margin-top: clamp(28px, 5vh, 52px); }
.gr-texto { max-width: 34ch; font-size: var(--t-entrada); line-height: 1.25; }
.gr-texto--sigue { max-width: 46ch; color: var(--ceniza); font-size: var(--t-cuerpo); line-height: 1.45; }
.gr-numero__rotulo { color: var(--ceniza); }
.gr-numero { font-family: var(--antigua); font-size: var(--display-3); line-height: 0.95; letter-spacing: 0.02em; color: var(--tinta); margin-bottom: clamp(8px, 2vh, 20px); user-select: all; -webkit-user-select: all; overflow-wrap: anywhere; }
.gr-ref { font-family: var(--antigua); font-size: 1.25rem; letter-spacing: 0.04em; color: var(--hueso); user-select: all; -webkit-user-select: all; overflow-wrap: anywhere; }
.gr-acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(12px, 3vh, 28px); }
.gr-acciones .boton { flex: 1 1 auto; }
@media (min-width: 600px) { .gr-acciones .boton { flex: none; } }
.gr-pasos { display: grid; gap: 14px; margin-bottom: 8px; }
.gr-pasos li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 14px; align-items: center; color: var(--ceniza); }
.gr-pasos__flor { display: block; width: 26px; height: 26px; background: currentColor; opacity: 0.35; transform: scale(0.6); -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; transition: transform 0.7s var(--resorte), opacity 0.4s; }
.gr-pasos li.es-hecho { color: var(--tinta-texto); }
.gr-pasos li.es-hecho .gr-pasos__flor { opacity: 1; transform: scale(0.82); }
.gr-pasos li.es-actual { color: var(--hueso); }
.gr-pasos li.es-actual .gr-pasos__flor { background: var(--tinta); opacity: 1; transform: none; }
html.mov .gr-pasos li.es-actual .gr-pasos__flor { animation: gr-late 2.4s ease-in-out infinite; }
@keyframes gr-late { 0%, 100% { transform: scale(0.82) rotate(0deg); opacity: 0.55; } 50% { transform: scale(1) rotate(24deg); opacity: 1; } }
html.mov .gr-flor--late { animation: gr-late 2.4s ease-in-out infinite; }
.mp-hoja { row-gap: clamp(40px, 7vh, 64px); align-items: start; padding-bottom: clamp(64px, 10vh, 112px); }
.mp-form { display: grid; gap: 18px; justify-items: stretch; }
.mp-boton { justify-self: start; margin-top: 6px; min-width: 190px; }
.mp-espera { display: grid; justify-items: start; gap: 14px; padding-top: clamp(0px, 3vh, 30px); outline: none; }
.mp-rama { margin: 0 0 6px; width: 84px; }
.mp-espera__titulo { font-family: var(--antigua); font-size: var(--t-subtitulo); line-height: 1.05; }
.mp-espera__texto { max-width: 34ch; color: var(--ceniza); font-size: var(--t-cuerpo); line-height: 1.45; }
.mp-espera .boton { margin-top: 10px; }
.mp-papel { outline: none; }
.mp-rotulo { color: var(--ceniza); }
.mp-numero { margin-top: 6px; font-family: var(--antigua); font-size: var(--t-subtitulo); line-height: 1; letter-spacing: 0.02em; }
.mp-ruta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(26px, 4vh, 40px) 0 clamp(24px, 4vh, 36px); }
.mp-ruta li { position: relative; display: grid; justify-items: center; gap: 12px; color: var(--ceniza); text-align: center; }
.mp-ruta li + li::before { content: ''; position: absolute; top: 14px; right: calc(50% + 26px); width: calc(100% - 52px); height: 4px;
  background: radial-gradient(circle, currentColor 1.6px, transparent 2.2px) 0 50% / 12px 4px repeat-x; opacity: 0.45; }
.mp-ruta__flor { display: block; width: 32px; height: 32px; background: currentColor; opacity: 0.4; -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat;
  transform: scale(0.62); transition: transform 0.7s var(--resorte), opacity 0.4s; }
.mp-ruta li.es-hecho { color: var(--tinta-texto); }
.mp-ruta li.es-hecho .mp-ruta__flor { opacity: 1; transform: scale(0.82); }
.mp-ruta li.es-hecho::before { opacity: 1; }
.mp-ruta li.es-actual .mp-ruta__flor { transform: scale(1.12); }
.mp-ruta li.es-actual .micro { color: var(--hueso); }
.mp-cancelado { margin: 18px 0 22px; max-width: 34ch; font-style: italic; font-size: var(--t-cuerpo); line-height: 1.4; }
.mp-datos { display: grid; gap: 2px; }
.mp-datos > div { display: grid; grid-template-columns: minmax(104px, 0.42fr) 1fr; gap: 16px; align-items: baseline; padding: 7px 0; }
.mp-datos dt { color: var(--ceniza); }
.mp-datos dd { font-size: 1.1875rem; line-height: 1.3; overflow-wrap: anywhere; }
.mp-transporte { margin-top: clamp(22px, 4vh, 32px); padding: 20px; border-radius: var(--radio-suave); background: var(--noche); }
.mp-transporte .mp-rotulo { margin-bottom: 8px; }
.mp-transporte .boton { margin-top: 16px; }
.env-lista { margin-top: clamp(18px, 3vh, 26px); display: grid; gap: 10px; }
.env-fila { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'ciudad valor' 'plazo valor'; gap: 4px 20px; align-items: center; padding: 18px 22px; background: var(--carbon); border-radius: var(--radio-suave); }
.env-ciudad { grid-area: ciudad; font-family: var(--antigua); font-size: var(--t-entrada); line-height: 1.1; }
.env-plazo { grid-area: plazo; color: var(--ceniza); }
.env-valor { grid-area: valor; font-size: 1.5rem; }
.env-nota { margin-top: 18px; max-width: 40ch; color: var(--ceniza); font-size: 1.0625rem; line-height: 1.4; }
.env-pasos { margin-top: clamp(18px, 3vh, 26px); display: grid; gap: 14px; }
.env-pasos li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 14px; align-items: start; max-width: 34ch; font-size: var(--t-cuerpo); line-height: 1.4; }
.env-pasos li::before { content: ''; width: 16px; height: 16px; margin-top: 0.36em; background: var(--tinta); -webkit-mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; mask: url(/img/flor.webp?v=cdd0c378) center / contain no-repeat; }
.env-acciones { margin-top: clamp(22px, 4vh, 34px); }
.dt-version { font-size: var(--t-cuerpo); max-width: 46ch; }
.dt-prosa { padding: 0 var(--margen) clamp(64px, 10vh, 112px); font-size: var(--t-cuerpo); line-height: 1.5; }
.dt-prosa h2 { font-family: var(--antigua); font-size: var(--t-entrada); line-height: 1.15; margin-top: 1.9em; }
.dt-prosa ul { display: grid; gap: 0.5em; }
.dt-prosa li { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 12px; align-items: start; }
.dt-prosa li::before { content: ''; width: 5px; height: 5px; margin: 0.66em 0 0 4px; border-radius: 50%; background: var(--tinta); }
.dt-prosa a { overflow-wrap: anywhere; }
.dt-rama { margin: 2.4em 0 1.2em; }
.dt-firma { color: var(--ceniza); font-size: 1.0625rem; }
@media (max-width: 519.98px) {
  .mp-ruta { grid-template-columns: 1fr; gap: 20px; }
  .mp-ruta li { grid-template-columns: 32px minmax(0, 1fr); justify-items: start; align-items: center; gap: 14px; text-align: left; }
  .mp-ruta li + li::before { top: -17px; left: 14px; right: auto; width: 4px; height: 14px; background: radial-gradient(circle, currentColor 1.6px, transparent 2.2px) 50% 0 / 4px 7px repeat-y; }
}
