/* ==========================================================================
   Mía García — sistema visual
   Papel cálido, tinta marrón-negra (del logotipo), Marcellus para títulos,
   Jost para texto. Fotografía protagonista; movimiento lento y discreto.
   ========================================================================== */

:root {
  --mg-paper: #F5EFE7;
  --mg-sand: #E7DCCD;
  --mg-ink: #30231B;
  --mg-night: #1A1411;
  --mg-muted: #7A6E63;
  --mg-accent: #9A7F62;
  --mg-ivory: #F6F1EA;
  --mg-line: rgba(48, 35, 27, .16);
  --mg-line-light: rgba(246, 241, 234, .18);
  --mg-title: Marcellus, "Trajan Pro", Georgia, serif;
  --mg-body: Jost, Futura, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --mg-ease: cubic-bezier(.22, .61, .36, 1);
  --mg-gutter: clamp(20px, 4vw, 56px);
  --mg-max: 1280px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.mg { margin: 0; background: var(--mg-paper); color: var(--mg-ink); font-family: var(--mg-body); font-weight: 300; font-size: clamp(16px, 1.05vw, 18px); line-height: 1.75; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.mg img { max-width: 100%; height: auto; display: block; }
body.mg * { box-sizing: border-box; }
body.mg a { color: inherit; text-decoration: none; }
body.mg :where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--mg-accent); outline-offset: 4px; }
body.mg :where(h1, h2, h3, h4) { font-family: var(--mg-title); font-weight: 400; text-transform: uppercase; letter-spacing: .08em; line-height: 1.15; margin: 0; text-wrap: balance; }
.mg-main { position: relative; }
.mg-main > .wp-block-post-content > * { margin-top: 0; margin-bottom: 0; }
.wp-block-post-content > .alignfull, .mg-main > .alignfull { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }

/* Tipografía utilitaria */
.mg-kicker, .wp-block-post-terms.mg-kicker { font-family: var(--mg-body); font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--mg-accent); font-weight: 400; margin: 0; }
.mg-kicker a { color: inherit; }
.mg-lead { font-size: clamp(1.25rem, 1.9vw, 1.65rem); line-height: 1.5; font-weight: 300; }
.mg-italic, .mg-quote { font-family: var(--mg-body); font-style: italic; font-weight: 300; }
.mg-rule { width: 56px; height: 1px; background: var(--mg-accent); margin: 1.4rem 0; border: 0; }
.mg-rule--center { margin-left: auto; margin-right: auto; }
.mg-num { font-family: var(--mg-title); font-size: .8rem; letter-spacing: .32em; color: var(--mg-accent); text-transform: uppercase; }
.has-night-background-color, .mg-dark { --mg-line: var(--mg-line-light); color: var(--mg-ivory); }
.mg-dark .mg-kicker { color: #CDB79C; }

/* Botones y enlaces */
.mg-btn, .wp-block-button__link { position: relative; isolation: isolate; display: inline-flex; align-items: center; gap: 14px; font-family: var(--mg-body); font-size: .76rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 400; padding: 1.1em 2.1em; border: 1px solid currentColor; background: transparent; color: var(--mg-ink); cursor: pointer; overflow: hidden; border-radius: 0; line-height: 1.2; transition: color .45s var(--mg-ease); min-height: 48px; }
.mg-btn::before, .wp-block-button__link::before { content: ""; position: absolute; inset: 0; background: var(--mg-ink); transform: translateY(101%); transition: transform .5s var(--mg-ease); z-index: -1; }
.mg-btn:hover::before, .mg-btn:focus-visible::before, .wp-block-button__link:hover::before { transform: translateY(0); }
.mg-btn:hover, .wp-block-button__link:hover { color: var(--mg-paper); }
.mg-btn--solid { background: var(--mg-ink); color: var(--mg-paper); border-color: var(--mg-ink); }
.mg-btn--solid::before { background: var(--mg-accent); }
.mg-btn--solid:hover { color: var(--mg-paper); border-color: var(--mg-accent); }
.mg-dark .mg-btn, .mg-btn--light { color: var(--mg-ivory); border-color: var(--mg-ivory); }
.mg-dark .mg-btn::before, .mg-btn--light::before { background: var(--mg-ivory); }
.mg-dark .mg-btn:hover, .mg-btn--light:hover { color: var(--mg-night); }
.mg-link { display: inline-flex; align-items: center; gap: 14px; font-size: .74rem; letter-spacing: .26em; text-transform: uppercase; font-weight: 400; min-height: 44px; }
.mg-link::after { content: ""; width: 34px; height: 1px; background: currentColor; transition: width .45s var(--mg-ease); }
.mg-link:hover::after { width: 56px; }
.mg-link--up { flex-direction: row; }

/* Cabecera */
.mg-header { position: absolute; top: 0; left: 0; right: 0; z-index: 40; color: var(--mg-ink); transition: background .4s var(--mg-ease), color .4s var(--mg-ease), transform .5s var(--mg-ease); }
.mg-hero-dark .mg-header { color: var(--mg-ivory); }
.mg-header.is-fixed { position: fixed; background: rgba(245, 239, 231, .92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: var(--mg-ink); box-shadow: 0 1px 0 var(--mg-line); }
.mg-header.is-hidden { transform: translateY(-100%); }
.mg-header__inner { max-width: var(--mg-max); margin: 0 auto; padding: 22px var(--mg-gutter); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; min-height: 92px; }
.mg-logo { justify-self: center; display: block; width: clamp(150px, 15vw, 210px); position: relative; }
.mg-logo img { width: 100%; height: auto; }
.mg-logo__light { position: absolute; inset: 0; opacity: 0; transition: opacity .4s; }
.mg-hero-dark .mg-header:not(.is-fixed) .mg-logo__light { opacity: 1; }
.mg-hero-dark .mg-header:not(.is-fixed) .mg-logo__dark { opacity: 0; }
.mg-nav { display: flex; gap: clamp(18px, 2.4vw, 34px); font-size: .74rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 400; }
.mg-nav--right { justify-content: flex-end; }
.mg-nav a { position: relative; padding: .5em 0; white-space: nowrap; }
.mg-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--mg-ease); }
.mg-nav a:hover::after, .mg-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.mg-burger { display: none; justify-self: end; width: 48px; height: 48px; border: 0; background: transparent; cursor: pointer; padding: 12px; color: inherit; }
.mg-burger span { display: block; height: 1px; background: currentColor; margin: 7px 0; transition: transform .4s var(--mg-ease), opacity .3s; }
.mg-burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.mg-burger[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.mg-menu { position: fixed; inset: 0; background: var(--mg-paper); color: var(--mg-ink); z-index: 39; overflow-y: auto; padding: 120px var(--mg-gutter) 60px; }
.mg-menu__inner { max-width: 760px; margin: 0 auto; display: grid; gap: 6px; }
.mg-menu__kicker { font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--mg-accent); margin: 28px 0 10px; }
.mg-menu__big { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .1em; font-size: clamp(1.5rem, 5vw, 2.6rem); line-height: 1.25; display: flex; gap: 18px; align-items: baseline; border-bottom: 1px solid var(--mg-line); padding: 10px 0; }
.mg-menu__big span { font-size: .7em; color: var(--mg-accent); letter-spacing: .2em; min-width: 2.2em; }
.mg-menu__small { font-size: 1rem; padding: 6px 0; }
.mg-menu[hidden] { display: none; }
body.mg-menu-open { overflow: hidden; }
body.mg-menu-open .mg-header { color: var(--mg-ink); }
body.mg-menu-open .mg-logo__light { opacity: 0 !important; }
body.mg-menu-open .mg-logo__dark { opacity: 1 !important; }
@media (max-width: 980px) {
  .mg-header__inner { grid-template-columns: 1fr auto 1fr; min-height: 76px; padding-block: 14px; }
  .mg-nav { display: none; }
  .mg-burger { display: block; }
  .mg-header__inner::before { content: ""; }
}

/* Hero */
.mg-hero { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; color: var(--mg-ivory); margin: 0; background: var(--mg-night); }
.mg .mg-hero .wp-block-cover__image-background, .mg .mg-hero > img, .mg .mg-hero__img { position: absolute !important; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--mg-focus, 50% 30%); transform: scale(1.08); transition: transform 3.6s var(--mg-ease); }
.mg-loaded .mg-hero .wp-block-cover__image-background, .mg-loaded .mg-hero__img { transform: scale(1); }
.mg-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, .28) 0%, rgba(26, 20, 17, 0) 38%, rgba(26, 20, 17, .62) 100%); pointer-events: none; }
.mg-hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--mg-max); margin: 0 auto; padding: 150px var(--mg-gutter) clamp(48px, 7vh, 96px); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 32px; }
.mg-hero__chapter { font-family: var(--mg-title); font-size: .74rem; letter-spacing: .34em; text-transform: uppercase; color: rgba(246, 241, 234, .78); margin: 0 0 26px; display: flex; align-items: center; gap: 18px; }
.mg-hero__chapter::before { content: ""; width: 42px; height: 1px; background: currentColor; }
.mg-hero__title { font-size: clamp(1.7rem, 4.6vw, 4.1rem); letter-spacing: .12em; line-height: 1.18; max-width: 16ch; }
.mg-hero__title .mg-line { display: block; overflow: hidden; }
.mg-hero__title .mg-line > span { display: block; transform: translateY(110%); transition: transform 1.3s var(--mg-ease); }
.mg-hero__title .mg-line:nth-child(2) > span { transition-delay: .2s; }
.mg-loaded .mg-hero__title .mg-line > span { transform: none; }
.mg-hero__title em { font-family: var(--mg-body); font-style: italic; text-transform: none; letter-spacing: .02em; font-size: .62em; font-weight: 300; display: block; margin-top: .5em; color: rgba(246, 241, 234, .85); }
.mg-hero__aside { text-align: right; display: grid; gap: 22px; justify-items: end; max-width: 30ch; font-size: .95rem; color: rgba(246, 241, 234, .8); }
.mg-hero__aside .mg-link { color: var(--mg-ivory); }
.mg-hero__scroll { position: absolute; left: 50%; bottom: 0; width: 1px; height: 72px; background: rgba(246, 241, 234, .25); overflow: hidden; z-index: 2; }
.mg-hero__scroll::after { content: ""; position: absolute; inset: 0; background: var(--mg-ivory); transform: translateY(-100%); animation: mg-drip 2.4s var(--mg-ease) infinite; }
@keyframes mg-drip { to { transform: translateY(100%); } }
@media (max-width: 980px) { .mg-hero__inner { grid-template-columns: 1fr; padding-top: 120px; } .mg-hero__chapter { font-size: .62rem; letter-spacing: .22em; line-height: 1.6; } .mg-hero__chapter::before { flex: 0 0 28px; width: 28px; } .mg-hero__aside { text-align: left; justify-items: start; } .mg-hero__scroll { display: none; } .mg-hero { min-height: 92svh; } }

/* Secciones y contenedores */
.mg-section { padding: clamp(72px, 9vw, 140px) var(--mg-gutter); }
.mg-section--tight { padding-block: clamp(48px, 6vw, 90px); }
.mg-section--sand { background: var(--mg-sand); }
.mg-section--night { background: var(--mg-night); color: var(--mg-ivory); }
.mg-wrap { max-width: var(--mg-max); margin: 0 auto; }
.mg-wrap--narrow { max-width: 760px; margin: 0 auto; }

