/* ARTERNATIVAS Estudio · mismo lenguaje visual que COVA.
   Contenedor con container queries: se adapta al ancho real de la columna del tema, no al de la pantalla. */
.estudio-host { container-type: inline-size; container-name: estudio; width: 100%; }
.es {
  --es-bg: #fdfcf9;
  --es-surface: #ffffff;
  --es-sunk: #f4f2ec;
  --es-ink: #1c1c1c;
  --es-muted: #5b5f66;
  --es-line: #e6e2d8;
  --es-blue: #2c5f8a;
  --es-blue-dk: #1a3f5c;
  --es-blue-soft: #eaf1f7;
  --es-amber: #fcb800;
  --es-amber-soft: #fff6d9;
  --es-ok: #2b7a4b;
  --es-ok-soft: #e6f3eb;
  --es-warn: #a8322d;
  --es-warn-soft: #fbeceb;
  --es-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --es-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --es-r: 10px;
  position: relative;
  font-family: var(--es-body);
  color: var(--es-ink);
  background: var(--es-bg);
  font-size: 16px;
  line-height: 1.55;
  border: 1px solid var(--es-line);
  border-radius: 14px;
  overflow: hidden;
  max-width: 1120px;
  margin-inline: auto;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
.es *, .es *::before, .es *::after { box-sizing: border-box; }
.es :where(button, input, select, textarea) { font: inherit; color: inherit; }
.es :focus-visible { outline: 3px solid var(--es-amber); outline-offset: 2px; }
.es :where(h1, h2, h3, p, dl, dd, ol, ul, figure, fieldset) { margin: 0; }
.es :where(dl, dd, fieldset) { padding: 0; }
.es fieldset { border: 0; min-width: 0; }
.es img { max-width: 100%; height: auto; display: block; }
.es a { color: var(--es-blue); }
.es-cargando { padding: 24px; color: #5b5f66; }

/* Cabecera */
.es-top { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; padding: 18px 28px; background: var(--es-blue-dk); color: #fff; border-bottom: 4px solid var(--es-amber); }
.es-brand { display: flex; align-items: center; gap: 14px; }
.es-mark { font-family: var(--es-display); font-weight: 900; font-size: 26px; letter-spacing: .04em; line-height: 1; color: var(--es-amber); }
.es-sub { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #dbe6ef; border-left: 1px solid rgba(255,255,255,.3); padding-left: 14px; }
.es-user { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 14px; }
.es-user a { color: #fff; text-underline-offset: 3px; }
.es-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--es-amber); }
.es-tabs { display: flex; gap: 4px; padding: 0 20px; background: var(--es-surface); border-bottom: 1px solid var(--es-line); overflow-x: auto; scrollbar-width: none; }
.es-tab { appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; padding: 14px 14px 12px; font-weight: 600; font-size: 15px; color: var(--es-muted); cursor: pointer; white-space: nowrap; }
.es-tab:hover { color: var(--es-blue-dk); }
.es-tab.is-on { color: var(--es-blue-dk); border-bottom-color: var(--es-amber); }
.es-count { display: inline-block; min-width: 22px; padding: 0 6px; border-radius: 99px; background: var(--es-sunk); font-size: 12px; text-align: center; }
.es-main { padding: 28px; display: grid; gap: 22px; }
.es-foot { padding: 14px 28px; font-size: 12px; color: var(--es-muted); border-top: 1px solid var(--es-line); background: var(--es-surface); }

/* Tipografía */
.es-h2 { font-family: var(--es-display); font-weight: 700; font-size: 26px; line-height: 1.2; color: var(--es-blue-dk); }
.es-h3 { font-family: var(--es-display); font-weight: 700; font-size: 19px; line-height: 1.25; color: var(--es-blue-dk); }
.es-k { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--es-muted); font-weight: 600; margin-bottom: 6px; }
.es-lead { color: var(--es-muted); max-width: 62ch; }
.es-meta { display: block; color: var(--es-muted); font-size: 14px; }
.es-small { font-size: 13px; color: var(--es-muted); max-width: 72ch; }
.es-nota { font-size: 14px; color: var(--es-muted); }
.es-centro { text-align: center; margin-inline: auto; }
.es-num { text-align: right; white-space: nowrap; }

/* Botones */
.es-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border-radius: 999px; border: 1.5px solid transparent; font-weight: 600; font-size: 15px; line-height: 1.2; cursor: pointer; text-decoration: none; transition: background .15s, border-color .15s; text-align: center; }
.es-btn:active { transform: translateY(1px); }
.es-btn[disabled] { opacity: .5; cursor: not-allowed; }
.es-btn-p { background: var(--es-amber); color: var(--es-blue-dk) !important; }
.es-btn-p:hover { filter: brightness(.95); }
.es-btn-s { background: var(--es-blue); color: #fff !important; }
.es-btn-s:hover { background: var(--es-blue-dk); }
.es-btn-g { background: var(--es-surface); border-color: var(--es-line); color: var(--es-blue-dk) !important; }
.es-btn-g:hover { border-color: var(--es-blue); }
.es-btn-off { background: var(--es-sunk); color: var(--es-muted) !important; cursor: default; font-weight: 500; font-size: 14px; }
.es-btn-sm { min-height: 36px; padding: 6px 14px; font-size: 14px; }
.es-link, .es-back { background: none; border: 0; padding: 4px 0; color: var(--es-blue); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }
.es-back { text-decoration: none; justify-self: start; }
.es-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }

/* Tarjetas y bloques */
.es-card { background: var(--es-surface); border: 1px solid var(--es-line); border-radius: var(--es-r); padding: 20px 22px; min-width: 0; }
.es-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.es-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.es-row-top { align-items: flex-end; }
.es-plan-card .es-h2 { margin-bottom: 4px; }
.es-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 14px 18px; border-radius: var(--es-r); background: var(--es-amber-soft); border: 1px solid #f1d47a; }
.es-banner .es-btn { margin-left: auto; }
.es-banner-err { background: var(--es-warn-soft); border-color: #ecc1be; }

.es-meter { margin-top: 12px; }
.es-meter-top { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.es-meter-bar { margin-top: 6px; height: 8px; border-radius: 99px; background: var(--es-sunk); overflow: hidden; }
.es-meter-bar span { display: block; height: 100%; background: var(--es-blue); border-radius: inherit; }
.es-meter.is-alto .es-meter-bar span { background: var(--es-amber); }
.es-meter.is-full .es-meter-bar span { background: var(--es-warn); }

.es-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--es-line); border-radius: var(--es-r); background: var(--es-surface); margin-top: 8px; }
.es-card .es-sum { border: 0; margin-top: 4px; }
.es-sum > div { padding: 12px 18px; min-width: 0; }
.es-sum > div + div { border-left: 1px solid var(--es-line); }
.es-sum dt { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--es-muted); font-weight: 600; }
.es-sum dd { font-family: var(--es-display); font-weight: 700; font-size: 24px; color: var(--es-blue-dk); }

