/* Tienda Mía · estilos (hereda botones y tokens del tema) */
.mg-comprar { display: grid; gap: 6px; margin-top: auto; }
.mg-comprar button { width: 100%; cursor: pointer; font: inherit; }
.mg-comprar__nota { display: block; font-size: .78rem; color: var(--mg-muted, #7A6654); line-height: 1.4; text-align: center; }
.mg-price-card:hover .mg-comprar__nota, .mg-price-card:focus-within .mg-comprar__nota { color: rgba(246,241,234,.78); }
.mg-regalo { max-width: var(--mg-max, 1280px); margin: 0 auto; }
.mg-regalo__hp { position: absolute; left: -9999px; }
.mg-regalo__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.mg-regalo .mg-kicker { margin: 26px 0 12px; }
.mg-regalo__sesiones { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.mg-regalo__ses { position: relative; display: grid; gap: 6px; cursor: pointer; text-align: center; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
.mg-regalo__ses input { position: absolute; opacity: 0; }
.mg-regalo__ses img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; border: 2px solid transparent; transition: border-color .3s, transform .4s; }
.mg-regalo__ses input:checked + img { border-color: var(--mg-accent, #9A7F62); } .mg-regalo__ses input:focus-visible + img { outline: 2px solid var(--mg-accent, #9A7F62); outline-offset: 2px; }
.mg-regalo__opciones { display: grid; gap: 8px; }
.mg-regalo__opt { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: start; padding: 14px 16px; border: 1px solid var(--mg-line, #E7DCCD); background: var(--mg-paper, #F5EFE7); cursor: pointer; }
.mg-regalo__opt input { margin-top: 5px; accent-color: var(--mg-accent, #9A7F62); grid-row: span 2; }
.mg-regalo__opt b { font-family: var(--mg-title, Marcellus, serif); font-weight: 400; font-size: 1.05rem; letter-spacing: .06em; display: flex; justify-content: space-between; gap: 12px; }
.mg-regalo__opt b em { font-style: normal; color: var(--mg-accent, #9A7F62); }
.mg-regalo__opt span { font-size: .9rem; color: var(--mg-muted, #7A6654); line-height: 1.45; }
.mg-regalo__opt:has(input:checked) { border-color: var(--mg-accent, #9A7F62); background: #fff; }
.mg-regalo__campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mg-regalo__campos label { display: grid; gap: 6px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mg-muted, #7A6654); }
.mg-regalo__campos input[type=text], .mg-regalo__campos input[type=email], .mg-regalo__campos textarea { font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--mg-ink, #30231B); padding: 12px 14px; border: 1px solid var(--mg-line, #E7DCCD); background: #fff; border-radius: 0; width: 100%; box-sizing: border-box; }
.mg-regalo__full { grid-column: 1 / -1; }
.mg-regalo__check { display: flex !important; align-items: center; gap: 10px; text-transform: none !important; letter-spacing: 0 !important; font-size: .95rem !important; color: var(--mg-ink, #30231B) !important; }
.mg-regalo__check input { accent-color: var(--mg-accent, #9A7F62); width: 18px; height: 18px; }
.mg-regalo__nota { font-size: .9rem; color: var(--mg-muted, #7A6654); line-height: 1.55; margin: 22px 0 16px; }
.mg-regalo__btn { width: 100%; cursor: pointer; font: inherit; }
.mg-regalo__preview { position: sticky; top: 110px; }
.mg-card { display: grid; grid-template-columns: 42% 1fr; background: #F5EFE7; box-shadow: 0 30px 60px -30px rgba(26,20,17,.45); aspect-ratio: 210 / 120; overflow: hidden; }
.mg-card__foto { margin: 0; position: relative; }
.mg-card__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mg-card__foto figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: #1A1411; color: #F6F1EA; font-family: var(--mg-title, Marcellus, serif); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; padding: 8px 10px; }
.mg-card__txt { padding: clamp(14px, 2.2vw, 26px); display: grid; align-content: start; gap: 8px; min-width: 0; }
.mg-card__kicker { font-size: .6rem; letter-spacing: .32em; text-transform: uppercase; color: var(--mg-accent, #9A7F62); }
.mg-card__txt h3 { margin: 0; font-size: clamp(1rem, 1.8vw, 1.35rem); letter-spacing: .04em; }
.mg-card__incluye { margin: 0; font-size: .72rem; color: var(--mg-muted, #7A6654); line-height: 1.4; border-bottom: 1px solid var(--mg-line, #E7DCCD); padding-bottom: 8px; }
.mg-card__dp, .mg-card__pie { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mg-card__dp small, .mg-card__pie small { display: block; font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-accent, #9A7F62); }
.mg-card__dp b, .mg-card__pie b { font-family: var(--mg-title, Marcellus, serif); font-weight: 400; font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.mg-card__msg { margin: 0; font-size: .74rem; font-style: italic; color: #4A3E34; line-height: 1.4; }
.mg-card__pie { margin-top: auto; }
.mg-regalo__preview-nota { font-size: .8rem; color: var(--mg-muted, #7A6654); text-align: center; margin-top: 12px; }
.mg-gracias { max-width: 760px; margin: 0 auto; display: grid; gap: clamp(28px, 4vw, 48px); }
.mg-gracias h2 { margin: 6px 0 12px; } .mg-gracias h3 { margin: 6px 0 10px; }
.mg-gracias__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.mg-gracias__demo { background: #FFF4D6; border: 1px dashed #C9A77E; padding: 16px 18px; font-size: .9rem; }
.mg-gracias__demo form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; } .mg-gracias__demo input { padding: 8px 10px; font: inherit; }
@media (max-width: 860px) { .mg-regalo__grid { grid-template-columns: 1fr; } .mg-regalo__preview { position: static; order: -1; } .mg-regalo__sesiones { grid-template-columns: repeat(3, 1fr); } .mg-regalo__campos { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .mg-card { grid-template-columns: 1fr; aspect-ratio: auto; } .mg-card__foto img { aspect-ratio: 16 / 10; } }

/* [hidden] gana a los display de arriba */
.mg-regalo__opt[hidden], [data-mg-dest][hidden], .mg-card__msg[hidden] { display: none !important; }
/* CTA de tarjeta regalo en las páginas de sesión */
.mg-regalo-cta__grid { max-width: var(--mg-max, 1280px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.mg-regalo-cta__txt h2 { margin: 6px 0 14px; } .mg-regalo-cta__txt p { color: var(--mg-muted, #7A6654); max-width: 48ch; }
.mg-regalo-cta__card { display: block; text-decoration: none; color: inherit; transition: transform .6s var(--mg-ease, ease); }
.mg-regalo-cta__card:hover { transform: translateY(-6px) rotate(-.5deg); }
.mg-card--mini { max-width: 560px; margin: 0 auto; }
@media (max-width: 860px) { .mg-regalo-cta__grid { grid-template-columns: 1fr; } }
/* La foto de la tarjeta rellena SIEMPRE toda la altura (sin franja): posicionada sobre la figura */
.mg-card__foto { position: relative; min-height: 100%; overflow: hidden; background: #1A1411; }
.mg-card__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
@media (max-width: 480px) { .mg-card__foto { min-height: 0; } .mg-card__foto img { position: static; height: auto; aspect-ratio: 16 / 10; } }
/* body.mg img { height:auto } del tema pesa más: forzamos la altura de la foto de la tarjeta */
body.mg .mg-card .mg-card__foto img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
@media (max-width: 480px) { body.mg .mg-card .mg-card__foto img { position: static; height: auto !important; aspect-ratio: 16 / 10; } }

/* Logo oficial en la banda inferior de la tarjeta (web) */
body.mg .mg-card__foto figcaption { padding: 7px 12px; display: flex; align-items: center; }
body.mg .mg-card__foto figcaption img { position: static; width: auto; height: 22px !important; max-width: 60%; object-fit: contain; display: block; }
/* el logo de la banda no debe heredar la regla de la foto (más específica) */
body.mg .mg-card .mg-card__foto figcaption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; background: #1A1411; padding: 9px 14px; display: flex; align-items: center; }
body.mg .mg-card .mg-card__foto figcaption img { position: static !important; inset: auto; width: auto !important; height: 26px !important; max-width: 70%; object-fit: contain; display: block; }

/* sin franja: el logo va sobre la foto */
body.mg .mg-card .mg-card__foto figcaption { background: transparent; padding: 0 0 12px 12px; }
body.mg .mg-card .mg-card__foto figcaption img { height: 22px !important; }