/* Escena 2 — declaración artística: foto 2/3 + texto lateral */
.mg-statement { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 80px); align-items: center; max-width: var(--mg-max); margin: 0 auto; }
.mg-statement__img { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.mg .mg-statement__img img { width: 100%; height: 100%; object-fit: cover; }
.mg-statement__txt { display: grid; gap: 1.2rem; max-width: 46ch; }
.mg-statement__txt .mg-lead { margin: 0; }
.mg-statement__txt p { margin: 0; }
.mg-statement__frag { font-family: var(--mg-body); font-style: italic; font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.4; }
@media (max-width: 980px) { .mg-statement { grid-template-columns: 1fr; } .mg-statement__img { aspect-ratio: 4 / 5; } }

/* Escena 3 — especialidades: composición editorial a distintas escalas */
.mg-specialties { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(120px, auto); gap: clamp(16px, 2.4vw, 32px); }
.mg-sp { position: relative; min-width: 0; display: block; }
.mg-sp__img { position: relative; overflow: hidden; }
.mg .mg-sp__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--mg-ease), filter 1s var(--mg-ease); filter: saturate(.92); }
.mg-sp:hover .mg-sp__img img, .mg-sp:focus-within .mg .mg-sp__img img { transform: scale(1.04); filter: saturate(1); }
.mg-sp__txt { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-top: 14px; border-bottom: 1px solid var(--mg-line); padding-bottom: 12px; }
.mg-sp__txt h3 { font-size: clamp(1rem, 1.4vw, 1.35rem); letter-spacing: .14em; }
.mg-sp__txt .mg-price { font-family: var(--mg-body); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-accent); white-space: nowrap; }
.mg-sp__sub { font-family: var(--mg-body); font-style: italic; color: var(--mg-muted); margin: 8px 0 0; font-size: 1rem; }
/* Pie de cada tarjeta de sesión: título legible + precio + flecha de «entrar» */
.mg-sp__cap { display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 16px; row-gap: 4px; padding-top: 16px; border-top: 1px solid var(--mg-line); }
.mg-sp__cap h3 { grid-column: 1; font-size: clamp(1.05rem, 1.5vw, 1.4rem); letter-spacing: .14em; transition: color .4s var(--mg-ease); }
.mg-sp__cap .mg-price { grid-column: 2; justify-self: end; font-family: var(--mg-body); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-accent); white-space: nowrap; }
.mg-sp__cap .mg-sp__sub { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 12px; font-family: var(--mg-body); font-style: italic; color: var(--mg-muted); margin: 2px 0 0; font-size: .98rem; }
.mg-sp__cap .mg-sp__sub::after { content: ""; width: 20px; height: 1px; background: var(--mg-accent); opacity: 0; transform: translateX(-8px); transition: opacity .45s var(--mg-ease), transform .45s var(--mg-ease); }
.mg-sp:hover .mg-sp__cap h3, .mg-sp:focus-visible .mg-sp__cap h3 { color: var(--mg-accent); }
.mg-sp:hover .mg-sp__cap .mg-sp__sub::after, .mg-sp:focus-visible .mg-sp__cap .mg-sp__sub::after { opacity: 1; transform: none; }
.mg-sp--embarazo { grid-column: 1 / 7; grid-row: 1 / 3; }
.mg-sp--embarazo .mg-sp__img { aspect-ratio: 4 / 5; }
.mg-sp--newborn { grid-column: 7 / 13; grid-row: 1; }
.mg-sp--newborn .mg-sp__img { aspect-ratio: 16 / 10; }
.mg-sp--origen { grid-column: 7 / 10; grid-row: 2; }
.mg-sp--origen .mg-sp__img { aspect-ratio: 3 / 4; }
.mg-sp--retratos { grid-column: 10 / 13; grid-row: 2; }
.mg-sp--retratos .mg-sp__img { aspect-ratio: 3 / 4; }
.mg-sp--smash { grid-column: 1 / 5; grid-row: 3; }
.mg-sp--smash .mg-sp__img { aspect-ratio: 4 / 3; }
.mg-sp--intro { grid-column: 5 / 13; grid-row: 3; display: grid; align-content: center; padding: clamp(24px, 3vw, 48px); background: var(--mg-sand); gap: 14px; }
.mg-sp--intro h2 { font-size: clamp(1.3rem, 2.4vw, 2rem); }
.mg-sp--intro p { margin: 0; max-width: 52ch; }
@media (max-width: 980px) {
  .mg-specialties { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  .mg-sp--embarazo { grid-column: 1 / 3; grid-row: auto; }
  .mg-sp--embarazo .mg-sp__img { aspect-ratio: 4 / 5; }
  .mg-sp--newborn { grid-column: 1 / 3; grid-row: auto; }
  .mg-sp--origen, .mg-sp--retratos { grid-column: auto; grid-row: auto; }
  .mg-sp--smash { grid-column: 1 / 3; grid-row: auto; }
  .mg-sp--intro { grid-column: 1 / 3; grid-row: auto; order: -1; }
}
.mg-xmas { position: relative; min-height: 64svh; display: grid; align-items: center; overflow: hidden; color: var(--mg-ivory); }
.mg .mg-xmas__img { position: absolute; inset: -8% 0; width: 100%; height: 116%; object-fit: cover; will-change: transform; }
.mg-xmas::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26, 20, 17, .7) 0%, rgba(26, 20, 17, .35) 60%, rgba(26, 20, 17, .1) 100%); }
.mg-xmas__inner { position: relative; z-index: 2; max-width: var(--mg-max); margin: 0 auto; width: 100%; padding: clamp(56px, 8vw, 110px) var(--mg-gutter); box-sizing: border-box; }
.mg-xmas__box { display: grid; gap: 18px; max-width: 640px; }
.mg-xmas__pill { display: inline-flex; align-items: center; gap: 12px; font-size: .72rem; letter-spacing: .28em; text-transform: uppercase; color: #E2CFB4; }
.mg-xmas__pill i { width: 8px; height: 8px; border-radius: 50%; background: #E2CFB4; box-shadow: 0 0 0 0 rgba(226, 207, 180, .6); animation: mg-pulse 2.2s infinite; }
@keyframes mg-pulse { 70% { box-shadow: 0 0 0 12px rgba(226, 207, 180, 0); } 100% { box-shadow: 0 0 0 0 rgba(226, 207, 180, 0); } }
.mg-xmas h2 { font-size: clamp(1.5rem, 3.2vw, 2.7rem); }
.mg-xmas p { margin: 0; max-width: 46ch; color: rgba(246, 241, 234, .86); }

/* Escena 4 — exposición */
.mg-expo { display: grid; gap: clamp(24px, 4vw, 64px); max-width: var(--mg-max); margin: 0 auto; }
.mg-expo__full { position: relative; overflow: hidden; aspect-ratio: 16 / 8; }
.mg .mg-expo__full img { width: 100%; height: 100%; object-fit: cover; object-position: var(--mg-focus, 50% 50%); }
.mg-expo__pair { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(16px, 3vw, 48px); align-items: end; }
.mg-expo__pair figure, .mg-expo figure { margin: 0; }
.mg-expo__pair .a { aspect-ratio: 3 / 4; overflow: hidden; }
.mg-expo__pair .b { aspect-ratio: 4 / 3; overflow: hidden; }
.mg .mg-expo__pair img { width: 100%; height: 100%; object-fit: cover; }
.mg-expo__pause { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 64px); align-items: center; }
.mg-expo__pause figure { aspect-ratio: 3 / 4; overflow: hidden; }
.mg .mg-expo__pause img { width: 100%; height: 100%; object-fit: cover; }
.mg-expo__pause blockquote { margin: 0; font-family: var(--mg-body); font-style: italic; font-size: clamp(1.35rem, 2.3vw, 2rem); line-height: 1.35; max-width: 24ch; }
.mg-expo__pause blockquote cite { display: block; font-style: normal; font-family: var(--mg-title); font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--mg-accent); margin-top: 22px; }
.mg-expo figcaption { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-muted); margin-top: 12px; }
.mg-expo .wp-block-image img, .mg-expo .wp-lightbox-container img { cursor: zoom-in; }
@media (max-width: 760px) { .mg-expo__pair, .mg-expo__pause { grid-template-columns: 1fr; } .mg-expo__full { aspect-ratio: 4 / 5; } }

/* Escena 5 — perfil de revista */
.mg-profile { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 88px); align-items: start; max-width: var(--mg-max); margin: 0 auto; }
.mg-profile__media { position: sticky; top: 100px; display: grid; gap: 18px; }
.mg-profile__media figure { margin: 0; overflow: hidden; }
.mg-profile__media .big { aspect-ratio: 4 / 5; }
.mg-profile__media .small { aspect-ratio: 4 / 3; width: 62%; justify-self: end; }
.mg .mg-profile__media img { width: 100%; height: 100%; object-fit: cover; }
.mg-profile__txt { display: grid; gap: 1.4rem; }
.mg-profile__txt h2 { font-size: clamp(1.4rem, 2.6vw, 2.2rem); }
.mg-q { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .2em; font-size: .8rem; color: var(--mg-accent); margin: 1.6rem 0 .4rem; }
.mg-a { margin: 0; }
.mg-pull { font-family: var(--mg-body); font-style: italic; font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.4; border-left: 1px solid var(--mg-accent); padding-left: 22px; margin: 1.2rem 0; }
@media (max-width: 980px) { .mg-profile { grid-template-columns: 1fr; } .mg-profile__media { position: static; } }