.es-check { list-style: none; padding: 0; margin-top: 6px; display: grid; }
.es-check li { display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--es-line); }
.es-check li div { display: grid; }
.es-check li span:not(.es-tick) { font-size: 14px; color: var(--es-muted); }
.es-tick { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--es-line); }
.es-check li.is-ok .es-tick { background: var(--es-ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat; border-color: var(--es-ok); }
.es-check li.is-ok strong { color: var(--es-muted); text-decoration: line-through; text-decoration-color: var(--es-line); }

/* Planes (en el panel) */
.es-mini-planes { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.es-mini-planes .is-actual { border-color: var(--es-amber); box-shadow: 0 0 0 2px var(--es-amber) inset; }
.es-precio { font-family: var(--es-display); font-size: 28px; font-weight: 700; color: var(--es-blue-dk); margin: 6px 0 2px; }
.es-precio small, .es-plan-precio small { font-family: var(--es-body); font-size: 14px; font-weight: 500; color: var(--es-muted); }
.es-lista { padding-left: 18px; margin: 12px 0 16px; font-size: 14px; display: grid; gap: 4px; }

/* Obras */
.es-lleno { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: var(--es-muted); }
.es-obras { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.es-obra { background: var(--es-surface); border: 1px solid var(--es-line); border-radius: var(--es-r); overflow: visible; display: grid; grid-template-rows: auto 1fr; }
.es-obra-img { position: relative; aspect-ratio: 4 / 3; background: var(--es-sunk); border-radius: var(--es-r) var(--es-r) 0 0; overflow: hidden; }
.es-obra-img img { width: 100%; height: 100%; object-fit: cover; }
.es-obra-img .es-chip { position: absolute; left: 10px; top: 10px; }
.es-cova { position: absolute; right: 10px; top: 10px; font-size: 11px; font-weight: 700; letter-spacing: .08em; padding: 3px 8px; border-radius: 99px; background: var(--es-blue-dk); color: #fff; }
.es-cova.is-prem { background: var(--es-amber); color: var(--es-blue-dk); }
.es-obra-body { padding: 14px 16px 16px; display: grid; gap: 4px; align-content: start; }
.es-obra-precio { font-weight: 700; font-size: 17px; margin-top: 2px; }
.es-obra-acc { display: flex; gap: 8px; margin-top: 10px; align-items: center; flex-wrap: wrap; }
.es-mas { position: relative; margin-left: auto; }
.es-mas summary { list-style: none; letter-spacing: .1em; }
.es-mas summary::-webkit-details-marker { display: none; }
.es-mas-menu { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 5; min-width: 190px; background: var(--es-surface); border: 1px solid var(--es-line); border-radius: var(--es-r); box-shadow: 0 10px 30px rgba(26,63,92,.15); padding: 6px; display: grid; }
.es-mas-menu a, .es-mas-menu button { display: block; text-align: left; padding: 9px 12px; border-radius: 6px; background: none; border: 0; font-size: 14px; color: var(--es-ink); text-decoration: none; cursor: pointer; }
.es-mas-menu a:hover, .es-mas-menu button:hover { background: var(--es-sunk); }
.es-mas-menu button[data-a="eliminar"] { color: var(--es-warn); }

.es-chip { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 99px; background: var(--es-sunk); color: var(--es-muted); white-space: nowrap; }
.es-chip-ok, .es-chip-pagada { background: var(--es-ok-soft); color: var(--es-ok); }
.es-chip-rev, .es-chip-garantia, .es-chip-envio { background: var(--es-amber-soft); color: #7a5600; }
.es-chip-sold, .es-chip-disponible, .es-chip-tramite { background: var(--es-blue-soft); color: var(--es-blue-dk); }
.es-chip-reembolsada, .es-chip-cancelada { background: var(--es-warn-soft); color: var(--es-warn); }
.es-vacio { text-align: center; padding: 40px 20px; border: 1.5px dashed var(--es-line); border-radius: var(--es-r); display: grid; gap: 10px; justify-items: center; }
.es-vacio p:not(.es-h3) { color: var(--es-muted); max-width: 52ch; }

/* Asistente */
.es-pasos { list-style: none; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.es-pasos button { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 4px 8px 4px 0; font-weight: 600; color: var(--es-muted); cursor: pointer; }
.es-pasos button[disabled] { cursor: default; }
.es-pasos span { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--es-line); font-size: 14px; }
.es-pasos li + li::before { content: ''; display: inline-block; width: 24px; height: 2px; background: var(--es-line); vertical-align: middle; margin-right: 8px; }
.es-pasos .is-on button { color: var(--es-blue-dk); }
.es-pasos .is-on span { background: var(--es-amber); border-color: var(--es-amber); color: var(--es-blue-dk); }
.es-pasos .is-ok span { background: var(--es-blue); border-color: var(--es-blue); color: #fff; }
.es-paso { display: grid; gap: 16px; padding: 24px; }

.es-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.es-foto { position: relative; border-radius: var(--es-r); overflow: hidden; border: 1px solid var(--es-line); background: var(--es-sunk); aspect-ratio: 1; }
.es-foto.is-main { border: 2px solid var(--es-amber); }
.es-foto img { width: 100%; height: 100%; object-fit: cover; }
.es-foto .es-chip { position: absolute; left: 8px; top: 8px; }
.es-foto figcaption { position: absolute; inset: auto 0 0 0; display: flex; justify-content: space-between; gap: 4px; padding: 6px; background: linear-gradient(transparent, rgba(0,0,0,.6)); }
.es-foto figcaption button { background: rgba(255,255,255,.92); border: 0; border-radius: 99px; padding: 4px 10px; font-size: 12px; font-weight: 600; cursor: pointer; color: var(--es-blue-dk); }
.es-foto figcaption button:last-child { margin-left: auto; }
.es-drop { display: grid; place-content: center; justify-items: center; gap: 4px; text-align: center; aspect-ratio: 1; border: 2px dashed #c9c3b4; border-radius: var(--es-r); background: var(--es-surface); cursor: pointer; padding: 12px; font-size: 13px; color: var(--es-muted); }
.es-drop strong { color: var(--es-blue-dk); font-size: 15px; }
.es-drop:hover, .es-drop.is-over { border-color: var(--es-blue); background: var(--es-blue-soft); }
.es-drop-ico { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--es-amber); color: var(--es-blue-dk); font-size: 26px; font-weight: 700; line-height: 1; }
.es-progreso { position: relative; height: 26px; border-radius: 99px; background: var(--es-sunk); overflow: hidden; }
.es-progreso span { display: block; height: 100%; background: var(--es-blue-soft); transition: width .3s; }
.es-progreso::after { content: attr(data-t); position: absolute; inset: 0; display: grid; place-items: center; font-size: 13px; font-weight: 600; color: var(--es-blue-dk); }
.es-consejos { background: var(--es-sunk); border-radius: var(--es-r); padding: 14px 18px; font-size: 14px; }
.es-consejos ul { padding-left: 18px; margin: 6px 0; }

.es-form { display: grid; gap: 16px; }
.es-f { display: grid; gap: 6px; min-width: 0; align-content: start; }
.es-f label, .es-f legend { font-weight: 600; font-size: 14px; }
.es-f legend { margin-bottom: 6px; }
.es-f small, .es-f legend small { font-size: 13px; color: var(--es-muted); font-weight: 400; }
.es-f input:not([type=checkbox]):not([type=radio]), .es-f textarea, .es-f select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--es-line); border-radius: 8px; background: #fff; }
.es-f textarea { resize: vertical; min-height: 110px; }
.es-f input:focus, .es-f textarea:focus { border-color: var(--es-blue); outline: none; box-shadow: 0 0 0 3px var(--es-blue-soft); }
.es-tri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.es-tri .es-f label { font-weight: 500; color: var(--es-muted); }
.es-dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; }
.es-cuatro { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 10px; }
.es-cats { display: flex; flex-wrap: wrap; gap: 8px; }
.es-cat input { width: 16px; height: 16px; margin: 0; flex: none; }
.es-cat { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1.5px solid var(--es-line); border-radius: 99px; font-size: 14px; cursor: pointer; background: #fff; }
.es-cat.is-sub { font-size: 13px; }
.es-cat:has(input:checked) { border-color: var(--es-blue); background: var(--es-blue-soft); color: var(--es-blue-dk); }
.es-envio { border: 1px solid var(--es-line); border-radius: var(--es-r); padding: 12px 16px; }
.es-envio summary { cursor: pointer; font-weight: 600; font-size: 14px; }
.es-error { background: var(--es-warn-soft); color: var(--es-warn); border-radius: 8px; padding: 10px 14px; font-size: 14px; font-weight: 600; }
.es-error[hidden] { display: none; }
.es-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--es-line); padding-top: 16px; }

.es-precio-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 22px; align-items: start; }
.es-f-precio input { font-size: 28px; font-weight: 700; min-height: 64px; color: var(--es-blue-dk); }
.es-reparto { background: var(--es-blue-soft); border-radius: var(--es-r); padding: 16px 18px; }
.es-reparto dl { display: grid; gap: 6px; margin: 4px 0 10px; }
.es-reparto dl div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.es-reparto dd { font-weight: 600; white-space: nowrap; }
.es-reparto .es-total { border-top: 1px solid #c8d8e6; padding-top: 8px; margin-top: 2px; font-size: 17px; font-weight: 700; color: var(--es-blue-dk); }
.es-resumen-obra { display: flex; gap: 14px; align-items: center; background: var(--es-sunk); border-radius: var(--es-r); padding: 12px; }
.es-resumen-obra img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; flex: none; }
.es-resumen-obra div { display: grid; min-width: 0; }

/* Ventas */
.es-como { background: var(--es-surface); border: 1px solid var(--es-line); border-radius: var(--es-r); padding: 16px 20px; font-size: 14px; }
.es-como ol { padding-left: 20px; margin: 8px 0 0; display: grid; gap: 4px; }
.es-tabla-wrap { overflow-x: auto; border: 1px solid var(--es-line); border-radius: var(--es-r); background: var(--es-surface); }
.es-tabla { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.es-tabla th { text-align: left; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--es-muted); padding: 12px 14px; border-bottom: 1px solid var(--es-line); background: var(--es-sunk); }
.es-tabla td { padding: 12px 14px; border-bottom: 1px solid var(--es-line); vertical-align: top; }
.es-tabla tr:last-child td { border-bottom: 0; }
.es-tabla td .es-meta { font-size: 13px; margin-top: 2px; }

/* Mi tienda */
.es-portada { border: 1px solid var(--es-line); border-radius: var(--es-r); overflow: hidden; background: var(--es-surface); }
.es-portada-banner { position: relative; aspect-ratio: 1650 / 350; min-height: 110px; background: linear-gradient(135deg, var(--es-blue-dk), var(--es-blue)) center/cover no-repeat; }
.es-portada-cambiar { position: absolute; right: 12px; bottom: 12px; }
.es-portada-pie { position: relative; display: flex; align-items: center; gap: 14px; padding: 0 18px 16px; }
.es-portada-pie > div { display: grid; padding-top: 18px; min-width: 0; }
.es-portada-pie a { overflow-wrap: anywhere; }
.es-logo { flex: none; width: 92px; height: 92px; margin-top: -36px; border-radius: 50%; border: 4px solid #fff; background: var(--es-amber); overflow: hidden; cursor: pointer; display: grid; place-items: center; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.es-logo img { width: 100%; height: 100%; object-fit: cover; }
.es-logo span { font-family: var(--es-display); font-size: 36px; font-weight: 900; color: var(--es-blue-dk); }

/* Avisos */
.es-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 99999; max-width: min(92vw, 520px); padding: 12px 20px; border-radius: 10px; background: var(--es-blue-dk); color: #fff; font-size: 15px; box-shadow: 0 10px 30px rgba(0,0,0,.2); transition: opacity .4s; }
.es-toast-err { background: var(--es-warn); }
.es-toast-fuera { opacity: 0; }

/* Acceso (sin sesión) */
.es-acceso { padding: 32px 28px; display: grid; gap: 14px; max-width: 560px; }
.es-acceso form p { display: grid; gap: 6px; margin: 0 0 12px; }
.es-acceso input[type=text], .es-acceso input[type=password] { min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--es-line); border-radius: 8px; width: 100%; }
.es-acceso input[type=submit] { min-height: 44px; padding: 10px 22px; border-radius: 99px; border: 0; background: var(--es-amber); color: var(--es-blue-dk); font-weight: 700; cursor: pointer; }
.es-acceso .login-remember label { display: flex; gap: 8px; align-items: center; font-size: 14px; }

/* [arternativas_planes] */
.es-planes { padding: 32px 24px; border: 0; background: transparent; display: grid; gap: 22px; }
.es-planes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; align-items: stretch; }
.es-plan { position: relative; display: flex; flex-direction: column; gap: 6px; background: var(--es-surface); border: 1px solid var(--es-line); border-radius: 14px; padding: 26px 24px 22px; }
.es-plan-dest { border: 2px solid var(--es-amber); box-shadow: 0 12px 30px rgba(26,63,92,.10); }
.es-plan-actual { border-color: var(--es-blue); }
.es-plan-cinta { position: absolute; top: -13px; left: 24px; background: var(--es-amber); color: var(--es-blue-dk); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 12px; border-radius: 99px; }
.es-plan-nombre { font-family: var(--es-display); font-size: 24px; font-weight: 700; color: var(--es-blue-dk); }
.es-plan-num { font-family: var(--es-display); font-size: 38px; font-weight: 900; color: var(--es-blue-dk); line-height: 1.1; }
.es-plan-dur { font-size: 14px; color: var(--es-muted); }
.es-plan-lim, .es-plan-vent { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 7px; font-size: 14px; }
.es-plan-lim { padding-top: 14px; border-top: 1px solid var(--es-line); }
.es-plan-lim li, .es-plan-vent li { padding-left: 24px; position: relative; }
.es-plan-lim li::before, .es-plan-vent li::before { content: ''; position: absolute; left: 2px; top: 5px; width: 12px; height: 7px; border-left: 2.5px solid var(--es-blue); border-bottom: 2.5px solid var(--es-blue); transform: rotate(-45deg); }
.es-plan-vent { color: var(--es-muted); }
.es-plan-cta { margin-top: auto; padding-top: 18px; display: grid; gap: 8px; }
.es-plan-tuyo { font-size: 14px; font-weight: 600; color: var(--es-blue-dk); text-align: center; }

/* [arternativas_destacados] */
.es-dest { --es-cols: 4; padding: 0; border: 0; background: transparent; display: grid; gap: 20px; }
.es-dest-grid { display: grid; grid-template-columns: repeat(var(--es-cols), minmax(0, 1fr)); gap: 22px; }
.es-dest-obra { display: grid; gap: 4px; align-content: start; }
.es-dest-marco { display: block; aspect-ratio: 1; background: var(--es-sunk); border-radius: 8px; overflow: hidden; margin-bottom: 8px; }
.es-dest-img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.es-dest-marco:hover .es-dest-img { transform: scale(1.03); }
.es-dest-tit { font-family: var(--es-display); font-size: 17px; font-weight: 700; line-height: 1.25; }
.es-dest-tit a { color: var(--es-ink); text-decoration: none; }
.es-dest-art { font-size: 14px; }
.es-dest-art a { color: var(--es-blue); text-decoration: none; font-weight: 600; }
.es-dest-med { font-size: 13px; color: var(--es-muted); }
.es-dest-precio { font-weight: 700; }
.es-dest-mas { text-align: center; }
.es-dest-artista { display: grid; justify-items: center; text-align: center; gap: 4px; padding-bottom: 16px; border: 1px solid var(--es-line); border-radius: 12px; overflow: hidden; background: var(--es-surface); color: var(--es-ink); text-decoration: none; }
.es-dest-artista strong { font-family: var(--es-display); font-size: 18px; color: var(--es-blue-dk); padding: 0 12px; }
.es-dest-banner { width: 100%; aspect-ratio: 3 / 1; background: linear-gradient(135deg, var(--es-blue-dk), var(--es-blue)) center/cover no-repeat; }
.es-dest-logo { width: 76px; height: 76px; margin-top: -38px; border-radius: 50%; border: 4px solid #fff; object-fit: cover; background: var(--es-amber); }
.es-dest-ini { display: grid; place-items: center; font-family: var(--es-display); font-weight: 900; font-size: 30px; color: var(--es-blue-dk); }
.es-dest-num { font-size: 13px; color: var(--es-muted); }

/* Adaptación al ancho de la columna */
@container estudio (max-width: 760px) {
  .es-main { padding: 20px 16px; }
  .es-top { padding: 14px 16px; }
  .es-tabs { padding: 0 8px; }
  .es-grid2, .es-precio-wrap { grid-template-columns: 1fr; }
  .es-dest-grid { grid-template-columns: repeat(min(var(--es-cols), 2), minmax(0, 1fr)); gap: 16px; }
  .es-cuatro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .es-paso { padding: 18px 16px; }
}
@container estudio (max-width: 560px) {
  .es-sum { grid-template-columns: 1fr; }
  .es-sum > div + div { border-left: 0; border-top: 1px solid var(--es-line); }
  .es-dos { grid-template-columns: 1fr; }
  .es-sub { display: none; }
  .es-banner .es-btn { margin-left: 0; }
  .es-tabla thead { display: none; }
  .es-tabla, .es-tabla tbody, .es-tabla tr, .es-tabla td { display: block; width: 100%; }
  .es-tabla tr { padding: 10px 0; border-bottom: 1px solid var(--es-line); }
  .es-tabla td { border: 0; padding: 4px 14px; text-align: left; display: flex; justify-content: space-between; gap: 12px; }
  .es-tabla td::before { content: attr(data-l); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--es-muted); flex: none; }
  .es-tabla td[data-l="Obra"], .es-tabla td[data-l="Estado"] { display: grid; justify-items: start; gap: 2px; }
  .es-tabla td[data-l="Obra"]::before, .es-tabla td[data-l="Estado"]::before { margin-bottom: 2px; }
  .es-tab { padding: 12px 9px 10px; font-size: 14px; }
  .es-tabs { padding: 0 6px; gap: 0; }
  .es-check li { grid-template-columns: 26px 1fr; }
  .es-check li > :last-child:not(div) { grid-column: 2; justify-self: start; }
  .es-obras { grid-template-columns: 1fr; }
  .es-mark { font-size: 22px; }
}
@container estudio (max-width: 420px) {
  .es-dest-grid { grid-template-columns: 1fr; }
}

/* Guía tras el registro, Mi cuenta y panel de WCFM */
.es-guia { padding: 28px; display: grid; gap: 14px; margin: 24px 0; max-width: 760px; }
.es-guia-pasos { list-style: none; padding: 0; display: grid; gap: 0; border: 1px solid var(--es-line); border-radius: var(--es-r); background: var(--es-surface); }
.es-guia-pasos li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; align-items: center; padding: 12px 16px; }
.es-guia-pasos li + li { border-top: 1px solid var(--es-line); }
.es-guia-pasos li div { display: grid; }
.es-guia-pasos li span:not(.es-guia-n) { font-size: 14px; color: var(--es-muted); }
.es-guia-n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; border: 2px solid var(--es-line); color: var(--es-muted); }
.es-guia-pasos .is-ok .es-guia-n { background: var(--es-ok); border-color: var(--es-ok); color: #fff; }
.es-guia-pasos .is-on { background: var(--es-amber-soft); }
.es-guia-pasos .is-on .es-guia-n { background: var(--es-amber); border-color: var(--es-amber); color: var(--es-blue-dk); }
.es-btn-xl { min-height: 56px; padding: 14px 30px; font-size: 18px; }
/* Aviso grande «Tu siguiente paso» (Mi cuenta y panel de WCFM): tiene que verse antes que nada. */
.estudio-host .es.es-banner-guia { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px 40px; padding: 44px 48px; margin: 8px 0 32px; max-width: none; background: var(--es-blue-dk); color: #fff; border: 0; border-left: 10px solid var(--es-amber); border-radius: 16px; box-shadow: 0 16px 40px rgba(26,63,92,.25); }
.es-banner-guia .es-bg-txt { display: grid; gap: 12px; min-width: 0; }
.es-banner-guia .es-bg-k { font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--es-amber); }
.es-banner-guia .es-bg-t { font-family: var(--es-display); font-size: clamp(28px, 3.4vw, 42px); line-height: 1.12; color: #fff; }
.es-banner-guia .es-bg-d { font-size: 19px; line-height: 1.5; color: #dbe6ef; max-width: 56ch; }
.es-banner-guia .es-bg-pasos { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.es-banner-guia .es-bg-pasos li { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; color: #fff; }
.es-banner-guia .es-bg-pasos li span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.14); border: 2px solid var(--es-amber); color: var(--es-amber); font-size: 14px; font-weight: 700; }
.estudio-host .es-banner-guia a.es-bg-btn, .estudio-host .es-banner-guia a.es-bg-btn:visited { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 72px; padding: 18px 40px; border-radius: 999px; background: var(--es-amber) !important; color: var(--es-blue-dk) !important; font-family: var(--es-body); font-size: 22px; font-weight: 800; line-height: 1.1; text-decoration: none !important; white-space: nowrap; box-shadow: 0 8px 20px rgba(0,0,0,.25); transition: transform .15s, box-shadow .15s; animation: es-latido 2.4s ease-in-out 1s 3; }
.estudio-host .es-banner-guia a.es-bg-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0,0,0,.3); }
.es-banner-guia .es-bg-btn span { font-size: 26px; }
@keyframes es-latido { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@media (prefers-reduced-motion: reduce) { .estudio-host .es-banner-guia a.es-bg-btn { animation: none; } }
@container estudio (max-width: 760px) {
  .estudio-host .es.es-banner-guia { grid-template-columns: 1fr; padding: 30px 24px; gap: 22px; }
  .estudio-host .es-banner-guia a.es-bg-btn { width: 100%; white-space: normal; font-size: 20px; min-height: 64px; padding: 16px 24px; }
  .es-banner-guia .es-bg-d { font-size: 17px; }
}
/* Enlace del menú de Mi cuenta, destacado */
.woocommerce-MyAccount-navigation-link--estudio-mi-estudio a { background: var(--es-amber, #fcb800) !important; color: #1a3f5c !important; font-weight: 800 !important; }

.es-bienvenida { display: grid; gap: 14px; padding: 28px; border-radius: var(--es-r); background: var(--es-surface); border: 2px solid var(--es-amber); }
.es-bienvenida .es-guia-pasos { max-width: 640px; }
.es-exito { display: grid; grid-template-columns: 160px 1fr; gap: 20px; align-items: center; padding: 20px; border-radius: var(--es-r); background: var(--es-ok-soft); border: 1px solid #b9dcc6; }
.es-exito-img img { width: 160px; height: 160px; object-fit: cover; border-radius: 8px; }
.es-exito p { margin-top: 6px; max-width: 62ch; }
.es-ayuda { background: var(--es-blue-soft); border-radius: 8px; padding: 12px 16px; font-size: 14px; color: var(--es-blue-dk); }
.es-nav-der { display: inline-flex; gap: 10px; flex-wrap: wrap; margin-left: auto; }
.es-f select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--es-line); border-radius: 8px; background: #fff; }
@container estudio (max-width: 560px) {
  .es-exito { grid-template-columns: 1fr; }
  .es-exito-img img { width: 100%; height: 200px; }
  .es-pasos li + li::before { width: 10px; margin-right: 4px; }
  .es-pasos button { font-size: 13px; gap: 4px; }
}
.es-obra-precio del { color: var(--es-muted); font-weight: 400; margin-right: 4px; }

/* Campos con error */
.es-f.is-err > label, .es-f.is-err > legend { color: var(--es-warn); }
.es-f.is-err input:not([type=checkbox]):not([type=radio]), .es-f.is-err textarea, .es-f.is-err select { border-color: var(--es-warn); background: var(--es-warn-soft); box-shadow: 0 0 0 3px rgba(168,50,45,.12); }
.es-f.is-err .es-cats { padding: 8px; border: 1.5px solid var(--es-warn); border-radius: 10px; background: var(--es-warn-soft); }
.es-f-err { display: flex; gap: 6px; align-items: flex-start; color: var(--es-warn); font-size: 13px; font-weight: 600; }
.es-f-err::before { content: '!'; flex: none; width: 16px; height: 16px; border-radius: 50%; background: var(--es-warn); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; margin-top: 1px; }

.es-obra-cont { display: flex; gap: 16px; font-size: 14px; color: var(--es-muted); margin-top: 2px; }
.es-obra-cont span { display: inline-flex; align-items: center; gap: 5px; }
.es-obra-cont span:first-child svg { color: var(--es-blue); }
.es-obra-cont span:last-child svg { color: #c0392b; }
.es .es-obra-cont > span + span { margin-left: 16px; }
.es .es-user a, .es .es-user a:visited { color: #fff !important; }
.es-progreso { height: 30px; }
.es-progreso span { background: var(--es-amber); }
.es-subida { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 99999; width: min(92vw, 360px); display: grid; gap: 8px; padding: 12px 16px; border-radius: 10px; background: var(--es-blue-dk); color: #fff; font-size: 14px; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,.2); font-variant-numeric: tabular-nums; }
.es-subida-bar { height: 8px; border-radius: 99px; background: rgba(255,255,255,.2); overflow: hidden; }
.es-subida-bar span { display: block; height: 100%; width: 0; background: var(--es-amber); border-radius: inherit; transition: width .2s; }

.es-obra-cova { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--es-blue-dk); }
.es-obra-cova span { font-size: 10px; font-weight: 800; letter-spacing: .08em; padding: 2px 6px; border-radius: 4px; background: var(--es-amber); color: var(--es-blue-dk); }
.es-f-cova { padding: 12px 14px; border-radius: 8px; background: var(--es-amber-soft); border: 1px solid #f1d47a; }
.es-banner-cuenta-wrap { width: 100%; clear: both; flex: 0 0 100%; }

/* ---------- 1.5: espera de aprobación y obras a medio subir ---------- */
.es-espera { display: grid; gap: 4px; margin: 0 0 16px; padding: 16px 20px; border-radius: var(--es-r); background: #eaf1f7; border: 1px solid #c4d6e6; border-left: 6px solid var(--es-blue, #2c5f8a); }
.es-espera .es-k { color: var(--es-blue, #2c5f8a); }
.es-espera strong { font-size: 1.05rem; line-height: 1.35; }
.es-espera span:last-child { color: #4a5560; font-size: .92rem; }
.es-continuar { display: grid; grid-template-columns: 72px 1fr auto; gap: 14px; align-items: center; margin: 0 0 18px; padding: 14px 16px; border-radius: var(--es-r); background: var(--es-amber-soft); border: 1px solid #f1d47a; border-left: 6px solid #fcb800; }
.es-continuar img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; display: block; }
.es-continuar > div { display: grid; gap: 2px; min-width: 0; }
.es-continuar strong { font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@container (max-width: 560px) {
  .es-continuar { grid-template-columns: 56px 1fr; }
  .es-continuar img { width: 56px; height: 56px; }
  .es-continuar .es-btn { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
}
.es-guardado { color: #2f7a4f; font-weight: 600; }
.es-obra-paso { color: #8a6400; font-weight: 600; }