/* Escena 6 — la experiencia */
.mg-steps { max-width: var(--mg-max); margin: 0 auto; display: grid; gap: 0; }
.mg-step { display: grid; grid-template-columns: 120px 1fr 1fr; gap: clamp(20px, 3vw, 48px); align-items: center; padding: clamp(28px, 3.5vw, 48px) 0; border-top: 1px solid var(--mg-line); }
.mg-step:last-child { border-bottom: 1px solid var(--mg-line); }
.mg-step__n { font-family: var(--mg-title); font-size: clamp(1.6rem, 3vw, 2.6rem); color: var(--mg-accent); letter-spacing: .08em; }
.mg-step h3 { font-size: clamp(1rem, 1.4vw, 1.25rem); letter-spacing: .14em; margin-bottom: 10px; }
.mg-step p { margin: 0; max-width: 46ch; color: var(--mg-muted); }
.mg-step figure { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.mg .mg-step figure img { width: 100%; height: 100%; object-fit: cover; }
.mg-step:nth-child(even) figure { order: -1; }
.mg-step:nth-child(even) .mg-step__n { order: -2; }
@media (max-width: 760px) { .mg-step { grid-template-columns: 1fr; } .mg-step figure, .mg-step:nth-child(even) figure { order: 0; } .mg-step:nth-child(even) .mg-step__n { order: 0; } }

/* Cifras */
.mg-figures { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; text-align: center; padding: clamp(32px, 4vw, 56px) 0; }
.mg-figure b { display: block; font-family: var(--mg-title); font-weight: 400; font-size: clamp(2.2rem, 4.6vw, 4rem); line-height: 1; font-variant-numeric: tabular-nums; }
.mg-figure span { display: block; font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: var(--mg-muted); margin-top: 10px; }
@media (max-width: 600px) { .mg-figures { grid-template-columns: 1fr; gap: 32px; } }

/* Escena 7 — testimonios */
.mg-testimonials { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: 4fr 8fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.mg-testimonials figure { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg .mg-testimonials img { width: 100%; height: 100%; object-fit: cover; }
.mg-tq { position: relative; min-height: 260px; }
.mg-tq__item { position: absolute; inset: 0; opacity: 0; transform: translateY(14px); transition: opacity 1s var(--mg-ease), transform 1s var(--mg-ease); }
.mg-tq__item.is-on { position: relative; opacity: 1; transform: none; }
.mg-tq__item p { font-family: var(--mg-body); font-style: italic; font-weight: 300; font-size: clamp(1.4rem, 2.4vw, 2.1rem); line-height: 1.38; margin: 0 0 24px; }
.mg-tq__item cite { font-style: normal; font-family: var(--mg-title); font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: var(--mg-accent); }
.mg-tq__nav { display: flex; gap: 10px; margin-top: 32px; }
.mg-tq__nav button { width: 36px; height: 24px; border: 0; background: transparent; cursor: pointer; padding: 11px 0; }
.mg-tq__nav button i { display: block; height: 1px; background: var(--mg-line); transition: background .4s; }
.mg-tq__nav button.is-on i { background: var(--mg-accent); }
@media (max-width: 980px) { .mg-testimonials { grid-template-columns: 1fr; } .mg-testimonials figure { aspect-ratio: 16 / 10; } }

/* Ficha de reseñas de Google (sin API): logo + nota + reseñas reales con estrellas */
.mg-greviews { display: grid; gap: 18px; }
.mg-greviews__head { display: flex; align-items: center; gap: 14px; }
.mg-g { width: 30px; height: 30px; flex: 0 0 auto; display: block; }
.mg-greviews__brand { margin: 0; font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-muted); }
.mg-greviews__score { margin: 2px 0; display: flex; align-items: center; gap: 10px; }
.mg-greviews__score strong { font-family: var(--mg-title); font-size: 1.6rem; line-height: 1; }
.mg-greviews__count { margin: 0; font-size: .85rem; color: var(--mg-muted); }
.mg-stars { display: inline-flex; gap: 2px; }
.mg-star { width: 15px; height: 15px; fill: rgba(48, 35, 27, .18); }
.mg-star.is-on { fill: #E6A935; }
.mg-greviews__list { display: grid; gap: 12px; }
.mg-greview { background: var(--mg-ivory); border: 1px solid var(--mg-line); padding: 18px 20px; display: grid; gap: 10px; }
.mg-greview__by { display: flex; align-items: center; gap: 12px; }
.mg-greview__avatar { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-family: var(--mg-title); font-size: 1.1rem; flex: 0 0 auto; }
.mg-greview__meta { display: grid; gap: 1px; min-width: 0; flex: 1 1 auto; }
.mg-greview__name { font-size: .98rem; }
.mg-greview__sub { font-size: .78rem; color: var(--mg-muted); letter-spacing: .04em; }
.mg-greview__g { flex: 0 0 auto; opacity: .9; }
.mg-greview__g .mg-g { width: 18px; height: 18px; }
.mg-greview__text { margin: 0; font-size: .96rem; line-height: 1.55; font-style: italic; color: var(--mg-ink); }
.mg-greviews .mg-btn { justify-self: start; margin-top: 2px; }

/* Mis otros mundos */
.mg-worlds { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 44px); }
.mg-world { min-width: 0; display: grid; gap: 14px; align-content: start; }
.mg-world figure { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg .mg-world img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.55); transition: filter 1s var(--mg-ease), transform 1.4s var(--mg-ease); }
.mg-world:hover img { filter: none; transform: scale(1.03); }
.mg-world h3 { font-size: 1rem; letter-spacing: .18em; margin-top: 10px; }
.mg-world p { margin: 0; color: var(--mg-muted); font-size: .98rem; }
.mg-world:nth-child(2) { margin-top: clamp(0px, 4vw, 64px); }
@media (max-width: 760px) { .mg-worlds { grid-template-columns: 1fr; } .mg-world:nth-child(2) { margin-top: 0; } }

/* Cita a sangre con revelado por palabras */
.mg-bleed { position: relative; min-height: 84svh; display: grid; place-items: center; overflow: hidden; color: var(--mg-ivory); }
.mg .mg-bleed__img { position: absolute; inset: -12% 0; width: 100%; height: 124%; object-fit: cover; object-position: var(--mg-focus, 50% 40%); will-change: transform; }
.mg-bleed::after { content: ""; position: absolute; inset: 0; background: rgba(26, 20, 17, .55); }
.mg-bleed blockquote { position: relative; z-index: 2; margin: 0; max-width: 30ch; text-align: center; font-family: var(--mg-body); font-style: italic; font-weight: 300; font-size: clamp(1.5rem, 3.4vw, 2.8rem); line-height: 1.32; padding: clamp(80px, 12vw, 140px) var(--mg-gutter); }
.mg-bleed .mg-w { color: rgba(246, 241, 234, .28); transition: color .5s var(--mg-ease); }
.mg-bleed .mg-w.is-on { color: var(--mg-ivory); }
.mg-bleed cite { display: block; font-style: normal; font-family: var(--mg-title); font-size: .72rem; letter-spacing: .3em; text-transform: uppercase; color: #E2CFB4; margin-top: 30px; }

/* Escena 8 — cierre y formulario */
.mg-closing { position: relative; overflow: hidden; color: var(--mg-ivory); background: var(--mg-night); }
.mg .mg-closing__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--mg-focus, 50% 40%); opacity: .55; }
.mg-closing::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, .25) 0%, rgba(26, 20, 17, .78) 62%, var(--mg-night) 100%); }
.mg-closing__inner { position: relative; z-index: 2; max-width: var(--mg-max); margin: 0 auto; padding: clamp(80px, 10vw, 150px) var(--mg-gutter); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.mg-closing h2 { font-size: clamp(1.5rem, 3vw, 2.6rem); line-height: 1.25; max-width: 18ch; }
.mg-closing .mg-kicker { color: #E2CFB4; }
.mg-closing__txt { display: grid; gap: 22px; }
.mg-closing__txt p { margin: 0; max-width: 44ch; color: rgba(246, 241, 234, .82); }
.mg-closing__actions { display: flex; flex-wrap: wrap; gap: 14px; }
@media (max-width: 980px) { .mg-closing__inner { grid-template-columns: 1fr; } }

/* Formulario */
.mg-form { display: grid; gap: 20px; }
.mg-form__row { display: grid; gap: 8px; }
.mg-form label { font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: #E2CFB4; }
.mg-form input, .mg-form select, .mg-form textarea { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(246, 241, 234, .35); color: var(--mg-ivory); font: inherit; font-size: 1.05rem; padding: .6em 0; border-radius: 0; transition: border-color .4s; }
.mg-form select option { color: var(--mg-ink); }
.mg-form input:focus, .mg-form select:focus, .mg-form textarea:focus { outline: none; border-bottom-color: #E2CFB4; }
.mg-form__hp { position: absolute; left: -9999px; }
.mg-form__legal { font-size: .8rem; color: rgba(246, 241, 234, .6); margin: 0; }
.mg-form__legal a { text-decoration: underline; }
.mg-form__ok, .mg-form__err { margin: 0; padding: 12px 16px; border: 1px solid #E2CFB4; font-size: .95rem; }
.mg-form .mg-btn--solid { background: var(--mg-ivory); color: var(--mg-night); border-color: var(--mg-ivory); justify-self: start; }
.mg-form .mg-btn--solid::before { background: #E2CFB4; }
.mg-form .mg-btn--solid:hover { color: var(--mg-night); }
.mg-page .mg-form label, .mg-page .mg-form__legal { color: var(--mg-muted); }
.mg-page .mg-form input, .mg-page .mg-form select, .mg-page .mg-form textarea { color: var(--mg-ink); border-bottom-color: var(--mg-line); }
.mg-page .mg-form .mg-btn--solid { background: var(--mg-ink); color: var(--mg-paper); border-color: var(--mg-ink); }

/* Pie */
/* Sin margen por defecto del contenedor del footer (si no, se ve una línea de fondo papel
   entre la sección de cierre y el pie). El cuerpo también en oscuro para cualquier subpíxel. */
.mg-main + .wp-block-template-part, .wp-block-template-part:has(.mg-footer) { margin-top: 0; }
.mg-footer { background: var(--mg-night); color: rgba(246, 241, 234, .78); margin-top: 0; }
.mg-footer__inner { max-width: var(--mg-max); margin: 0 auto; padding: clamp(56px, 7vw, 96px) var(--mg-gutter) 40px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: clamp(28px, 4vw, 56px); font-size: .95rem; }
.mg-footer__brand img { width: 190px; margin-bottom: 20px; }
.mg-footer__brand p { max-width: 36ch; margin: 0; }
.mg-footer__kicker { font-family: var(--mg-title); font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: #CDB79C; margin: 0 0 14px; }
.mg-footer__col p { margin: 0 0 12px; }
.mg-footer a:hover { color: var(--mg-ivory); text-decoration: underline; text-underline-offset: 4px; }
.mg-footer__legal { max-width: var(--mg-max); margin: 0 auto; padding: 22px var(--mg-gutter) calc(28px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--mg-line-light); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 28px; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(246, 241, 234, .55); }
.mg-footer__legal nav { display: flex; flex-wrap: wrap; gap: 22px; }
@media (max-width: 980px) { .mg-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mg-footer__inner { grid-template-columns: 1fr; } }
.mg-wa { position: fixed; right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 35; display: none; background: var(--mg-ink); color: var(--mg-paper); font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; padding: 14px 20px; min-height: 48px; align-items: center; }
@media (max-width: 980px) { .mg-wa { display: inline-flex; } }

/* Páginas interiores, blog */
.mg-page__head, .mg-single__head { padding: clamp(120px, 16vw, 180px) 0 clamp(32px, 4vw, 56px); display: grid; gap: 14px; }
.mg-page__title, .mg-single__title { font-size: clamp(1.6rem, 3.4vw, 2.8rem); }
.mg-single__date { font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--mg-muted); }
.mg-single__cover { margin-bottom: clamp(32px, 5vw, 64px); }
.mg-single__cover img { aspect-ratio: 16 / 8; object-fit: cover; }
.mg-single .wp-block-post-content { font-size: 1.08rem; }
.mg-single .wp-block-post-content h2 { font-size: 1.3rem; margin: 2.4rem 0 1rem; }
.mg-single .wp-block-post-content h3 { font-size: 1.05rem; margin: 2rem 0 .8rem; }
.mg-single .wp-block-post-content :where(p, ul, ol) { margin: 0 0 1.2rem; }
.mg-author { border-top: 1px solid var(--mg-line); margin-top: clamp(40px, 6vw, 80px); padding: 32px 0 clamp(48px, 6vw, 90px); display: grid; gap: 8px; }
.mg-posts { padding-bottom: clamp(56px, 8vw, 120px); }
.mg-posts__grid { gap: 36px 28px; }
.mg-post { display: grid; gap: 12px; }
.mg .mg-post__img img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--mg-ease); }
.mg-post__img a { display: block; overflow: hidden; }
.mg-post:hover .mg .mg-post__img img { transform: scale(1.04); }
.mg-post__title { font-family: var(--mg-body); text-transform: none; letter-spacing: 0; font-size: 1.2rem; font-weight: 400; line-height: 1.35; }
.mg-post__excerpt { color: var(--mg-muted); font-size: .95rem; }
.mg-post__excerpt .wp-block-post-excerpt__more-text { display: none; }
.wp-block-query-pagination { margin: 48px 0; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; }
@media (max-width: 760px) { .mg-posts__grid.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr; } }

/* Reveal y movimiento */
.mg-rv { opacity: 0; transform: translateY(28px); transition: opacity 1.1s var(--mg-ease), transform 1.1s var(--mg-ease); }
.mg-rv.is-in { opacity: 1; transform: none; }
.mg-rv--2 { transition-delay: .14s; } .mg-rv--3 { transition-delay: .28s; } .mg-rv--4 { transition-delay: .42s; }
.mg-no-motion .mg-rv { opacity: 1; transform: none; transition: none; }
#mg-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--mg-accent); z-index: 60; }
#mg-cursor { display: none !important; }
#mg-cursor.is-on { opacity: 1; } #mg-cursor.is-big { width: 56px; height: 56px; background: rgba(154, 127, 98, .14); }
@media (hover: none), (pointer: coarse) { #mg-cursor { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .mg-hero .wp-block-cover__image-background, .mg-hero__img, .mg-hero__title .mg-line > span { transform: none !important; transition: none !important; }
  .mg-hero__scroll::after, .mg-xmas__pill i { animation: none !important; }
  .mg-rv { opacity: 1 !important; transform: none !important; transition: none !important; }
  .mg-tq__item { transition: none !important; }
  #mg-cursor { display: none; }
  html { scroll-behavior: auto; }
}

/* Mantener el bloque Cover de WordPress sin su overlay por defecto en nuestras secciones */
.mg-hero .wp-block-cover__background, .mg-hero .wp-block-cover__gradient-background { display: none; }
.wp-block-cover.mg-hero { padding: 0; }
.wp-block-cover.mg-hero .wp-block-cover__inner-container { width: 100%; max-width: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ==========================================================================
   Páginas de sesión
   ========================================================================== */
.mg-shero { display: grid; grid-template-columns: 1fr 1fr; min-height: 100svh; }
.mg-shero__img { margin: 0; position: relative; overflow: hidden; background: var(--mg-sand); }
.mg .mg-shero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--mg-focus, 50% 30%); transform: scale(1.06); transition: transform 3s var(--mg-ease); }
.mg-loaded .mg-shero__img img { transform: none; }
.mg-shero__txt { display: grid; align-content: center; gap: 20px; padding: clamp(120px, 14vh, 160px) var(--mg-gutter) clamp(48px, 7vh, 96px); max-width: 640px; }
.mg-shero__txt h1 { font-size: clamp(1.5rem, 3vw, 2.6rem); line-height: 1.22; }
.mg-hero__chapter--dark { color: var(--mg-accent); }
.mg-shero__sub { margin: 0; font-size: 1.05rem; color: var(--mg-muted); }
.mg-shero__meta { display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mg-ink); border-top: 1px solid var(--mg-line); border-bottom: 1px solid var(--mg-line); padding: 14px 0; }
.mg-shero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
@media (max-width: 980px) { .mg-shero { grid-template-columns: 1fr; min-height: 0; } .mg-shero__img { aspect-ratio: 4 / 5; } .mg .mg-shero__img img { position: absolute; } .mg-shero__txt { padding-top: 40px; max-width: none; } }
@media (max-width: 980px) { .mg-shero__img { margin-top: 76px; } }

.mg-intro { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 96px); align-items: center; max-width: var(--mg-max); margin: 0 auto; }
.mg-intro__txt { display: grid; gap: 1.2rem; max-width: 60ch; }
.mg-intro__txt h2 { font-family: var(--mg-body); text-transform: none; letter-spacing: 0; font-style: italic; font-weight: 300; font-size: clamp(1.4rem, 2.4vw, 2.1rem); line-height: 1.35; }
.mg-intro__txt p { margin: 0; }
.mg-intro__img { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg .mg-intro__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 980px) { .mg-intro { grid-template-columns: 1fr; } }

.mg-univ { max-width: var(--mg-max); margin: 0 auto; display: grid; gap: clamp(40px, 6vw, 96px); }
.mg-univ__item { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(24px, 4vw, 64px); align-items: center; }
.mg-univ__item:nth-child(even) { grid-template-columns: 7fr 5fr; }
.mg-univ__item:nth-child(even) figure { order: 2; }
.mg-univ__item figure { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg-univ__item:nth-child(even) figure { aspect-ratio: 16 / 11; }
.mg .mg-univ__item img { width: 100%; height: 100%; object-fit: cover; }
.mg-univ__item h3 { font-size: clamp(1.2rem, 2vw, 1.7rem); margin: 10px 0 14px; }
.mg-univ__item p { margin: 0; max-width: 48ch; }
@media (max-width: 760px) { .mg-univ__item, .mg-univ__item:nth-child(even) { grid-template-columns: 1fr; } .mg-univ__item:nth-child(even) figure { order: 0; } }

/* Galería HORIZONTAL: tira de fotos a altura fija que se desplaza de lado (como el carrusel de
   vídeos de la web de M the Agency). Fotos COMPLETAS (sin recortar), sin huecos ni bordes
   desiguales. Se arrastra con el ratón (JS) o con el trackpad/scroll. */
.mg-gallery { max-width: var(--mg-max); margin: 0 auto; display: flex; flex-wrap: nowrap; gap: 10px; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; padding: 0; overscroll-behavior-x: contain; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: auto; }
.mg-gallery::-webkit-scrollbar { display: none; height: 0; width: 0; }
.mg-gallery.is-drag { cursor: grabbing; }
.mg-gallery.is-drag a { pointer-events: none; }
/* Tarjetas de tamaño FIJO (dimensiones explícitas → se ven bien en todos los navegadores). */
.mg-gallery > .mg-gallery__item { flex: 0 0 clamp(260px, 32vw, 440px); width: clamp(260px, 32vw, 440px); height: clamp(360px, 62vh, 580px); margin: 0; overflow: hidden; position: relative; background: var(--mg-sand); }
.mg .mg-gallery > .mg-gallery__item img { width: 100%; height: 100%; max-width: none; display: block; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.mg-gallery__item::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 0 var(--mg-paper); transition: box-shadow .4s; pointer-events: none; }
.mg-gallery__item:focus-visible::after { box-shadow: inset 0 0 0 3px var(--mg-accent); }
@media (max-width: 760px) { .mg-gallery > .mg-gallery__item { flex-basis: 78vw; width: 78vw; height: clamp(320px, 62vh, 480px); } }
.mg-lb { position: fixed; inset: 0; z-index: 90; background: rgba(26, 20, 17, .96); display: grid; grid-template-rows: 1fr auto; opacity: 0; pointer-events: none; transition: opacity .4s var(--mg-ease); }
.mg-lb.is-open { opacity: 1; pointer-events: auto; }
.mg-lb__stage { display: grid; place-items: center; padding: 56px var(--mg-gutter) 16px; min-height: 0; }
.mg-lb__stage img { max-width: 100%; max-height: calc(100svh - 140px); width: auto; height: auto; object-fit: contain; box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .6); }
.mg-lb__bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px var(--mg-gutter) calc(16px + env(safe-area-inset-bottom, 0px)); color: rgba(246, 241, 234, .8); font-size: .74rem; letter-spacing: .24em; text-transform: uppercase; }
.mg-lb__btn { background: transparent; border: 1px solid rgba(246, 241, 234, .4); color: var(--mg-ivory); min-width: 48px; min-height: 48px; cursor: pointer; font: inherit; letter-spacing: .2em; text-transform: uppercase; padding: 0 16px; }
.mg-lb__btn:hover { border-color: var(--mg-ivory); }
.mg-lb__close { position: absolute; top: calc(14px + env(safe-area-inset-top, 0px)); right: var(--mg-gutter); }
.mg-lb__nav { display: flex; gap: 10px; }
body.mg-lb-open { overflow: hidden; }

/* Precios y condiciones — tarjetas editoriales que revelan la foto de la sesión al pasar el ratón */
.mg-prices { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 28px); align-items: stretch; }
.mg-price-card { position: relative; isolation: isolate; overflow: hidden; background: var(--mg-ivory); padding: clamp(28px, 3.1vw, 46px); display: grid; align-content: start; gap: 10px; border: 1px solid var(--mg-line); transition: transform .55s var(--mg-ease), box-shadow .55s var(--mg-ease), border-color .55s; }
.mg .mg-price-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity .7s var(--mg-ease), transform 1.4s var(--mg-ease); z-index: -2; pointer-events: none; }
.mg-price-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,20,17,.32) 0%, rgba(26,20,17,.5) 55%, rgba(26,20,17,.66) 100%); opacity: 0; transition: opacity .7s var(--mg-ease); z-index: -1; }
.mg-price-card:hover, .mg-price-card:focus-within { transform: translateY(-6px); border-color: transparent; box-shadow: 0 34px 60px -34px rgba(26,20,17,.55); color: var(--mg-ivory); }
.mg-price-card:hover .mg-price-card__img, .mg-price-card:focus-within .mg-price-card__img { opacity: 1; transform: none; }
.mg-price-card:hover::after, .mg-price-card:focus-within::after { opacity: 1; }
.mg-price-card:hover .mg-num, .mg-price-card:focus-within .mg-num { color: #E6D2B6; }
.mg-price-card:hover .mg-price-card__who, .mg-price-card:focus-within .mg-price-card__who { color: rgba(246,241,234,.86); }
.mg-price-card--main { border-top: 2px solid var(--mg-accent); transform: translateY(-14px); }
.mg-price-card--main:hover, .mg-price-card--main:focus-within { transform: translateY(-20px); }
.mg-price-card__amount { font-family: var(--mg-title); font-size: clamp(2rem, 3.4vw, 3rem); margin: 6px 0 0; line-height: 1; }
.mg-price-card__who { margin: 0 0 10px; font-style: italic; color: var(--mg-muted); transition: color .55s; }
.mg-price-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mg-price-card li { padding-left: 22px; position: relative; font-size: .98rem; }
.mg-price-card li::before { content: ""; position: absolute; left: 0; top: .85em; width: 12px; height: 1px; background: var(--mg-accent); }
.mg-price-card__go { margin-top: 16px; font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; color: var(--mg-accent); opacity: 0; transform: translateY(6px); transition: opacity .5s var(--mg-ease), transform .5s var(--mg-ease), color .5s; display: inline-flex; align-items: center; gap: 12px; }
.mg-price-card__go::after { content: ""; width: 26px; height: 1px; background: currentColor; }
.mg-price-card:hover .mg-price-card__go, .mg-price-card:focus-within .mg-price-card__go { opacity: 1; transform: none; color: #E6D2B6; }
@media (hover: none) { .mg-price-card__go { opacity: 1; transform: none; } }
@media (max-width: 860px) { .mg-prices { grid-template-columns: 1fr; } .mg-price-card--main, .mg-price-card--main:hover { transform: none; } }
.mg-terms { max-width: var(--mg-max); margin: clamp(32px, 5vw, 64px) auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 40px); border-top: 1px solid var(--mg-line); padding-top: clamp(24px, 3vw, 40px); }
.mg-terms p { margin: 8px 0 0; font-size: .95rem; color: var(--mg-muted); }
@media (max-width: 860px) { .mg-terms { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mg-terms { grid-template-columns: 1fr; } }

/* FAQ */
.mg-faq-wrap { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: 4fr 8fr; gap: clamp(24px, 5vw, 80px); align-items: start; }
.mg-faq details { border-top: 1px solid var(--mg-line); }
.mg-faq details:last-child { border-bottom: 1px solid var(--mg-line); }
.mg-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .1em; font-size: .95rem; min-height: 48px; }
.mg-faq summary::-webkit-details-marker { display: none; }
.mg-faq summary::after { content: "+"; font-family: var(--mg-body); font-size: 1.4rem; font-weight: 300; color: var(--mg-accent); transition: transform .4s var(--mg-ease); }
.mg-faq details[open] summary::after { transform: rotate(45deg); }
.mg-faq p { margin: 0 0 22px; max-width: 62ch; color: var(--mg-muted); }
.mg-faq a { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 860px) { .mg-faq-wrap { grid-template-columns: 1fr; } }

/* Relacionados */
.mg-related { display: grid; grid-template-columns: 1fr 1fr; }
.mg-related__item { position: relative; min-height: 46svh; display: grid; align-items: end; overflow: hidden; color: var(--mg-ivory); }
.mg .mg-related__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--mg-ease); }
.mg-related__item:hover img { transform: scale(1.04); }
.mg-related__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, .05), rgba(26, 20, 17, .75)); }
.mg-related__item > div { position: relative; z-index: 2; padding: clamp(28px, 4vw, 56px); display: grid; gap: 8px; }
.mg-related__item .mg-num { color: #E2CFB4; }
.mg-related__item h3 { font-size: clamp(1.1rem, 1.8vw, 1.5rem); }
.mg-related__item p { margin: 0; color: rgba(246, 241, 234, .82); }
@media (max-width: 760px) { .mg-related { grid-template-columns: 1fr; } }

/* Variantes y correcciones */
.mg a.mg-btn, .mg button.mg-btn { color: var(--mg-ink); }
.mg a.mg-btn--solid, .mg button.mg-btn--solid { background: var(--mg-ink); color: var(--mg-paper); border-color: var(--mg-ink); }
.mg a.mg-btn--solid:hover, .mg button.mg-btn--solid:hover { color: var(--mg-paper); border-color: var(--mg-accent); }
.mg a.mg-btn--light, .mg .mg-dark a.mg-btn { color: var(--mg-ivory); border-color: var(--mg-ivory); background: transparent; }
.mg a.mg-btn--light:hover, .mg .mg-dark a.mg-btn:hover { color: var(--mg-night); }
.mg .mg-form button.mg-btn--solid { background: var(--mg-ivory); color: var(--mg-night); border-color: var(--mg-ivory); }
.mg .mg-page .mg-form button.mg-btn--solid { background: var(--mg-ink); color: var(--mg-paper); border-color: var(--mg-ink); }
.mg-hero__inner--center { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.mg-hero__inner--center .mg-hero__chapter { justify-content: center; }
.mg-hero__inner--center .mg-hero__title { max-width: 20ch; }
.mg-hero__inner--center .mg-hero__aside { text-align: center; justify-items: center; }
.mg-prices--2 { grid-template-columns: repeat(2, 1fr); max-width: 900px; }
.mg-univ3 { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); }
.mg-univ3__item { border-top: 1px solid var(--mg-line); padding-top: 24px; }
.mg-univ3__item h3 { margin: 10px 0 12px; font-size: 1.1rem; letter-spacing: .14em; }
.mg-univ3__item p { margin: 0; color: rgba(246, 241, 234, .75); }
@media (max-width: 860px) { .mg-univ3, .mg-prices--2 { grid-template-columns: 1fr; } }
/* Hero con foto a un lado y texto grande (Origen) */
.mg-hero--band { min-height: 80svh; }
/* Galería de retratos: cuadrícula de miradas */
.mg-faces { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(10px, 1.6vw, 22px); }
.mg-faces a { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--mg-sand); }
.mg-faces a:nth-child(3n) { aspect-ratio: 4 / 3; grid-column: span 2; }
.mg .mg-faces img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--mg-ease); }
.mg-faces a:hover img { transform: scale(1.03); }
@media (max-width: 760px) { .mg-faces { grid-template-columns: 1fr 1fr; } .mg-faces a:nth-child(3n) { grid-column: span 2; } }
/* Smash cake: cinta alegre con fotos a sangre horizontales */
.mg-ribbon { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: clamp(10px, 1.6vw, 22px); max-width: var(--mg-max); margin: 0 auto; }
.mg-ribbon a { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--mg-sand); }
.mg-ribbon a:first-child { grid-row: span 2; aspect-ratio: auto; }
.mg .mg-ribbon img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--mg-ease); }
.mg-ribbon a:hover img { transform: scale(1.03); }
@media (max-width: 760px) { .mg-ribbon { grid-template-columns: 1fr 1fr; } .mg-ribbon a:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 4 / 3; } }
/* Página Mía: capítulos largos */
.mg-chapter { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: 4fr 8fr; gap: clamp(24px, 5vw, 80px); align-items: start; padding: clamp(40px, 6vw, 80px) 0; border-top: 1px solid var(--mg-line); }
.mg-chapter:first-child { border-top: 0; }
.mg-chapter__aside { position: sticky; top: 110px; display: grid; gap: 14px; }
.mg-chapter__aside h2 { font-size: clamp(1.2rem, 2vw, 1.7rem); }
.mg-chapter__aside figure { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg .mg-chapter__aside img { width: 100%; height: 100%; object-fit: cover; }
.mg-chapter__body { max-width: 62ch; }
.mg-chapter__body p { margin: 0 0 1.2rem; font-size: 1.08rem; }
.mg-chapter__body .mg-pull { margin: 1.8rem 0; }
/* Realce fino para romper el texto corrido: negrita discreta (peso 500) y cursiva cálida */
.mg-chapter__body strong { font-weight: 500; color: var(--mg-ink); }
.mg-chapter__body em { font-style: italic; color: var(--mg-accent); }
@media (max-width: 860px) { .mg-chapter { grid-template-columns: 1fr; } .mg-chapter__aside { position: static; } }
/* Formación: dos públicos, dos tarjetas de entrada */
.mg-tracks { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 32px); }
.mg-track { background: var(--mg-paper); padding: clamp(24px, 3vw, 40px); border-top: 1px solid var(--mg-line); display: grid; gap: 12px; align-content: start; }
.mg-track h3 { font-size: 1.15rem; letter-spacing: .14em; }
.mg-track p { margin: 0; color: var(--mg-muted); }
.mg-track ul { margin: 0; padding-left: 18px; color: var(--mg-muted); font-size: .95rem; }
@media (max-width: 860px) { .mg-tracks { grid-template-columns: 1fr; } }
.mg-notice { max-width: 760px; margin: 0 auto; border: 1px solid var(--mg-line); padding: clamp(20px, 3vw, 32px); font-size: .95rem; color: var(--mg-muted); }
/* Hero centrado sobre foto clara: velo inferior más denso para la legibilidad */
.mg-hero--calm::after { background: linear-gradient(180deg, rgba(26, 20, 17, .38) 0%, rgba(26, 20, 17, .12) 35%, rgba(26, 20, 17, .82) 100%); }
.mg-hero--calm .mg-hero__inner { padding-bottom: clamp(40px, 6vh, 72px); }
.mg a.mg-wa { color: var(--mg-paper); }

/* ==========================================================================
   v1.1 — revisión 19-oct: mosaicos a hueso, degradados entre espacios,
   cabecera legible en páginas de sesión y botones editoriales.
   ========================================================================== */
:root { --mg-col: calc(min(100vw - 2 * var(--mg-gutter), var(--mg-max)) / 6); --mg-header-h: 92px; }
@media (max-width: 980px) { :root { --mg-header-h: 76px; } }

/* Botones: píldora fina, trazo de bronce, barrido al pasar */
.mg .mg-btn, .mg .wp-block-button__link, .mg a.mg-btn, .mg button.mg-btn { border-radius: 999px; padding: 1.15em 2.4em; letter-spacing: .22em; font-size: .74rem; border: 1px solid var(--mg-accent); color: var(--mg-ink); background: transparent; gap: 16px; }
.mg .mg-btn::before { border-radius: 999px; background: var(--mg-accent); transform: translateX(-101%); }
.mg .mg-btn:hover::before, .mg .mg-btn:focus-visible::before { transform: none; }
.mg .mg-btn::after { content: ""; width: 18px; height: 1px; background: currentColor; transition: width .45s var(--mg-ease); }
.mg .mg-btn:hover::after { width: 30px; }
.mg .mg-btn:hover, .mg a.mg-btn:hover { color: var(--mg-ivory); }
.mg a.mg-btn--solid, .mg button.mg-btn--solid { background: var(--mg-accent); color: var(--mg-ivory); border-color: var(--mg-accent); }
.mg .mg-btn--solid::before { background: var(--mg-ink); }
.mg a.mg-btn--solid:hover, .mg button.mg-btn--solid:hover { color: var(--mg-ivory); border-color: var(--mg-ink); }
.mg a.mg-btn--light, .mg .mg-dark a.mg-btn { color: var(--mg-ivory); border-color: rgba(246, 241, 234, .7); background: transparent; }
.mg .mg-btn--light::before, .mg .mg-dark .mg-btn::before { background: var(--mg-ivory); }
.mg a.mg-btn--light:hover, .mg .mg-dark a.mg-btn:hover { color: var(--mg-night); border-color: var(--mg-ivory); }
.mg .mg-form button.mg-btn--solid { background: transparent; color: var(--mg-ivory); border-color: rgba(246, 241, 234, .7); }
.mg .mg-form button.mg-btn--solid::before { background: var(--mg-ivory); }
.mg .mg-form button.mg-btn--solid:hover { color: var(--mg-night); }
.mg .mg-page .mg-form button.mg-btn--solid { background: var(--mg-accent); color: var(--mg-ivory); border-color: var(--mg-accent); }
.mg .mg-page .mg-form button.mg-btn--solid::before { background: var(--mg-ink); }

/* WhatsApp flotante: círculo discreto con el icono, en todas las pantallas */
.mg a.mg-wa { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; min-height: 0; padding: 0; border-radius: 50%; background: var(--mg-accent); color: var(--mg-ivory); box-shadow: 0 10px 30px -12px rgba(26, 20, 17, .6); transition: transform .4s var(--mg-ease), background .4s; right: calc(22px + env(safe-area-inset-right, 0px)); bottom: calc(22px + env(safe-area-inset-bottom, 0px)); }
.mg a.mg-wa:hover { transform: translateY(-3px); background: var(--mg-ink); }
.mg a.mg-wa svg { width: 26px; height: 26px; fill: currentColor; }
body.mg-menu-open .mg-wa, body.mg-lb-open .mg-wa { opacity: 0; pointer-events: none; }

/* Cabecera siempre legible en las páginas de sesión: la foto empieza bajo la cabecera */
.mg-shero { padding-top: var(--mg-header-h); }
.mg-shero__txt { padding-top: clamp(40px, 8vh, 96px); }
@media (max-width: 980px) { .mg-shero__img { margin-top: 0; } .mg-shero__txt { padding-top: 32px; } }
.mg-menu { z-index: 45; }
.mg-header { z-index: 46; }

/* Fondos SÓLIDOS: transición de color limpia entre secciones, sin fundidos sucios en los bordes */
.mg-section--sand { background: var(--mg-sand); }
.mg-section--night { background: var(--mg-night); padding-block: clamp(120px, 16vw, 240px); }
.mg-hero::after { background: linear-gradient(180deg, rgba(26, 20, 17, .3) 0%, rgba(26, 20, 17, 0) 36%, rgba(26, 20, 17, .55) 82%, rgba(26, 20, 17, .9) 100%); }
/* (Eliminados los overlays de fundido a papel en bordes de hero/xmas/cierre/siguiente paso:
   ensuciaban las transiciones. Ahora los bordes entre secciones son limpios.) */
.mg-xmas::after { background: linear-gradient(90deg, rgba(26, 20, 17, .72) 0%, rgba(26, 20, 17, .35) 60%, rgba(26, 20, 17, .1) 100%), linear-gradient(180deg, rgba(245, 239, 231, 0) 80%, var(--mg-paper) 100%); }
.mg-related { position: relative; }
.mg-closing::after { background: linear-gradient(180deg, rgba(26, 20, 17, .15), rgba(26, 20, 17, .88)); }
.mg-footer { background: linear-gradient(180deg, var(--mg-night), #120e0b); }
.mg-step { border-top-color: rgba(48, 35, 27, .09); }

/* Mosaicos a hueso: galerías */
.mg-gallery { gap: 0; grid-auto-rows: calc(var(--mg-col) * .66); background: var(--mg-sand); }
.mg-gallery__item::after { box-shadow: inset 0 0 0 0 transparent; }
.mg-faces { gap: 0; }
.mg-faces a:nth-child(3n) { aspect-ratio: 3 / 2; }
.mg-ribbon { gap: 0; }
@media (max-width: 980px) { .mg-gallery { grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 4 * .7); } }
@media (max-width: 560px) { .mg-gallery { grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 2 * .62); } }

/* Portada: especialidades como mosaico simétrico con texto sobre la foto */
.mg-specialties { grid-template-columns: repeat(4, 1fr); grid-auto-rows: calc(var(--mg-col) * 1.5 * 1.08); gap: 0; }
.mg-sp { position: relative; overflow: hidden; color: var(--mg-ivory); background: var(--mg-sand); }
.mg-sp__img { position: absolute; inset: 0; aspect-ratio: auto !important; }
.mg .mg-sp__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, 0) 45%, rgba(26, 20, 17, .72) 100%); transition: opacity .6s; }
.mg-sp__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: clamp(18px, 2.4vw, 32px); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 4px 16px; }
.mg-sp__cap h3 { font-size: clamp(.95rem, 1.3vw, 1.3rem); letter-spacing: .16em; }
.mg-sp__cap .mg-price { font-family: var(--mg-body); font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; color: #E2CFB4; white-space: nowrap; }
.mg-sp__cap .mg-sp__sub { grid-column: 1 / -1; margin: 0; font-style: italic; color: rgba(246, 241, 234, .82); font-size: .95rem; transform: translateY(6px); opacity: .85; transition: transform .6s var(--mg-ease), opacity .6s; }
.mg-sp:hover .mg-sp__sub { transform: none; opacity: 1; }
.mg-sp--embarazo { grid-column: 1 / 3; grid-row: 1 / 3; }
.mg-sp--newborn { grid-column: 3 / 5; grid-row: 1; }
.mg-sp--origen { grid-column: 3; grid-row: 2; }
.mg-sp--retratos { grid-column: 4; grid-row: 2; }
.mg-sp--smash { grid-column: 1 / 3; grid-row: 3; }
.mg-sp--intro { grid-column: 3 / 5; grid-row: 3; color: var(--mg-ink); background: linear-gradient(135deg, var(--mg-sand), #DCCFBD); position: relative; }
@media (max-width: 980px) {
  .mg-specialties { grid-template-columns: 1fr 1fr; grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 2 * 1.1); }
  .mg-sp--embarazo { grid-column: 1 / 3; grid-row: 1 / 3; }
  .mg-sp--newborn { grid-column: 1 / 3; grid-row: 3; }
  .mg-sp--origen { grid-column: 1; grid-row: 4; }
  .mg-sp--retratos { grid-column: 2; grid-row: 4; }
  .mg-sp--smash { grid-column: 1 / 3; grid-row: 5; }
  .mg-sp--intro { grid-column: 1 / 3; grid-row: 6; order: 0; min-height: 0; }
}

/* Portada: exposición como mosaico continuo */
.mg-expo { grid-template-columns: repeat(6, 1fr); grid-auto-rows: calc(var(--mg-col) * 1.15); gap: 0; background: var(--mg-sand); }
.mg-expo__full { grid-column: 1 / -1; grid-row: span 2; aspect-ratio: auto; }
.mg-expo__pair, .mg-expo__pause { display: contents; }
.mg-expo__pair .a { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; position: relative; }
.mg-expo__pair .b { grid-column: span 4; grid-row: span 2; aspect-ratio: auto; position: relative; }
.mg-expo > .mg-expo__pair:nth-of-type(2) .b { grid-column: 1 / 5; }
.mg-expo > .mg-expo__pair:nth-of-type(2) .a { grid-column: 5 / 7; }
.mg-expo__pause blockquote { grid-column: span 3; grid-row: span 2; display: grid; align-content: center; padding: clamp(28px, 4vw, 64px); max-width: none; background: linear-gradient(160deg, var(--mg-sand), #DCCFBD); }
.mg-expo__pause blockquote::before { content: "“"; font-family: var(--mg-title); font-size: 4rem; line-height: .6; color: var(--mg-accent); display: block; margin-bottom: 14px; }
.mg-expo__pause figure { grid-column: span 3; grid-row: span 2; aspect-ratio: auto; }
.mg-expo figure { position: relative; overflow: hidden; }
.mg .mg-expo figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mg-expo figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 14px clamp(14px, 2vw, 26px); color: rgba(246, 241, 234, .9); background: linear-gradient(180deg, rgba(26, 20, 17, 0), rgba(26, 20, 17, .6)); z-index: 2; }
.mg-expo > p { grid-column: 1 / -1; background: var(--mg-paper); padding-top: clamp(28px, 4vw, 48px); }
@media (max-width: 760px) {
  .mg-expo { grid-template-columns: 1fr 1fr; grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 2 * 1.2); }
  .mg-expo__full { grid-row: span 2; }
  .mg-expo__pair .a, .mg-expo__pair .b, .mg-expo > .mg-expo__pair:nth-of-type(2) .a, .mg-expo > .mg-expo__pair:nth-of-type(2) .b { grid-column: 1 / -1; grid-row: span 2; }
  .mg-expo__pause blockquote, .mg-expo__pause figure { grid-column: 1 / -1; grid-row: span 2; }
}

/* Perfil y otros mundos: sin desfases, imágenes a hueso */
.mg-profile__media { gap: 0; }
.mg-profile__media .small { width: 100%; }
.mg-worlds { gap: 0; }
.mg-world:nth-child(2) { margin-top: 0; }
.mg-world { position: relative; aspect-ratio: 4 / 5; display: grid; align-content: end; gap: 10px; padding: clamp(20px, 2.6vw, 36px); color: var(--mg-ivory); overflow: hidden; background: var(--mg-night); }
.mg-world figure { position: absolute; inset: 0; margin: 0; aspect-ratio: auto; }
.mg .mg-world figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, .05) 30%, rgba(26, 20, 17, .82) 100%); }
.mg-world > *:not(figure) { position: relative; z-index: 2; }
.mg-world h3 { margin: 0; }
.mg-world p { color: rgba(246, 241, 234, .82); font-size: .92rem; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .8s var(--mg-ease), opacity .6s; }
.mg-world:hover p, .mg-world:focus-within p { max-height: 14em; opacity: 1; }
@media (hover: none) { .mg-world p { max-height: none; opacity: 1; } }
@media (max-width: 760px) { .mg-world { aspect-ratio: 4 / 4; } }
/* Galería: unidades que encajan siempre (normal 4:3 = 2×2, vertical 2:3 = 2×4; sin anchas) */
.mg-gallery { grid-auto-rows: calc(var(--mg-col) * .75); }
.mg-gallery__item.is-tall { grid-row: span 4; }
.mg-gallery__item.is-wide { grid-column: span 2; grid-row: span 2; }
@media (max-width: 980px) { .mg-gallery { grid-template-columns: repeat(6, 1fr); grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 6 * .75); } .mg-gallery__item.is-wide { grid-column: span 2; } }
@media (max-width: 700px) { .mg-gallery { grid-template-columns: 1fr; grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) * .36); } .mg-gallery__item, .mg-gallery__item.is-wide { grid-column: 1; grid-row: span 2; } .mg-gallery__item.is-tall { grid-column: 1; grid-row: span 3; } }
/* Miradas (4 columnas) y cinta: anulan el tamaño de celda de la galería general */
.mg-faces .mg-gallery__item { grid-column: span 1; grid-row: auto; aspect-ratio: 3 / 4; }
.mg-faces .mg-gallery__item:nth-child(3n) { grid-column: span 2; aspect-ratio: 3 / 2; }
@media (max-width: 760px) { .mg-faces .mg-gallery__item:nth-child(3n) { grid-column: span 2; } }
.mg-ribbon .mg-gallery__item { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; }
.mg-ribbon .mg-gallery__item:first-child { grid-row: span 2; aspect-ratio: auto; }
@media (max-width: 760px) { .mg-ribbon .mg-gallery__item:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 4 / 3; } }
/* Tarjetas de precio (v1.1): misma altura, botón de reserva al pie, mecanismo de foto al pasar el ratón = el original (.mg-price-card__img) */
.mg-price-card { display: flex; flex-direction: column; gap: 10px; }
.mg-price-card__cta { margin-top: auto; padding-top: 12px; }
.mg .mg-price-card:hover a.mg-btn--solid, .mg .mg-price-card:focus-within a.mg-btn--solid { background: var(--mg-ivory); color: var(--mg-night); border-color: var(--mg-ivory); }
.mg .mg-price-card:hover a.mg-btn--solid::before { background: var(--mg-accent); }
.mg .mg-price-card:hover a.mg-btn--solid:hover { color: var(--mg-ivory); border-color: var(--mg-accent); }
.mg-price-card:hover li::before, .mg-price-card:focus-within li::before { background: #E6D2B6; }
/* Formación: las tres vías con el mismo efecto que las tarjetas de precio (foto al pasar el ratón) y el enlace alineado al pie */
.mg-track { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: 12px; transition: transform .55s var(--mg-ease), box-shadow .55s var(--mg-ease), border-color .55s, color .5s var(--mg-ease); }
.mg-track::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,20,17,.32) 0%, rgba(26,20,17,.5) 55%, rgba(26,20,17,.66) 100%); opacity: 0; transition: opacity .7s var(--mg-ease); z-index: -1; }
.mg-track:hover, .mg-track:focus-within { transform: translateY(-6px); border-color: transparent; box-shadow: 0 34px 60px -34px rgba(26,20,17,.55); color: var(--mg-ivory); }
.mg-track:hover .mg-price-card__img, .mg-track:focus-within .mg-price-card__img { opacity: 1; transform: none; }
.mg-track:hover::after, .mg-track:focus-within::after { opacity: 1; }
.mg-track:hover .mg-num, .mg-track:focus-within .mg-num { color: #E6D2B6; }
.mg-track:hover p, .mg-track:hover ul, .mg-track:focus-within p, .mg-track:focus-within ul { color: rgba(246,241,234,.86); }
.mg-track > .mg-link { margin-top: auto; padding-top: 10px; }
/* Cabecera con 4 + 4 enlaces: un poco más compacta para que quepa en una línea */
.mg-nav { gap: clamp(14px, 1.8vw, 28px); font-size: .7rem; letter-spacing: .2em; }
@media (max-width: 1180px) { .mg-nav { gap: 12px; font-size: .64rem; letter-spacing: .16em; } }
/* Portada, mosaico de sesiones: títulos claros con buen contraste sobre la foto */
.mg .mg-sp__cap h3, .mg .mg-sp__cap .mg-price, .mg .mg-sp__cap .mg-sp__sub { color: var(--mg-ivory); text-shadow: 0 1px 2px rgba(26, 20, 17, .45), 0 6px 24px rgba(26, 20, 17, .35); }
.mg .mg-sp__cap .mg-price { color: #EFE2CC; }
.mg .mg-sp__img::after { background: linear-gradient(180deg, rgba(26, 20, 17, 0) 38%, rgba(26, 20, 17, .45) 70%, rgba(26, 20, 17, .82) 100%); }
/* Enlaces y botones: nunca en dos líneas */
.mg-link, .mg .mg-btn { white-space: nowrap; }
.mg-hero__aside { max-width: 34ch; }
/* Portada: márgenes de los botones que sustituyen a los enlaces de texto */
.mg-statement__txt .mg-btn, .mg-profile__txt .mg-btn, .mg-sp--intro .mg-btn { justify-self: start; margin-top: 8px; }
.mg-world .mg-btn { justify-self: start; margin-top: 6px; }
/* Reservas: hero más corto y maqueta del calendario (en producción, contenedor del widget de Amelia) */
.mg-shero--short { min-height: 72svh; }
.mg-booking { max-width: 980px; margin: 0 auto; }
.mg-booking__mock { background: var(--mg-ivory); border: 1px solid var(--mg-line); padding: clamp(20px, 3vw, 40px); display: grid; gap: clamp(18px, 2.4vw, 30px); }
.mg-booking__steps { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--mg-muted); border-bottom: 1px solid var(--mg-line); padding-bottom: 16px; }
.mg-booking__steps .is-on { color: var(--mg-ink); border-bottom: 1px solid var(--mg-accent); padding-bottom: 16px; margin-bottom: -17px; }
.mg-booking__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(20px, 3vw, 44px); }
.mg-booking__col { display: grid; gap: 10px; align-content: start; }
.mg-booking__opt { display: grid; gap: 2px; padding: 14px 18px; border: 1px solid var(--mg-line); border-radius: 14px; cursor: pointer; transition: border-color .3s, background .3s; }
.mg-booking__opt b { font-weight: 400; font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .08em; font-size: .9rem; }
.mg-booking__opt span { font-size: .9rem; color: var(--mg-muted); }
.mg-booking__opt.is-on, .mg-booking__opt:hover { border-color: var(--mg-accent); background: rgba(154, 127, 98, .08); }
.mg-booking__cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; font-size: .9rem; }
.mg-booking__cal i { font-style: normal; font-size: .66rem; letter-spacing: .2em; color: var(--mg-muted); padding: 6px 0; }
.mg-booking__cal b, .mg-booking__cal s { font-weight: 400; padding: 9px 0; border-radius: 999px; }
.mg-booking__cal s { text-decoration: none; color: rgba(48, 35, 27, .3); }
.mg-booking__cal b:hover { background: rgba(154, 127, 98, .14); }
.mg-booking__cal b.is-on { background: var(--mg-accent); color: var(--mg-ivory); }
.mg-booking__hours { display: flex; flex-wrap: wrap; gap: 8px; }
.mg-booking__hours span { padding: 8px 16px; border: 1px solid var(--mg-line); border-radius: 999px; font-size: .9rem; }
.mg-booking__hours .is-on { background: var(--mg-ink); color: var(--mg-ivory); border-color: var(--mg-ink); }
.mg-booking__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; border-top: 1px solid var(--mg-line); padding-top: 18px; font-size: .95rem; }
@media (max-width: 760px) { .mg-booking__grid { grid-template-columns: 1fr; } }
/* Cuando esté el widget real de Amelia, que herede ancho y tipografía del tema */
.mg-booking .amelia-v2-booking { font-family: var(--mg-body); }
/* Heros de sesión: los dos botones en la misma línea y alineados */
.mg-shero__actions { gap: 14px 18px; align-items: center; }
.mg-shero__txt { max-width: 760px; }
.mg-shero__actions .mg-btn { padding: 1.05em 1.9em; letter-spacing: .2em; }
.mg-shero__actions .mg-btn { padding: 1.05em 1.6em; letter-spacing: .16em; gap: 12px; }
.mg-shero__actions { gap: 12px 14px; }
.mg .mg-shero__actions a.mg-btn { padding: 1.05em 1.6em; letter-spacing: .16em; gap: 12px; }
/* Botones: la línea del hover no cambia el ancho (se estira con transform), así ningún botón vecino salta de sitio */
.mg .mg-btn::after { width: 30px; transform: scaleX(.6); transform-origin: left center; transition: transform .45s var(--mg-ease); }
.mg .mg-btn:hover::after { width: 30px; transform: scaleX(1); }
/* Heros de sesión: el segundo botón va debajo del primero, alineado a la izquierda */
.mg-shero__actions { flex-direction: column; align-items: flex-start; gap: 12px; }
/* Sobre Mía: segunda foto del capítulo (apaisada) con pie */
.mg-chapter__aside .mg-chapter__second { aspect-ratio: 3 / 2; position: relative; }
.mg-chapter__second figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 16px; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(246,241,234,.9); background: linear-gradient(180deg, rgba(26,20,17,0), rgba(26,20,17,.6)); }
/* Contacto: formulario a la izquierda, foto y datos del estudio a la derecha */
.mg-contact2 { max-width: var(--mg-max); margin: 0 auto; display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.mg-contact2__form { display: grid; gap: 18px; }
.mg-contact2__form h2 { font-size: clamp(1.3rem, 2.4vw, 2rem); max-width: 22ch; }
.mg-contact2__info { display: grid; gap: clamp(22px, 3vw, 36px); }
.mg-contact2__photo { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.mg .mg-contact2__photo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--mg-focus, 50% 30%); }
.mg-contact2__block { display: grid; gap: 8px; }
.mg-contact2__block p { margin: 0; }
.mg-contact2__block .mg-btn { justify-self: start; margin-top: 6px; }
.mg .mg-page .mg-form label { color: var(--mg-muted); }
@media (max-width: 980px) { .mg-contact2 { grid-template-columns: 1fr; } .mg-contact2__photo { aspect-ratio: 16 / 11; } }
/* Blog: cabecera, tarjetas en mosaico sin huecos con el texto sobre la foto, paginación en píldora */
.mg-page__head--blog { text-align: center; padding-top: calc(var(--mg-header-h) + clamp(40px, 6vw, 80px)); }
.mg-page__head--blog .mg-lead { max-width: 56ch; margin: 0 auto; }
.mg-posts__grid.wp-block-post-template.is-layout-grid { gap: 0 !important; }
.mg-post { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--mg-sand); color: var(--mg-ivory); display: grid; align-content: end; }
.mg-post__img { position: absolute; inset: 0; margin: 0; }
.mg-post__img a { display: block; height: 100%; }
.mg .mg-post__img img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; transition: transform 1.6s var(--mg-ease), filter 1s var(--mg-ease); filter: saturate(.92); }
.mg-post:hover .mg-post__img img, .mg-post:focus-within .mg-post__img img { transform: scale(1.04); filter: saturate(1); }
.mg-post::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26, 20, 17, 0) 38%, rgba(26, 20, 17, .45) 70%, rgba(26, 20, 17, .84) 100%); pointer-events: none; }
.mg-post__cap { position: relative; z-index: 2; padding: clamp(18px, 2.4vw, 32px); display: grid; gap: 8px; }
.mg-post__cap .mg-kicker, .mg-post__cap .mg-kicker a { color: #E2CFB4; }
.mg .mg-post__title { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .1em; font-size: clamp(.95rem, 1.2vw, 1.15rem); line-height: 1.3; }
.mg .mg-post__title a { color: var(--mg-ivory); text-shadow: 0 1px 2px rgba(26, 20, 17, .45); }
.mg-post__excerpt { color: rgba(246, 241, 234, .85); font-size: .92rem; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .8s var(--mg-ease), opacity .6s; }
.mg-post:hover .mg-post__excerpt, .mg-post:focus-within .mg-post__excerpt { max-height: 8em; opacity: 1; }
@media (hover: none) { .mg-post__excerpt { display: none; } }
.mg-posts { padding-bottom: clamp(56px, 8vw, 120px); }
.wp-block-query-pagination { margin: clamp(32px, 5vw, 56px) 0 0; gap: 10px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 16px; border: 1px solid var(--mg-line); border-radius: 999px; color: var(--mg-ink); }
.wp-block-query-pagination .page-numbers.current, .wp-block-query-pagination a:hover { border-color: var(--mg-accent); background: var(--mg-accent); color: var(--mg-ivory); }
@media (max-width: 980px) { .mg-posts__grid.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 600px) { .mg-posts__grid.wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; } .mg-post { aspect-ratio: 4 / 4; } }
/* Entrada: lectura cómoda y bloque final */
.mg-single__head { text-align: center; padding-top: calc(var(--mg-header-h) + clamp(32px, 5vw, 64px)); }
.mg-single__title { max-width: 24ch; margin: 0 auto; }
.mg-single__cover { margin-bottom: clamp(40px, 6vw, 72px); }
.mg-single__cover img { aspect-ratio: 16 / 7; }
.mg-single .wp-block-post-content { max-width: 720px; margin: 0 auto; }
.mg-single .wp-block-post-content img { margin: clamp(24px, 4vw, 40px) 0; }
.mg-single .wp-block-post-content a { text-decoration: underline; text-underline-offset: 4px; }
.mg-author { max-width: 720px; margin-left: auto; margin-right: auto; }
.mg-author__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.mg-related-posts { margin-top: 0; }
.mg-related-posts__title { margin: 10px 0 clamp(24px, 4vw, 40px); }
.mg-posts--related { padding-bottom: 0; }
.mg-posts .mg-posts__grid, .mg-posts .wp-block-query-pagination { max-width: var(--mg-max) !important; margin-left: auto !important; margin-right: auto !important; }
/* Blog: filtros por tipo de sesión y buscador */
.mg-blognav { max-width: var(--mg-max); margin: 0 auto clamp(28px, 4vw, 48px); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 28px; padding: 0 var(--mg-gutter); }
.mg-blognav__cats { display: flex; flex-wrap: wrap; gap: 8px; }
.mg-blognav__cats a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--mg-line); border-radius: 999px; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; transition: background .3s, border-color .3s, color .3s; }
.mg-blognav__cats a span { font-size: .62rem; color: var(--mg-accent); }
.mg-blognav__cats a:hover, .mg-blognav__cats a[aria-current="page"] { background: var(--mg-ink); border-color: var(--mg-ink); color: var(--mg-ivory); }
.mg-blognav__cats a[aria-current="page"] span, .mg-blognav__cats a:hover span { color: #E2CFB4; }
.mg-blognav__search { display: flex; align-items: center; border-bottom: 1px solid var(--mg-line); min-width: 260px; }
.mg-blognav__search input[type="search"] { flex: 1; border: 0; background: transparent; font: inherit; font-size: .95rem; padding: 10px 0; color: var(--mg-ink); -webkit-appearance: none; }
.mg-blognav__search input:focus { outline: none; }
.mg-blognav__search button { border: 0; background: transparent; color: var(--mg-accent); cursor: pointer; width: 44px; height: 44px; display: grid; place-items: center; }
@media (max-width: 760px) { .mg-blognav { flex-direction: column; align-items: stretch; } .mg-blognav__search { min-width: 0; } }
/* Interior de las entradas: bloques propios de Mía */
.mg-single .wp-block-post-content { font-size: 1.08rem; line-height: 1.8; }
.mg-single .wp-block-post-content h2 { font-size: clamp(1.25rem, 2vw, 1.6rem); margin: 2.6rem 0 1rem; scroll-margin-top: 110px; }
.mg-single .wp-block-post-content h3 { font-size: 1.05rem; margin: 2rem 0 .8rem; }
.mg-single .wp-block-post-content strong { font-weight: 500; }
.mg-single .wp-block-post-content :where(ul, ol) { padding-left: 1.3em; }
.mg-single .wp-block-post-content li { margin-bottom: .4em; }
.mg-resumen, .mg-toc { background: var(--mg-sand); padding: clamp(20px, 3vw, 32px); margin: 2rem 0; }
.mg-resumen__t, .mg-toc__t, .mg-cta__t, .mg-next__k { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .22em; font-size: .78rem; color: var(--mg-accent); margin: 0 0 12px; }
.mg-resumen__l, .mg-toc__l { margin: 0; padding-left: 1.2em; }
.mg-toc__l a { text-decoration: none !important; border-bottom: 1px solid var(--mg-line); }
.mg-toc__l a:hover { border-bottom-color: var(--mg-accent); }
.mg-single .wp-block-post-content .wp-block-gallery.mg-par, .mg-single .wp-block-post-content .wp-block-gallery { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0 !important; margin: clamp(24px, 4vw, 40px) 0; }
.mg-single .wp-block-post-content .wp-block-gallery > figure { margin: 0 !important; width: auto !important; aspect-ratio: 4 / 5; overflow: hidden; }
.mg-single .wp-block-post-content .wp-block-gallery > figure img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.mg-single .wp-block-post-content > .wp-block-image img, .mg-single .wp-block-post-content figure.wp-block-image img { width: 100%; }
.mg-single .wp-block-post-content figcaption { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--mg-muted); margin-top: 10px; text-align: left; }
.mg-cta { position: relative; background: var(--mg-night); color: var(--mg-ivory); padding: clamp(24px, 3.5vw, 40px); margin: 2.4rem 0; display: grid; gap: 10px; }
.mg-cta__t { color: #E2CFB4; font-size: 1rem; letter-spacing: .12em; }
.mg-cta p { margin: 0; }
.mg-cta__n { color: rgba(246, 241, 234, .75); font-size: .95rem; }
.mg a.mg-cta__b { display: inline-flex; align-items: center; gap: 14px; border: 1px solid rgba(246, 241, 234, .7); border-radius: 999px; padding: 1.05em 1.8em; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; text-decoration: none !important; transition: background .4s, color .4s; }
.mg a.mg-cta__b::after { content: ""; width: 22px; height: 1px; background: currentColor; }
.mg a.mg-cta__b:hover { background: var(--mg-ivory); color: var(--mg-night); }
.mg-next { border-top: 1px solid var(--mg-line); border-bottom: 1px solid var(--mg-line); padding: 24px 0; margin: 2.4rem 0; }
.mg-next p { margin: 0 0 6px; }
.mg a.mg-next__t { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .1em; font-size: 1.05rem; text-decoration: none !important; }
.mg-next__d { color: var(--mg-muted); font-size: .95rem; }
.mg-autora { display: grid; grid-template-columns: 96px 1fr; gap: 22px; align-items: center; margin: 2.4rem 0; padding: 24px; background: var(--mg-sand); }
.mg .mg-autora__f { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0; }
.mg-autora__c p { margin: 0 0 4px; }
.mg-autora__n { font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .14em; font-size: .9rem; }
.mg-autora__d { color: var(--mg-muted); font-size: .95rem; }
.mg-single .wp-block-details.mg-faq { border-top: 1px solid var(--mg-line); padding: 6px 0; margin: 0; }
.mg-single .wp-block-details.mg-faq:last-of-type { border-bottom: 1px solid var(--mg-line); }
.mg-single .wp-block-details.mg-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 0; font-family: var(--mg-title); text-transform: uppercase; letter-spacing: .08em; font-size: .92rem; }
.mg-single .wp-block-details.mg-faq summary::-webkit-details-marker { display: none; }
.mg-single .wp-block-details.mg-faq summary::after { content: "+"; font-family: var(--mg-body); font-size: 1.4rem; font-weight: 300; color: var(--mg-accent); }
.mg-single .wp-block-details.mg-faq[open] summary::after { content: "–"; }
.mg-single .wp-block-details.mg-faq p { color: var(--mg-muted); margin: 0 0 16px; }
.mg-single .wp-block-separator { border: 0; border-top: 1px solid var(--mg-line); margin: 2.4rem auto; width: 80px; }
.mg-single .wp-block-post-content a:not(.mg-cta__b):not(.mg-next__t) { color: var(--mg-ink); text-decoration-color: var(--mg-accent); }
.mg-autora > p:empty { display: none; }
.mg-autora { grid-auto-flow: dense; }
/* Páginas de texto (legales): columna de lectura y cabecera bajo el menú */
.mg-page .mg-page__head { padding-top: calc(var(--mg-header-h) + clamp(32px, 5vw, 64px)); max-width: 760px; margin: 0 auto; }
.mg-page .wp-block-post-content { max-width: 760px; margin: 0 auto; padding-bottom: clamp(56px, 8vw, 120px); font-size: 1.02rem; }
.mg-page .wp-block-post-content h2 { font-size: 1.15rem; margin: 2.2rem 0 .8rem; }
.mg-page .wp-block-post-content h3 { font-size: .95rem; margin: 1.6rem 0 .6rem; letter-spacing: .12em; }
.mg-page .wp-block-post-content :where(p, ul, ol) { margin: 0 0 1rem; }
.mg-page .wp-block-post-content ul { padding-left: 1.2em; }
.mg-page .wp-block-post-content li { margin-bottom: .45em; }
.mg-page .wp-block-post-content a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--mg-accent); }
/* Responsive v1.1: la galería es SIEMPRE mosaico (anula la antigua tira horizontal táctil) y la banda de Navidad no desborda */
.mg-gallery { display: grid !important; flex-wrap: initial; overflow: visible !important; padding: 0 !important; }
.mg-gallery > .mg-gallery__item { flex: none !important; width: auto !important; height: auto !important; }
.mg-xmas__inner { width: auto; max-width: var(--mg-max); }
@media (max-width: 760px) { .mg-gallery > .mg-gallery__item { width: auto !important; height: auto !important; } }
/* Responsive v1.1: tablet (701-980) con el mismo mosaico de 6 columnas que escritorio; mundos a una columna */
@media (min-width: 701px) and (max-width: 980px) {
  .mg-gallery { grid-template-columns: repeat(6, 1fr) !important; grid-auto-rows: calc((100vw - 2 * var(--mg-gutter)) / 6 * .75) !important; grid-auto-flow: row dense; }
  .mg-gallery > .mg-gallery__item, .mg-gallery > .mg-gallery__item.is-wide { grid-column: span 2 !important; grid-row: span 2 !important; }
  .mg-gallery > .mg-gallery__item.is-tall { grid-column: span 2 !important; grid-row: span 4 !important; }
  .mg-worlds { grid-template-columns: 1fr 1fr; }
  .mg-world:last-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
}
@media (max-width: 700px) {
  .mg-gallery > .mg-gallery__item, .mg-gallery > .mg-gallery__item.is-wide { grid-column: 1 !important; grid-row: span 2 !important; }
  .mg-gallery > .mg-gallery__item.is-tall { grid-column: 1 !important; grid-row: span 3 !important; }
}
.mg-world .mg-btn { max-width: 100%; }
@media (max-width: 980px) { .mg-world p { max-height: none; opacity: 1; } }

/* v1.2 (20-oct): vídeo en portada y en capítulos */
.mg .mg-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; z-index: 0; pointer-events: none; background: var(--mg-night); }
.mg .mg-hero__inner { position: relative; z-index: 1; }
.mg-chapter__video video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; background: var(--mg-night); }
@media (prefers-reduced-motion: reduce) { .mg .mg-hero__video { display: none; } .mg-chapter__video video { display: none; } }
/* v1.2: el mosaico de 6 columnas también en escritorio (>980 px); antes solo estaba definido para tablet y la galería se apilaba en una columna */
@media (min-width: 981px) {
  .mg-gallery { grid-template-columns: repeat(6, 1fr) !important; grid-auto-rows: calc(var(--mg-col) * .75) !important; grid-auto-flow: row dense; }
  .mg-gallery > .mg-gallery__item, .mg-gallery > .mg-gallery__item.is-wide { grid-column: span 2 !important; grid-row: span 2 !important; }
  .mg-gallery > .mg-gallery__item.is-tall { grid-column: span 2 !important; grid-row: span 4 !important; }
}
/* v1.2.1: en móvil los botones píldora largos pueden partir en dos líneas en vez de desbordar (en escritorio siguen en una línea) */
@media (max-width: 560px) { .mg a.mg-btn, .mg .mg-btn { white-space: normal; text-align: center; max-width: 100%; box-sizing: border-box; line-height: 1.3; } }
/* v1.2.2: velo más oscuro en las tarjetas de Formación (fotos más claras que las de sesiones) para que el texto blanco contraste */
.mg-track::after { background: linear-gradient(180deg, rgba(26,20,17,.5) 0%, rgba(26,20,17,.66) 50%, rgba(26,20,17,.82) 100%); }
.mg-track:hover h3, .mg-track:focus-within h3 { color: var(--mg-ivory); }
/* v1.3 (20-oct, decisión de Steffy): las galerías principales vuelven a ser la TIRA HORIZONTAL con desplazamiento automático
   (main.js «Galería HORIZONTAL»), sin huecos entre fotos. Anula las capas de mosaico anteriores solo para .mg-gallery;
   .mg-faces y .mg-ribbon siguen siendo mosaicos fijos. */
.mg-gallery { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; overflow-x: auto !important; overflow-y: hidden !important; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scrollbar-width: none; padding: 0 !important; background: var(--mg-sand); grid-template-columns: none !important; grid-auto-rows: auto !important; }
.mg-gallery::-webkit-scrollbar { display: none; height: 0; width: 0; }
.mg-gallery > .mg-gallery__item, .mg-gallery > .mg-gallery__item.is-tall, .mg-gallery > .mg-gallery__item.is-wide { flex: 0 0 clamp(260px, 32vw, 440px) !important; width: clamp(260px, 32vw, 440px) !important; height: clamp(360px, 62vh, 580px) !important; grid-column: auto !important; grid-row: auto !important; margin: 0; position: relative; overflow: hidden; }
.mg .mg-gallery > .mg-gallery__item img { width: 100%; height: 100%; max-width: none; display: block; object-fit: cover; -webkit-user-drag: none; user-select: none; }
@media (max-width: 760px) { .mg-gallery > .mg-gallery__item, .mg-gallery > .mg-gallery__item.is-tall, .mg-gallery > .mg-gallery__item.is-wide { flex-basis: 78vw !important; width: 78vw !important; height: clamp(320px, 62vh, 480px) !important; } }

/* ==========================================================================
   v1.4 (20-oct): revisión móvil a fondo
   ========================================================================== */
/* 1. Franja clara sobre el hero (logo blanco «cortado»): el grupo principal heredaba el blockGap (20 px) del editor de bloques. */
.wp-site-blocks > * + *, .wp-site-blocks > .mg-main { margin-block-start: 0 !important; }
/* 2. Menú a pantalla completa: main.js lo saca de la cabecera. Dentro de ella, backdrop-filter (cabecera fija) y transform
      (cabecera escondida) la convertían en contenedor del menú y éste quedaba atrapado/recortado. */
body > .mg-menu { position: fixed; inset: 0; z-index: 45; height: 100dvh; padding: calc(var(--mg-header-h) + 20px) var(--mg-gutter) calc(48px + env(safe-area-inset-bottom, 0px)); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
body.mg-menu-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
body.mg-menu-open .mg-header { position: fixed; transform: none !important; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
/* 3. Mosaico de sesiones: sin la línea sobre la foto (el borde superior del rótulo venía del diseño antiguo con el texto bajo la foto). */
.mg-sp__cap { border-top: 0 !important; }
/* 4. Mosaico en móvil y tablet: cada celda por proporción. Antes las filas tenían altura fija y el bloque
      «Una sesión para cada momento» recortaba el título y el botón; los rótulos tapaban las fotos pequeñas. */
@media (max-width: 980px) {
  .mg-specialties { grid-template-columns: 1fr 1fr; grid-auto-rows: auto !important; gap: 0; }
  .mg-sp { aspect-ratio: 4 / 5; max-height: 88svh; }
  .mg-sp--embarazo { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 5; }
  .mg-sp--newborn { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 3; }
  .mg-sp--origen { grid-column: 1; grid-row: auto; aspect-ratio: 3 / 4; }
  .mg-sp--retratos { grid-column: 2; grid-row: auto; aspect-ratio: 3 / 4; }
  .mg-sp--smash { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 3; }
  .mg-sp--intro { grid-column: 1 / -1; grid-row: auto; order: -1; aspect-ratio: auto; max-height: none; height: auto; min-height: 0; overflow: visible; padding: clamp(36px, 7vw, 64px) clamp(22px, 5vw, 48px); }
  .mg-sp--intro p { max-width: 60ch; }
}
@media (max-width: 560px) {
  .mg-sp--origen .mg-sp__cap, .mg-sp--retratos .mg-sp__cap { padding: 14px; grid-template-columns: 1fr; gap: 4px; }
  .mg-sp--origen .mg-sp__cap h3, .mg-sp--retratos .mg-sp__cap h3 { font-size: .8rem; letter-spacing: .1em; }
  .mg-sp--origen .mg-sp__cap .mg-price, .mg-sp--retratos .mg-sp__cap .mg-price { font-size: .6rem; justify-self: start; }
  .mg-sp--origen .mg-sp__sub, .mg-sp--retratos .mg-sp__sub { display: none; }
}
/* 5. Botones píldora que parten en dos líneas en móvil: la altura crece con el texto. */
@media (max-width: 560px) { .mg a.mg-btn, .mg .mg-btn, .mg button.mg-btn { height: auto; min-height: 48px; padding-block: 1em; } }
/* 6. Banda de Navidad en móvil: velo vertical más denso, el texto y el botón se leen sobre la foto. */
@media (max-width: 760px) {
  .mg-xmas { min-height: 0; }
  .mg-xmas::after { background: linear-gradient(180deg, rgba(26, 20, 17, .6) 0%, rgba(26, 20, 17, .7) 60%, rgba(26, 20, 17, .88) 100%); }
  .mg .mg-xmas__img { object-position: 72% 40%; }
  .mg-xmas__inner { padding-block: clamp(56px, 12vw, 90px); }
}
/* 7. «Mis otros mundos» y cierre «Hablemos» en móvil: velo más denso; en pantallas estrechas el texto cae sobre la parte clara de la foto. */
@media (max-width: 760px) {
  .mg .mg-world figure::after { background: linear-gradient(180deg, rgba(26, 20, 17, .3) 0%, rgba(26, 20, 17, .9) 100%); }
  .mg-closing::after { background: linear-gradient(180deg, rgba(26, 20, 17, .5) 0%, rgba(26, 20, 17, .9) 60%, rgba(26, 20, 17, .94) 100%); }
}
/* 8. «Siguiente paso»: las dos tarjetas aparecen solo con fundido (el desplazamiento de 28 px de la segunda tapaba el título de la primera mientras entraba). */
.mg-related .mg-rv { transform: none; }
/* 9. Tienda en móvil: el botón «Comprar la tarjeta regalo · 280 €» centra sus dos líneas y no parte el precio. */
@media (max-width: 560px) { .mg .mg-regalo__btn { justify-content: center; } .mg .mg-regalo__btn [data-mg-precio] { white-space: nowrap; } }
/* v1.4.1 (20-oct): Contacto con los bloques de información a dos columnas (menos alto); botones de una sola línea y sin raya en móvil. */
.mg-contact2__info { grid-template-columns: 1fr 1fr; column-gap: clamp(20px, 3vw, 40px); row-gap: clamp(22px, 3vw, 36px); align-items: start; }
.mg-contact2__photo { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
@media (max-width: 980px) { .mg-contact2__photo { aspect-ratio: 16 / 10; } }
@media (max-width: 600px) { .mg-contact2__info { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .mg a.mg-btn, .mg .mg-btn, .mg button.mg-btn, .mg .wp-block-button__link { white-space: nowrap; font-size: .64rem; letter-spacing: .14em; padding: 1.1em 1.5em; gap: 0; max-width: 100%; line-height: 1.2; text-align: center; }
  .mg .mg-btn::after, .mg .wp-block-button__link::after { display: none; }
}
/* v1.4.2: en escritorio la columna de información de Contacto va a mitad de anchura, para que sus dos columnas de bloques respiren. */
@media (min-width: 981px) { .mg-contact2 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .mg .mg-regalo__btn { font-size: .6rem; letter-spacing: .1em; padding-inline: 1em; } }
@media (max-width: 360px) { .mg .mg-regalo__btn { font-size: .54rem; } }
/* v1.4.3 (20-oct, Steffy): sin rayas ni guiones decorativos en botones, enlaces-botón y tarjetas de precio, en todos los tamaños. */
.mg .mg-btn::after, .mg .wp-block-button__link::after, .mg-link::after, .mg-price-card__go::after, .mg a.mg-cta__b::after, .mg-sp__cap .mg-sp__sub::after { display: none !important; }
.mg .mg-btn, .mg .wp-block-button__link, .mg-link, .mg a.mg-cta__b { gap: 0; }
.mg-price-card li { padding-left: 16px; }
.mg-price-card li::before { width: 4px; height: 4px; border-radius: 50%; top: .7em; }
/* Menú móvil: la cabecera mantiene fondo papel mientras el menú está abierto, para que las entradas no pasen por debajo del logo al desplazarse. */
body.mg-menu-open .mg-header { background: var(--mg-paper); }
/* v1.4.4: texto centrado en todos los botones (los de ancho completo en móvil lo dejaban pegado a la izquierda). */
.mg .mg-btn, .mg a.mg-btn, .mg button.mg-btn, .mg .wp-block-button__link, .mg .mg-regalo__btn, .mg .mg-comprar button { justify-content: center; text-align: center; }
/* v1.4.5: «Tarjeta regalo» en el menú superior de escritorio (entre Smash Cake y Sobre Mía); el menú ya se compacta por debajo de 1180 px. */
@media (max-width: 1320px) { .mg-nav { gap: clamp(12px, 1.6vw, 22px); font-size: .68rem; letter-spacing: .18em; } }
@media (max-width: 1180px) { .mg-nav { gap: 10px; font-size: .62rem; letter-spacing: .14em; } }
/* v1.4.6: menú de escritorio 5 + 5 (izq.: Embarazo · Newborn · Maternidad · Navidad · Familia; der.: Smash Cake · Tarjeta regalo · Sobre Mía · Formación · Contacto). */
.mg-nav { gap: clamp(12px, 1.5vw, 26px); font-size: .7rem; letter-spacing: .18em; }
@media (max-width: 1320px) { .mg-nav { gap: clamp(10px, 1.2vw, 18px); font-size: .64rem; letter-spacing: .14em; } }
@media (max-width: 1180px) { .mg-nav { gap: 9px; font-size: .58rem; letter-spacing: .1em; } .mg-logo { width: 140px; } }
/* v1.4.7 (Steffy): hero de portada sin la raya delante del capítulo, subtítulo en cursiva más pequeño y texto lateral en dos líneas. */
.mg-hero__chapter::before { display: none; }
.mg-hero__chapter { gap: 0; }
.mg-hero__title em { font-size: .5em; margin-top: .6em; }
@media (min-width: 981px) { .mg-hero__aside { max-width: 54ch; } }
/* v1.4.8: el texto lateral del hero lleva salto de línea manual; ancho libre para que cada frase ocupe una línea en escritorio. */
@media (min-width: 981px) { .mg-hero__aside { max-width: 66ch; } }
/* v1.4.9: cada línea manual del título del hero se mantiene entera (Formación partía «Encontrar tu / propia mirada» en cuatro líneas). */
.mg-hero__title { max-width: none; }
.mg-hero__inner--center .mg-hero__title { max-width: none; }
.mg-hero__title .mg-line { white-space: nowrap; }
@media (max-width: 380px) { .mg-hero__title .mg-line { white-space: normal; } }
/* v1.4.10: logo central algo más pequeño en escritorio y más aire entre el logo y las entradas del menú. */
@media (min-width: 981px) { .mg-logo { width: clamp(140px, 12vw, 176px); } .mg-header__inner { gap: clamp(32px, 3.5vw, 56px); } }
/* v1.4.11: el texto lateral del hero de portada no se limita a 34ch en ningún ancho (en ventanas de ~1000 px partía en cinco líneas). */
.mg-hero__aside { max-width: none; }
@media (max-width: 980px) { .mg-hero__aside { max-width: none; } }
/* v1.4.12: la columna lateral del hero se dimensiona por su contenido (la rejilla «1fr auto» la dejaba al ancho del botón, 217 px). */
@media (min-width: 981px) { .mg-hero__aside { width: max-content; max-width: 60ch; } }
@media (min-width: 981px) and (max-width: 1200px) { .mg-hero__aside { font-size: .88rem; } }
/* v1.4.13: la línea «Fotógrafa de embarazo y newborn · Barcelona · Sant Celoni» de la portada va en dos líneas limpias en móvil. */
.mg-hero__chapter { flex-wrap: wrap; }
@media (max-width: 760px) { .mg-hero__chapter { display: block; } .mg-hero__chapter > span { display: block; } .mg-hero__chapter-sep { display: none; } }
/* v1.4.14: el separador «·» de la línea de capítulo queda oculto en móvil (la regla anterior perdía por especificidad). */
@media (max-width: 760px) { .mg-hero__chapter > .mg-hero__chapter-sep { display: none !important; } }
/* v1.4.15: «Conservar cómo / nos sentíamos» con salto manual: cada línea entera (en escritorio «Conservar cómo» se partía por el ancho de 46ch). */
.mg-statement__txt h2 { max-width: none; white-space: nowrap; }
@media (max-width: 380px) { .mg-statement__txt h2 { white-space: normal; } }
/* v1.4.16: banda de Navidad en portada: «Navidad / El Reino de los Deseos» con salto manual; en escritorio cada línea entera. */
.mg-xmas__box { max-width: none; }
@media (min-width: 981px) { .mg-xmas h2 { white-space: nowrap; } }
.mg-xmas p { max-width: 52ch; }
/* v1.4.17: sin botón de play sobre los vídeos en bucle (Safari iOS lo dibuja cuando bloquea el autoplay; main.js los arranca al tocar). */
.mg video::-webkit-media-controls-start-playback-button, .mg video::-webkit-media-controls { display: none !important; -webkit-appearance: none; }
.mg-chapter__video video, .mg .mg-hero__video { pointer-events: none; }
/* v1.4.18: crédito discreto «Web hecha por M the Agency» en el pie. */
.mg-footer__credit { font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(246, 241, 234, .45); text-decoration: none; transition: color .4s; }
.mg-footer__credit:hover { color: rgba(246, 241, 234, .85); }
/* v1.4.19: vídeo bloqueado por el navegador → invisible sobre su fotograma de portada (sin botón de play). */
.mg video.is-blocked { visibility: hidden; }
.mg-chapter__video, .mg-hero { background-repeat: no-repeat; }
