/* =========================================================
   TuBabyShower - Micrositio Público
   Diseño: Nube Amor
   Archivo destino:
   /wp-content/themes/lovebite/assets/css/micrositios/tbs-micrositio-Nube-Amor.css

   Shortcodes objetivo:
   [tbs_micrositio_publico plan="dulce_llegada"]
   [tbs_micrositio_publico plan="dulce_experiencia"]
   [tbs_micrositio_contratado plan="dulce_llegada"]
   [tbs_micrositio_contratado plan="dulce_experiencia"]

   Importante:
   - Este CSS NO depende de [tbs_selector_template_evento].
   - Este CSS solamente aplica al micrositio público cuando el diseño
     seleccionado por [tbs_selector_micrositio_evento] es Nube Amor.
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Alex+Brush&family=Cormorant+Garamond:wght@500;600;700&family=Roboto:wght@400;500;700;900&display=swap');

/* =========================================================
   0) AISLAMIENTO Y VARIABLES DEL DISEÑO
========================================================= */

.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    --tbs-ms-pink: #ec6fa3;
    --tbs-ms-pink-dark: #ce4f86;
    --tbs-ms-blush: #fff1f7;
    --tbs-ms-peach: #ffd7bf;
    --tbs-ms-cream: #fffaf3;
    --tbs-ms-blue: #8fc7dc;
    --tbs-ms-blue-dark: #5aa3bf;
    --tbs-ms-gold: #d8a24c;
    --tbs-ms-lav: #bba1e8;
    --tbs-ms-green: #65b890;

    --tbs-ms-ink: #3d3339;
    --tbs-ms-muted: #786873;
    --tbs-ms-soft: #fff7fb;
    --tbs-ms-white: #ffffff;

    --tbs-ms-border: rgba(236, 111, 163, .18);
    --tbs-ms-blue-border: rgba(143, 199, 220, .24);
    --tbs-ms-card: rgba(255, 255, 255, .90);
    --tbs-ms-card-solid: #ffffff;

    --tbs-ms-shadow: 0 28px 80px rgba(151, 92, 130, .16);
    --tbs-ms-shadow-soft: 0 16px 42px rgba(63, 49, 56, .09);
    --tbs-ms-shadow-blue: 0 18px 44px rgba(89, 163, 191, .16);

    --tbs-ms-radius-xl: 38px;
    --tbs-ms-radius-lg: 30px;
    --tbs-ms-radius-md: 20px;
    --tbs-ms-radius-sm: 16px;

    --tbs-ms-max: 1180px;
    --tbs-ms-font-body: "Roboto", Arial, Helvetica, sans-serif;
    --tbs-ms-font-title: "Cormorant Garamond", Georgia, serif;
    --tbs-ms-font-script: "Alex Brush", "Segoe Script", cursive;

    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;

    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;

    color: var(--tbs-ms-ink) !important;
    font-family: var(--tbs-ms-font-body) !important;
    background:
        radial-gradient(circle at 0% 4%, rgba(255, 204, 225, .48), transparent 28%),
        radial-gradient(circle at 100% 8%, rgba(184, 226, 242, .32), transparent 24%),
        radial-gradient(circle at 10% 88%, rgba(255, 215, 191, .32), transparent 28%),
        linear-gradient(180deg, #fffafd 0%, #ffffff 36%, #fff8fc 100%) !important;
}

.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-micrositio-publico *,
.tbs-ms.tbs-micrositio-publico *::before,
.tbs-ms.tbs-micrositio-publico *::after,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor *,
.tbs-micrositio-publico.tbs-publico-nube-amor *::before,
.tbs-micrositio-publico.tbs-publico-nube-amor *::after {
    box-sizing: border-box !important;
}

.tbs-ms.tbs-micrositio-publico img,
.tbs-micrositio-publico.tbs-publico-nube-amor img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
}

.tbs-ms.tbs-micrositio-publico a,
.tbs-micrositio-publico.tbs-publico-nube-amor a {
    text-decoration: none !important;
}

/* Blindaje contra template_evento del panel */
body[data-tbs-template-evento] .tbs-ms.tbs-micrositio-publico,
body[class*="tbs-template-"] .tbs-ms.tbs-micrositio-publico,
body[class*="tbs-diseno-"] .tbs-ms.tbs-micrositio-publico,
body[data-tbs-template-evento] .tbs-micrositio-publico.tbs-publico-nube-amor {
    font-family: var(--tbs-ms-font-body) !important;
    color: var(--tbs-ms-ink) !important;
    background:
        radial-gradient(circle at 0% 4%, rgba(255, 204, 225, .48), transparent 28%),
        radial-gradient(circle at 100% 8%, rgba(184, 226, 242, .32), transparent 24%),
        radial-gradient(circle at 10% 88%, rgba(255, 215, 191, .32), transparent 28%),
        linear-gradient(180deg, #fffafd 0%, #ffffff 36%, #fff8fc 100%) !important;
}

/* =========================================================
   1) FONDOS DECORATIVOS
========================================================= */

.tbs-ms-bg,
.tbs-ms-floating {
    position: absolute !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

.tbs-ms-bg-one {
    top: 110px !important;
    left: -150px !important;
    width: 380px !important;
    height: 380px !important;
    border-radius: 999px !important;
    background: radial-gradient(circle, rgba(236, 111, 163, .22), transparent 66%) !important;
    filter: blur(2px) !important;
}

.tbs-ms-bg-two {
    top: 520px !important;
    right: -170px !important;
    width: 430px !important;
    height: 430px !important;
    border-radius: 999px !important;
    background: radial-gradient(circle, rgba(143, 199, 220, .22), transparent 65%) !important;
    filter: blur(2px) !important;
}

.tbs-ms-floating-one,
.tbs-ms-floating-two {
    width: 96px !important;
    height: 96px !important;
    border-radius: 999px !important;
    background:
        radial-gradient(circle at 30% 22%, rgba(255,255,255,.92), transparent 30%),
        linear-gradient(135deg, rgba(255, 238, 246, .74), rgba(234, 249, 255, .68)) !important;
    box-shadow: 0 16px 42px rgba(151, 92, 130, .10) !important;
    opacity: .75 !important;
    animation: tbsMsFloat 8s ease-in-out infinite !important;
}

.tbs-ms-floating-one {
    top: 180px !important;
    right: 8% !important;
}

.tbs-ms-floating-two {
    top: 780px !important;
    left: 6% !important;
    width: 68px !important;
    height: 68px !important;
    animation-delay: -3s !important;
}

/* =========================================================
   2) HERO
========================================================= */

.tbs-ms-hero {
    position: relative !important;
    z-index: 2 !important;
    width: min(var(--tbs-ms-max), calc(100% - 40px)) !important;
    margin: 0 auto !important;
    padding: clamp(54px, 7vw, 96px) 0 clamp(34px, 5vw, 70px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .9fr) !important;
    align-items: center !important;
    gap: clamp(28px, 5vw, 68px) !important;
}

.tbs-ms-hero-copy {
    position: relative !important;
    z-index: 4 !important;
    animation: tbsMsFadeUp .72s ease-out both !important;
}

.tbs-ms-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 38px !important;
    padding: 0 18px !important;
    margin: 0 0 18px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(236, 111, 163, .18) !important;
    background: rgba(255, 255, 255, .78) !important;
    color: var(--tbs-ms-pink-dark) !important;
    box-shadow: 0 12px 28px rgba(151, 92, 130, .10), inset 0 1px 0 rgba(255,255,255,.92) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    backdrop-filter: blur(10px) !important;
}

.tbs-ms-hero h1 {
    margin: 0 0 18px !important;
    max-width: 720px !important;
    color: var(--tbs-ms-ink) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(50px, 6.2vw, 96px) !important;
    font-weight: 600 !important;
    line-height: .94 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance !important;
}

.tbs-ms-hero h1 span {
    display: block !important;
    color: var(--tbs-ms-pink) !important;
    font-family: var(--tbs-ms-font-script) !important;
    font-size: clamp(60px, 7vw, 116px) !important;
    font-weight: 400 !important;
    line-height: .88 !important;
    letter-spacing: 0 !important;
    text-shadow: 0 12px 32px rgba(236, 111, 163, .15) !important;
}

.tbs-ms-hero-text {
    max-width: 620px !important;
    margin: 0 0 24px !important;
    color: var(--tbs-ms-muted) !important;
    font-size: clamp(17px, 1.45vw, 22px) !important;
    font-weight: 500 !important;
    line-height: 1.62 !important;
}

.tbs-ms-meta {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 28px 0 26px !important;
}

.tbs-ms-meta > div {
    position: relative !important;
    overflow: hidden !important;
    min-height: 104px !important;
    padding: 17px 16px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(236, 111, 163, .12) !important;
    background: rgba(255, 255, 255, .80) !important;
    box-shadow: var(--tbs-ms-shadow-soft) !important;
    backdrop-filter: blur(12px) !important;
}

.tbs-ms-meta > div::after {
    content: "" !important;
    position: absolute !important;
    right: -24px !important;
    bottom: -28px !important;
    width: 78px !important;
    height: 78px !important;
    border-radius: 999px !important;
    background: rgba(236, 111, 163, .055) !important;
}

.tbs-ms-meta strong {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    margin: 0 0 7px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
}

.tbs-ms-meta span {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    color: #50434a !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.tbs-ms-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 12px !important;
}

.tbs-ms-btn,
.tbs-ms .elementor-button,
.tbs-ms .ff-btn-submit,
.tbs-ms button[type="submit"],
.tbs-ms input[type="submit"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 52px !important;
    padding: 14px 24px !important;
    border-radius: 999px !important;
    border: 1px solid transparent !important;
    font-family: var(--tbs-ms-font-body) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -.01em !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .22s ease, box-shadow .22s ease, filter .22s ease, background .22s ease !important;
}

.tbs-ms-btn:hover,
.tbs-ms .elementor-button:hover,
.tbs-ms .ff-btn-submit:hover,
.tbs-ms button[type="submit"]:hover,
.tbs-ms input[type="submit"]:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.02) !important;
}

.tbs-ms-btn-primary,
.tbs-ms .ff-btn-submit,
.tbs-ms button[type="submit"],
.tbs-ms input[type="submit"] {
    color: #fff !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.28), transparent 30%),
        linear-gradient(135deg, var(--tbs-ms-pink), var(--tbs-ms-pink-dark)) !important;
    box-shadow: 0 16px 34px rgba(236, 111, 163, .28), inset 0 1px 0 rgba(255,255,255,.28) !important;
}

.tbs-ms-btn-soft {
    color: var(--tbs-ms-pink-dark) !important;
    background: rgba(255, 255, 255, .82) !important;
    border-color: rgba(236, 111, 163, .22) !important;
    box-shadow: 0 14px 30px rgba(151, 92, 130, .08) !important;
}

.tbs-ms-btn-ghost {
    color: var(--tbs-ms-blue-dark) !important;
    background: rgba(240, 250, 255, .84) !important;
    border-color: rgba(143, 199, 220, .28) !important;
    box-shadow: 0 14px 30px rgba(89, 163, 191, .08) !important;
}

/* Hero art */
.tbs-ms-hero-art {
    position: relative !important;
    z-index: 3 !important;
    animation: tbsMsFadeUp .82s ease-out .12s both !important;
}

.tbs-ms-art-card {
    position: relative !important;
    overflow: hidden !important;
    min-height: 560px !important;
    border-radius: 46px !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,.92)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') center / cover no-repeat !important;
    box-shadow: var(--tbs-ms-shadow), inset 0 1px 0 rgba(255,255,255,.90) !important;
}

.tbs-ms-art-preview {
    width: 100% !important;
    height: 100% !important;
    min-height: 560px !important;
    object-fit: cover !important;
    object-position: center !important;
    opacity: .78 !important;
    filter: saturate(1.03) brightness(1.03) !important;
}

.tbs-ms-art-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,250,253,.22) 46%, rgba(255,255,255,.72) 100%),
        radial-gradient(circle at 50% 15%, rgba(255,255,255,.46), transparent 34%) !important;
    pointer-events: none !important;
}

.tbs-ms-art-badge {
    position: absolute !important;
    top: 24px !important;
    right: 24px !important;
    z-index: 4 !important;
    width: 64px !important;
    height: 64px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.86) !important;
    box-shadow: 0 16px 34px rgba(151, 92, 130, .13) !important;
    font-size: 28px !important;
    animation: tbsMsFloat 6s ease-in-out infinite !important;
}

.tbs-ms-art-cloud {
    position: absolute !important;
    z-index: 4 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.72) !important;
    box-shadow: 0 16px 38px rgba(151, 92, 130, .10) !important;
}

.tbs-ms-art-cloud.cloud-one {
    left: 34px !important;
    bottom: 132px !important;
    width: 112px !important;
    height: 44px !important;
}

.tbs-ms-art-cloud.cloud-two {
    right: 72px !important;
    bottom: 92px !important;
    width: 82px !important;
    height: 34px !important;
}

.tbs-ms-art-main {
    position: absolute !important;
    left: 28px !important;
    right: 28px !important;
    bottom: 28px !important;
    z-index: 5 !important;
    padding: 22px 24px !important;
    border-radius: 30px !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    background: rgba(255, 255, 255, .84) !important;
    box-shadow: 0 18px 42px rgba(151, 92, 130, .12) !important;
    backdrop-filter: blur(12px) !important;
    text-align: center !important;
}

.tbs-ms-art-main span {
    display: block !important;
    color: var(--tbs-ms-gold) !important;
    font-family: var(--tbs-ms-font-script) !important;
    font-size: 42px !important;
    line-height: .9 !important;
}

.tbs-ms-art-main strong {
    display: block !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: 38px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: -.03em !important;
}

/* =========================================================
   3) ACCESOS RÁPIDOS
========================================================= */

.tbs-ms-quicknav {
    position: sticky !important;
    top: 12px !important;
    z-index: 20 !important;
    width: min(1050px, calc(100% - 40px)) !important;
    margin: -18px auto 42px !important;
    padding: 12px !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
    gap: 10px !important;
    border-radius: 26px !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    background: rgba(255,255,255,.88) !important;
    box-shadow: var(--tbs-ms-shadow-soft) !important;
    backdrop-filter: blur(16px) !important;
}

.tbs-ms-quicknav a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 48px !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
    color: var(--tbs-ms-muted) !important;
    background: transparent !important;
    transition: background .2s ease, transform .2s ease, color .2s ease !important;
}

.tbs-ms-quicknav a:hover {
    transform: translateY(-2px) !important;
    color: var(--tbs-ms-pink-dark) !important;
    background: rgba(255, 241, 247, .88) !important;
}

.tbs-ms-quicknav span {
    width: 30px !important;
    height: 30px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, #fff0f7, #f0fbff) !important;
    box-shadow: 0 10px 20px rgba(151, 92, 130, .08) !important;
    font-size: 15px !important;
}

.tbs-ms-quicknav strong {
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

/* =========================================================
   4) SECCIONES GENERALES
========================================================= */

.tbs-ms-section,
.tbs-ms-countdown-section,
.tbs-ms-closing {
    position: relative !important;
    z-index: 2 !important;
    width: min(var(--tbs-ms-max), calc(100% - 40px)) !important;
    margin: 0 auto !important;
    padding: clamp(34px, 5vw, 64px) 0 !important;
}

.tbs-ms-section-head {
    max-width: 760px !important;
    margin: 0 auto 28px !important;
    text-align: center !important;
}

.tbs-ms-section-head > span {
    display: inline-grid !important;
    place-items: center !important;
    width: 58px !important;
    height: 58px !important;
    margin: 0 auto 14px !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.88), transparent 34%),
        linear-gradient(135deg, #fff0f7, #edf9ff) !important;
    box-shadow: 0 16px 34px rgba(151, 92, 130, .10) !important;
    font-size: 26px !important;
}

.tbs-ms-section-head h2,
.tbs-ms-countdown-copy h2,
.tbs-ms-closing-card h2 {
    margin: 0 0 10px !important;
    color: var(--tbs-ms-ink) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(38px, 4.4vw, 64px) !important;
    font-weight: 600 !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em !important;
    text-wrap: balance !important;
}

.tbs-ms-section-head p,
.tbs-ms-countdown-copy p,
.tbs-ms-closing-card p {
    max-width: 660px !important;
    margin: 0 auto !important;
    color: var(--tbs-ms-muted) !important;
    font-size: clamp(15.5px, 1.25vw, 18px) !important;
    font-weight: 500 !important;
    line-height: 1.65 !important;
}

/* =========================================================
   5) DETALLES DEL EVENTO
========================================================= */

.tbs-ms-details-card,
.tbs-ms-rsvp-card,
.tbs-ms-location-card,
.tbs-ms-module-card,
.tbs-ms-guestbook-card,
.tbs-ms-countdown-card,
.tbs-ms-closing-card {
    position: relative !important;
    overflow: hidden !important;
    border-radius: var(--tbs-ms-radius-xl) !important;
    border: 1px solid var(--tbs-ms-border) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 230, 241, .62), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,253,.93)) !important;
    box-shadow: var(--tbs-ms-shadow) !important;
    backdrop-filter: blur(10px) !important;
}

.tbs-ms-details-card::after,
.tbs-ms-rsvp-card::after,
.tbs-ms-location-card::after,
.tbs-ms-module-card::after,
.tbs-ms-guestbook-card::after,
.tbs-ms-countdown-card::after,
.tbs-ms-closing-card::after {
    content: "" !important;
    position: absolute !important;
    right: -70px !important;
    bottom: -80px !important;
    width: 210px !important;
    height: 210px !important;
    border-radius: 999px !important;
    background: rgba(143, 199, 220, .085) !important;
    pointer-events: none !important;
}

.tbs-ms-details-card {
    display: grid !important;
    grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr) !important;
    gap: 22px !important;
    align-items: stretch !important;
    padding: clamp(24px, 4vw, 42px) !important;
}

.tbs-ms-details-copy {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 10px !important;
}

.tbs-ms-details-copy small {
    display: inline-flex !important;
    width: fit-content !important;
    margin: 0 0 12px !important;
    padding: 8px 13px !important;
    border-radius: 999px !important;
    background: rgba(255, 241, 247, .92) !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.tbs-ms-details-copy h3 {
    margin: 0 0 12px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(32px, 3.2vw, 48px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    letter-spacing: -.035em !important;
}

.tbs-ms-details-copy p {
    margin: 0 !important;
    color: var(--tbs-ms-muted) !important;
    font-size: 16px !important;
    line-height: 1.68 !important;
}

.tbs-ms-details-list {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    gap: 12px !important;
}

.tbs-ms-details-list > div {
    padding: 18px 20px !important;
    display: grid !important;
    grid-template-columns: 120px 1fr !important;
    align-items: center !important;
    gap: 14px !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(236,111,163,.10) !important;
    box-shadow: 0 12px 26px rgba(151, 92, 130, .06) !important;
}

.tbs-ms-details-list b {
    color: var(--tbs-ms-pink-dark) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
}

.tbs-ms-details-list span {
    color: #54464d !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

/* =========================================================
   6) CUENTA REGRESIVA
========================================================= */

.tbs-ms-countdown-card {
    display: grid !important;
    grid-template-columns: minmax(0, .82fr) minmax(430px, 1fr) !important;
    align-items: center !important;
    gap: 24px !important;
    padding: clamp(24px, 4vw, 40px) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(236,111,163,.18), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(143,199,220,.22), transparent 38%),
        linear-gradient(135deg, #ffffff, #fff7fb) !important;
}

.tbs-ms-countdown-copy {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

.tbs-ms-countdown-copy > span {
    width: 70px !important;
    height: 70px !important;
    flex: 0 0 70px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 24px !important;
    background: linear-gradient(135deg, #fff0f7, #edf9ff) !important;
    box-shadow: 0 16px 34px rgba(151, 92, 130, .10) !important;
    font-size: 31px !important;
}

.tbs-ms-countdown-copy h2 {
    font-size: clamp(32px, 3.4vw, 50px) !important;
}

.tbs-ms-countdown-copy p {
    margin-left: 0 !important;
}

.tbs-ms-countdown {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.tbs-ms-countdown > div {
    min-height: 122px !important;
    padding: 18px 10px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 24px !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    background: rgba(255,255,255,.82) !important;
    box-shadow: 0 14px 30px rgba(151, 92, 130, .08) !important;
}

.tbs-ms-countdown strong {
    display: block !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(40px, 4.2vw, 64px) !important;
    font-weight: 700 !important;
    line-height: .86 !important;
    letter-spacing: -.04em !important;
}

.tbs-ms-countdown span {
    display: block !important;
    margin-top: 8px !important;
    color: var(--tbs-ms-muted) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
}

/* =========================================================
   7) RSVP / FLUENT FORMS
========================================================= */

.tbs-ms-rsvp-card {
    max-width: 860px !important;
    margin: 0 auto !important;
    padding: clamp(24px, 4vw, 40px) !important;
}

.tbs-rsvp-header {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 0 8px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(28px, 3vw, 42px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    text-align: center !important;
}

.tbs-rsvp-sub {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 auto 22px !important;
    max-width: 540px !important;
    color: var(--tbs-ms-muted) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    text-align: center !important;
}

.tbs-ms-rsvp-card .fluentform,
.tbs-ms-rsvp-card form {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-ms-rsvp-card .ff-el-group {
    margin-bottom: 16px !important;
}

.tbs-ms-rsvp-card label,
.tbs-ms-rsvp-card .ff-el-input--label label {
    color: #54464d !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
}

.tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tbs-ms-rsvp-card select,
.tbs-ms-rsvp-card textarea {
    width: 100% !important;
    min-height: 50px !important;
    padding: 13px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.18) !important;
    background: rgba(255,255,255,.82) !important;
    color: var(--tbs-ms-ink) !important;
    font-family: var(--tbs-ms-font-body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    outline: none !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.78) !important;
}

.tbs-ms-rsvp-card input:focus,
.tbs-ms-rsvp-card select:focus,
.tbs-ms-rsvp-card textarea:focus {
    border-color: rgba(236,111,163,.42) !important;
    box-shadow: 0 0 0 4px rgba(236,111,163,.10), inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.tbs-ms-rsvp-card .ff-btn-submit {
    width: 100% !important;
    margin-top: 8px !important;
}

/* =========================================================
   8) UBICACIÓN
========================================================= */

.tbs-ms-location-card {
    display: grid !important;
    grid-template-columns: 82px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 20px !important;
    padding: clamp(22px, 3.2vw, 34px) !important;
}

.tbs-ms-location-icon {
    position: relative !important;
    z-index: 2 !important;
    width: 76px !important;
    height: 76px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at 30% 20%, rgba(255,255,255,.90), transparent 32%),
        linear-gradient(135deg, #fff0f7, #eef8ff) !important;
    box-shadow: 0 16px 34px rgba(151, 92, 130, .10) !important;
    font-size: 32px !important;
}

.tbs-ms-location-copy {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-ms-location-copy h3 {
    margin: 0 0 7px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(28px, 2.6vw, 40px) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
}

.tbs-ms-location-copy p {
    margin: 0 !important;
    color: var(--tbs-ms-muted) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
}

.tbs-ms-location-action {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    justify-content: flex-end !important;
}

.tbs-ms-location-action a,
.tbs-ms-location-action button,
.tbs-ms-location-action .elementor-button,
.tbs-ms-location-action .tbs-btn,
.tbs-ms-location-action [class*="boton"] {
    min-height: 52px !important;
    padding: 14px 22px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, var(--tbs-ms-blue), var(--tbs-ms-blue-dark)) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: var(--tbs-ms-shadow-blue) !important;
    font-weight: 900 !important;
}

/* =========================================================
   9) MÓDULOS: WISHLIST / REGALOS / GUESTBOOK
========================================================= */

.tbs-ms-module-card,
.tbs-ms-guestbook-card {
    padding: clamp(18px, 3vw, 32px) !important;
}

.tbs-ms-module-card > *,
.tbs-ms-guestbook-card > * {
    position: relative !important;
    z-index: 2 !important;
}

/* Normalización visual para tarjetas internas de otros shortcodes */
.tbs-ms-module-card .tbs-regalo-card,
.tbs-ms-module-card .tbs-wishlist-card,
.tbs-ms-module-card .tbs-rv-card,
.tbs-ms-module-card .regalo-card,
.tbs-ms-guestbook-card .tbs-guestbook-card,
.tbs-ms-guestbook-card .tbs-message-card {
    border-radius: 24px !important;
    border-color: rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.86) !important;
    box-shadow: 0 14px 34px rgba(151, 92, 130, .08) !important;
}

.tbs-ms-module-card h1,
.tbs-ms-module-card h2,
.tbs-ms-module-card h3,
.tbs-ms-guestbook-card h1,
.tbs-ms-guestbook-card h2,
.tbs-ms-guestbook-card h3 {
    font-family: var(--tbs-ms-font-title) !important;
    color: var(--tbs-ms-pink-dark) !important;
}

.tbs-ms-module-card a.button,
.tbs-ms-module-card button,
.tbs-ms-module-card .button,
.tbs-ms-module-card .tbs-btn,
.tbs-ms-guestbook-card button,
.tbs-ms-guestbook-card .button,
.tbs-ms-guestbook-card .tbs-btn {
    border-radius: 999px !important;
}

/* =========================================================
   10) CIERRE
========================================================= */

.tbs-ms-closing-card {
    max-width: 880px !important;
    margin: 0 auto !important;
    padding: clamp(30px, 5vw, 56px) !important;
    text-align: center !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,215,191,.38), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(143,199,220,.20), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,247,251,.96)) !important;
}

.tbs-ms-closing-icon {
    position: relative !important;
    z-index: 2 !important;
    width: 76px !important;
    height: 76px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 16px !important;
    border-radius: 28px !important;
    background: linear-gradient(135deg, #fff0f7, #eef8ff) !important;
    box-shadow: 0 16px 34px rgba(151, 92, 130, .10) !important;
    font-size: 34px !important;
}

.tbs-ms-closing-card h2,
.tbs-ms-closing-card p,
.tbs-ms-closing-card a {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-ms-closing-card .tbs-ms-btn {
    margin-top: 24px !important;
}

/* =========================================================
   11) PLANES
========================================================= */

.tbs-ms.tbs-plan-dulce-llegada .tbs-ms-quicknav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.tbs-ms.tbs-plan-dulce-llegada .tbs-ms-hero {
    padding-bottom: clamp(34px, 4.5vw, 56px) !important;
}

.tbs-ms.tbs-plan-dulce-experiencia .tbs-ms-pill {
    color: var(--tbs-ms-blue-dark) !important;
    border-color: rgba(143,199,220,.24) !important;
    background: rgba(239, 249, 255, .86) !important;
}

/* =========================================================
   12) ANIMACIONES
========================================================= */

@keyframes tbsMsFadeUp {
    0% {
        opacity: 0;
        transform: translateY(22px);
        filter: blur(4px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes tbsMsFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-9px); }
}

.tbs-ms-section,
.tbs-ms-countdown-section,
.tbs-ms-closing {
    animation: tbsMsFadeUp .75s ease-out both !important;
    animation-timeline: view() !important;
    animation-range: entry 0% cover 22% !important;
}

@media (prefers-reduced-motion: reduce) {
    .tbs-ms.tbs-micrositio-publico *,
    .tbs-ms.tbs-micrositio-publico *::before,
    .tbs-ms.tbs-micrositio-publico *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* =========================================================
   13) RESPONSIVE
========================================================= */

@media (max-width: 1120px) {
    .tbs-ms-hero {
        grid-template-columns: 1fr !important;
        padding-top: 54px !important;
    }

    .tbs-ms-hero-copy {
        max-width: 860px !important;
        margin: 0 auto !important;
        text-align: center !important;
    }

    .tbs-ms-hero-text {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tbs-ms-actions {
        justify-content: center !important;
    }

    .tbs-ms-art-card,
    .tbs-ms-art-preview {
        min-height: 460px !important;
    }

    .tbs-ms-details-card,
    .tbs-ms-countdown-card {
        grid-template-columns: 1fr !important;
    }

    .tbs-ms-countdown-copy {
        justify-content: center !important;
        text-align: left !important;
    }
}

@media (max-width: 860px) {
    .tbs-ms-meta {
        grid-template-columns: 1fr !important;
    }

    .tbs-ms-meta > div {
        min-height: auto !important;
    }

    .tbs-ms-countdown {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tbs-ms-location-card {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        text-align: center !important;
    }

    .tbs-ms-location-action {
        justify-content: center !important;
        width: 100% !important;
    }

    .tbs-ms-location-action a,
    .tbs-ms-location-action button,
    .tbs-ms-location-action .elementor-button,
    .tbs-ms-location-action .tbs-btn,
    .tbs-ms-location-action [class*="boton"] {
        width: 100% !important;
        max-width: 330px !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms.tbs-micrositio-publico,
    .tbs-micrositio-publico.tbs-publico-nube-amor {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .tbs-ms-hero,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing,
    .tbs-ms-quicknav {
        width: min(100% - 28px, var(--tbs-ms-max)) !important;
    }

    .tbs-ms-hero {
        padding: 40px 0 28px !important;
        gap: 24px !important;
    }

    .tbs-ms-hero h1 {
        font-size: clamp(42px, 13vw, 66px) !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(52px, 16vw, 78px) !important;
    }

    .tbs-ms-hero-text {
        font-size: 16px !important;
    }

    .tbs-ms-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        max-width: 340px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tbs-ms-btn,
    .tbs-ms .elementor-button,
    .tbs-ms .ff-btn-submit,
    .tbs-ms button[type="submit"],
    .tbs-ms input[type="submit"] {
        width: 100% !important;
        min-height: 54px !important;
    }

    .tbs-ms-art-card,
    .tbs-ms-art-preview {
        min-height: 390px !important;
        border-radius: 32px !important;
    }

    .tbs-ms-art-main {
        left: 18px !important;
        right: 18px !important;
        bottom: 18px !important;
        border-radius: 24px !important;
        padding: 18px !important;
    }

    .tbs-ms-art-main span {
        font-size: 34px !important;
    }

    .tbs-ms-art-main strong {
        font-size: 31px !important;
    }

    .tbs-ms-quicknav {
        position: relative !important;
        top: auto !important;
        margin: 0 auto 20px !important;
        grid-template-columns: 1fr 1fr !important;
        border-radius: 22px !important;
    }

    .tbs-ms.tbs-plan-dulce-llegada .tbs-ms-quicknav {
        grid-template-columns: 1fr !important;
    }

    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing {
        padding: 34px 0 !important;
    }

    .tbs-ms-section-head {
        margin-bottom: 22px !important;
    }

    .tbs-ms-section-head h2,
    .tbs-ms-countdown-copy h2,
    .tbs-ms-closing-card h2 {
        font-size: clamp(32px, 10vw, 46px) !important;
    }

    .tbs-ms-details-card,
    .tbs-ms-rsvp-card,
    .tbs-ms-location-card,
    .tbs-ms-module-card,
    .tbs-ms-guestbook-card,
    .tbs-ms-countdown-card,
    .tbs-ms-closing-card {
        border-radius: 28px !important;
    }

    .tbs-ms-details-card,
    .tbs-ms-rsvp-card,
    .tbs-ms-location-card,
    .tbs-ms-module-card,
    .tbs-ms-guestbook-card,
    .tbs-ms-countdown-card,
    .tbs-ms-closing-card {
        padding: 22px 18px !important;
    }

    .tbs-ms-details-list > div {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        text-align: center !important;
    }

    .tbs-ms-countdown-copy {
        display: grid !important;
        justify-items: center !important;
        text-align: center !important;
    }

    .tbs-ms-countdown-copy p {
        margin-left: auto !important;
    }
}

@media (max-width: 480px) {
    .tbs-ms-hero,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing,
    .tbs-ms-quicknav {
        width: min(100% - 22px, var(--tbs-ms-max)) !important;
    }

    .tbs-ms-pill {
        font-size: 10.5px !important;
        padding: 0 14px !important;
    }

    .tbs-ms-countdown {
        gap: 9px !important;
    }

    .tbs-ms-countdown > div {
        min-height: 104px !important;
        border-radius: 20px !important;
    }

    .tbs-ms-countdown strong {
        font-size: 40px !important;
    }

    .tbs-ms-countdown span {
        font-size: 10px !important;
    }
}

/* =========================================================
   16) AJUSTE V12 - HEADER + FOOTER DIFUMINADOS
   Inspiración homepage + fondo repetido del diseño
   - Imagen header en desktop y móvil.
   - Imagen footer en desktop y móvil.
   - Fondo del diseño repetido a lo largo del micrositio.
   - Overlay decorativo con PNG del diseño.
========================================================= */

.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    z-index: 0 !important;
    background: linear-gradient(180deg, #fffafd 0%, #fffdfd 100%) !important;
}

.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -2 !important;
    pointer-events: none !important;
    opacity: .78 !important;
    background:
        linear-gradient(180deg, rgba(255,251,253,.72) 0%, rgba(255,255,255,.56) 18%, rgba(255,250,253,.62) 48%, rgba(255,255,255,.72) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / 100% auto repeat-y !important;
}

.tbs-ms.tbs-micrositio-publico::after,
.tbs-ms.tbs-publico-nube-amor::after,
.tbs-ms.tbs-micrositio-nube-amor::after,
.tbs-micrositio-publico.tbs-publico-nube-amor::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    opacity: .34 !important;
    background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / 100% auto repeat-y !important;
}

/* HERO tipo portada con imagen principal */
.tbs-ms-hero {
    position: relative !important;
    overflow: hidden !important;
    grid-template-columns: 1fr !important;
    align-items: end !important;
    min-height: clamp(540px, 62vw, 760px) !important;
    margin: 18px auto 0 !important;
    padding: clamp(34px, 4.5vw, 56px) !important;
    border-radius: 48px !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 32px 80px rgba(151, 92, 130, .18), inset 0 1px 0 rgba(255,255,255,.92) !important;
    background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') center center / cover no-repeat !important;
}

.tbs-ms-hero::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,250,253,.28) 30%, rgba(255,248,252,.62) 58%, rgba(255,249,252,.88) 100%),
        radial-gradient(circle at 20% 16%, rgba(255,255,255,.34), transparent 26%),
        radial-gradient(circle at 80% 14%, rgba(255,244,250,.24), transparent 24%) !important;
}

.tbs-ms-hero::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -1px !important;
    height: 170px !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,251,253,.32) 42%, rgba(255,251,253,.94) 100%) !important;
}

.tbs-ms-hero-copy {
    width: min(100%, 650px) !important;
    margin-left: auto !important;
    padding: clamp(24px, 3vw, 34px) !important;
    border-radius: 36px !important;
    border: 1px solid rgba(255,255,255,.92) !important;
    background: linear-gradient(180deg, rgba(255,247,251,.84), rgba(255,250,253,.90)) !important;
    box-shadow: 0 22px 54px rgba(135, 86, 116, .14) !important;
    backdrop-filter: blur(14px) !important;
}

.tbs-ms-hero-copy > * {
    position: relative !important;
    z-index: 4 !important;
}

.tbs-ms-hero-art {
    display: none !important;
}

.tbs-ms-hero h1 {
    max-width: none !important;
    font-size: clamp(46px, 5.6vw, 86px) !important;
}

.tbs-ms-hero h1 span {
    font-size: clamp(58px, 6.2vw, 106px) !important;
}

.tbs-ms-meta > div,
.tbs-ms-details-list > div,
.tbs-ms-countdown > div,
.tbs-ms-quicknav a,
.tbs-ms-location-card,
.tbs-ms-module-card,
.tbs-ms-guestbook-card,
.tbs-ms-rsvp-card,
.tbs-ms-details-card,
.tbs-ms-countdown-card {
    backdrop-filter: blur(12px) !important;
}

.tbs-ms-quicknav {
    margin: -24px auto 46px !important;
    background: rgba(255,255,255,.90) !important;
    border: 1px solid rgba(255,255,255,.94) !important;
}

/* Footer decorativo que se funde con el fondo general */
.tbs-ms-closing {
    position: relative !important;
    padding-top: 26px !important;
    padding-bottom: 92px !important;
}

.tbs-ms-closing::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -26px !important;
    height: 130px !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(255,250,253,0) 0%, rgba(255,250,253,.62) 56%, rgba(255,250,253,.92) 100%) !important;
}

.tbs-ms-closing-card {
    min-height: 400px !important;
    padding: clamp(36px, 4vw, 54px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,248,252,.28) 28%, rgba(255,248,252,.76) 62%, rgba(255,249,252,.94) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/preview-Nube-Amor.jpg') center center / cover no-repeat !important;
    border: 1px solid rgba(255,255,255,.92) !important;
    box-shadow: 0 30px 80px rgba(151, 92, 130, .16) !important;
}

.tbs-ms-closing-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background:
        radial-gradient(circle at 80% 18%, rgba(255,255,255,.34), transparent 20%),
        radial-gradient(circle at 24% 16%, rgba(255,240,248,.24), transparent 26%),
        linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,250,253,.22) 30%, rgba(255,250,253,.90) 100%) !important;
}

.tbs-ms-closing-icon,
.tbs-ms-closing-card h2,
.tbs-ms-closing-card p,
.tbs-ms-closing-card a {
    position: relative !important;
    z-index: 3 !important;
    max-width: 520px !important;
}

.tbs-ms-closing-icon {
    margin-bottom: 14px !important;
    background: rgba(255,255,255,.86) !important;
}

.tbs-ms-closing-card h2 {
    margin-bottom: 12px !important;
    color: var(--tbs-ms-pink-dark) !important;
}

.tbs-ms-closing-card p {
    margin: 0 0 18px !important;
}

/* Mayor integración visual de las ventanas funcionales */
.tbs-ms-details-card,
.tbs-ms-rsvp-card,
.tbs-ms-location-card,
.tbs-ms-module-card,
.tbs-ms-guestbook-card,
.tbs-ms-countdown-card,
.tbs-ms-closing-card {
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 230, 241, .52), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,250,253,.84)) !important;
}

/* ============================
   TABLET / MOBILE
============================ */
@media (max-width: 1024px) {
    .tbs-ms-hero {
        min-height: 620px !important;
        padding: 28px !important;
        border-radius: 38px !important;
        background-position: center top !important;
    }

    .tbs-ms-hero-copy {
        width: min(100%, 600px) !important;
        padding: 22px !important;
    }

    .tbs-ms-hero::after {
        height: 140px !important;
    }

    .tbs-ms-closing-card {
        min-height: 360px !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms.tbs-micrositio-publico::before,
    .tbs-ms.tbs-publico-nube-amor::before,
    .tbs-ms.tbs-micrositio-nube-amor::before,
    .tbs-micrositio-publico.tbs-publico-nube-amor::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
        opacity: .86 !important;
        background:
            linear-gradient(180deg, rgba(255,251,253,.72) 0%, rgba(255,255,255,.56) 18%, rgba(255,250,253,.64) 52%, rgba(255,255,255,.74) 100%),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover repeat-y !important;
    }

    .tbs-ms.tbs-micrositio-publico::after,
    .tbs-ms.tbs-publico-nube-amor::after,
    .tbs-ms.tbs-micrositio-nube-amor::after,
    .tbs-micrositio-publico.tbs-publico-nube-amor::after,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
        opacity: .34 !important;
        background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') center top / 100% auto repeat-y !important;
    }

    .tbs-ms-hero {
        width: min(100%, calc(100% - 20px)) !important;
        min-height: 610px !important;
        margin-top: 10px !important;
        padding: 20px !important;
        border-radius: 28px !important;
        align-items: end !important;
        background-position: left center !important;
    }

    .tbs-ms-hero::before {
        background:
            linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,248,252,.22) 26%, rgba(255,248,252,.58) 56%, rgba(255,249,252,.92) 100%),
            radial-gradient(circle at 24% 18%, rgba(255,255,255,.26), transparent 22%) !important;
    }

    .tbs-ms-hero::after {
        height: 126px !important;
    }

    .tbs-ms-hero-copy {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 20px 18px !important;
        border-radius: 24px !important;
        background: linear-gradient(180deg, rgba(255,250,253,.84), rgba(255,251,253,.92)) !important;
    }

    .tbs-ms-hero h1 {
        font-size: clamp(42px, 13vw, 62px) !important;
        line-height: .96 !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(52px, 15vw, 72px) !important;
    }

    .tbs-ms-hero-text {
        font-size: 16px !important;
        line-height: 1.52 !important;
    }

    .tbs-ms-meta {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin: 22px 0 18px !important;
    }

    .tbs-ms-meta > div {
        min-height: auto !important;
        padding: 16px 16px !important;
        border-radius: 20px !important;
    }

    .tbs-ms-actions {
        gap: 10px !important;
    }

    .tbs-ms-btn,
    .tbs-ms .elementor-button,
    .tbs-ms .ff-btn-submit,
    .tbs-ms button[type="submit"],
    .tbs-ms input[type="submit"] {
        width: 100% !important;
    }

    .tbs-ms-quicknav {
        width: min(100%, calc(100% - 20px)) !important;
        margin: -14px auto 30px !important;
        padding: 10px !important;
        gap: 8px !important;
        border-radius: 20px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tbs-ms-closing {
        padding-bottom: 62px !important;
    }

    .tbs-ms-closing-card {
        min-height: 300px !important;
        padding: 22px 18px !important;
        align-items: stretch !important;
        border-radius: 28px !important;
        background:
            linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,248,252,.26) 24%, rgba(255,248,252,.70) 60%, rgba(255,249,252,.94) 100%),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/preview-Nube-Amor.jpg') center center / cover no-repeat !important;
    }

    .tbs-ms-closing-icon,
    .tbs-ms-closing-card h2,
    .tbs-ms-closing-card p,
    .tbs-ms-closing-card a {
        max-width: 100% !important;
    }
}

@media (max-width: 480px) {
    .tbs-ms-hero {
        min-height: 580px !important;
        padding: 16px !important;
        border-radius: 24px !important;
    }

    .tbs-ms-hero-copy {
        padding: 18px 16px !important;
    }

    .tbs-ms-quicknav {
        grid-template-columns: 1fr 1fr !important;
    }

    .tbs-ms-closing-card {
        min-height: 270px !important;
        padding: 20px 16px !important;
    }
}

/* =========================================================
   17) AJUSTE V13 - FULL SCREEN + HERO 100% + META FECHA/HORA
   - Quita marco blanco en desktop y móvil.
   - Header ocupa 100% del viewport.
   - Ventana del anuncio centrada en desktop.
   - Ventana más transparente en móvil.
   - Mantiene fondo extendido y decoraciones.
========================================================= */

/* Limpieza de márgenes/paddings que crean marco blanco alrededor del shortcode */
html:has(.tbs-ms.tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-publico) {
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    background: #fffafd !important;
}

body:has(.tbs-ms.tbs-micrositio-publico) .site,
body:has(.tbs-ms.tbs-micrositio-publico) #page,
body:has(.tbs-ms.tbs-micrositio-publico) #content,
body:has(.tbs-ms.tbs-micrositio-publico) .site-content,
body:has(.tbs-ms.tbs-micrositio-publico) .content-area,
body:has(.tbs-ms.tbs-micrositio-publico) main,
body:has(.tbs-ms.tbs-micrositio-publico) .entry-content,
body:has(.tbs-ms.tbs-micrositio-publico) .page-content,
body:has(.tbs-ms.tbs-micrositio-publico) .elementor,
body:has(.tbs-ms.tbs-micrositio-publico) .elementor-section,
body:has(.tbs-ms.tbs-micrositio-publico) .elementor-container,
body:has(.tbs-ms.tbs-micrositio-publico) .elementor-widget-container,
body:has(.tbs-ms.tbs-micrositio-publico) .elementor-shortcode {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none !important;
}

/* Root full width real */
.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Fondo repetido ocupando el lienzo completo */
.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
    background:
        linear-gradient(180deg, rgba(255,251,253,.62) 0%, rgba(255,255,255,.44) 18%, rgba(255,250,253,.54) 48%, rgba(255,255,255,.64) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / 100% auto repeat-y !important;
}

/* Header full width en desktop */
.tbs-ms-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    margin: 0 0 0 calc(50% - 50vw) !important;
    padding: clamp(54px, 6vw, 86px) max(42px, calc((100vw - var(--tbs-ms-max)) / 2)) clamp(78px, 7vw, 112px) !important;
    border-radius: 0 0 42px 42px !important;
    border-left: 0 !important;
    border-right: 0 !important;
    min-height: clamp(650px, 72vh, 820px) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-position: center center !important;
    background-size: cover !important;
}

/* Capa suave para que el texto sea legible sin apagar la imagen */
.tbs-ms-hero::before {
    background:
        linear-gradient(90deg, rgba(255,248,252,.24) 0%, rgba(255,248,252,.40) 30%, rgba(255,248,252,.44) 52%, rgba(255,248,252,.30) 100%),
        linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,250,253,.24) 42%, rgba(255,249,252,.74) 100%) !important;
}

/* Ventana del anuncio centrada en desktop */
.tbs-ms-hero-copy {
    width: min(760px, calc(100vw - 72px)) !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    text-align: center !important;
    padding: clamp(32px, 4vw, 50px) !important;
    border-radius: 40px !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.72), transparent 42%),
        linear-gradient(180deg, rgba(255,248,252,.76), rgba(255,250,253,.84)) !important;
    border: 1px solid rgba(255,255,255,.86) !important;
    box-shadow:
        0 28px 74px rgba(80, 58, 72, .14),
        inset 0 1px 0 rgba(255,255,255,.86) !important;
    backdrop-filter: blur(11px) saturate(1.05) !important;
    -webkit-backdrop-filter: blur(11px) saturate(1.05) !important;
}

.tbs-ms-hero h1,
.tbs-ms-hero-text {
    margin-left: auto !important;
    margin-right: auto !important;
}

.tbs-ms-hero h1 {
    max-width: 700px !important;
}

.tbs-ms-hero-text {
    max-width: 630px !important;
}

/* Datos en desktop: 3 columnas compactas dentro del anuncio */
.tbs-ms-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.tbs-ms-meta > div {
    text-align: left !important;
}

/* Botones centrados */
.tbs-ms-actions {
    justify-content: center !important;
}

/* Navegación más integrada, sin quedar dentro de un marco blanco */
.tbs-ms-quicknav {
    width: min(1060px, calc(100vw - 40px)) !important;
    margin-top: -44px !important;
}

/* Secciones con ancho controlado pero sobre lienzo full */
.tbs-ms-section,
.tbs-ms-countdown-section,
.tbs-ms-closing {
    width: min(var(--tbs-ms-max), calc(100vw - 40px)) !important;
}

/* Móvil full screen sin marco */
@media (max-width: 767px) {
    html:has(.tbs-ms.tbs-micrositio-publico),
    body:has(.tbs-ms.tbs-micrositio-publico) {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .tbs-ms.tbs-micrositio-publico,
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-ms.tbs-micrositio-diseno-nube_amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor {
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding: 0 !important;
    }

    .tbs-ms-hero {
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 100vw !important;
        min-height: 100svh !important;
        margin: 0 0 0 calc(50% - 50vw) !important;
        padding: 18px 16px 34px !important;
        border-radius: 0 0 28px 28px !important;
        border-left: 0 !important;
        border-right: 0 !important;
        align-items: end !important;
        justify-content: center !important;
        background-position: 31% center !important;
        background-size: cover !important;
    }

    .tbs-ms-hero::before {
        background:
            linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,248,252,.16) 28%, rgba(255,248,252,.42) 58%, rgba(255,249,252,.76) 100%),
            linear-gradient(90deg, rgba(255,248,252,.06) 0%, rgba(255,248,252,.18) 50%, rgba(255,248,252,.34) 100%) !important;
    }

    .tbs-ms-hero::after {
        height: 120px !important;
        background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,251,253,.24) 42%, rgba(255,251,253,.86) 100%) !important;
    }

    /* Ventana del anuncio más transparente en móvil */
    .tbs-ms-hero-copy {
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        margin: 0 auto !important;
        padding: 20px 18px 22px !important;
        border-radius: 30px !important;
        background:
            radial-gradient(circle at 50% 0%, rgba(255,255,255,.48), transparent 44%),
            linear-gradient(180deg, rgba(255,248,252,.52), rgba(255,250,253,.66)) !important;
        border: 1px solid rgba(255,255,255,.68) !important;
        box-shadow:
            0 24px 60px rgba(80, 58, 72, .12),
            inset 0 1px 0 rgba(255,255,255,.74) !important;
        backdrop-filter: blur(7px) saturate(1.03) !important;
        -webkit-backdrop-filter: blur(7px) saturate(1.03) !important;
    }

    .tbs-ms-pill {
        background: rgba(240,250,255,.70) !important;
        border-color: rgba(143,199,220,.32) !important;
    }

    .tbs-ms-hero h1 {
        font-size: clamp(40px, 12.5vw, 58px) !important;
        line-height: .94 !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(54px, 17vw, 82px) !important;
        line-height: .76 !important;
    }

    .tbs-ms-hero-text {
        font-size: 15.5px !important;
        line-height: 1.48 !important;
        max-width: 330px !important;
    }

    /* Datos verticales y más limpios */
    .tbs-ms-meta {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin: 18px 0 18px !important;
    }

    .tbs-ms-meta > div {
        display: grid !important;
        grid-template-columns: 36px 1fr !important;
        align-items: center !important;
        gap: 10px !important;
        min-height: 66px !important;
        padding: 11px 14px !important;
        text-align: left !important;
        border-radius: 18px !important;
        background: rgba(255,255,255,.66) !important;
        box-shadow: 0 12px 28px rgba(151, 92, 130, .08) !important;
    }

    .tbs-ms-meta strong {
        margin: 0 0 4px !important;
        font-size: 10.5px !important;
    }

    .tbs-ms-meta span {
        font-size: 13.5px !important;
        line-height: 1.25 !important;
    }

    .tbs-ms-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        max-width: 320px !important;
    }

    .tbs-ms-btn,
    .tbs-ms .elementor-button,
    .tbs-ms .ff-btn-submit,
    .tbs-ms button[type="submit"],
    .tbs-ms input[type="submit"] {
        min-height: 49px !important;
        font-size: 13.5px !important;
    }

    .tbs-ms-quicknav {
        width: calc(100vw - 20px) !important;
        max-width: none !important;
        margin: -18px auto 24px !important;
        display: flex !important;
        overflow-x: auto !important;
        grid-template-columns: unset !important;
        border-radius: 22px !important;
        scrollbar-width: none !important;
    }

    .tbs-ms-quicknav::-webkit-scrollbar {
        display: none !important;
    }

    .tbs-ms-quicknav a {
        flex: 0 0 auto !important;
        min-width: 118px !important;
    }

    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing {
        width: min(100vw - 24px, 430px) !important;
        max-width: 430px !important;
    }
}

@media (max-width: 420px) {
    .tbs-ms-hero {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .tbs-ms-hero-copy {
        padding: 18px 15px 20px !important;
        border-radius: 26px !important;
    }

    .tbs-ms-meta > div {
        grid-template-columns: 30px 1fr !important;
        padding: 10px 12px !important;
    }
}

/* =========================================================
   18) AJUSTE V14 - META FECHA / HORA / LUGAR PREMIUM
   Importante:
   - No toca las imágenes de fondo del hero, footer ni fondo general.
   - Solo mejora tarjetas de Fecha, Hora y Lugar.
   - JS NubeAmor.js normaliza Fecha/Hora y agrega clases semánticas.
========================================================= */

.tbs-ms-meta > div,
.tbs-ms-meta > div.tbs-ms-meta-date,
.tbs-ms-meta > div.tbs-ms-meta-time,
.tbs-ms-meta > div.tbs-ms-meta-place {
    text-align: center !important;
    overflow: visible !important;
}

.tbs-ms-meta > div::before {
    content: "♡" !important;
    position: relative !important;
    z-index: 3 !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 auto 10px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 15px !important;
    color: var(--tbs-ms-pink-dark) !important;
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.92), transparent 34%),
        linear-gradient(135deg, rgba(255,240,247,.96), rgba(238,249,255,.94)) !important;
    border: 1px solid rgba(255,255,255,.86) !important;
    box-shadow:
        0 12px 26px rgba(151, 92, 130, .13),
        inset 0 1px 0 rgba(255,255,255,.90) !important;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

.tbs-ms-meta > div.tbs-ms-meta-date::before,
.tbs-ms-meta > div:nth-child(1)::before {
    content: "📅" !important;
}

.tbs-ms-meta > div.tbs-ms-meta-time::before,
.tbs-ms-meta > div:nth-child(2)::before {
    content: "⏰" !important;
}

.tbs-ms-meta > div.tbs-ms-meta-place::before,
.tbs-ms-meta > div:nth-child(3)::before {
    content: "📍" !important;
}

.tbs-ms-meta strong {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 7px !important;
    display: block !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    letter-spacing: .07em !important;
}

.tbs-ms-meta span {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    text-align: center !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
}

@media (min-width: 768px) {
    .tbs-ms-meta > div {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 128px !important;
        padding: 18px 14px !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms-meta > div,
    .tbs-ms-meta > div.tbs-ms-meta-date,
    .tbs-ms-meta > div.tbs-ms-meta-time,
    .tbs-ms-meta > div.tbs-ms-meta-place {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        min-height: 94px !important;
        padding: 13px 14px 14px !important;
        text-align: center !important;
    }

    .tbs-ms-meta > div::before {
        width: 36px !important;
        height: 36px !important;
        margin: 0 auto 8px !important;
        border-radius: 14px !important;
        font-size: 17px !important;
    }

    .tbs-ms-meta strong {
        margin: 0 auto 5px !important;
        font-size: 11px !important;
        line-height: 1.25 !important;
        letter-spacing: .055em !important;
    }

    .tbs-ms-meta span {
        font-size: 14px !important;
        line-height: 1.28 !important;
        font-weight: 800 !important;
    }
}

@media (max-width: 420px) {
    .tbs-ms-meta > div,
    .tbs-ms-meta > div.tbs-ms-meta-date,
    .tbs-ms-meta > div.tbs-ms-meta-time,
    .tbs-ms-meta > div.tbs-ms-meta-place {
        grid-template-columns: 1fr !important;
        min-height: 92px !important;
        padding: 12px 11px 13px !important;
    }

    .tbs-ms-meta strong {
        font-size: 10.5px !important;
        letter-spacing: .04em !important;
    }

    .tbs-ms-meta span {
        font-size: 13.5px !important;
    }
}


/* =========================================================
   19) AJUSTE V15 - HERO META LIMPIO
   - No toca imágenes de fondo en desktop ni móvil.
   - Elimina la píldora/título del plan: Dulce Llegada / Dulce Experiencia.
   - Evita iconos dobles: el icono premium queda solo en ::before.
   - Centra títulos FECHA / HORA / LUGAR y conserva textos completos.
========================================================= */

.tbs-ms-pill {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

.tbs-ms-meta > div::before {
    flex: 0 0 auto !important;
}

.tbs-ms-meta > div.tbs-ms-meta-date::before,
.tbs-ms-meta > div:nth-child(1)::before {
    content: "🗓️" !important;
}

.tbs-ms-meta > div.tbs-ms-meta-time::before,
.tbs-ms-meta > div:nth-child(2)::before {
    content: "⏰" !important;
}

.tbs-ms-meta > div.tbs-ms-meta-place::before,
.tbs-ms-meta > div:nth-child(3)::before {
    content: "📍" !important;
}

.tbs-ms-meta strong,
.tbs-ms-meta b {
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: 0 !important;
}

.tbs-ms-meta span,
.tbs-ms-meta em,
.tbs-ms-meta small {
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: 0 !important;
}

@media (min-width: 768px) {
    .tbs-ms-hero-copy {
        padding-top: clamp(36px, 4vw, 54px) !important;
    }

    .tbs-ms-meta > div {
        text-align: center !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms-hero-copy {
        padding-top: 22px !important;
    }

    .tbs-ms-meta > div,
    .tbs-ms-meta > div.tbs-ms-meta-date,
    .tbs-ms-meta > div.tbs-ms-meta-time,
    .tbs-ms-meta > div.tbs-ms-meta-place {
        text-align: center !important;
    }

    .tbs-ms-meta strong,
    .tbs-ms-meta b {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
    }

    .tbs-ms-meta span,
    .tbs-ms-meta em,
    .tbs-ms-meta small {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
    }
}

/* =========================================================
   20) AJUSTE V16 - HEADER PREMIUM SIN VENTANA INTERMEDIA
   - Conserva intactas las imágenes de fondo definidas en V13/V15.
   - Elimina visualmente la caja grande del anuncio del hero.
   - Deja el título, mensaje, fecha, hora y lugar integrados al header.
   - Aumenta jerarquía visual de FECHA / HORA / LUGAR y sus valores.
========================================================= */

/* El contenido del anuncio ya no vive dentro de una ventana intermedia */
.tbs-ms-hero-copy {
    width: min(1080px, calc(100vw - 56px)) !important;
    max-width: 1080px !important;
    margin: 0 auto !important;
    padding: clamp(24px, 4vw, 64px) 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    text-align: center !important;
}

/* Capa del hero más editorial: legibilidad sin apagar la imagen */
.tbs-ms-hero::before {
    background:
        radial-gradient(circle at 50% 38%, rgba(255,255,255,.72), rgba(255,250,253,.34) 30%, transparent 58%),
        linear-gradient(90deg, rgba(255,248,252,.20) 0%, rgba(255,248,252,.42) 46%, rgba(255,248,252,.30) 100%),
        linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,250,253,.16) 42%, rgba(255,249,252,.72) 100%) !important;
}

.tbs-ms-hero h1 {
    max-width: 980px !important;
    margin: 0 auto 18px !important;
    color: #3f333a !important;
    font-size: clamp(72px, 8vw, 126px) !important;
    line-height: .86 !important;
    letter-spacing: -.06em !important;
    text-shadow:
        0 2px 0 rgba(255,255,255,.72),
        0 18px 46px rgba(79, 55, 69, .18) !important;
}

.tbs-ms-hero h1 span {
    margin-top: 2px !important;
    color: var(--tbs-ms-pink) !important;
    font-size: clamp(88px, 9vw, 146px) !important;
    line-height: .72 !important;
    text-shadow:
        0 2px 0 rgba(255,255,255,.72),
        0 18px 44px rgba(236,111,163,.24) !important;
}

.tbs-ms-hero-text {
    max-width: 780px !important;
    margin: 24px auto 30px !important;
    color: rgba(61, 51, 57, .82) !important;
    font-size: clamp(20px, 1.7vw, 28px) !important;
    font-weight: 800 !important;
    line-height: 1.45 !important;
    text-shadow: 0 2px 18px rgba(255,255,255,.82) !important;
}

/* Fecha / Hora / Lugar integrados como piezas premium del header */
.tbs-ms-meta {
    width: min(940px, 100%) !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(14px, 1.7vw, 22px) !important;
    margin: clamp(28px, 3.5vw, 42px) auto clamp(24px, 3vw, 34px) !important;
}

.tbs-ms-meta > div,
.tbs-ms-meta > div.tbs-ms-meta-date,
.tbs-ms-meta > div.tbs-ms-meta-time,
.tbs-ms-meta > div.tbs-ms-meta-place {
    position: relative !important;
    min-height: 160px !important;
    padding: 24px 20px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    overflow: hidden !important;
    text-align: center !important;
    border-radius: 34px !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.74), transparent 42%),
        linear-gradient(180deg, rgba(255,255,255,.70), rgba(255,247,251,.54)) !important;
    box-shadow:
        0 24px 60px rgba(101, 71, 88, .13),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
    backdrop-filter: blur(10px) saturate(1.05) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.05) !important;
}

.tbs-ms-meta > div::after {
    width: 124px !important;
    height: 124px !important;
    right: -44px !important;
    bottom: -54px !important;
    background: rgba(236, 111, 163, .075) !important;
}

.tbs-ms-meta > div::before {
    width: 48px !important;
    height: 48px !important;
    margin: 0 auto 14px !important;
    border-radius: 18px !important;
    font-size: 22px !important;
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.96), transparent 34%),
        linear-gradient(135deg, rgba(255,237,246,.96), rgba(234,248,255,.94)) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    box-shadow:
        0 16px 34px rgba(151, 92, 130, .15),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

.tbs-ms-meta strong,
.tbs-ms-meta b {
    position: relative !important;
    z-index: 3 !important;
    margin: 0 auto 10px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: clamp(16px, 1.35vw, 21px) !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    letter-spacing: .105em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.74) !important;
}

.tbs-ms-meta span,
.tbs-ms-meta em,
.tbs-ms-meta small {
    position: relative !important;
    z-index: 3 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    color: #4d3f47 !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(22px, 1.9vw, 31px) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    letter-spacing: -.02em !important;
    text-align: center !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.76) !important;
}

.tbs-ms-meta > div.tbs-ms-meta-place span,
.tbs-ms-meta > div:nth-child(3) span {
    font-size: clamp(20px, 1.55vw, 27px) !important;
    line-height: 1.16 !important;
}

/* Botones del header con acabado más premium y coherente al homepage */
.tbs-ms-actions {
    justify-content: center !important;
    gap: 14px !important;
}

.tbs-ms-actions .tbs-ms-btn,
.tbs-ms-actions .elementor-button,
.tbs-ms-actions button,
.tbs-ms-actions a {
    min-height: 58px !important;
    padding: 17px 30px !important;
    border-radius: 999px !important;
    font-size: 16px !important;
    box-shadow:
        0 18px 38px rgba(151, 92, 130, .16),
        inset 0 1px 0 rgba(255,255,255,.34) !important;
}

.tbs-ms-btn-primary {
    box-shadow:
        0 22px 48px rgba(236, 111, 163, .34),
        inset 0 1px 0 rgba(255,255,255,.30) !important;
}

/* Desktop amplio: composición tipo portada premium */
@media (min-width: 1025px) {
    .tbs-ms-hero {
        min-height: clamp(720px, 84vh, 940px) !important;
        align-items: center !important;
        padding-top: clamp(72px, 8vw, 118px) !important;
        padding-bottom: clamp(86px, 8vw, 126px) !important;
    }

    .tbs-ms-hero-copy {
        transform: translateY(8px) !important;
    }
}

@media (max-width: 1024px) {
    .tbs-ms-hero-copy {
        width: min(940px, calc(100vw - 38px)) !important;
        padding: 30px 0 38px !important;
    }

    .tbs-ms-hero h1 {
        font-size: clamp(62px, 9vw, 104px) !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(76px, 10.5vw, 120px) !important;
    }

    .tbs-ms-meta > div {
        min-height: 148px !important;
        border-radius: 30px !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms-hero {
        min-height: 100svh !important;
        padding: 52px 16px 36px !important;
        align-items: center !important;
        background-position: 31% center !important;
    }

    .tbs-ms-hero::before {
        background:
            radial-gradient(circle at 50% 36%, rgba(255,255,255,.62), rgba(255,250,253,.28) 34%, transparent 62%),
            linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,248,252,.18) 28%, rgba(255,248,252,.50) 64%, rgba(255,249,252,.80) 100%) !important;
    }

    .tbs-ms-hero-copy {
        width: min(100%, 440px) !important;
        max-width: 440px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .tbs-ms-hero h1 {
        margin-bottom: 16px !important;
        font-size: clamp(49px, 14.7vw, 72px) !important;
        line-height: .88 !important;
        letter-spacing: -.055em !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(68px, 19vw, 98px) !important;
        line-height: .70 !important;
    }

    .tbs-ms-hero-text {
        max-width: 360px !important;
        margin: 22px auto 24px !important;
        font-size: clamp(17px, 4.7vw, 21px) !important;
        line-height: 1.42 !important;
        font-weight: 800 !important;
    }

    .tbs-ms-meta {
        width: min(100%, 390px) !important;
        grid-template-columns: 1fr !important;
        gap: 11px !important;
        margin: 24px auto 22px !important;
    }

    .tbs-ms-meta > div,
    .tbs-ms-meta > div.tbs-ms-meta-date,
    .tbs-ms-meta > div.tbs-ms-meta-time,
    .tbs-ms-meta > div.tbs-ms-meta-place {
        min-height: 112px !important;
        padding: 18px 16px 17px !important;
        border-radius: 26px !important;
        background:
            radial-gradient(circle at 50% 0%, rgba(255,255,255,.74), transparent 42%),
            linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,247,251,.56)) !important;
        box-shadow:
            0 18px 44px rgba(101, 71, 88, .12),
            inset 0 1px 0 rgba(255,255,255,.88) !important;
    }

    .tbs-ms-meta > div::before {
        width: 42px !important;
        height: 42px !important;
        margin-bottom: 10px !important;
        border-radius: 16px !important;
        font-size: 20px !important;
    }

    .tbs-ms-meta strong,
    .tbs-ms-meta b {
        margin-bottom: 8px !important;
        font-size: clamp(15px, 4.3vw, 18px) !important;
        line-height: 1.05 !important;
        letter-spacing: .095em !important;
    }

    .tbs-ms-meta span,
    .tbs-ms-meta em,
    .tbs-ms-meta small,
    .tbs-ms-meta > div.tbs-ms-meta-place span,
    .tbs-ms-meta > div:nth-child(3) span {
        font-size: clamp(21px, 6vw, 27px) !important;
        line-height: 1.08 !important;
    }

    .tbs-ms-actions {
        width: min(100%, 370px) !important;
        max-width: 370px !important;
        margin: 0 auto !important;
        gap: 10px !important;
    }

    .tbs-ms-actions .tbs-ms-btn,
    .tbs-ms-actions .elementor-button,
    .tbs-ms-actions button,
    .tbs-ms-actions a {
        min-height: 54px !important;
        padding: 15px 22px !important;
        font-size: 14.5px !important;
    }
}

@media (max-width: 420px) {
    .tbs-ms-hero {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .tbs-ms-hero h1 {
        font-size: clamp(45px, 14.3vw, 62px) !important;
    }

    .tbs-ms-hero h1 span {
        font-size: clamp(62px, 18vw, 84px) !important;
    }

    .tbs-ms-hero-text {
        font-size: 16.5px !important;
    }

    .tbs-ms-meta {
        width: min(100%, 360px) !important;
    }

    .tbs-ms-meta > div,
    .tbs-ms-meta > div.tbs-ms-meta-date,
    .tbs-ms-meta > div.tbs-ms-meta-time,
    .tbs-ms-meta > div.tbs-ms-meta-place {
        min-height: 106px !important;
        padding: 16px 13px !important;
        border-radius: 24px !important;
    }

    .tbs-ms-meta strong,
    .tbs-ms-meta b {
        font-size: 14px !important;
    }

    .tbs-ms-meta span,
    .tbs-ms-meta em,
    .tbs-ms-meta small,
    .tbs-ms-meta > div.tbs-ms-meta-place span,
    .tbs-ms-meta > div:nth-child(3) span {
        font-size: 20px !important;
    }
}

/* =========================================================
   21) AJUSTE V17 - DETALLES + TARJETAS PREMIUM + FONDO LIMPIO
   - Primera tarjeta de detalles solo deja el mensaje principal.
   - Wishlist y Regalos Virtuales con tarjetas premium.
   - En móvil ambas grillas van en doble columna.
   - Guestbook / Mensajes para el bebé con formato premium.
   - Fondo decorativo más limpio, evitando superposición visual de ositos.
========================================================= */

/* =========================
   FONDO GENERAL MÁS LIMPIO
========================= */
.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
    opacity: .52 !important;
    background:
        linear-gradient(180deg, rgba(255,251,253,.92) 0%, rgba(255,255,255,.74) 16%, rgba(255,250,253,.78) 54%, rgba(255,255,255,.88) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
}

.tbs-ms.tbs-micrositio-publico::after,
.tbs-ms.tbs-publico-nube-amor::after,
.tbs-ms.tbs-micrositio-nube-amor::after,
.tbs-micrositio-publico.tbs-publico-nube-amor::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
    opacity: .18 !important;
    background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
}

/* =========================
   DETALLES DEL EVENTO - SOLO MENSAJE PRINCIPAL
========================= */
.tbs-ms-details-card {
    grid-template-columns: 1fr !important;
    max-width: 980px !important;
    margin: 0 auto !important;
    padding: clamp(34px, 5vw, 58px) !important;
    border-radius: 40px !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 231, 242, .48), transparent 28%),
        radial-gradient(circle at 100% 100%, rgba(215, 240, 250, .24), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,248,252,.88)) !important;
    box-shadow:
        0 34px 84px rgba(124, 87, 106, .16),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

.tbs-ms-details-copy {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    max-width: 740px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.tbs-ms-details-copy small,
.tbs-ms-details-list {
    display: none !important;
}

.tbs-ms-details-copy h3 {
    margin: 0 0 18px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: clamp(46px, 4.7vw, 76px) !important;
    line-height: .96 !important;
    letter-spacing: -.05em !important;
    text-wrap: balance !important;
}

.tbs-ms-details-copy p {
    max-width: 660px !important;
    margin: 0 auto !important;
    color: #6c5a64 !important;
    font-size: clamp(19px, 1.5vw, 25px) !important;
    font-weight: 600 !important;
    line-height: 1.62 !important;
}

/* =========================
   RSVP / CONFIRMACIÓN - PULIDO PREMIUM
========================= */
.tbs-ms-rsvp-card {
    max-width: 920px !important;
    border-radius: 38px !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,235,244,.44), transparent 28%),
        radial-gradient(circle at 100% 100%, rgba(220, 243, 252, .24), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,250,253,.90)) !important;
    box-shadow: 0 30px 72px rgba(124, 87, 106, .13) !important;
}

/* =========================
   TARJETAS PREMIUM - WISHLIST
========================= */
.tbs-ms-module-card .tbs-regalos-publico,
.tbs-ms-module-card .tbs-virtual-publico {
    width: 100% !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-lista,
.tbs-ms-module-card .tbs-virtual-publico .tbs-lista {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-card,
.tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual {
    position: relative !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    border-radius: 30px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(255,239,247,.72), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,253,.94)) !important;
    box-shadow:
        0 18px 44px rgba(124, 87, 106, .10),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-card::before,
.tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual::before {
    content: "" !important;
    position: absolute !important;
    inset: auto -42px -48px auto !important;
    width: 130px !important;
    height: 130px !important;
    border-radius: 999px !important;
    background: rgba(236,111,163,.06) !important;
    pointer-events: none !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-img,
.tbs-ms-module-card .tbs-virtual-publico .tbs-img {
    position: relative !important;
    aspect-ratio: 1 / 1 !important;
    min-height: auto !important;
    padding: 16px !important;
    background: transparent !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-img img,
.tbs-ms-module-card .tbs-virtual-publico .tbs-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 26px rgba(124,87,106,.10) !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-link-preview,
.tbs-ms-module-card .tbs-regalos-publico .tbs-placeholder,
.tbs-ms-module-card .tbs-virtual-publico .tbs-placeholder {
    width: 100% !important;
    height: 100% !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 22px !important;
    background: linear-gradient(135deg, #fff0f7, #eef8ff) !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: 38px !important;
    font-weight: 800 !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-link-preview small {
    display: block !important;
    margin-top: 8px !important;
    font-size: 13px !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-content,
.tbs-ms-module-card .tbs-virtual-publico .tbs-content {
    position: relative !important;
    z-index: 2 !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 4px 18px 18px !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
.tbs-ms-module-card .tbs-virtual-publico .tbs-content h4 {
    min-height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    color: #4d3f47 !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -.03em !important;
    text-align: center !important;
    -webkit-line-clamp: 3 !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-precio,
.tbs-ms-module-card .tbs-virtual-publico .tbs-precio {
    margin: 2px 0 2px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-size: 26px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-nombre,
.tbs-ms-module-card .tbs-regalos-publico input[type="text"],
.tbs-ms-module-card .tbs-virtual-publico input[type="text"],
.tbs-ms-module-card .tbs-virtual-publico input[type="email"] {
    width: 100% !important;
    min-height: 48px !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.84) !important;
    color: #4d3f47 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
.tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
.tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy,
.tbs-ms-module-card .tbs-virtual-publico .tbs-confirm-buy,
.tbs-ms-module-card .tbs-virtual-publico .tbs-cancel-buy {
    width: 100% !important;
    min-height: 50px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    letter-spacing: -.01em !important;
}

.tbs-ms-module-card .tbs-regalos-publico .estado,
.tbs-ms-module-card .tbs-virtual-publico .estado {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: fit-content !important;
    margin: 4px auto 0 !important;
    padding: 8px 14px !important;
    border-radius: 999px !important;
    background: rgba(240,250,255,.86) !important;
    color: var(--tbs-ms-blue-dark) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.tbs-ms-module-card .tbs-virtual-publico .tbs-status {
    padding: 16px 16px 0 !important;
    text-align: left !important;
}

.tbs-ms-module-card .tbs-virtual-publico .tbs-status .estado {
    margin: 0 !important;
}

/* Modal de compra más premium */
#tbs-modal-compra .tbs-app-sheet {
    border-radius: 32px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,253,.95)) !important;
    box-shadow: 0 34px 84px rgba(124,87,106,.18) !important;
}

/* =========================
   MENSAJES PARA EL BEBÉ - FORMATO PREMIUM
========================= */
.tbs-ms-guestbook-card {
    max-width: 960px !important;
    margin: 0 auto !important;
    padding: clamp(24px, 4vw, 38px) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,235,244,.40), transparent 30%),
        radial-gradient(circle at 100% 100%, rgba(220,243,252,.20), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,253,.92)) !important;
}

.tbs-ms-guestbook-card .tbs-guestbook {
    width: 100% !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box {
    position: relative !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 34px 28px !important;
    border-radius: 30px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.90) !important;
    box-shadow: 0 18px 44px rgba(124,87,106,.10) !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-header {
    margin: 0 0 8px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(34px, 3.2vw, 52px) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-sub {
    margin: 0 0 22px !important;
    color: var(--tbs-ms-muted) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook {
    display: grid !important;
    grid-template-columns: 1fr 1.2fr auto !important;
    gap: 12px !important;
    align-items: end !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.92) !important;
    color: #4d3f47 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    min-height: 96px !important;
    resize: vertical !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button {
    min-width: 180px !important;
    min-height: 52px !important;
    padding: 14px 22px !important;
    border-radius: 999px !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.28), transparent 30%),
        linear-gradient(135deg, var(--tbs-ms-pink), var(--tbs-ms-pink-dark)) !important;
    border: 0 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    box-shadow: 0 16px 34px rgba(236,111,163,.24) !important;
}

/* =========================
   RESPONSIVE V17
========================= */
@media (max-width: 1024px) {
    .tbs-ms-module-card .tbs-regalos-publico .tbs-lista,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-lista {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content h4 {
        font-size: 26px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook {
        grid-template-columns: 1fr !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        width: 100% !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms.tbs-micrositio-publico::before,
    .tbs-ms.tbs-publico-nube-amor::before,
    .tbs-ms.tbs-micrositio-nube-amor::before,
    .tbs-micrositio-publico.tbs-publico-nube-amor::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
        opacity: .58 !important;
        background:
            linear-gradient(180deg, rgba(255,251,253,.94) 0%, rgba(255,255,255,.76) 18%, rgba(255,250,253,.82) 54%, rgba(255,255,255,.90) 100%),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
    }

    .tbs-ms.tbs-micrositio-publico::after,
    .tbs-ms.tbs-publico-nube-amor::after,
    .tbs-ms.tbs-micrositio-nube-amor::after,
    .tbs-micrositio-publico.tbs-publico-nube-amor::after,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
        opacity: .14 !important;
        background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') center top / cover no-repeat !important;
    }

    .tbs-ms-details-card {
        padding: 28px 18px !important;
        border-radius: 30px !important;
    }

    .tbs-ms-details-copy h3 {
        font-size: clamp(36px, 10vw, 52px) !important;
        margin-bottom: 12px !important;
    }

    .tbs-ms-details-copy p {
        font-size: 17px !important;
        line-height: 1.58 !important;
    }

    .tbs-ms-rsvp-card,
    .tbs-ms-guestbook-card {
        border-radius: 28px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-lista,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-lista {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-card,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual {
        border-radius: 22px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-img,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-img {
        padding: 10px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-img img,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-img img,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-link-preview,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-placeholder,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-placeholder {
        border-radius: 16px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-content,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content {
        gap: 8px !important;
        padding: 0 12px 14px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content h4 {
        font-size: 20px !important;
        line-height: 1.08 !important;
        -webkit-line-clamp: 2 !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-precio,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-precio {
        font-size: 19px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-nombre,
    .tbs-ms-module-card .tbs-regalos-publico input[type="text"],
    .tbs-ms-module-card .tbs-virtual-publico input[type="text"],
    .tbs-ms-module-card .tbs-virtual-publico input[type="email"] {
        min-height: 42px !important;
        padding: 10px 11px !important;
        border-radius: 14px !important;
        font-size: 12.5px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy {
        min-height: 42px !important;
        font-size: 12px !important;
        padding: 10px 10px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .estado,
    .tbs-ms-module-card .tbs-virtual-publico .estado {
        font-size: 10px !important;
        padding: 7px 10px !important;
    }

    .tbs-ms-guestbook-card {
        padding: 18px 14px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box {
        padding: 22px 16px !important;
        border-radius: 22px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-header {
        font-size: clamp(30px, 9vw, 42px) !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-sub {
        font-size: 14px !important;
        margin-bottom: 16px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
    .tbs-ms-guestbook-card .tbs-form-guestbook textarea {
        min-height: 48px !important;
        padding: 13px 14px !important;
        font-size: 14px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook textarea {
        min-height: 92px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        min-height: 48px !important;
        font-size: 13px !important;
    }
}

@media (max-width: 420px) {
    .tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content h4 {
        font-size: 18px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-precio,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-precio {
        font-size: 17px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy {
        font-size: 11px !important;
    }
}

/* =========================================================
   22) AJUSTE V18 - MODAL COMPRA + BOTONES + GUESTBOOK PREMIUM
   Base: V17 estable.
   Referencia visual: CSS cálido V2 aportado.
========================================================= */

/* Evita difuminado general de página y de módulos */
html.tbs-aec-modal-visible,
body.tbs-aec-modal-visible {
    overflow: hidden !important;
}

.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor {
    filter: none !important;
}

body.tbs-aec-modal-visible .tbs-ms,
body.tbs-aec-modal-visible .tbs-ms *,
body.tbs-aec-modal-visible .tbs-ms-section,
body.tbs-aec-modal-visible .tbs-ms-module-card,
body.tbs-aec-modal-visible .tbs-ms-guestbook-card {
    filter: none !important;
}

/* =========================
   BOTONES COMPRAR / RESERVAR / VER PRODUCTO
========================= */
.tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
.tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
.tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy,
.tbs-ms .tbs-aec-btn-clean {
    position: relative !important;
    display: inline-grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 24px !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 54px !important;
    padding: 14px 18px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(236,111,163,.18) !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.72), transparent 28%),
        linear-gradient(135deg, #e7f6ff 0%, #f1eaff 48%, #ffe4f1 100%) !important;
    color: #2f6f9f !important;
    font-family: var(--tbs-ms-font-body) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -.01em !important;
    text-align: center !important;
    box-shadow:
        0 14px 30px rgba(109,73,96,.12),
        inset 0 1px 0 rgba(255,255,255,.82) !important;
}

.tbs-ms .tbs-aec-btn-clean::before {
    content: "" !important;
    width: 24px !important;
    height: 24px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 7px 14px rgba(109,73,96,.10) !important;
    font-size: 13px !important;
    line-height: 1 !important;
    color: var(--tbs-ms-pink-dark) !important;
}

.tbs-ms .tbs-aec-icon-buy::before { content: "▣" !important; }
.tbs-ms .tbs-aec-icon-reserve::before { content: "♡" !important; }
.tbs-ms .tbs-aec-icon-link::before { content: "↗" !important; }

.tbs-ms .tbs-aec-btn-clean::after {
    content: "" !important;
    width: 24px !important;
    height: 24px !important;
}

.tbs-ms .tbs-aec-btn-clean:hover {
    transform: translateY(-2px) !important;
    filter: saturate(1.04) brightness(1.02) !important;
    box-shadow:
        0 18px 38px rgba(109,73,96,.16),
        inset 0 1px 0 rgba(255,255,255,.88) !important;
}

/* =========================
   MODAL CONFIRMAR COMPRA PREMIUM
========================= */
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: clamp(16px, 3vw, 34px) !important;
    background: rgba(255, 250, 253, .58) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"] {
    display: flex !important;
}

#tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    width: min(100%, 620px) !important;
    max-width: 620px !important;
    max-height: min(92vh, 760px) !important;
    overflow: auto !important;
    margin: auto !important;
    padding: 0 !important;
    border-radius: 34px !important;
    border: 1px solid rgba(236,111,163,.16) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,235,244,.62), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(231,246,255,.66), transparent 36%),
        linear-gradient(145deg, #ffffff 0%, #fff8fc 56%, #effaff 100%) !important;
    color: #543b4d !important;
    box-shadow:
        0 30px 90px rgba(63, 49, 56, .22),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
}

#tbs-modal-compra .tbs-app-sheet::before {
    content: "" !important;
    position: absolute !important;
    inset: 14px !important;
    border-radius: 28px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    pointer-events: none !important;
}

#tbs-modal-compra .tbs-handle {
    width: 54px !important;
    height: 5px !important;
    margin: 18px auto 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, #8fc7dc, #ec6fa3) !important;
    opacity: .44 !important;
}

#tbs-modal-compra .tbs-app-header {
    position: relative !important;
    display: grid !important;
    gap: 8px !important;
    padding: 28px 74px 18px 32px !important;
    margin: 0 !important;
    text-align: left !important;
}

#tbs-modal-compra .tbs-app-header::before {
    content: "▣" !important;
    width: 54px !important;
    height: 54px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 20px !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.92), transparent 32%),
        linear-gradient(135deg, #eaf8ff, #fff0f7) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-size: 22px !important;
    box-shadow: 0 14px 30px rgba(109,73,96,.10) !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    margin: 0 !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
    font-size: clamp(38px, 4vw, 56px) !important;
    font-weight: 700 !important;
    line-height: .98 !important;
    letter-spacing: -.045em !important;
}

#tbs-modal-compra .tbs-app-header p {
    margin: 0 !important;
    max-width: 430px !important;
    color: #756373 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
}

#tbs-modal-compra .tbs-close-modal {
    position: absolute !important;
    top: 24px !important;
    right: 26px !important;
    width: 42px !important;
    height: 42px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.86) !important;
    color: #543b4d !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    box-shadow: 0 12px 24px rgba(109,73,96,.10) !important;
}

#tbs-modal-compra .tbs-app-method {
    margin: 0 32px 16px !important;
    padding: 18px 18px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(143,199,220,.22) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 12px 28px rgba(109,73,96,.06) !important;
}

#tbs-modal-compra .tbs-app-method .label {
    display: block !important;
    margin: 0 0 8px !important;
    color: var(--tbs-ms-blue-dark, #5aa3bf) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .11em !important;
    text-transform: uppercase !important;
}

#tbs-modal-compra #tbs-metodo-modal {
    white-space: pre-line !important;
    color: #4d3f47 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
}

#tbs-modal-compra .tbs-app-error {
    margin: 0 32px 14px !important;
    padding: 13px 15px !important;
    border-radius: 16px !important;
    background: rgba(255,240,247,.88) !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-weight: 800 !important;
}

#tbs-modal-compra .tbs-app-form {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    padding: 0 32px !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.94) !important;
    color: #4d3f47 !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    outline: none !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.84) !important;
}

#tbs-modal-compra .tbs-app-form input:focus,
#tbs-modal-compra .tbs-app-form textarea:focus {
    border-color: rgba(236,111,163,.42) !important;
    box-shadow: 0 0 0 4px rgba(236,111,163,.10), inset 0 1px 0 rgba(255,255,255,.88) !important;
}

#tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
    display: grid !important;
    gap: 9px !important;
    padding: 16px !important;
    border-radius: 20px !important;
    border: 1px dashed rgba(236,111,163,.28) !important;
    background: rgba(255,255,255,.72) !important;
    color: #756373 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

#tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 44px !important;
    padding: 9px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(143,199,220,.22) !important;
    background: #fff !important;
    color: #756373 !important;
    font-size: 13px !important;
}

#tbs-modal-compra .tbs-modal-actions {
    display: grid !important;
    grid-template-columns: 1fr 1.15fr !important;
    gap: 12px !important;
    padding: 20px 32px 32px !important;
    margin: 0 !important;
}

#tbs-modal-compra .tbs-cancel-buy,
#tbs-modal-compra .tbs-confirm-buy {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 52px !important;
    padding: 14px 18px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

#tbs-modal-compra .tbs-cancel-buy {
    border: 1px solid rgba(236,111,163,.16) !important;
    background: rgba(255,255,255,.78) !important;
    color: #756373 !important;
}

#tbs-modal-compra .tbs-confirm-buy {
    border: 0 !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.34), transparent 28%),
        linear-gradient(135deg, var(--tbs-ms-pink, #ec6fa3), var(--tbs-ms-pink-dark, #ce4f86)) !important;
    box-shadow: 0 16px 34px rgba(236,111,163,.26) !important;
}

/* =========================
   MENSAJES PARA EL BEBÉ PREMIUM
========================= */
.tbs-ms-guestbook-card {
    width: min(100%, 1060px) !important;
    max-width: 1060px !important;
    padding: clamp(26px, 4vw, 48px) !important;
    border-radius: 42px !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,235,244,.50), transparent 30%),
        radial-gradient(circle at 100% 100%, rgba(231,246,255,.44), transparent 32%),
        linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,250,253,.90)) !important;
    box-shadow:
        0 32px 82px rgba(124,87,106,.14),
        inset 0 1px 0 rgba(255,255,255,.90) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.tbs-ms-guestbook-card .tbs-guestbook {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box {
    width: min(100%, 860px) !important;
    max-width: 860px !important;
    margin: 0 auto !important;
    padding: clamp(28px, 4vw, 46px) !important;
    border-radius: 34px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 20px 54px rgba(124,87,106,.10) !important;
    overflow: hidden !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box::before {
    content: "" !important;
    position: absolute !important;
    inset: auto -80px -86px auto !important;
    width: 220px !important;
    height: 220px !important;
    border-radius: 999px !important;
    background: rgba(143,199,220,.10) !important;
    pointer-events: none !important;
    animation: none !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box::after {
    content: "♡" !important;
    position: absolute !important;
    top: 28px !important;
    left: 32px !important;
    width: 56px !important;
    height: 56px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, #fff0f7, #eef8ff) !important;
    color: #d8a24c !important;
    font-size: 26px !important;
    box-shadow: 0 14px 30px rgba(109,73,96,.10) !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-header {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 auto 10px !important;
    padding-top: 20px !important;
    color: var(--tbs-ms-pink-dark) !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(44px, 4.4vw, 72px) !important;
    font-weight: 700 !important;
    line-height: .96 !important;
    letter-spacing: -.05em !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-sub {
    position: relative !important;
    z-index: 2 !important;
    max-width: 560px !important;
    margin: 0 auto 28px !important;
    color: #756373 !important;
    font-size: clamp(16px, 1.25vw, 19px) !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: minmax(180px, .85fr) minmax(260px, 1.15fr) auto !important;
    gap: 14px !important;
    align-items: end !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    width: 100% !important;
    min-height: 58px !important;
    padding: 16px 18px !important;
    border-radius: 22px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.96) !important;
    color: #4d3f47 !important;
    font-family: var(--tbs-ms-font-body) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88) !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    min-height: 96px !important;
    resize: vertical !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button {
    min-width: 210px !important;
    min-height: 58px !important;
    padding: 16px 26px !important;
    border-radius: 999px !important;
    border: 0 !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.28), transparent 30%),
        linear-gradient(135deg, var(--tbs-ms-pink), var(--tbs-ms-pink-dark)) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    box-shadow: 0 18px 38px rgba(236,111,163,.26) !important;
}

/* reCAPTCHA discreto */
.tbs-ms-guestbook-card .g-recaptcha,
.tbs-ms-rsvp-card .g-recaptcha,
.tbs-ms .g-recaptcha,
.tbs-ms iframe[src*="recaptcha"] {
    transform: scale(.82) !important;
    transform-origin: center !important;
    opacity: .72 !important;
    filter: saturate(.82) !important;
}

.tbs-ms .grecaptcha-badge {
    transform: scale(.78) !important;
    transform-origin: bottom right !important;
    opacity: .45 !important;
}

/* =========================
   RESPONSIVE V18
========================= */
@media (max-width: 1024px) {
    .tbs-ms-guestbook-card .tbs-form-guestbook {
        grid-template-columns: 1fr !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

@media (max-width: 767px) {
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        align-items: flex-end !important;
        padding: 12px !important;
        background: rgba(255,250,253,.66) !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: 100% !important;
        max-width: 100% !important;
        max-height: 88svh !important;
        border-radius: 30px 30px 22px 22px !important;
    }

    #tbs-modal-compra .tbs-app-header {
        padding: 22px 64px 16px 22px !important;
    }

    #tbs-modal-compra .tbs-close-modal {
        top: 20px !important;
        right: 20px !important;
        width: 38px !important;
        height: 38px !important;
        border-radius: 14px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(34px, 10vw, 46px) !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error {
        margin-left: 22px !important;
        margin-right: 22px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        padding: 0 22px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr !important;
        padding: 18px 22px 24px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy,
    .tbs-ms .tbs-aec-btn-clean {
        min-height: 44px !important;
        padding: 11px 12px !important;
        grid-template-columns: 20px minmax(0, 1fr) 20px !important;
        font-size: 12px !important;
    }

    .tbs-ms .tbs-aec-btn-clean::before,
    .tbs-ms .tbs-aec-btn-clean::after {
        width: 20px !important;
        height: 20px !important;
        border-radius: 8px !important;
        font-size: 11px !important;
    }

    .tbs-ms-guestbook-card {
        width: min(100%, 430px) !important;
        padding: 18px 14px !important;
        border-radius: 30px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box {
        padding: 26px 16px 18px !important;
        border-radius: 24px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box::after {
        top: 18px !important;
        left: 18px !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 16px !important;
        font-size: 22px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-header {
        padding-top: 38px !important;
        font-size: clamp(34px, 11vw, 50px) !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-sub {
        margin-bottom: 20px !important;
        font-size: 14.5px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
    .tbs-ms-guestbook-card .tbs-form-guestbook textarea {
        min-height: 52px !important;
        padding: 14px 15px !important;
        border-radius: 18px !important;
        font-size: 14px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook textarea {
        min-height: 110px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        min-height: 52px !important;
        padding: 14px 18px !important;
        font-size: 13.5px !important;
    }

    .tbs-ms .g-recaptcha,
    .tbs-ms iframe[src*="recaptcha"] {
        transform: scale(.76) !important;
        transform-origin: center left !important;
    }
}

/* =========================================================
   23) AJUSTE V19 - GUESTBOOK DESKTOP STACK + GRACIAS/CONFETTI
   Base estable: V18
========================================================= */

/* Ventana Mensajes para el bebé: layout premium vertical */
.tbs-ms-guestbook-card {
    max-width: 980px !important;
    padding: clamp(26px, 4vw, 42px) !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box {
    max-width: 760px !important;
    padding: clamp(34px, 4vw, 56px) clamp(26px, 4vw, 46px) !important;
    border-radius: 36px !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-box::after {
    opacity: .52 !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-header {
    margin-bottom: 10px !important;
    font-size: clamp(48px, 4.8vw, 78px) !important;
    line-height: .92 !important;
    letter-spacing: -.055em !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-sub {
    max-width: 560px !important;
    margin: 0 auto clamp(28px, 3vw, 38px) !important;
    font-size: clamp(17px, 1.35vw, 22px) !important;
    line-height: 1.45 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook {
    width: min(100%, 620px) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    align-items: stretch !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    width: 100% !important;
    text-align: left !important;
    border-radius: 22px !important;
    border: 1px solid rgba(236,111,163,.13) !important;
    background: rgba(255,255,255,.94) !important;
    box-shadow:
        0 12px 28px rgba(124,87,106,.06),
        inset 0 1px 0 rgba(255,255,255,.90) !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"] {
    min-height: 62px !important;
    padding: 18px 22px !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook textarea {
    min-height: 150px !important;
    padding: 20px 22px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.55 !important;
    resize: vertical !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button {
    width: min(100%, 360px) !important;
    min-height: 60px !important;
    margin: 4px auto 0 !important;
    border-radius: 999px !important;
    padding: 17px 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    text-align: center !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button::before {
    content: "💌" !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 26px !important;
    height: 26px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.22) !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

/* reCAPTCHA más discreto dentro del guestbook */
.tbs-ms-guestbook-card .g-recaptcha,
.tbs-ms-guestbook-card iframe[src*="recaptcha"],
.tbs-ms-guestbook-card .grecaptcha-badge {
    transform: scale(.82) !important;
    transform-origin: center !important;
    opacity: .78 !important;
    filter: saturate(.9) !important;
}

/* Overlay temporal de agradecimiento */
.tbs-aec-thanks-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
    background: rgba(255, 248, 252, .30) !important;
    pointer-events: none !important;
    animation: tbsAecThanksOut .35s ease 2.65s forwards !important;
}

.tbs-aec-thanks-card {
    width: min(92vw, 430px) !important;
    padding: 34px 28px 30px !important;
    border-radius: 34px !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.92), transparent 46%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,247,251,.92)) !important;
    box-shadow: 0 30px 86px rgba(124,87,106,.22) !important;
    text-align: center !important;
    animation: tbsAecThanksIn .38s cubic-bezier(.2,.9,.2,1.15) both !important;
}

.tbs-aec-thanks-icon {
    width: 74px !important;
    height: 74px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 14px !important;
    border-radius: 28px !important;
    background: linear-gradient(135deg, #fff0f7, #edf9ff) !important;
    box-shadow: 0 16px 34px rgba(151,92,130,.12) !important;
    font-size: 34px !important;
}

.tbs-aec-thanks-title {
    margin: 0 0 8px !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
    font-size: 42px !important;
    font-weight: 700 !important;
    line-height: .95 !important;
    letter-spacing: -.04em !important;
}

.tbs-aec-thanks-text {
    margin: 0 !important;
    color: #6c5a64 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
}

.tbs-aec-confetti-layer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999998 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.tbs-aec-confetti-piece {
    position: absolute !important;
    top: -18px !important;
    width: 10px !important;
    height: 14px !important;
    border-radius: 4px !important;
    opacity: .95 !important;
    animation-name: tbsAecConfettiFall !important;
    animation-timing-function: linear !important;
    animation-fill-mode: forwards !important;
}

@keyframes tbsAecThanksIn {
    from { opacity: 0; transform: translateY(14px) scale(.92); filter: blur(4px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes tbsAecThanksOut {
    to { opacity: 0; visibility: hidden; }
}

@keyframes tbsAecConfettiFall {
    0% { transform: translate3d(0, -18px, 0) rotate(0deg); opacity: 1; }
    100% { transform: translate3d(var(--tbs-x, 0px), 108vh, 0) rotate(720deg); opacity: 0; }
}

@media (max-width: 767px) {
    .tbs-ms-guestbook-card {
        padding: 18px 14px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box {
        padding: 28px 16px !important;
        border-radius: 26px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-header {
        font-size: clamp(36px, 11vw, 52px) !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-sub {
        margin-bottom: 22px !important;
        font-size: 15px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook {
        gap: 12px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"] {
        min-height: 54px !important;
        padding: 15px 16px !important;
        font-size: 15px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook textarea {
        min-height: 124px !important;
        padding: 16px !important;
        font-size: 15px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        width: 100% !important;
        min-height: 54px !important;
        font-size: 14px !important;
    }

    .tbs-aec-thanks-title {
        font-size: 36px !important;
    }
}

/* =========================================================
   24) AJUSTE V20 - MENSAJE GUARDADO + MODAL 3S + CONFETTI
   Base estable: V19
========================================================= */

/* Formulario desktop: nombre arriba, mensaje abajo, botón abajo */
.tbs-ms-guestbook-card .tbs-form-guestbook {
    width: min(100%, 650px) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[name="nombre"] {
    grid-column: 1 / -1 !important;
    order: 1 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook textarea[name="mensaje"] {
    grid-column: 1 / -1 !important;
    order: 2 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button {
    order: 3 !important;
    width: min(100%, 360px) !important;
    margin: 6px auto 0 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook button.tbs-aec-loading {
    opacity: .82 !important;
    cursor: wait !important;
}

.tbs-aec-guestbook-error {
    order: 4 !important;
    width: 100% !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    background: rgba(255, 241, 247, .95) !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    text-align: center !important;
}

/* Modal temporal premium */
.tbs-aec-thanks-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
    background: rgba(255, 248, 252, .28) !important;
    pointer-events: none !important;
    animation: tbsAecThanksOutV20 .35s ease 2.65s forwards !important;
}

.tbs-aec-thanks-card {
    width: min(92vw, 470px) !important;
    padding: 38px 30px 34px !important;
    border-radius: 36px !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.96), transparent 48%),
        radial-gradient(circle at 100% 100%, rgba(226,246,255,.45), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,247,251,.94)) !important;
    box-shadow:
        0 34px 92px rgba(124,87,106,.24),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
    text-align: center !important;
    animation: tbsAecThanksInV20 .42s cubic-bezier(.2,.9,.2,1.15) both !important;
}

.tbs-aec-thanks-icon {
    width: 78px !important;
    height: 78px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 16px !important;
    border-radius: 30px !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.94), transparent 32%),
        linear-gradient(135deg, #fff0f7, #edf9ff) !important;
    box-shadow: 0 18px 38px rgba(151,92,130,.14) !important;
    font-size: 36px !important;
}

.tbs-aec-thanks-title {
    margin: 0 0 10px !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
    font-size: clamp(38px, 4vw, 50px) !important;
    font-weight: 700 !important;
    line-height: .95 !important;
    letter-spacing: -.045em !important;
}

.tbs-aec-thanks-text {
    max-width: 360px !important;
    margin: 0 auto !important;
    color: #6c5a64 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.48 !important;
}

/* Confetti pantalla completa */
.tbs-aec-confetti-layer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483645 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.tbs-aec-confetti-piece {
    position: absolute !important;
    top: -22px !important;
    display: block !important;
    border-radius: 4px !important;
    opacity: .96 !important;
    color: #ec6fa3 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    text-align: center !important;
    animation-name: tbsAecConfettiFallV20 !important;
    animation-timing-function: linear !important;
    animation-fill-mode: forwards !important;
}

@keyframes tbsAecThanksInV20 {
    from { opacity: 0; transform: translateY(16px) scale(.92); filter: blur(4px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes tbsAecThanksOutV20 {
    to { opacity: 0; visibility: hidden; }
}

@keyframes tbsAecConfettiFallV20 {
    0% { transform: translate3d(0, -24px, 0) rotate(0deg); opacity: 1; }
    100% { transform: translate3d(var(--tbs-x, 0px), 110vh, 0) rotate(var(--tbs-r, 720deg)); opacity: 0; }
}

@media (max-width: 767px) {
    .tbs-ms-guestbook-card .tbs-form-guestbook {
        width: 100% !important;
        gap: 12px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook button {
        width: 100% !important;
    }

    .tbs-aec-thanks-card {
        padding: 32px 24px 30px !important;
        border-radius: 30px !important;
    }

    .tbs-aec-thanks-title {
        font-size: 36px !important;
    }

    .tbs-aec-thanks-text {
        font-size: 15px !important;
    }
}

/* =========================================================
   25) AJUSTE V21 - HEADER TOP + MODAL COMPRA COMPACTO
       + MENÚ MÓVIL COMPLETO + GRACIAS/CONFETTI SIN BLUR
========================================================= */

html.tbs-aec-public-ready,
body.tbs-aec-public-ready,
body.tbs-aec-public-ready #wrapper,
body.tbs-aec-public-ready #page,
body.tbs-aec-public-ready .main-content,
body.tbs-aec-public-ready .main-content-area,
body.tbs-aec-public-ready .page-content,
body.tbs-aec-public-ready .entry-content,
body.tbs-aec-public-ready .elementor,
body.tbs-aec-public-ready .elementor-section-wrap {
    background:
        radial-gradient(circle at 0% 4%, rgba(255, 204, 225, .48), transparent 28%),
        radial-gradient(circle at 100% 8%, rgba(184, 226, 242, .32), transparent 24%),
        linear-gradient(180deg, #fffafd 0%, #ffffff 36%, #fff8fc 100%) !important;
}

body.tbs-aec-public-ready {
    margin: 0 !important;
    padding-top: 0 !important;
}

body.tbs-aec-public-ready .tbs-ms.tbs-micrositio-publico,
body.tbs-aec-public-ready .tbs-ms.tbs-publico-nube-amor,
body.tbs-aec-public-ready .tbs-micrositio-publico.tbs-publico-nube-amor {
    margin-top: 0 !important;
    padding-top: max(0px, env(safe-area-inset-top)) !important;
    overflow: visible !important;
}

body.tbs-aec-public-ready .tbs-ms.tbs-micrositio-publico::before,
body.tbs-aec-public-ready .tbs-ms.tbs-publico-nube-amor::before,
body.tbs-aec-public-ready .tbs-micrositio-publico.tbs-publico-nube-amor::before {
    content: "" !important;
    position: absolute !important;
    z-index: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: -120px !important;
    height: 180px !important;
    background:
        radial-gradient(circle at 8% 0%, rgba(255, 204, 225, .50), transparent 34%),
        radial-gradient(circle at 100% 4%, rgba(184, 226, 242, .34), transparent 30%),
        linear-gradient(180deg, #fffafd 0%, #fffafd 100%) !important;
    pointer-events: none !important;
}

body.tbs-aec-public-ready .tbs-ms-hero {
    margin-top: 0 !important;
}

/* Menú móvil: todas las opciones visibles, sin carrusel horizontal */
@media (max-width: 767px) {
    .tbs-ms-quicknav {
        position: relative !important;
        top: auto !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: min(100% - 24px, 430px) !important;
        max-width: 430px !important;
        margin: -10px auto 24px !important;
        padding: 10px !important;
        overflow: visible !important;
        border-radius: 24px !important;
        background: rgba(255,255,255,.92) !important;
        box-shadow: 0 16px 38px rgba(124,87,106,.10) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .tbs-ms.tbs-plan-dulce-llegada .tbs-ms-quicknav,
    .tbs-ms.tbs-plan-dulce-experiencia .tbs-ms-quicknav {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .tbs-ms-quicknav a {
        flex: initial !important;
        min-width: 0 !important;
        width: 100% !important;
        min-height: 58px !important;
        display: grid !important;
        place-items: center !important;
        gap: 4px !important;
        padding: 9px 5px !important;
        border-radius: 18px !important;
        background: rgba(255,255,255,.72) !important;
        border: 1px solid rgba(236,111,163,.10) !important;
        color: #6c5a64 !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
        text-align: center !important;
        white-space: normal !important;
    }
}

@media (max-width: 390px) {
    .tbs-ms-quicknav a {
        font-size: 11px !important;
        min-height: 54px !important;
    }
}

/* Modal de confirmar compra: formato premium compacto, sin scroll interno visible */
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    align-items: center !important;
    justify-content: center !important;
    padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
    background: rgba(255, 248, 252, .72) !important;
}

#tbs-modal-compra .tbs-app-sheet {
    width: min(94vw, 720px) !important;
    max-height: calc(100svh - 28px) !important;
    display: grid !important;
    grid-template-rows: auto auto 1fr auto !important;
    overflow: hidden !important;
    border-radius: 34px !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(255,235,244,.92), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(232,248,255,.72), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,253,.96)) !important;
}

#tbs-modal-compra .tbs-handle {
    display: none !important;
}

#tbs-modal-compra .tbs-app-header {
    min-height: 0 !important;
    padding: 22px 70px 12px 28px !important;
}

#tbs-modal-compra .tbs-app-header::before {
    width: 44px !important;
    height: 44px !important;
    margin-bottom: 10px !important;
    border-radius: 16px !important;
    font-size: 24px !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    margin-bottom: 6px !important;
    font-size: clamp(36px, 4.6vw, 54px) !important;
    line-height: .92 !important;
}

#tbs-modal-compra .tbs-app-header p {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
}

#tbs-modal-compra .tbs-close-modal {
    top: 18px !important;
    right: 20px !important;
}

#tbs-modal-compra .tbs-app-method,
#tbs-modal-compra .tbs-app-error {
    margin: 0 28px 12px !important;
    padding: 14px 16px !important;
    border-radius: 20px !important;
}

#tbs-modal-compra .tbs-app-method .label {
    margin-bottom: 6px !important;
    font-size: 11px !important;
}

#tbs-modal-compra #tbs-metodo-modal {
    font-size: 16px !important;
    line-height: 1.15 !important;
}

#tbs-modal-compra .tbs-app-form {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 0 28px !important;
    overflow: visible !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea {
    min-height: 48px !important;
    padding: 13px 14px !important;
    border-radius: 17px !important;
    font-size: 14px !important;
}

#tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
    gap: 6px !important;
    padding: 11px 14px !important;
    border-radius: 18px !important;
    font-size: 13px !important;
}

#tbs-modal-compra .tbs-upload input[type="file"] {
    min-height: 38px !important;
    padding: 6px !important;
    font-size: 12px !important;
}

#tbs-modal-compra .tbs-modal-actions {
    grid-template-columns: 1fr 1.2fr !important;
    gap: 10px !important;
    padding: 14px 28px 24px !important;
}

#tbs-modal-compra .tbs-cancel-buy,
#tbs-modal-compra .tbs-confirm-buy {
    min-height: 48px !important;
    padding: 13px 16px !important;
    font-size: 13.5px !important;
}

@media (max-width: 767px) {
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        align-items: center !important;
        padding: 8px !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: min(96vw, 430px) !important;
        max-height: calc(100svh - 16px) !important;
        border-radius: 28px !important;
    }

    #tbs-modal-compra .tbs-app-header {
        padding: 16px 58px 8px 18px !important;
    }

    #tbs-modal-compra .tbs-app-header::before {
        width: 38px !important;
        height: 38px !important;
        margin-bottom: 7px !important;
        border-radius: 14px !important;
        font-size: 21px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(30px, 9vw, 40px) !important;
        line-height: .92 !important;
    }

    #tbs-modal-compra .tbs-app-header p {
        font-size: 13px !important;
        line-height: 1.25 !important;
    }

    #tbs-modal-compra .tbs-close-modal {
        top: 14px !important;
        right: 14px !important;
        width: 36px !important;
        height: 36px !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error {
        margin: 0 18px 9px !important;
        padding: 10px 13px !important;
        border-radius: 17px !important;
    }

    #tbs-modal-compra #tbs-metodo-modal {
        font-size: 14px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 0 18px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"],
    #tbs-modal-compra .tbs-app-form textarea {
        min-height: 43px !important;
        padding: 10px 13px !important;
        border-radius: 15px !important;
        font-size: 13.5px !important;
    }

    #tbs-modal-compra .tbs-upload {
        padding: 9px 12px !important;
        gap: 5px !important;
        border-radius: 16px !important;
        font-size: 12.5px !important;
    }

    #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 34px !important;
        padding: 5px !important;
        font-size: 11.5px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        padding: 10px 18px 16px !important;
    }

    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 42px !important;
        padding: 10px 12px !important;
        font-size: 12.5px !important;
    }
}

@media (max-width: 360px) {
    #tbs-modal-compra .tbs-app-header h3 {
        font-size: 28px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"] {
        min-height: 40px !important;
    }
}

/* Gracias + confetti siempre encima y sin efecto borroso */
html.tbs-aec-thanks-visible,
body.tbs-aec-thanks-visible {
    overflow: hidden !important;
}

body.tbs-aec-thanks-visible .tbs-ms,
body.tbs-aec-thanks-visible .tbs-ms *,
.tbs-ms-closing,
.tbs-ms-closing * {
    filter: none !important;
    -webkit-filter: none !important;
}

.tbs-ms-closing,
.tbs-ms-closing * {
    opacity: 1 !important;
    animation-duration: .01ms !important;
    animation-delay: 0ms !important;
}

.tbs-aec-thanks-overlay {
    z-index: 2147483647 !important;
    background: rgba(255, 248, 252, .42) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: auto !important;
}

.tbs-aec-thanks-card {
    position: relative !important;
    overflow: hidden !important;
    filter: none !important;
    -webkit-filter: none !important;
}

.tbs-aec-thanks-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(circle at 50% -10%, rgba(255,255,255,.95), transparent 42%) !important;
    pointer-events: none !important;
}

.tbs-aec-thanks-card > * {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-aec-thanks-close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    margin: 18px auto 0 !important;
    padding: 12px 28px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--tbs-ms-pink, #ec6fa3), var(--tbs-ms-pink-dark, #ce4f86)) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
    box-shadow: 0 14px 30px rgba(236,111,163,.24) !important;
}

.tbs-aec-confetti-layer {
    z-index: 2147483646 !important;
}

.tbs-aec-confetti-piece {
    top: -28px !important;
    will-change: transform, opacity !important;
}

@keyframes tbsAecThanksInV20 {
    from { opacity: 0; transform: translateY(16px) scale(.94); filter: none; }
    to { opacity: 1; transform: translateY(0) scale(1); filter: none; }
}

@keyframes tbsAecThanksIn {
    from { opacity: 0; transform: translateY(14px) scale(.94); filter: none; }
    to { opacity: 1; transform: translateY(0) scale(1); filter: none; }
}


/* =========================================================
   26) AJUSTE V22 - SIN FRANJA BLANCA + FONDO AMOR EN CAMINO
       + GRACIAS MODAL FORZADO + CONFETTI FULLSCREEN
========================================================= */

/* 1) Quitar la franja blanca superior incluso antes/después de que cargue JS */
html:has(.tbs-publico-nube-amor),
html:has(.tbs-micrositio-nube-amor),
body:has(.tbs-publico-nube-amor),
body:has(.tbs-micrositio-nube-amor),
html.tbs-aec-public-ready,
body.tbs-aec-public-ready,
html.tbs-aec-v22-ready,
body.tbs-aec-v22-ready {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 100% !important;
    background-color: #fff6fb !important;
    background-image:
        linear-gradient(180deg, rgba(255, 246, 251, .40) 0%, rgba(255, 250, 253, .58) 28%, rgba(255, 246, 251, .68) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-position: center top !important;
    background-size: 100% auto !important;
    background-repeat: repeat-y !important;
}

body:has(.tbs-publico-nube-amor) #wrapper,
body:has(.tbs-publico-nube-amor) #page,
body:has(.tbs-publico-nube-amor) .page-wrapper,
body:has(.tbs-publico-nube-amor) .main-content,
body:has(.tbs-publico-nube-amor) .main-content-area,
body:has(.tbs-publico-nube-amor) .site-content,
body:has(.tbs-publico-nube-amor) .content-area,
body:has(.tbs-publico-nube-amor) .page-content,
body:has(.tbs-publico-nube-amor) .entry-content,
body:has(.tbs-publico-nube-amor) .elementor,
body:has(.tbs-publico-nube-amor) .elementor-section-wrap,
body.tbs-aec-public-ready #wrapper,
body.tbs-aec-public-ready #page,
body.tbs-aec-public-ready .page-wrapper,
body.tbs-aec-public-ready .main-content,
body.tbs-aec-public-ready .main-content-area,
body.tbs-aec-public-ready .site-content,
body.tbs-aec-public-ready .content-area,
body.tbs-aec-public-ready .page-content,
body.tbs-aec-public-ready .entry-content,
body.tbs-aec-public-ready .elementor,
body.tbs-aec-public-ready .elementor-section-wrap {
    margin-top: 0 !important;
    padding-top: 0 !important;
    background: transparent !important;
    border-top: 0 !important;
}

/* Si el tema deja un header vacío/blanco sobre el micrositio público, se apaga solo en esta vista pública. */
body:has(.tbs-publico-nube-amor) header,
body:has(.tbs-publico-nube-amor) #header,
body:has(.tbs-publico-nube-amor) .site-header,
body:has(.tbs-publico-nube-amor) .main-header,
body.tbs-aec-public-ready header,
body.tbs-aec-public-ready #header,
body.tbs-aec-public-ready .site-header,
body.tbs-aec-public-ready .main-header {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
}

/* 2) Fondo Nube Amor continuo en todo el micrositio, desde el primer pixel hasta el final */
.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    margin-top: -1px !important;
    padding-top: 0 !important;
    overflow: hidden !important;
    background-color: #fff6fb !important;
    background-image:
        linear-gradient(180deg, rgba(255, 246, 251, .30) 0%, rgba(255, 255, 255, .50) 24%, rgba(255, 248, 252, .58) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-position: center top !important;
    background-size: 100% auto !important;
    background-repeat: repeat-y !important;
}

.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-ms.tbs-micrositio-diseno-nube_amor::before,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -320px !important;
    bottom: -80px !important;
    z-index: -3 !important;
    pointer-events: none !important;
    opacity: .72 !important;
    background-image:
        linear-gradient(180deg, rgba(255, 246, 251, .42) 0%, rgba(255,255,255,.54) 22%, rgba(255, 247, 252, .64) 100%),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-position: center top !important;
    background-size: 100% auto !important;
    background-repeat: repeat-y !important;
}

.tbs-ms.tbs-micrositio-publico::after,
.tbs-ms.tbs-publico-nube-amor::after,
.tbs-ms.tbs-micrositio-nube-amor::after,
.tbs-ms.tbs-micrositio-diseno-nube_amor::after,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor::after,
.tbs-micrositio-publico.tbs-publico-nube-amor::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -320px !important;
    bottom: -80px !important;
    z-index: -2 !important;
    pointer-events: none !important;
    opacity: .24 !important;
    background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / 100% auto repeat-y !important;
}

.tbs-ms-hero {
    margin-top: 0 !important;
}

/* Completa la imagen del header/hero hasta arriba, sin borde blanco superior */
.tbs-ms.tbs-publico-nube-amor .tbs-ms-hero,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-top-width: 0 !important;
    background-position: center top !important;
}

/* 3) Modal de gracias: siempre modal real, sin blur, encima de todo y sin auto fade visual */
.tbs-aec-thanks-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483647 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom)) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    background: rgba(255, 248, 252, .54) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    animation: none !important;
    filter: none !important;
    -webkit-filter: none !important;
}

.tbs-aec-thanks-card {
    z-index: 2147483647 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    -webkit-filter: none !important;
    animation: tbsAecThanksInV22 .28s ease-out both !important;
}

.tbs-aec-thanks-title,
.tbs-aec-thanks-text,
.tbs-aec-thanks-icon {
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

.tbs-aec-confetti-layer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

@keyframes tbsAecThanksInV22 {
    from { opacity: 0; transform: translateY(14px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 767px) {
    html:has(.tbs-publico-nube-amor),
    html:has(.tbs-micrositio-nube-amor),
    body:has(.tbs-publico-nube-amor),
    body:has(.tbs-micrositio-nube-amor),
    html.tbs-aec-public-ready,
    body.tbs-aec-public-ready,
    .tbs-ms.tbs-micrositio-publico,
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor {
        background-size: cover !important;
        background-repeat: repeat-y !important;
        background-position: center top !important;
    }

    .tbs-ms.tbs-micrositio-publico::before,
    .tbs-ms.tbs-publico-nube-amor::before,
    .tbs-ms.tbs-micrositio-nube-amor::before,
    .tbs-micrositio-publico.tbs-publico-nube-amor::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
        top: -220px !important;
        opacity: .78 !important;
        background-size: cover !important;
    }

    .tbs-ms.tbs-micrositio-publico::after,
    .tbs-ms.tbs-publico-nube-amor::after,
    .tbs-ms.tbs-micrositio-nube-amor::after,
    .tbs-micrositio-publico.tbs-publico-nube-amor::after,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
        top: -220px !important;
        opacity: .20 !important;
        background-image: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
        background-size: cover !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        margin-top: 0 !important;
        border-radius: 0 0 34px 34px !important;
        border-top: 0 !important;
    }
}

/* =========================================================
   26) AJUSTE V26 - HERO MÁS PREMIUM + ÍCONOS NAV + SUBTÍTULOS
   Base estable: V25
   - Agranda título principal en desktop.
   - Adelgaza subtítulos para lectura más premium.
   - Recupera íconos premium en navegación rápida.
========================================================= */

@media (min-width: 1025px) {
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero h1,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero h1,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero h1 {
        font-size: clamp(88px, 8.9vw, 148px) !important;
        line-height: .82 !important;
        letter-spacing: -.064em !important;
        margin-bottom: 20px !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero h1 span,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero h1 span,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero h1 span {
        font-size: clamp(112px, 10.8vw, 178px) !important;
        line-height: .66 !important;
        margin-top: 8px !important;
        letter-spacing: -.018em !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero-text,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero-text,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero-text {
        max-width: 850px !important;
        margin-top: 30px !important;
        font-size: clamp(22px, 1.75vw, 30px) !important;
        font-weight: 500 !important;
        letter-spacing: -.01em !important;
        line-height: 1.5 !important;
    }
}

/* Subtítulos más delgados, editoriales y premium */
.tbs-ms.tbs-publico-nube-amor .tbs-ms-hero-text,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero-text,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero-text,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-section-head p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-section-head p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-section-head p,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-countdown-copy p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-countdown-copy p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-countdown-copy p,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-closing-card p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing-card p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing-card p,
.tbs-ms.tbs-publico-nube-amor .tbs-rsvp-sub,
.tbs-ms.tbs-micrositio-nube-amor .tbs-rsvp-sub,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-rsvp-sub,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-location-copy p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-location-copy p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-location-copy p,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-details-copy p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-details-copy p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-details-copy p,
.tbs-ms.tbs-publico-nube-amor .tbs-guestbook-sub,
.tbs-ms.tbs-micrositio-nube-amor .tbs-guestbook-sub,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-guestbook-sub,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-guestbook-card .tbs-guestbook-sub,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-guestbook-card .tbs-guestbook-sub,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-guestbook-card .tbs-guestbook-sub {
    font-weight: 400 !important;
    letter-spacing: -.005em !important;
    color: rgba(77, 63, 71, .78) !important;
}

/* Mantiene fuerza moderada únicamente en textos principales dentro de tarjetas */
.tbs-ms.tbs-publico-nube-amor .tbs-ms-details-copy p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-details-copy p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-details-copy p {
    font-weight: 500 !important;
    color: rgba(77, 63, 71, .82) !important;
}

/* Navegación rápida desktop: botones más premium con íconos restaurados */
@media (min-width: 768px) {
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav {
        width: min(1380px, calc(100vw - 64px)) !important;
        grid-template-columns: repeat(6, minmax(150px, 1fr)) !important;
        gap: 16px !important;
        padding: 18px !important;
        border-radius: 34px !important;
        background: rgba(255,255,255,.88) !important;
        box-shadow: 0 24px 64px rgba(124, 87, 106, .13) !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav a,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav a,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav a {
        min-height: 78px !important;
        padding: 14px 18px !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) !important;
        align-items: center !important;
        justify-items: start !important;
        gap: 12px !important;
        border-radius: 24px !important;
        border: 1px solid rgba(236, 111, 163, .11) !important;
        background:
            radial-gradient(circle at 18% 16%, rgba(255,255,255,.90), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,247,251,.70)) !important;
        color: #5e5058 !important;
        box-shadow:
            0 14px 32px rgba(124,87,106,.08),
            inset 0 1px 0 rgba(255,255,255,.88) !important;
        text-align: left !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav a:hover,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav a:hover,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav a:hover {
        transform: translateY(-3px) !important;
        color: var(--tbs-ms-pink-dark) !important;
        background:
            radial-gradient(circle at 18% 16%, rgba(255,255,255,.94), transparent 34%),
            linear-gradient(135deg, rgba(255,241,247,.96), rgba(239,249,255,.86)) !important;
        box-shadow:
            0 20px 44px rgba(124,87,106,.13),
            inset 0 1px 0 rgba(255,255,255,.92) !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav a > span,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav a > span,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav a > span {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        display: grid !important;
        place-items: center !important;
        margin: 0 !important;
        border-radius: 16px !important;
        border: 1px solid rgba(255,255,255,.86) !important;
        background:
            radial-gradient(circle at 28% 18%, rgba(255,255,255,.98), transparent 34%),
            linear-gradient(135deg, #fff0f7, #edf9ff) !important;
        color: var(--tbs-ms-pink-dark) !important;
        box-shadow: 0 12px 26px rgba(151, 92, 130, .12) !important;
        font-size: 20px !important;
        font-family: "Cormorant Garamond", Georgia, serif !important;
        font-weight: 700 !important;
        line-height: 1 !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav strong,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav strong,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav strong {
        display: block !important;
        color: inherit !important;
        font-size: 16px !important;
        font-weight: 800 !important;
        letter-spacing: -.01em !important;
        line-height: 1.1 !important;
        text-align: left !important;
        white-space: normal !important;
    }
}

/* Móvil conserva todos los accesos visibles con ícono + texto, sin afectar la versión estable */
@media (max-width: 767px) {
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav a,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav a,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav a {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        align-content: center !important;
        gap: 6px !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav .tbs-aec-nav-icon,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav a > span,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav a > span,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav a > span {
        width: 30px !important;
        height: 30px !important;
        display: grid !important;
        place-items: center !important;
        margin: 0 !important;
        border-radius: 12px !important;
        background: linear-gradient(135deg, #fff0f7, #edf9ff) !important;
        color: var(--tbs-ms-pink-dark) !important;
        font-size: 15px !important;
        box-shadow: 0 8px 18px rgba(151, 92, 130, .10) !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-quicknav strong,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-quicknav strong,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-quicknav strong {
        font-size: 11.5px !important;
        font-weight: 800 !important;
        line-height: 1.1 !important;
        text-align: center !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero-text,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero-text,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero-text {
        font-weight: 400 !important;
    }
}

/* =========================================================
   36) AJUSTE V36 ESTABLE - BASE V26 + VISUAL PREMIUM
   Objetivo:
   - Recupera el scroll nativo estable de V26.
   - NO toca html/body, NO usa touch-action global, NO usa overflow global.
   - Evita que las secciones activen animaciones por viewport en móvil.
   - Mantiene subtítulos más delgados y datos móviles grandes.
========================================================= */

/* Subtítulos más delgados/premium sin afectar layout ni scroll */
.tbs-ms-hero-text,
.tbs-ms-section-head p,
.tbs-ms-countdown-copy p,
.tbs-ms-closing-card p,
.tbs-ms-details-copy p,
.tbs-rsvp-sub,
.tbs-ms-location-copy p,
.tbs-ms-guestbook-card .tbs-guestbook-sub,
.tbs-ms-module-card p,
.tbs-ms p {
    font-weight: 400 !important;
    letter-spacing: -0.012em !important;
}

.tbs-ms-hero-text {
    font-weight: 400 !important;
    color: rgba(61, 51, 57, .78) !important;
}

/* Evita paradas por animaciones ligadas al viewport, sin modificar el scroll nativo */
@media (max-width: 767px) {
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing {
        animation: none !important;
        animation-timeline: auto !important;
        animation-range: normal !important;
        opacity: 1 !important;
        filter: none !important;
        transform: none !important;
    }

    /* Fecha/Hora más grandes en móvil; Lugar un poco más grande */
    .tbs-ms-meta > div.tbs-ms-meta-date span,
    .tbs-ms-meta > div:nth-child(1) span,
    .tbs-ms-meta > div.tbs-ms-meta-time span,
    .tbs-ms-meta > div:nth-child(2) span {
        font-size: clamp(32px, 9.8vw, 46px) !important;
        line-height: 1.02 !important;
        font-weight: 700 !important;
        letter-spacing: -.035em !important;
    }

    .tbs-ms-meta > div.tbs-ms-meta-place span,
    .tbs-ms-meta > div:nth-child(3) span {
        font-size: clamp(22px, 6.4vw, 30px) !important;
        line-height: 1.14 !important;
        font-weight: 650 !important;
    }

    .tbs-ms-meta strong,
    .tbs-ms-meta b {
        font-weight: 800 !important;
        letter-spacing: .09em !important;
    }

    /* Ventana Deja tu Mensaje nítida en móvil */
    .tbs-ms-guestbook-card,
    .tbs-ms-guestbook-card *,
    .tbs-ms-guestbook-card::before,
    .tbs-ms-guestbook-card::after,
    .tbs-ms-guestbook-card .tbs-guestbook-box,
    .tbs-ms-guestbook-card .tbs-guestbook-box::before,
    .tbs-ms-guestbook-card .tbs-guestbook-box::after {
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}

/* =========================================================
   37) AJUSTE V37 ESTABLE - SCROLL FLUIDO NATIVO
   Objetivo:
   - Eliminar la pausa al entrar/salir de cada sección en móvil.
   - Desactivar por completo animaciones ligadas al viewport dentro del micrositio.
   - Evitar scroll-snap o captura de gesto de tarjetas/secciones.
   - No usa JS para controlar scroll.
========================================================= */

.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    scroll-snap-type: none !important;
    overscroll-behavior: auto !important;
}

.tbs-ms.tbs-publico-nube-amor *,
.tbs-ms.tbs-micrositio-nube-amor *,
.tbs-micrositio-publico.tbs-publico-nube-amor *,
.tbs-micrositio-publico.tbs-micrositio-nube-amor * {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
}

/* La causa más probable de la pausa por sección: animation-timeline:view() */
.tbs-ms.tbs-publico-nube-amor .tbs-ms-section,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-countdown-section,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-closing,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-section *,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-countdown-section *,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-closing *,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-section,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-countdown-section,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-section *,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-countdown-section *,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing *,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-section,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-countdown-section,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-section *,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-countdown-section *,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing * {
    animation-timeline: auto !important;
    animation-range: normal !important;
}

/* En móvil se eliminan animaciones del flujo; así el scroll no espera a que se estabilice cada bloque. */
@media (max-width: 767px), (hover: none) and (pointer: coarse) {
    html:has(.tbs-ms.tbs-micrositio-publico),
    body:has(.tbs-ms.tbs-micrositio-publico) {
        scroll-behavior: auto !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior-y: auto !important;
    }

    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-section,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-countdown-section,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-closing,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-section,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-countdown-section,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-section,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-countdown-section,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing {
        touch-action: pan-y !important;
        scroll-snap-type: none !important;
        overscroll-behavior: auto !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-section,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-countdown-section,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-closing,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-section,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-countdown-section,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-section,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-countdown-section,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing {
        animation: none !important;
        transition: none !important;
        transform: none !important;
        filter: none !important;
        opacity: 1 !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-details-card,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-rsvp-card,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-location-card,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-module-card,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-guestbook-card,
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-closing-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-details-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-rsvp-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-location-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-module-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-guestbook-card,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-closing-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-details-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-rsvp-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-location-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-module-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-guestbook-card,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-closing-card {
        touch-action: pan-y !important;
        overscroll-behavior: auto !important;
    }

    /* Evita que el botón flotante del tema capture gestos sobre la zona inferior salvo el tap exacto. */
    .tbs-ms-back-top,
    .tbs-back-top,
    .back-to-top,
    .scroll-to-top {
        touch-action: manipulation !important;
    }
}


/* =========================================================
   38) AJUSTE V38 - EXPERIENCIA DE CARGA FINAL EN MÓVIL
   - Evita que el visitante vea el estado intermedio antes de cargar CSS/hero.
   - La visibilidad inicial se controla desde el bloque crítico inline en PHP.
   - No intercepta scroll ni gestos táctiles.
========================================================= */

html.tbs-aec-final-ready,
html.tbs-aec-final-ready body {
    background: #fffafd !important;
}

html.tbs-aec-final-ready .tbs-ms.tbs-micrositio-publico,
html.tbs-aec-final-ready .tbs-ms.tbs-publico-nube-amor,
html.tbs-aec-final-ready .tbs-micrositio-publico.tbs-publico-nube-amor,
html.tbs-aec-final-ready .tbs-micrositio-publico.tbs-micrositio-nube-amor {
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width: 767px) {
    .tbs-ms.tbs-micrositio-publico,
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor {
        scroll-behavior: auto !important;
        touch-action: pan-y !important;
    }

    .tbs-ms-hero {
        background-image: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
        background-size: cover !important;
        background-position: 31% center !important;
    }

    .tbs-ms-hero,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing,
    .tbs-ms-details-card,
    .tbs-ms-rsvp-card,
    .tbs-ms-location-card,
    .tbs-ms-module-card,
    .tbs-ms-guestbook-card,
    .tbs-ms-closing-card {
        animation: none !important;
        animation-timeline: auto !important;
        transition-property: opacity, background-color, color, border-color, box-shadow !important;
        transform: none !important;
        filter: none !important;
        -webkit-filter: none !important;
        touch-action: pan-y !important;
    }
}


/* =========================================================
   39) AJUSTE V39 ESTABLE - HERO MÓVIL, CALENDARIO, RSVP Y RECAPTCHA
   Base: V38 estable.
   - Osito/fondo detrás de la información en móvil.
   - Cierre centrado.
   - Botón premium Agregar a agenda.
   - reCAPTCHA centrado en RSVP y Guestbook.
   - Modal de gracias para RSVP reutilizando confetti.
========================================================= */

/* Cierre final centrado en desktop y móvil */
.tbs-ms-closing-card {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.tbs-ms-closing-card h2,
.tbs-ms-closing-card p,
.tbs-ms-closing-card a,
.tbs-ms-closing-icon {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.tbs-ms-closing-card p {
    max-width: 640px !important;
    font-weight: 400 !important;
}

/* Botón premium para agregar a agenda */
.tbs-ms-actions .tbs-aec-calendar-btn,
.tbs-aec-calendar-btn {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 58px !important;
    padding: 17px 30px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(143,199,220,.30) !important;
    color: #4f96ad !important;
    background:
        radial-gradient(circle at 26% 18%, rgba(255,255,255,.76), transparent 30%),
        linear-gradient(135deg, rgba(240,250,255,.96), rgba(255,241,247,.92)) !important;
    box-shadow:
        0 18px 38px rgba(89,163,191,.13),
        inset 0 1px 0 rgba(255,255,255,.82) !important;
    font-family: var(--tbs-ms-font-body) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.tbs-aec-calendar-btn::before {
    content: "📆" !important;
    width: 28px !important;
    height: 28px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 8px 18px rgba(89,163,191,.10) !important;
    font-size: 15px !important;
}

.tbs-aec-calendar-btn:hover {
    transform: translateY(-2px) !important;
    filter: brightness(1.02) saturate(1.04) !important;
}

/* reCAPTCHA centrado y sin desalinearse por transform-origin */
.tbs-ms .g-recaptcha,
.tbs-ms-rsvp-card .g-recaptcha,
.tbs-ms-guestbook-card .g-recaptcha,
.tbs-ms .ff-el-group .g-recaptcha {
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    transform-origin: center center !important;
}

.tbs-ms .g-recaptcha > div,
.tbs-ms-rsvp-card .g-recaptcha > div,
.tbs-ms-guestbook-card .g-recaptcha > div {
    margin-left: auto !important;
    margin-right: auto !important;
}

.tbs-ms iframe[src*="recaptcha"] {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    transform-origin: center center !important;
}

/* Modal de gracias: cierre automático en 3s para RSVP y Guestbook */
.tbs-aec-thanks-overlay {
    pointer-events: auto !important;
    animation: tbsAecThanksOutV39 .35s ease 2.9s forwards !important;
}

.tbs-aec-thanks-card {
    text-align: center !important;
}

.tbs-aec-thanks-close {
    display: none !important;
}

@keyframes tbsAecThanksOutV39 {
    to { opacity: 0; visibility: hidden; }
}

@media (max-width: 767px) {
    /* Hero móvil: evita que el contenido se salga hacia la derecha y ubica el osito/fondo detrás de la información */
    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-ms-hero {
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
        overflow: hidden !important;
        background-position: 34% center !important;
        background-size: cover !important;
    }

    .tbs-ms-hero::before {
        background:
            radial-gradient(circle at 50% 33%, rgba(255,255,255,.72), rgba(255,250,253,.30) 34%, transparent 64%),
            linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,248,252,.18) 28%, rgba(255,248,252,.54) 66%, rgba(255,249,252,.84) 100%) !important;
    }

    .tbs-ms-hero-copy {
        position: relative !important;
        z-index: 5 !important;
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        transform: none !important;
    }

    .tbs-ms-meta,
    .tbs-ms-actions {
        width: min(100%, 390px) !important;
        max-width: 390px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tbs-ms-meta > div {
        width: 100% !important;
        max-width: 100% !important;
    }

    .tbs-ms-actions .tbs-aec-calendar-btn,
    .tbs-aec-calendar-btn {
        width: 100% !important;
        min-height: 54px !important;
        padding: 15px 20px !important;
        font-size: 14.5px !important;
    }

    .tbs-ms-closing-card {
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        min-height: 300px !important;
    }

    .tbs-ms-closing-card h2,
    .tbs-ms-closing-card p,
    .tbs-ms-closing-icon {
        max-width: 100% !important;
        text-align: center !important;
    }

    .tbs-ms .g-recaptcha,
    .tbs-ms-rsvp-card .g-recaptcha,
    .tbs-ms-guestbook-card .g-recaptcha {
        transform: scale(.86) !important;
        transform-origin: center center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* =========================================================
   40) AJUSTE V40 ESTABLE - RSVP SIN MENSAJE NATIVO + TARJETAS MÁS COMPACTAS
   Base: V39 estable.
   - Oculta el segundo cuadro nativo de FluentForms luego de confirmar asistencia.
   - Mantiene solo el modal cálido con confetti.
   - Hace un poco más compactas las tarjetas desktop de Wishlist y Regalos Virtuales.
========================================================= */

/* Ocultar mensaje nativo de éxito de RSVP / FluentForms dentro del micrositio */
.tbs-ms-rsvp-card .ff-message-success,
.tbs-ms-rsvp-card .ff-el-is-success .ff-message-success,
.tbs-ms-rsvp-card .fluentform .ff-message-success,
.tbs-ms-rsvp-card .text-success,
.tbs-ms-rsvp-card .ff_success,
.tbs-ms-rsvp-card .ff-el-success,
.tbs-ms-rsvp-card [class*="success"]:not(.tbs-aec-thanks-card):not(.tbs-aec-thanks-title):not(.tbs-aec-thanks-text) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

/* El formulario puede quedar visible para no generar saltos visuales, pero sin el cuadro nativo */
.tbs-ms-rsvp-card form.ff-el-is-success,
.tbs-ms-rsvp-card .ff-el-is-success,
.tbs-ms-rsvp-card .fluentform.ff-el-is-success {
    display: block !important;
    opacity: 1 !important;
    filter: none !important;
}

/* Tarjetas desktop más pequeñas, conservando formato premium */
@media (min-width: 1025px) {
    .tbs-ms-module-card {
        max-width: 1080px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: clamp(22px, 2.6vw, 30px) !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-lista,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-lista {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 18px !important;
        max-width: 980px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-card,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual {
        border-radius: 26px !important;
        box-shadow:
            0 14px 34px rgba(124, 87, 106, .09),
            inset 0 1px 0 rgba(255,255,255,.88) !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-img,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-img {
        padding: 12px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-img img,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-img img,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-link-preview,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-placeholder,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-placeholder {
        border-radius: 19px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-content,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content {
        gap: 8px !important;
        padding: 2px 15px 16px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-content h4 {
        font-size: 25px !important;
        line-height: 1.06 !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-precio,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-precio {
        font-size: 23px !important;
        margin: 0 !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
    .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
    .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy,
    .tbs-ms .tbs-aec-btn-clean {
        min-height: 47px !important;
        padding: 12px 15px !important;
        font-size: 13.5px !important;
    }

    .tbs-ms-module-card .tbs-regalos-publico .estado,
    .tbs-ms-module-card .tbs-virtual-publico .estado {
        font-size: 11px !important;
        padding: 7px 12px !important;
    }
}

/* =========================================================
   41) AJUSTE V41 ESTABLE - HERO MÓVIL ENFOCADO EN OSITO
   Base: V40 estable.
   - En móvil posiciona la imagen principal para que el osito quede detrás de la información.
   - Evita desplazamiento horizontal accidental del hero sin tocar el scroll vertical.
========================================================= */

@media (max-width: 767px) {
    html,
    body {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .tbs-ms.tbs-micrositio-publico,
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor {
        overflow-x: hidden !important;
    }

    .tbs-ms.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-ms.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-hero,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor .tbs-ms-hero,
    .tbs-ms-hero {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;
        overflow: hidden !important;
        background-image: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
        background-size: cover !important;
        background-position: 13% center !important;
        background-repeat: no-repeat !important;
    }

    .tbs-ms-hero::before {
        background:
            radial-gradient(circle at 50% 34%, rgba(255,255,255,.68), rgba(255,250,253,.28) 34%, transparent 64%),
            linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,248,252,.18) 28%, rgba(255,248,252,.52) 66%, rgba(255,249,252,.84) 100%) !important;
    }

    .tbs-ms-hero-copy,
    .tbs-ms-meta,
    .tbs-ms-actions {
        position: relative !important;
        z-index: 5 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* =========================================================
   Nube Amor V42
   - Modal de compra virtual más premium y centrado.
   - Inputs con más espacio para digitar.
   - Centrado real en móvil y desktop.
========================================================= */
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain !important;
    z-index: 999999 !important;
    background: linear-gradient(180deg, rgba(254,249,252,.78), rgba(245,240,248,.76)) !important;
    backdrop-filter: blur(14px) saturate(1.08) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"] {
    display: flex !important;
}

#tbs-modal-compra .tbs-app-sheet {
    width: min(94vw, 760px) !important;
    max-width: 760px !important;
    max-height: min(88dvh, 880px) !important;
    margin: 0 auto !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 34px !important;
    box-shadow: 0 28px 90px rgba(116, 79, 109, .18), 0 8px 24px rgba(174, 130, 152, .12) !important;
    border: 1px solid rgba(241, 208, 226, .84) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 237, 246, .95), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(232, 245, 255, .82), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.985), rgba(255,249,252,.97)) !important;
}

#tbs-modal-compra .tbs-app-header {
    padding: 28px 76px 16px 30px !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    letter-spacing: -.03em !important;
}

#tbs-modal-compra .tbs-app-header p {
    font-size: 16px !important;
    line-height: 1.45 !important;
    color: #6d6070 !important;
}

#tbs-modal-compra .tbs-app-method,
#tbs-modal-compra .tbs-app-error {
    margin: 0 30px 14px !important;
    padding: 16px 18px !important;
}

#tbs-modal-compra .tbs-app-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    padding: 0 30px !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-height: 58px !important;
    padding: 16px 18px !important;
    border-radius: 20px !important;
    font-size: 17px !important;
    line-height: 1.35 !important;
    color: #4c4150 !important;
    background: rgba(255,255,255,.88) !important;
}

#tbs-modal-compra .tbs-app-form input::placeholder,
#tbs-modal-compra .tbs-app-form textarea::placeholder {
    color: #9a909d !important;
    opacity: 1 !important;
}

#tbs-modal-compra .tbs-app-form .tbs-nombre,
#tbs-modal-compra .tbs-app-form .tbs-email {
    grid-column: span 1 !important;
}

#tbs-modal-compra .tbs-app-form .tbs-phone,
#tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
}

#tbs-modal-compra .tbs-upload {
    gap: 10px !important;
    padding: 18px !important;
    border-radius: 22px !important;
    background: rgba(255,252,253,.88) !important;
}

#tbs-modal-compra .tbs-upload span {
    font-size: 16px !important;
    line-height: 1.35 !important;
    color: #5a4f5b !important;
}

#tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 52px !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
    font-size: 14px !important;
    background: #fff !important;
}

#tbs-modal-compra .tbs-modal-actions {
    gap: 14px !important;
    padding: 18px 30px 28px !important;
}

#tbs-modal-compra .tbs-cancel-buy,
#tbs-modal-compra .tbs-confirm-buy {
    min-height: 56px !important;
    border-radius: 999px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
}

#tbs-modal-compra .tbs-confirm-buy.is-loading {
    opacity: .78 !important;
    pointer-events: none !important;
    filter: saturate(.88) !important;
}

#tbs-modal-compra .tbs-app-error {
    display: none;
    background: rgba(255, 241, 245, .92) !important;
    border: 1px solid rgba(232, 149, 178, .42) !important;
    color: #9f4667 !important;
    font-weight: 700 !important;
}

@media (max-width: 767px) {
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: min(86dvh, 760px) !important;
        border-radius: 30px !important;
        margin: auto !important;
    }

    #tbs-modal-compra .tbs-app-header {
        padding: 24px 66px 12px 22px !important;
    }

    #tbs-modal-compra .tbs-app-header::before {
        width: 42px !important;
        height: 42px !important;
        margin-bottom: 10px !important;
        font-size: 23px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(26px, 8.6vw, 38px) !important;
        line-height: .95 !important;
    }

    #tbs-modal-compra .tbs-app-header p {
        font-size: 15px !important;
        line-height: 1.4 !important;
    }

    #tbs-modal-compra .tbs-close-modal {
        top: 14px !important;
        right: 14px !important;
        width: 44px !important;
        height: 44px !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error {
        margin: 0 22px 12px !important;
        padding: 15px 16px !important;
        border-radius: 18px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding: 0 22px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"],
    #tbs-modal-compra .tbs-app-form textarea {
        min-height: 56px !important;
        padding: 16px 18px !important;
        border-radius: 18px !important;
        font-size: 17px !important;
    }

    #tbs-modal-compra .tbs-upload {
        padding: 16px !important;
        gap: 8px !important;
        border-radius: 20px !important;
    }

    #tbs-modal-compra .tbs-upload span {
        font-size: 15px !important;
    }

    #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 48px !important;
        font-size: 13px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding: 16px 22px 22px !important;
    }

    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 54px !important;
        font-size: 15px !important;
    }
}

/* =========================================================
   Nube Amor V43
   - Mejora visual del modal de compra en desktop y móvil.
   - Elimina el cuadro/icono inicial del encabezado.
========================================================= */
#tbs-modal-compra .tbs-app-header::before {
    content: none !important;
    display: none !important;
}

#tbs-modal-compra .tbs-app-sheet {
    width: min(92vw, 700px) !important;
    max-width: 700px !important;
    max-height: min(86dvh, 840px) !important;
    border-radius: 32px !important;
}

#tbs-modal-compra .tbs-app-header {
    position: relative !important;
    display: block !important;
    min-height: 0 !important;
    padding: 26px 82px 8px 28px !important;
    text-align: left !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    margin: 0 0 8px !important;
    font-size: clamp(26px, 3.2vw, 38px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.03em !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
}

#tbs-modal-compra .tbs-app-header p {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    color: #6b6070 !important;
    max-width: 92% !important;
}

#tbs-modal-compra .tbs-close-modal {
    top: 18px !important;
    right: 18px !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.9) !important;
    border: 1px solid rgba(241, 217, 229, .95) !important;
    box-shadow: 0 10px 22px rgba(126, 92, 114, .10) !important;
}

#tbs-modal-compra .tbs-app-method,
#tbs-modal-compra .tbs-app-error {
    margin: 0 28px 14px !important;
    padding: 14px 18px !important;
    border-radius: 20px !important;
}

#tbs-modal-compra .tbs-app-method {
    background: linear-gradient(180deg, rgba(248, 253, 255, .96), rgba(255, 255, 255, .98)) !important;
    border: 1px solid rgba(223, 239, 245, .92) !important;
}

#tbs-modal-compra .tbs-app-method .label {
    display: block !important;
    margin-bottom: 6px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    color: #63a6c6 !important;
}

#tbs-modal-compra #tbs-metodo-modal {
    font-size: 16px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    color: #403646 !important;
}

#tbs-modal-compra .tbs-app-form {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    padding: 0 28px !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"] {
    min-height: 56px !important;
    padding: 15px 18px !important;
    border-radius: 20px !important;
    font-size: 16px !important;
}

#tbs-modal-compra .tbs-app-form .tbs-phone,
#tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
}

#tbs-modal-compra .tbs-upload {
    margin-top: 4px !important;
    padding: 16px !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg, rgba(255, 252, 253, .96), rgba(255, 255, 255, .98)) !important;
}

#tbs-modal-compra .tbs-upload span {
    display: block !important;
    margin-bottom: 8px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #5b4f5c !important;
}

#tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 48px !important;
    padding: 8px 10px !important;
    border-radius: 18px !important;
    background: #fff !important;
}

#tbs-modal-compra .tbs-modal-actions {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    padding: 18px 28px 26px !important;
}

#tbs-modal-compra .tbs-cancel-buy,
#tbs-modal-compra .tbs-confirm-buy {
    min-height: 56px !important;
    padding: 14px 18px !important;
    border-radius: 999px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}

@media (max-width: 767px) {
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: min(88dvh, 760px) !important;
        border-radius: 28px !important;
    }

    #tbs-modal-compra .tbs-app-header {
        padding: 22px 62px 8px 20px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(24px, 8.2vw, 34px) !important;
        line-height: 1.04 !important;
        margin-bottom: 8px !important;
    }

    #tbs-modal-compra .tbs-app-header p {
        font-size: 14px !important;
        line-height: 1.4 !important;
        max-width: 100% !important;
    }

    #tbs-modal-compra .tbs-close-modal {
        top: 14px !important;
        right: 14px !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 16px !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error {
        margin: 0 20px 12px !important;
        padding: 13px 15px !important;
        border-radius: 18px !important;
    }

    #tbs-modal-compra .tbs-app-method .label {
        font-size: 11px !important;
        letter-spacing: .14em !important;
        margin-bottom: 4px !important;
    }

    #tbs-modal-compra #tbs-metodo-modal {
        font-size: 14px !important;
        line-height: 1.2 !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding: 0 20px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"] {
        min-height: 54px !important;
        padding: 15px 16px !important;
        border-radius: 18px !important;
        font-size: 16px !important;
    }

    #tbs-modal-compra .tbs-upload {
        padding: 14px !important;
        border-radius: 20px !important;
    }

    #tbs-modal-compra .tbs-upload span {
        font-size: 14px !important;
        margin-bottom: 6px !important;
    }

    #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 46px !important;
        font-size: 13px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        gap: 10px !important;
        padding: 16px 20px 22px !important;
    }

    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 52px !important;
        font-size: 14px !important;
    }
}

/* =========================================================
   Nube Amor V44
   - Modal compra completamente centrado en desktop y móvil.
   - Evita desplazamiento lateral del sheet.
========================================================= */
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    margin: 0 !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    justify-items: center !important;
    place-items: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    overflow-x: hidden !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"] {
    display: flex !important;
}

#tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    inset: auto !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    margin: 0 auto !important;
    align-self: center !important;
    justify-self: center !important;
}

@media (max-width: 767px) {
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        margin-left: auto !important;
        margin-right: auto !important;
    }
}


/* =========================================================
   Nube Amor V45
   - Modal compra liberado de contenedores del micrositio.
   - Centrado real cuando se mueve al body.
   - Permite scroll interno del modal sin bloquear interacción.
========================================================= */
body > #tbs-modal-compra.tbs-app-modal,
body > #tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-width: none !important;
    margin: 0 !important;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    place-items: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    transform: none !important;
    z-index: 2147483000 !important;
}

body > #tbs-modal-compra.tbs-modal-open,
body > #tbs-modal-compra[style*="display: flex"] {
    display: flex !important;
}

body > #tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: auto !important;
    width: min(92vw, 700px) !important;
    max-width: 700px !important;
    max-height: calc(100dvh - 56px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    align-self: center !important;
    justify-self: center !important;
}

body > #tbs-modal-compra .tbs-app-sheet,
body > #tbs-modal-compra .tbs-app-sheet * {
    pointer-events: auto !important;
}

@media (max-width: 767px) {
    body > #tbs-modal-compra.tbs-app-modal,
    body > #tbs-modal-compra {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    }

    body > #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: calc(100dvh - 24px) !important;
        margin: auto !important;
    }

    body > #tbs-modal-compra .tbs-app-header {
        padding-top: 20px !important;
    }
}

/* Mientras el modal está abierto, solo se bloquea el fondo; el sheet conserva scroll propio. */
html.tbs-aec-modal-visible,
body.tbs-aec-modal-visible {
    overflow: hidden !important;
}

body.tbs-aec-modal-visible > #tbs-modal-compra .tbs-app-sheet {
    touch-action: pan-y !important;
}


/* Nube Amor V46 - estado activo del botón confirmar compra */
#tbs-modal-compra .tbs-confirm-buy.is-loading,
#tbs-modal-compra .tbs-confirm-buy[disabled] {
    opacity: .72 !important;
    cursor: wait !important;
}


/* =========================================================
   Nube Amor V47
   - Compras múltiples de regalos virtuales visibles en dashboard.
========================================================= */
.tbs-card-virtual[data-estado="comprado"] {
    position: relative;
}

.tbs-card-virtual[data-estado="comprado"] .tbs-comprador {
    max-width: 46%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* =========================================================
   Nube Amor V48
   - Cambio de copy: Regala / Ver regalo / Confirmar regalo
   - RSVP premium: tipografía, jerarquía visual y formulario mejorado
========================================================= */

/* Botones públicos: dar más aire al copy nuevo */
.tbs-aec-btn-clean.tbs-aec-icon-buy,
.tbs-aec-btn-clean.tbs-aec-icon-link,
.tbs-open-buy,
.tbs-ver-producto {
    letter-spacing: -.01em !important;
}

/* RSVP premium */
.tbs-public-card.tbs-rsvp-card,
.tbs-ms-rsvp-card,
.tbs-rsvp-card {
    max-width: 960px !important;
    margin: 0 auto !important;
    padding: clamp(28px, 4vw, 48px) !important;
    border-radius: 34px !important;
    border: 1px solid rgba(236, 111, 163, .12) !important;
    background:
        radial-gradient(circle at 18% 16%, rgba(255,255,255,.92), transparent 34%),
        linear-gradient(135deg, rgba(255,248,252,.96), rgba(255,255,255,.95) 48%, rgba(243,249,255,.96)) !important;
    box-shadow: 0 22px 48px rgba(150, 113, 136, .10) !important;
    overflow: hidden !important;
}

.tbs-rsvp-header {
    display: block !important;
    margin: 0 0 10px !important;
    color: #d05b95 !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(34px, 3.35vw, 52px) !important;
    font-weight: 700 !important;
    line-height: 1.02 !important;
    letter-spacing: -.03em !important;
    text-align: center !important;
}

.tbs-rsvp-sub,
.tbs-public-section-head p:has(+ .tbs-public-card.tbs-rsvp-card),
.tbs-ms-section#confirmar .tbs-ms-section-head p,
.tbs-public-section#tbs-confirmar .tbs-public-section-head p {
    max-width: 620px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    color: rgba(85, 72, 79, .82) !important;
    font-size: clamp(16px, 1.35vw, 19px) !important;
    font-weight: 400 !important;
    line-height: 1.65 !important;
    letter-spacing: -.014em !important;
    text-align: center !important;
}

.tbs-ms-rsvp-card .ff-el-group,
.tbs-rsvp-card .ff-el-group {
    margin-bottom: 18px !important;
}

.tbs-ms-rsvp-card label,
.tbs-ms-rsvp-card .ff-el-input--label label,
.tbs-rsvp-card label,
.tbs-rsvp-card .ff-el-input--label label {
    color: #4f4147 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
    margin-bottom: 8px !important;
}

.tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tbs-ms-rsvp-card select,
.tbs-ms-rsvp-card textarea,
.tbs-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tbs-rsvp-card select,
.tbs-rsvp-card textarea {
    min-height: 58px !important;
    padding: 16px 18px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(236,111,163,.18) !important;
    background: rgba(255,255,255,.88) !important;
    color: #40353a !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 10px 24px rgba(228, 197, 215, .10) !important;
}

.tbs-ms-rsvp-card textarea,
.tbs-rsvp-card textarea {
    min-height: 112px !important;
    resize: vertical !important;
}

.tbs-ms-rsvp-card input::placeholder,
.tbs-ms-rsvp-card textarea::placeholder,
.tbs-rsvp-card input::placeholder,
.tbs-rsvp-card textarea::placeholder {
    color: rgba(110, 99, 105, .68) !important;
    font-weight: 400 !important;
}

.tbs-ms-rsvp-card input:focus,
.tbs-ms-rsvp-card select:focus,
.tbs-ms-rsvp-card textarea:focus,
.tbs-rsvp-card input:focus,
.tbs-rsvp-card select:focus,
.tbs-rsvp-card textarea:focus {
    border-color: rgba(226, 99, 154, .45) !important;
    box-shadow: 0 0 0 4px rgba(236,111,163,.10), 0 14px 28px rgba(228, 197, 215, .18) !important;
}

.tbs-ms-rsvp-card .ff-el-form-check,
.tbs-rsvp-card .ff-el-form-check {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 0 !important;
}

.tbs-ms-rsvp-card .ff-el-form-check label,
.tbs-rsvp-card .ff-el-form-check label {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.tbs-ms-rsvp-card input[type="radio"],
.tbs-ms-rsvp-card input[type="checkbox"],
.tbs-rsvp-card input[type="radio"],
.tbs-rsvp-card input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: #e65e9b !important;
}

.tbs-ms-rsvp-card .g-recaptcha,
.tbs-rsvp-card .g-recaptcha,
.tbs-ms-rsvp-card .ff-el-recaptcha,
.tbs-rsvp-card .ff-el-recaptcha {
    display: flex !important;
    justify-content: center !important;
    margin: 12px auto 6px !important;
}

.tbs-ms-rsvp-card .ff-btn-submit,
.tbs-rsvp-card .ff-btn-submit {
    min-height: 62px !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
    box-shadow: 0 16px 34px rgba(213, 97, 151, .24) !important;
}

.tbs-ms-rsvp-card .ff-message-success,
.tbs-rsvp-card .ff-message-success {
    border-radius: 18px !important;
}

@media (max-width: 767px) {
    .tbs-public-card.tbs-rsvp-card,
    .tbs-ms-rsvp-card,
    .tbs-rsvp-card {
        padding: 24px 18px !important;
        border-radius: 28px !important;
    }
    .tbs-rsvp-header {
        font-size: clamp(30px, 9vw, 40px) !important;
    }
    .tbs-rsvp-sub,
    .tbs-ms-section#confirmar .tbs-ms-section-head p,
    .tbs-public-section#tbs-confirmar .tbs-public-section-head p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
    .tbs-ms-rsvp-card label,
    .tbs-ms-rsvp-card .ff-el-input--label label,
    .tbs-rsvp-card label,
    .tbs-rsvp-card .ff-el-input--label label {
        font-size: 14px !important;
    }
    .tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
    .tbs-ms-rsvp-card select,
    .tbs-ms-rsvp-card textarea,
    .tbs-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
    .tbs-rsvp-card select,
    .tbs-rsvp-card textarea {
        min-height: 56px !important;
        font-size: 16px !important;
    }
    .tbs-ms-rsvp-card .ff-btn-submit,
    .tbs-rsvp-card .ff-btn-submit {
        min-height: 58px !important;
        font-size: 17px !important;
    }
}


/* =========================================================
   Nube Amor V49
   Shortcode premium de ubicación
========================================================= */

.tbs-map-shortcode,
.tbs-ms-location-action {
    width: 100% !important;
    display: block !important;
}

.tbs-ms-location-card {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 18px !important;
}

.tbs-map-shortcode > *,
.tbs-ms-location-action > * {
    width: 100% !important;
}

.tbs-location-premium-wrap {
    width: 100% !important;
    margin: 0 !important;
}

.tbs-location-premium {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.24fr) minmax(320px, .92fr) !important;
    gap: 24px !important;
    width: 100% !important;
    padding: clamp(16px, 2vw, 24px) !important;
    border-radius: 32px !important;
    background:
        radial-gradient(circle at 18% 12%, rgba(255,255,255,.96), transparent 34%),
        linear-gradient(135deg, rgba(255,245,250,.98), rgba(255,255,255,.97) 48%, rgba(239,247,255,.98)) !important;
    border: 1px solid rgba(236, 111, 163, .16) !important;
    box-shadow: 0 26px 54px rgba(164, 122, 147, .10) !important;
    overflow: hidden !important;
}

.tbs-location-premium__map,
.tbs-location-premium__panel {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-location-premium__map {
    min-height: 420px !important;
    border-radius: 28px !important;
    overflow: hidden !important;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(245,246,250,.94)) !important;
    border: 1px solid rgba(236, 111, 163, .12) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 20px 42px rgba(202, 175, 192, .12) !important;
}

.tbs-location-premium__map iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 420px !important;
    border: 0 !important;
    filter: saturate(.95) contrast(1.02) brightness(1.01) !important;
    pointer-events: none !important;
}

.tbs-location-premium__map-badge {
    position: absolute !important;
    top: 16px !important;
    left: 16px !important;
    z-index: 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 16px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.94) !important;
    color: #b84c86 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    box-shadow: 0 14px 26px rgba(167, 131, 150, .16) !important;
}

.tbs-location-premium__map-note {
    position: absolute !important;
    left: 16px !important;
    right: 16px !important;
    bottom: 16px !important;
    z-index: 3 !important;
    padding: 14px 18px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.92) !important;
    color: #6d5a63 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    box-shadow: 0 10px 24px rgba(167, 131, 150, .12) !important;
}

.tbs-location-premium__empty {
    min-height: 420px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    text-align: center !important;
    color: #7b6770 !important;
    padding: 28px !important;
}

.tbs-location-premium__empty span {
    display: grid !important;
    place-items: center !important;
    width: 72px !important;
    height: 72px !important;
    border-radius: 24px !important;
    background: linear-gradient(135deg, #fff0f7, #eef7ff) !important;
    box-shadow: 0 12px 26px rgba(167, 131, 150, .12) !important;
    font-size: 32px !important;
}

.tbs-location-premium__panel {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    min-height: 420px !important;
    padding: clamp(22px, 2.5vw, 30px) !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(236, 111, 163, .10) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 18px 36px rgba(201, 174, 191, .10) !important;
}

.tbs-location-premium__icon {
    width: 74px !important;
    height: 74px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 24px !important;
    background: linear-gradient(135deg, #fff0f7, #eef7ff) !important;
    box-shadow: 0 12px 28px rgba(167, 131, 150, .12) !important;
    font-size: 30px !important;
}

.tbs-location-premium__eyebrow {
    color: #9d7387 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.tbs-location-premium__panel h3 {
    margin: 0 !important;
    color: #c85790 !important;
    font-family: var(--tbs-ms-font-title) !important;
    font-size: clamp(34px, 3vw, 46px) !important;
    font-weight: 700 !important;
    line-height: 1.02 !important;
    letter-spacing: -.03em !important;
}

.tbs-location-premium__address {
    padding: 18px 20px !important;
    border-radius: 22px !important;
    background: linear-gradient(135deg, rgba(255,245,249,.92), rgba(242,248,255,.92)) !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    color: #584850 !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.6 !important;
}

.tbs-location-premium__chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.tbs-location-premium__chips span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 40px !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.96) !important;
    border: 1px solid rgba(226, 216, 223, .95) !important;
    color: #7d6672 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.tbs-location-premium__actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-top: 4px !important;
}

.tbs-location-premium__btn {
    min-height: 62px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 16px 20px !important;
    border-radius: 999px !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    letter-spacing: -.01em !important;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease !important;
}

.tbs-location-premium__btn:hover {
    transform: translateY(-1px) !important;
    opacity: .98 !important;
}

.tbs-location-premium__btn--google {
    background: linear-gradient(135deg, #ff5ca2, #ae73ef) !important;
    color: #fff !important;
    box-shadow: 0 16px 32px rgba(197, 90, 152, .24) !important;
}

.tbs-location-premium__btn--waze {
    background: linear-gradient(135deg, #fef2de, #f8d7e4) !important;
    color: #805332 !important;
    border: 1px solid rgba(220, 190, 154, .72) !important;
    box-shadow: 0 16px 32px rgba(210, 179, 158, .18) !important;
}

.tbs-location-premium__footnote {
    margin: 0 !important;
    color: rgba(94, 81, 89, .74) !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
}

@media (max-width: 991px) {
    .tbs-location-premium {
        grid-template-columns: 1fr !important;
    }
    .tbs-location-premium__panel,
    .tbs-location-premium__map,
    .tbs-location-premium__map iframe,
    .tbs-location-premium__empty {
        min-height: 360px !important;
    }
}

@media (max-width: 767px) {
    .tbs-location-premium {
        padding: 12px !important;
        border-radius: 26px !important;
        gap: 14px !important;
    }
    .tbs-location-premium__panel {
        min-height: auto !important;
        padding: 20px 16px !important;
        border-radius: 22px !important;
    }
    .tbs-location-premium__panel h3 {
        font-size: clamp(30px, 10vw, 38px) !important;
    }
    .tbs-location-premium__address {
        font-size: 15px !important;
        padding: 16px !important;
    }
    .tbs-location-premium__actions {
        grid-template-columns: 1fr !important;
    }
    .tbs-location-premium__btn {
        width: 100% !important;
        min-height: 58px !important;
        font-size: 15px !important;
    }
    .tbs-location-premium__map,
    .tbs-location-premium__map iframe,
    .tbs-location-premium__empty {
        min-height: 300px !important;
        border-radius: 22px !important;
    }
    .tbs-location-premium__map-badge {
        left: 12px !important;
        top: 12px !important;
        font-size: 11px !important;
        padding: 9px 12px !important;
    }
    .tbs-location-premium__map-note {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        font-size: 12px !important;
        padding: 12px 14px !important;
    }
}


/* =========================================================
   Nube Amor V50
   Ubicación premium: nombre del lugar, tiempo estimado y WhatsApp
========================================================= */
.tbs-location-premium-v50 {
    grid-template-columns: minmax(0, 1.16fr) minmax(360px, .94fr) !important;
}

.tbs-location-premium-v50 .tbs-location-premium__panel {
    gap: 16px !important;
}

.tbs-location-premium-v50 .tbs-location-premium__icon {
    background: linear-gradient(135deg, #fff0f7, #eef7ff) !important;
    color: #d85b99 !important;
}

.tbs-location-premium__address-label {
    display: block !important;
    margin-bottom: 7px !important;
    color: #b66e90 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

.tbs-location-premium__address strong {
    display: block !important;
    color: #584850 !important;
    font-size: 16px !important;
    font-weight: 650 !important;
    line-height: 1.55 !important;
}

.tbs-location-premium__info-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
}

.tbs-location-premium__info {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 13px 14px !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.88) !important;
    border: 1px solid rgba(236,111,163,.10) !important;
    box-shadow: 0 10px 22px rgba(201, 174, 191, .08) !important;
}

.tbs-location-premium__info > span {
    width: 44px !important;
    height: 44px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 15px !important;
    background: linear-gradient(135deg, #fff1f8, #eff8ff) !important;
    font-size: 20px !important;
}

.tbs-location-premium__info strong {
    display: block !important;
    color: #57464f !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
}

.tbs-location-premium__info small {
    display: block !important;
    margin-top: 3px !important;
    color: rgba(94, 81, 89, .74) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

.tbs-location-premium__actions-v50 {
    grid-template-columns: 1fr 1fr !important;
}

.tbs-location-premium__actions-v50 .tbs-location-premium__btn--share {
    grid-column: 1 / -1 !important;
}

.tbs-location-premium__btn--share {
    background: linear-gradient(135deg, #fff, #fff6fb) !important;
    color: #c85790 !important;
    border: 1px solid rgba(236,111,163,.22) !important;
    box-shadow: 0 14px 28px rgba(190, 130, 165, .14) !important;
}

.tbs-location-premium-v50 .tbs-location-premium__map-note {
    font-size: 13px !important;
}

@media (max-width: 991px) {
    .tbs-location-premium-v50 {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    .tbs-location-premium__actions-v50 {
        grid-template-columns: 1fr !important;
    }

    .tbs-location-premium__actions-v50 .tbs-location-premium__btn--share {
        grid-column: auto !important;
    }

    .tbs-location-premium__info {
        grid-template-columns: 42px minmax(0, 1fr) !important;
        padding: 12px !important;
    }

    .tbs-location-premium__info > span {
        width: 40px !important;
        height: 40px !important;
    }
}


/* Nube Amor V51 - evita presentación rota si hay caché viejo del shortcode */
.tbs-ms-location-card .tbs-ms-location-copy + .tbs-ms-location-action,
.tbs-map-shortcode {
    min-width: 0 !important;
}


/* =========================================================
   Nube Amor V52
   Ubicación: elimina título pequeño repetido y ajusta WhatsApp.
========================================================= */
.tbs-location-premium-v52 .tbs-location-premium__eyebrow {
    display: none !important;
}

.tbs-location-premium-v52 .tbs-location-premium__panel h3 {
    margin-top: 6px !important;
}

.tbs-location-premium__btn--share strong {
    white-space: normal !important;
}

.tbs-location-premium__btn--share {
    background: linear-gradient(135deg, #fff7fb, #ffffff) !important;
    color: #c85790 !important;
    border: 1px solid rgba(236,111,163,.24) !important;
}


/* =========================================================
   Nube Amor V53
   - Realce del bloque "Te esperamos con mucho cariño"
   - Quita dirección repetida bajo el título.
   - Botones premium Maps/Waze, responsivos.
========================================================= */
.tbs-ms-location-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 18px !important;
}

.tbs-ms-location-icon {
    display: none !important;
}

.tbs-ms-location-copy {
    width: 100% !important;
    max-width: 980px !important;
    margin: 0 auto !important;
    text-align: center !important;
}

.tbs-ms-location-copy h3 {
    margin: 0 auto 2px !important;
    text-align: center !important;
    font-size: clamp(2rem, 3.6vw, 3.1rem) !important;
    line-height: 1.08 !important;
    color: #d25a98 !important;
    letter-spacing: -0.02em !important;
    text-shadow: 0 10px 26px rgba(226, 132, 174, 0.18) !important;
}

.tbs-ms-location-copy p,
.tbs-ms.tbs-publico-nube-amor .tbs-ms-location-copy p,
.tbs-ms.tbs-micrositio-nube-amor .tbs-ms-location-copy p,
.tbs-micrositio-publico.tbs-publico-nube-amor .tbs-ms-location-copy p {
    display: none !important;
}

.tbs-ms-location-action {
    width: 100% !important;
}

.tbs-location-premium-v53 .tbs-location-premium__actions-v53 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn,
.tbs-location-premium-v53 .tbs-location-premium__btn:visited {
    min-height: 74px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(208, 120, 165, 0.22) !important;
    box-shadow: 0 16px 34px rgba(204, 149, 183, 0.18) !important;
    padding: 18px 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    font-size: 1.08rem !important;
    letter-spacing: 0.01em !important;
    transition: transform .22s ease, box-shadow .22s ease, filter .22s ease !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 20px 38px rgba(204, 149, 183, 0.24) !important;
    filter: saturate(1.03) !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn span {
    font-size: 1.2em !important;
    line-height: 1 !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn strong {
    font-weight: 800 !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn--google {
    background: linear-gradient(135deg, #ffd9ea 0%, #f9d8ee 42%, #d9f0ff 100%) !important;
    color: #8d4d76 !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn--waze {
    background: linear-gradient(135deg, #d8f0ff 0%, #bde4ff 42%, #ffd9eb 100%) !important;
    color: #7b5875 !important;
}

.tbs-location-premium-v53 .tbs-location-premium__btn--share,
.tbs-location-premium-v53 .tbs-location-premium__actions-v53 .tbs-location-premium__btn--share {
    display: none !important;
}

@media (max-width: 900px) {
    .tbs-location-premium-v53 .tbs-location-premium__actions-v53 {
        grid-template-columns: 1fr !important;
    }

    .tbs-location-premium-v53 .tbs-location-premium__btn,
    .tbs-location-premium-v53 .tbs-location-premium__btn:visited {
        width: 100% !important;
        min-height: 68px !important;
        font-size: 1rem !important;
        padding: 16px 18px !important;
    }

    .tbs-ms-location-copy h3 {
        font-size: clamp(1.9rem, 8vw, 2.5rem) !important;
    }
}


/* =========================================================
   AJUSTE V28 - ARMONIZACIÓN CON REGALOS CON CARIÑO
   - Unifica ventanas, tipografía secundaria y botones.
   - Mantiene intacto el color del nombre del bebé en el hero.
========================================================= */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav{
    background: rgba(255, 248, 243, .86) !important;
    border: 1px solid rgba(189,119,107,.16) !important;
    box-shadow: 0 18px 40px rgba(111,76,67,.10) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav a{
    background: rgba(255,255,255,.84) !important;
    border: 1px solid rgba(189,119,107,.12) !important;
    box-shadow: 0 12px 26px rgba(111,76,67,.06) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav a:hover{
    background: rgba(255,255,255,.94) !important;
    border-color: rgba(189,119,107,.24) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav .tbs-aec-nav-icon,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav a > span{
    background: linear-gradient(135deg, #fff6f0, #fffdfb) !important;
    color: #bd776b !important;
    box-shadow: 0 10px 20px rgba(111,76,67,.08) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-quicknav strong,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-section-head h2,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-countdown-copy h2,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-closing-card h2,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-details-copy h3,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-rsvp-header,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-guestbook-header,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card h3,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card h4,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__title,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__heading {
    color: #6f4c43 !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-section-head p,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-rsvp-sub,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-guestbook-sub,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-details-copy p,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__subtext,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__address,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card p {
    color: #8a6f67 !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-section-head > span,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__icon {
    background: linear-gradient(135deg, #fff5ef, #fffdfb) !important;
    box-shadow: 0 14px 30px rgba(111,76,67,.10) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-details-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-location-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-guestbook-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-countdown-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-closing-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__inner,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__panel {
    border: 1px solid rgba(189,119,107,.16) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255, 240, 233, .72), transparent 34%),
        radial-gradient(circle at 100% 0%, rgba(255, 247, 242, .86), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,249,243,.94)) !important;
    box-shadow: 0 24px 52px rgba(111,76,67,.12) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-details-list > div,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__actions a,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__meta,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-guestbook-box {
    background: rgba(255,255,255,.86) !important;
    border-color: rgba(189,119,107,.12) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-primary,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms .ff-btn-submit,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms button[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms input[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-location-premium__actions a.tbs-location-premium__btn,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook button {
    color: #fff !important;
    border-color: transparent !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.22), transparent 30%),
        linear-gradient(135deg, #d99081, #bd776b) !important;
    box-shadow: 0 16px 34px rgba(189,119,107,.24), inset 0 1px 0 rgba(255,255,255,.25) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-soft,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-ghost {
    color: #bd776b !important;
    background: rgba(255,255,255,.84) !important;
    border-color: rgba(189,119,107,.18) !important;
    box-shadow: 0 14px 28px rgba(111,76,67,.08) !important;
}


/* =========================================================
   AJUSTE V29 - PALETA AMOR EN CAMINO EN TARJETAS DE REGALOS
   - Wishlist y Regalos Virtuales con la misma paleta cálida
     de "Regalos con cariño".
   - Botones en rose/cocoa, sin gradientes azules.
   - Estados en crema/rose, no celeste.
========================================================= */

:root{
    --tbs-aec-gift-cream: #fff9f3;
    --tbs-aec-gift-cream-2: #fff3e7;
    --tbs-aec-gift-blush: #f7d9cf;
    --tbs-aec-gift-rose: #d99081;
    --tbs-aec-gift-rose-2: #bd776b;
    --tbs-aec-gift-cocoa: #6f4c43;
    --tbs-aec-gift-ink: #4d3832;
    --tbs-aec-gift-muted: #8a6f67;
    --tbs-aec-gift-border: rgba(189,119,107,.18);
    --tbs-aec-gift-shadow: 0 22px 56px rgba(111,76,67,.12);
    --tbs-aec-gift-soft-shadow: 0 14px 34px rgba(111,76,67,.08);
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-card-virtual{
    border: 1px solid var(--tbs-aec-gift-border) !important;
    background:
        radial-gradient(circle at 96% 96%, rgba(247,217,207,.42), transparent 30%),
        radial-gradient(circle at 0% 0%, rgba(255,255,255,.96), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,249,243,.94)) !important;
    box-shadow:
        0 24px 58px rgba(111,76,67,.12),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-card::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-card::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-card-virtual::before{
    background: rgba(217,144,129,.13) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-img{
    background: transparent !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-img img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-img img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-img img,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-img img{
    border: 1px solid rgba(189,119,107,.12) !important;
    background: #fff !important;
    box-shadow: 0 14px 28px rgba(111,76,67,.09) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-content h4,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-content h4,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-content h4,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-content h4{
    color: var(--tbs-aec-gift-cocoa) !important;
    text-shadow: none !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-precio,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-precio,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-precio,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-precio{
    color: var(--tbs-aec-gift-rose-2) !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.65) !important;
}

/* Estados: Disponible / Reservado / Comprado */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .estado,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .estado,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .estado,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .estado,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-status,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) [class*="estado"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) [class*="status"]{
    background: rgba(255,243,231,.92) !important;
    color: var(--tbs-aec-gift-rose-2) !important;
    border-color: rgba(189,119,107,.14) !important;
    box-shadow: none !important;
}

/* Inputs dentro de tarjetas */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico input[type="text"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico input[type="text"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico input[type="email"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico input[type="text"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico input[type="text"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico input[type="email"]{
    border: 1px solid rgba(189,119,107,.16) !important;
    background: rgba(255,255,255,.86) !important;
    color: var(--tbs-aec-gift-cocoa) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.90) !important;
}

/* Botones principales dentro de Wishlist y Regalos Virtuales */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-confirm-buy,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-cancel-buy,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-reservar,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-open-buy,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-confirm-buy,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-cancel-buy{
    color: #fff !important;
    border: 1px solid rgba(189,119,107,.16) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.24), transparent 30%),
        linear-gradient(135deg, var(--tbs-aec-gift-rose), var(--tbs-aec-gift-rose-2)) !important;
    box-shadow:
        0 16px 34px rgba(189,119,107,.25),
        inset 0 1px 0 rgba(255,255,255,.28) !important;
}

/* Apaga íconos/cajas azules heredadas dentro de botones */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-reservar::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-open-buy::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-reservar::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-open-buy::before{
    background: rgba(255,255,255,.24) !important;
    color: #fff !important;
    box-shadow: none !important;
    border-color: rgba(255,255,255,.24) !important;
}

/* Botón secundario Ver regalo: mismo tono, pero suave premium */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto{
    color: var(--tbs-aec-gift-rose-2) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.78), transparent 30%),
        linear-gradient(135deg, rgba(255,249,243,.98), rgba(255,243,231,.94)) !important;
    border-color: rgba(189,119,107,.18) !important;
    box-shadow: 0 12px 26px rgba(111,76,67,.08) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto::before,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-ver-producto::before{
    background: rgba(217,144,129,.12) !important;
    color: var(--tbs-aec-gift-rose-2) !important;
}

/* Hover consistente */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto:hover,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-reservar:hover,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-open-buy:hover{
    transform: translateY(-2px) !important;
    filter: brightness(1.02) saturate(1.02) !important;
}

/* Responsive: conserva la misma paleta en móvil */
@media (max-width: 767px){
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-regalos-publico .tbs-card,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-module-card .tbs-virtual-publico .tbs-card-virtual,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-card,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-card-virtual{
        border-radius: 24px !important;
        box-shadow: 0 18px 42px rgba(111,76,67,.10), inset 0 1px 0 rgba(255,255,255,.92) !important;
    }

    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-ver-producto,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-regalos-publico .tbs-reservar,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-virtual-publico .tbs-open-buy{
        min-height: 44px !important;
        font-size: 12px !important;
        border-radius: 999px !important;
    }
}


/* =========================================================
   AJUSTE V30 - COPYS Y PALETA AMORENCAMINO
   - Botón FluentForms: "Envía tu respuesta" vía JS y paleta rose/cocoa.
   - Botones de header, RSVP y formularios con paleta Nube Amor.
   - Ajustes solo para el micrositio Nube Amor.
========================================================= */

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) {
    --tbs-aec-copy-rose: #d99081;
    --tbs-aec-copy-rose-2: #bd776b;
    --tbs-aec-copy-cocoa: #6f4c43;
    --tbs-aec-copy-muted: #8a6f67;
    --tbs-aec-copy-cream: #fff9f3;
    --tbs-aec-copy-border: rgba(189,119,107,.18);
}

/* Botones principales: header, RSVP, formularios y CTA */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-primary,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-actions .tbs-ms-btn-primary,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card .ff-btn-submit,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card button[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card input[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) #fluentform_1 .ff-btn-submit,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .fluentform .ff-btn-submit {
    color: #fff !important;
    border: 1px solid rgba(189,119,107,.18) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.28), transparent 30%),
        linear-gradient(135deg, var(--tbs-aec-copy-rose), var(--tbs-aec-copy-rose-2)) !important;
    box-shadow:
        0 18px 38px rgba(189,119,107,.26),
        inset 0 1px 0 rgba(255,255,255,.28) !important;
    text-shadow: none !important;
}

/* Botones suaves del header */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-soft,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-btn-ghost {
    color: var(--tbs-aec-copy-rose-2) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.82), transparent 32%),
        linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,249,243,.88)) !important;
    border: 1px solid rgba(189,119,107,.18) !important;
    box-shadow: 0 14px 30px rgba(111,76,67,.09) !important;
}

/* Botón "Agrégalo en agenda" o botones secundarios con icono interno */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-actions a,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-actions button {
    border-color: rgba(189,119,107,.18) !important;
}

/* Campos del RSVP alineados a la misma paleta */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card label,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card .ff-el-input--label label {
    color: var(--tbs-aec-copy-cocoa) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card select,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card textarea {
    border-color: rgba(189,119,107,.16) !important;
    background: rgba(255,255,255,.88) !important;
    color: var(--tbs-aec-copy-cocoa) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card input:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card select:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-rsvp-card textarea:focus {
    border-color: rgba(189,119,107,.42) !important;
    box-shadow: 0 0 0 4px rgba(217,144,129,.12), inset 0 1px 0 rgba(255,255,255,.88) !important;
}

/* Cuenta regresiva con copy más cercano */
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-countdown-copy h2 {
    color: var(--tbs-aec-copy-cocoa) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-countdown strong {
    color: var(--tbs-aec-copy-rose-2) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor) .tbs-ms-countdown span {
    color: var(--tbs-aec-copy-muted) !important;
}


/* =========================================================
   AJUSTE V54 - AMOR EN CAMINO PALETA ÍNTEGRA + HERO JPG
   - Mantiene botones, ventanas y tarjetas en la paleta del diseño.
   - Hero usa hero-Nube-Amor.jpg.
   - En móvil enfoca la cara del osito dentro del hero.
========================================================= */

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor){
    --tbs-aec-v54-rose:#d99081;
    --tbs-aec-v54-rose-deep:#bd776b;
    --tbs-aec-v54-cocoa:#6f4c43;
    --tbs-aec-v54-ink:#4d3f47;
    --tbs-aec-v54-soft:#fff8f4;
    --tbs-aec-v54-soft-2:#fff2eb;
    --tbs-aec-v54-border:rgba(189,119,107,.16);
    --tbs-aec-v54-shadow:0 22px 52px rgba(111,76,67,.12);
    --tbs-aec-v54-shadow-soft:0 14px 30px rgba(111,76,67,.08);
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-hero{
    background-image:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
    background-position:center center !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-module-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-countdown-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-closing-card,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__inner,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__panel,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-meta > div{
    border:1px solid var(--tbs-aec-v54-border) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,255,255,.94), transparent 36%),
        radial-gradient(circle at 100% 100%, rgba(247,217,207,.34), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,249,243,.93)) !important;
    box-shadow:var(--tbs-aec-v54-shadow) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-details-list > div,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__meta,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-guestbook-box,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__info{
    background:rgba(255,255,255,.86) !important;
    border:1px solid rgba(189,119,107,.12) !important;
    box-shadow:var(--tbs-aec-v54-shadow-soft) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-btn-primary,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms .ff-btn-submit,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms button[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms input[type="submit"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__actions a,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook button{
    color:#fff !important;
    border:1px solid rgba(189,119,107,.18) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.24), transparent 30%),
        linear-gradient(135deg, var(--tbs-aec-v54-rose), var(--tbs-aec-v54-rose-deep)) !important;
    box-shadow:0 18px 40px rgba(189,119,107,.24), inset 0 1px 0 rgba(255,255,255,.28) !important;
    text-shadow:none !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-btn-soft,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-btn-ghost,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-actions a:not(.tbs-ms-btn-primary),
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-actions button:not(.tbs-ms-btn-primary){
    color:var(--tbs-aec-v54-rose-deep) !important;
    border:1px solid rgba(189,119,107,.18) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.84), transparent 32%),
        linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,249,243,.90)) !important;
    box-shadow:0 14px 28px rgba(111,76,67,.08) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-btn-primary:hover,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__actions a:hover,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook button:hover{
    filter:brightness(1.02) saturate(1.02) !important;
    transform:translateY(-2px) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav a,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav .tbs-aec-nav-icon,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav a > span{
    color:var(--tbs-aec-v54-rose-deep) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav strong,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-countdown-copy h2,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-rsvp-header,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__title,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-module-head h2{
    color:var(--tbs-aec-v54-cocoa) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-countdown strong{
    color:var(--tbs-aec-v54-rose-deep) !important;
    text-shadow:0 1px 0 rgba(255,255,255,.72) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-countdown span,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__meta strong,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__meta b{
    color:var(--tbs-aec-v54-cocoa) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card select,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card textarea,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook textarea{
    color:var(--tbs-aec-v54-cocoa) !important;
    border:1px solid rgba(189,119,107,.16) !important;
    background:rgba(255,255,255,.90) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92) !important;
}

:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card input:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card select:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card textarea:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"]:focus,
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card .tbs-form-guestbook textarea:focus{
    border-color:rgba(189,119,107,.40) !important;
    box-shadow:0 0 0 4px rgba(217,144,129,.12), inset 0 1px 0 rgba(255,255,255,.92) !important;
}

@media (max-width: 767px){
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-hero{
        background-image:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
        background-position:12% center !important;
        background-size:cover !important;
    }

    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-quicknav,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-module-card,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-rsvp-card,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-guestbook-card,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__inner,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__panel{
        border-radius:26px !important;
        box-shadow:0 18px 42px rgba(111,76,67,.10) !important;
    }

    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-location-premium__actions a,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-actions .tbs-ms-btn,
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms .ff-btn-submit{
        min-height:52px !important;
        font-size:14px !important;
        border-radius:999px !important;
    }
}


/* =========================================================
   AJUSTE V55 - NO FLASH AMOR EN CAMINO
   - Aplica la paleta aunque la clase final llegue en body primero.
   - Mantiene oculto el micrositio hasta tbs-aec-v55-ready.
   - Hero oficial + enfoque móvil del osito.
========================================================= */
html.tbs-aec-v55-lock body{
    opacity:0 !important;
    visibility:hidden !important;
    background:#fffafd !important;
}
html.tbs-aec-v55-ready body{
    opacity:1 !important;
    visibility:visible !important;
}

body.tbs-publico-nube-amor .tbs-ms.tbs-micrositio-publico,
body.tbs-micrositio-nube-amor .tbs-ms.tbs-micrositio-publico,
body.tbs-publico-nube-amor .tbs-micrositio-publico,
body.tbs-micrositio-nube-amor .tbs-micrositio-publico{
    --tbs-aec-v55-rose:#d99081;
    --tbs-aec-v55-rose-deep:#bd776b;
    --tbs-aec-v55-cocoa:#6f4c43;
    --tbs-aec-v55-cream:#fff9f3;
    --tbs-aec-v55-border:rgba(189,119,107,.16);
}

body.tbs-publico-nube-amor .tbs-ms.tbs-micrositio-publico::after,
body.tbs-micrositio-nube-amor .tbs-ms.tbs-micrositio-publico::after,
body.tbs-publico-nube-amor .tbs-micrositio-publico::after,
body.tbs-micrositio-nube-amor .tbs-micrositio-publico::after{
    background:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / 100% auto repeat-y !important;
}

body.tbs-publico-nube-amor :is(.tbs-ms-hero,.tbs-hero,.tbs-ms-art-card),
body.tbs-micrositio-nube-amor :is(.tbs-ms-hero,.tbs-hero,.tbs-ms-art-card),
:is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-hero{
    background-image:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-position:center center !important;
}

body.tbs-publico-nube-amor :is(.tbs-ms-btn-primary,.ff-btn-submit,button[type="submit"],input[type="submit"],.tbs-location-premium__actions a,.tbs-form-guestbook button),
body.tbs-micrositio-nube-amor :is(.tbs-ms-btn-primary,.ff-btn-submit,button[type="submit"],input[type="submit"],.tbs-location-premium__actions a,.tbs-form-guestbook button){
    color:#fff !important;
    border-color:rgba(189,119,107,.18) !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.24), transparent 30%),
        linear-gradient(135deg, #d99081, #bd776b) !important;
    box-shadow:0 18px 40px rgba(189,119,107,.24), inset 0 1px 0 rgba(255,255,255,.28) !important;
}

body.tbs-publico-nube-amor :is(.tbs-ms-btn-soft,.tbs-ms-btn-ghost,.tbs-ms-actions a:not(.tbs-ms-btn-primary),.tbs-ms-actions button:not(.tbs-ms-btn-primary)),
body.tbs-micrositio-nube-amor :is(.tbs-ms-btn-soft,.tbs-ms-btn-ghost,.tbs-ms-actions a:not(.tbs-ms-btn-primary),.tbs-ms-actions button:not(.tbs-ms-btn-primary)){
    color:#bd776b !important;
    border-color:rgba(189,119,107,.18) !important;
    background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,249,243,.90)) !important;
}

@media (max-width:767px){
    body.tbs-publico-nube-amor :is(.tbs-ms-hero,.tbs-hero,.tbs-ms-art-card),
    body.tbs-micrositio-nube-amor :is(.tbs-ms-hero,.tbs-hero,.tbs-ms-art-card),
    :is(.tbs-ms.tbs-publico-nube-amor,.tbs-ms.tbs-micrositio-nube-amor,.tbs-micrositio-publico.tbs-publico-nube-amor,.tbs-micrositio-publico.tbs-micrositio-nube-amor) .tbs-ms-hero{
        background-image:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
        background-position:12% center !important;
        background-size:cover !important;
    }

    body.tbs-publico-nube-amor .tbs-ms.tbs-micrositio-publico::after,
    body.tbs-micrositio-nube-amor .tbs-ms.tbs-micrositio-publico::after,
    body.tbs-publico-nube-amor .tbs-micrositio-publico::after,
    body.tbs-micrositio-nube-amor .tbs-micrositio-publico::after{
        background:url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') center top / 100% auto repeat-y !important;
    }
}

/* =========================
   V56 · Fix color texto botones Google Maps / Waze
========================= */
:is(.tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor) .tbs-location-premium__actions .tbs-location-premium__btn--google,
:is(.tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor) .tbs-location-premium__actions .tbs-location-premium__btn--waze,
:is(.tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor) .tbs-location-premium__actions .tbs-location-premium__btn--google *,
:is(.tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor) .tbs-location-premium__actions .tbs-location-premium__btn--waze *{
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    text-shadow:none !important;
}




/* =========================================================
   V57 · TARJETAS DE REGALOS POR DISEÑO DEL MICROSITIO
   No toma colores del tema/panel. Usa la clase del diseño público:
   - Nube Amor
   - Pequeño Milagro
========================================================= */

/* ---------- Variables por diseño ---------- */
body.tbs-publico-nube-amor,
body.tbs-micrositio-nube-amor,
body.tbs-public-microsite-design-amorencamino,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor{
    --tbs-gift-accent: #d99081;
    --tbs-gift-accent-2: #bd776b;
    --tbs-gift-accent-soft: rgba(217,144,129,.14);
    --tbs-gift-ink: #6f4c43;
    --tbs-gift-muted: rgba(111,76,67,.72);
    --tbs-gift-card: rgba(255,250,246,.94);
    --tbs-gift-card-2: rgba(255,241,233,.86);
    --tbs-gift-border: rgba(189,119,107,.18);
    --tbs-gift-badge-bg: rgba(255,247,241,.92);
    --tbs-gift-badge-text: #bd776b;
    --tbs-gift-btn-text: #ffffff;
    --tbs-gift-soft-btn-text: #bd776b;
    --tbs-gift-soft-btn-bg: linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,248,242,.92));
    --tbs-gift-shadow: 0 24px 58px rgba(111,76,67,.12);
    --tbs-gift-shadow-btn: 0 16px 34px rgba(189,119,107,.22);
}

body.tbs-publico-pequeno-milagro,
body.tbs-micrositio-pequeno-milagro,
body.tbs-public-microsite-design-pequeno-milagro,
.tbs-ms.tbs-publico-pequeno-milagro,
.tbs-ms.tbs-micrositio-pequeno-milagro,
.tbs-micrositio-publico.tbs-publico-pequeno-milagro,
.tbs-micrositio-publico.tbs-micrositio-pequeno-milagro{
    --tbs-gift-accent: #7fc3dc;
    --tbs-gift-accent-2: #4d9fbd;
    --tbs-gift-accent-soft: rgba(127,195,220,.16);
    --tbs-gift-ink: #405965;
    --tbs-gift-muted: rgba(64,89,101,.72);
    --tbs-gift-card: rgba(247,252,255,.94);
    --tbs-gift-card-2: rgba(235,248,253,.88);
    --tbs-gift-border: rgba(127,195,220,.24);
    --tbs-gift-badge-bg: rgba(237,248,253,.94);
    --tbs-gift-badge-text: #4d9fbd;
    --tbs-gift-btn-text: #ffffff;
    --tbs-gift-soft-btn-text: #4d9fbd;
    --tbs-gift-soft-btn-bg: linear-gradient(135deg, rgba(255,255,255,.96), rgba(237,248,253,.92));
    --tbs-gift-shadow: 0 24px 58px rgba(77,159,189,.13);
    --tbs-gift-shadow-btn: 0 16px 34px rgba(77,159,189,.24);
}

/* ---------- Contenedores de secciones ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-wishlist-public,
    .tbs-wishlist-grid,
    .tbs-wishlist-list,
    .tbs-regalos-grid,
    .tbs-regalos-virtuales-grid,
    .tbs-regalos-virtuales-public,
    .tbs-gifts-grid,
    .tbs-ms-gifts-grid
){
    --tbs-card-gap: clamp(18px, 2.2vw, 28px);
}

/* ---------- Tarjetas wishlist y regalos virtuales ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card,
    .tbs-regalo-public-card,
    .tbs-wishlist-card,
    .tbs-wishlist-item,
    .tbs-regalo-virtual-card,
    .tbs-regalo-virtual-public-card,
    .tbs-virtual-gift-card,
    .tbs-ms-gift-card,
    .tbs-ms-virtual-card
){
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid var(--tbs-gift-border) !important;
    border-radius: 30px !important;
    background:
        radial-gradient(circle at 100% 100%, var(--tbs-gift-accent-soft), transparent 34%),
        linear-gradient(180deg, var(--tbs-gift-card), var(--tbs-gift-card-2)) !important;
    box-shadow: var(--tbs-gift-shadow), inset 0 1px 0 rgba(255,255,255,.90) !important;
    color: var(--tbs-gift-ink) !important;
    backdrop-filter: blur(10px) !important;
}

/* limpia colores rosados/celestes heredados por tema no seleccionado */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card::after,
    .tbs-regalo-public-card::after,
    .tbs-wishlist-card::after,
    .tbs-wishlist-item::after,
    .tbs-regalo-virtual-card::after,
    .tbs-regalo-virtual-public-card::after,
    .tbs-virtual-gift-card::after,
    .tbs-ms-gift-card::after,
    .tbs-ms-virtual-card::after
){
    background: radial-gradient(circle at 100% 100%, var(--tbs-gift-accent-soft), transparent 58%) !important;
}

/* ---------- Imágenes ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card img,
    .tbs-regalo-public-card img,
    .tbs-wishlist-card img,
    .tbs-wishlist-item img,
    .tbs-regalo-virtual-card img,
    .tbs-regalo-virtual-public-card img,
    .tbs-virtual-gift-card img,
    .tbs-ms-gift-card img,
    .tbs-ms-virtual-card img
){
    border-radius: 22px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    box-shadow: 0 14px 30px rgba(80,58,53,.08) !important;
    background: #fff !important;
}

/* ---------- Badges / estados ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-status,
    .tbs-regalo-badge,
    .tbs-wishlist-status,
    .tbs-regalo-virtual-status,
    .tbs-gift-status,
    .tbs-card-badge,
    .tbs-regalo-disponible,
    .tbs-regalo-reservado
){
    color: var(--tbs-gift-badge-text) !important;
    -webkit-text-fill-color: var(--tbs-gift-badge-text) !important;
    background: var(--tbs-gift-badge-bg) !important;
    border: 1px solid var(--tbs-gift-border) !important;
    box-shadow: 0 10px 24px rgba(80,58,53,.06) !important;
    letter-spacing: .10em !important;
}

/* ---------- Títulos y precios ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-title,
    .tbs-regalo-nombre,
    .tbs-wishlist-title,
    .tbs-wishlist-name,
    .tbs-regalo-virtual-title,
    .tbs-gift-title,
    .tbs-ms-gift-title,
    .tbs-regalo-card h3,
    .tbs-wishlist-card h3,
    .tbs-regalo-virtual-card h3
){
    color: var(--tbs-gift-ink) !important;
    -webkit-text-fill-color: var(--tbs-gift-ink) !important;
}

:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-price,
    .tbs-regalo-precio,
    .tbs-wishlist-price,
    .tbs-regalo-virtual-price,
    .tbs-gift-price,
    .tbs-ms-gift-price,
    .tbs-regalo-card .precio,
    .tbs-wishlist-card .precio
){
    color: var(--tbs-gift-accent-2) !important;
    -webkit-text-fill-color: var(--tbs-gift-accent-2) !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.72) !important;
}

/* Nube Amor conserva precio rose/cocoa, no celeste */
body.tbs-publico-nube-amor :is(.tbs-regalo-price,.tbs-regalo-precio,.tbs-wishlist-price,.tbs-regalo-virtual-price,.tbs-gift-price,.tbs-ms-gift-price,.tbs-regalo-card .precio,.tbs-wishlist-card .precio),
body.tbs-micrositio-nube-amor :is(.tbs-regalo-price,.tbs-regalo-precio,.tbs-wishlist-price,.tbs-regalo-virtual-price,.tbs-gift-price,.tbs-ms-gift-price,.tbs-regalo-card .precio,.tbs-wishlist-card .precio),
body.tbs-public-microsite-design-amorencamino :is(.tbs-regalo-price,.tbs-regalo-precio,.tbs-wishlist-price,.tbs-regalo-virtual-price,.tbs-gift-price,.tbs-ms-gift-price,.tbs-regalo-card .precio,.tbs-wishlist-card .precio){
    color: var(--tbs-gift-accent-2) !important;
    -webkit-text-fill-color: var(--tbs-gift-accent-2) !important;
}

/* ---------- Inputs dentro de tarjetas ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card input,
    .tbs-regalo-public-card input,
    .tbs-wishlist-card input,
    .tbs-wishlist-item input,
    .tbs-regalo-virtual-card input,
    .tbs-regalo-virtual-public-card input,
    .tbs-virtual-gift-card input,
    .tbs-ms-gift-card input,
    .tbs-ms-virtual-card input
){
    color: var(--tbs-gift-ink) !important;
    border: 1px solid var(--tbs-gift-border) !important;
    background: rgba(255,255,255,.90) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.90) !important;
}

:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card input:focus,
    .tbs-regalo-public-card input:focus,
    .tbs-wishlist-card input:focus,
    .tbs-wishlist-item input:focus,
    .tbs-regalo-virtual-card input:focus,
    .tbs-regalo-virtual-public-card input:focus,
    .tbs-virtual-gift-card input:focus,
    .tbs-ms-gift-card input:focus,
    .tbs-ms-virtual-card input:focus
){
    border-color: var(--tbs-gift-accent) !important;
    box-shadow: 0 0 0 4px var(--tbs-gift-accent-soft), inset 0 1px 0 rgba(255,255,255,.90) !important;
}

/* ---------- Botones principales de tarjetas ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card button,
    .tbs-regalo-public-card button,
    .tbs-wishlist-card button,
    .tbs-wishlist-item button,
    .tbs-regalo-virtual-card button,
    .tbs-regalo-virtual-public-card button,
    .tbs-virtual-gift-card button,
    .tbs-ms-gift-card button,
    .tbs-ms-virtual-card button,
    .tbs-regalo-card .button,
    .tbs-regalo-public-card .button,
    .tbs-wishlist-card .button,
    .tbs-wishlist-item .button,
    .tbs-regalo-virtual-card .button,
    .tbs-regalo-virtual-public-card .button,
    .tbs-virtual-gift-card .button,
    .tbs-ms-gift-card .button,
    .tbs-ms-virtual-card .button,
    .tbs-regalo-card a.tbs-btn,
    .tbs-wishlist-card a.tbs-btn,
    .tbs-regalo-virtual-card a.tbs-btn
){
    color: var(--tbs-gift-btn-text) !important;
    -webkit-text-fill-color: var(--tbs-gift-btn-text) !important;
    border: 1px solid color-mix(in srgb, var(--tbs-gift-accent-2) 35%, transparent) !important;
    background:
        radial-gradient(circle at 26% 16%, rgba(255,255,255,.32), transparent 30%),
        linear-gradient(135deg, var(--tbs-gift-accent), var(--tbs-gift-accent-2)) !important;
    box-shadow: var(--tbs-gift-shadow-btn), inset 0 1px 0 rgba(255,255,255,.32) !important;
    text-shadow: none !important;
}

/* ---------- Botones suaves tipo Ver regalo ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-ver,
    .tbs-ver-regalo,
    .tbs-wishlist-view,
    .tbs-btn-ver-regalo,
    a[href*="http"].tbs-regalo-link,
    .tbs-regalo-card a:not(.button):not(.tbs-btn),
    .tbs-wishlist-card a:not(.button):not(.tbs-btn)
){
    color: var(--tbs-gift-soft-btn-text) !important;
    -webkit-text-fill-color: var(--tbs-gift-soft-btn-text) !important;
    border: 1px solid var(--tbs-gift-border) !important;
    background: var(--tbs-gift-soft-btn-bg) !important;
    box-shadow: 0 12px 26px rgba(80,58,53,.07) !important;
    text-shadow: none !important;
}

/* Iconos dentro de botones */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card button *,
    .tbs-regalo-public-card button *,
    .tbs-wishlist-card button *,
    .tbs-wishlist-item button *,
    .tbs-regalo-virtual-card button *,
    .tbs-regalo-virtual-public-card button *,
    .tbs-virtual-gift-card button *,
    .tbs-ms-gift-card button *,
    .tbs-ms-virtual-card button *,
    .tbs-regalo-card .button *,
    .tbs-wishlist-card .button *,
    .tbs-regalo-virtual-card .button *
){
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
}

/* ---------- Hover ---------- */
:is(
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-amorencamino,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-public-microsite-design-pequeno-milagro
) :is(
    .tbs-regalo-card,
    .tbs-regalo-public-card,
    .tbs-wishlist-card,
    .tbs-wishlist-item,
    .tbs-regalo-virtual-card,
    .tbs-regalo-virtual-public-card,
    .tbs-virtual-gift-card,
    .tbs-ms-gift-card,
    .tbs-ms-virtual-card
):hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 28px 64px rgba(80,58,53,.13), inset 0 1px 0 rgba(255,255,255,.90) !important;
}

/* ---------- Móvil ---------- */
@media (max-width: 767px){
    :is(
        body.tbs-publico-nube-amor,
        body.tbs-micrositio-nube-amor,
        body.tbs-public-microsite-design-amorencamino,
        body.tbs-publico-pequeno-milagro,
        body.tbs-micrositio-pequeno-milagro,
        body.tbs-public-microsite-design-pequeno-milagro
    ) :is(
        .tbs-regalo-card,
        .tbs-regalo-public-card,
        .tbs-wishlist-card,
        .tbs-wishlist-item,
        .tbs-regalo-virtual-card,
        .tbs-regalo-virtual-public-card,
        .tbs-virtual-gift-card,
        .tbs-ms-gift-card,
        .tbs-ms-virtual-card
    ){
        border-radius: 26px !important;
    }

    :is(
        body.tbs-publico-nube-amor,
        body.tbs-micrositio-nube-amor,
        body.tbs-public-microsite-design-amorencamino,
        body.tbs-publico-pequeno-milagro,
        body.tbs-micrositio-pequeno-milagro,
        body.tbs-public-microsite-design-pequeno-milagro
    ) :is(
        .tbs-regalo-card button,
        .tbs-regalo-public-card button,
        .tbs-wishlist-card button,
        .tbs-wishlist-item button,
        .tbs-regalo-virtual-card button,
        .tbs-regalo-virtual-public-card button,
        .tbs-virtual-gift-card button,
        .tbs-ms-gift-card button,
        .tbs-ms-virtual-card button,
        .tbs-regalo-card .button,
        .tbs-wishlist-card .button,
        .tbs-regalo-virtual-card .button
    ){
        min-height: 50px !important;
        border-radius: 999px !important;
    }
}

/* =========================================================
   V60 - GUESTBOOK / DEJA TU MENSAJE ESTILO LIBRO
   Compatible con Nube Amor + Pequeño Milagro
========================================================= */

/* =========================
   WRAPPERS DE DISEÑO
========================= */
:is(
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor
){
    --tbs-gb-paper: #fffaf5;
    --tbs-gb-paper-2: #fff5ef;
    --tbs-gb-paper-3: #fffdfa;
    --tbs-gb-ink: #6f4c43;
    --tbs-gb-sub: #8a6f67;
    --tbs-gb-line: rgba(189,119,107,.12);
    --tbs-gb-line-strong: rgba(189,119,107,.22);
    --tbs-gb-glow: rgba(217,144,129,.18);
    --tbs-gb-btn-1: #d99081;
    --tbs-gb-btn-2: #bd776b;
    --tbs-gb-shadow: 0 24px 60px rgba(111,76,67,.12);
    --tbs-gb-input-shadow: 0 10px 24px rgba(111,76,67,.06);
    --tbs-gb-bookmark-1: #e2a195;
    --tbs-gb-bookmark-2: #c47b6f;
    --tbs-gb-accent: #f1c75d;
}

:is(
.tbs-ms.tbs-publico-pequeno-milagro,
.tbs-ms.tbs-micrositio-pequeno-milagro,
.tbs-micrositio-publico.tbs-publico-pequeno-milagro,
.tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
.tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
.tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
.tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
.tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
){
    --tbs-gb-paper: #fbfeff;
    --tbs-gb-paper-2: #f4fbff;
    --tbs-gb-paper-3: #ffffff;
    --tbs-gb-ink: #6e584c;
    --tbs-gb-sub: #7f726c;
    --tbs-gb-line: rgba(116,180,214,.14);
    --tbs-gb-line-strong: rgba(116,180,214,.24);
    --tbs-gb-glow: rgba(143,208,239,.18);
    --tbs-gb-btn-1: #8fd0ef;
    --tbs-gb-btn-2: #57b6df;
    --tbs-gb-shadow: 0 24px 60px rgba(87,182,223,.14);
    --tbs-gb-input-shadow: 0 10px 24px rgba(87,182,223,.08);
    --tbs-gb-bookmark-1: #a9ddf4;
    --tbs-gb-bookmark-2: #68bddf;
    --tbs-gb-accent: #f1c75d;
}

/* =========================
   CONTENEDOR EXTERIOR
========================= */
.tbs-ms-guestbook-card{
    border-radius: 36px !important;
    overflow: hidden !important;
}

.tbs-ms-guestbook-card .tbs-guestbook{
    position: relative;
    z-index: 1;
}

.tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book{
    position: relative;
    overflow: hidden;
    padding: 54px 54px 42px !important;
    border-radius: 34px !important;
    border: 1px solid var(--tbs-gb-line-strong) !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.82)),
        repeating-linear-gradient(
            0deg,
            rgba(135,110,95,.016) 0px,
            rgba(135,110,95,.016) 1px,
            transparent 1px,
            transparent 13px
        ),
        radial-gradient(circle at 12% 14%, var(--tbs-gb-glow), transparent 28%),
        linear-gradient(180deg, var(--tbs-gb-paper), var(--tbs-gb-paper-2)) !important;
    box-shadow:
        var(--tbs-gb-shadow),
        inset 0 1px 0 rgba(255,255,255,.92),
        inset 0 -14px 24px rgba(255,255,255,.38) !important;
}

/* Doble borde interior */
.tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book::before{
    content: "";
    position: absolute;
    inset: 18px;
    border-radius: 28px;
    border: 1px solid var(--tbs-gb-line) !important;
    pointer-events: none;
}

/* Efecto lomo/libro */
.tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book::after{
    content: "";
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 50%;
    width: 200px;
    transform: translateX(-50%);
    pointer-events: none;
    background:
        radial-gradient(circle at center,
            rgba(120,100,90,.08) 0%,
            rgba(120,100,90,.04) 34%,
            rgba(255,255,255,0) 72%);
    filter: blur(10px);
    opacity: .5;
}

/* =========================
   MARCAPÁGINAS + DECORACIÓN
========================= */
.tbs-ms-guestbook-card .tbs-guestbook-bookmark{
    position: absolute;
    top: 0;
    right: 54px;
    width: 24px;
    height: 96px;
    background: linear-gradient(180deg, var(--tbs-gb-bookmark-1), var(--tbs-gb-bookmark-2));
    border-radius: 0 0 14px 14px;
    box-shadow: 0 10px 20px rgba(0,0,0,.10);
    z-index: 3;
}

.tbs-ms-guestbook-card .tbs-guestbook-bookmark::after{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -12px;
    margin: auto;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid var(--tbs-gb-bookmark-2);
}

.tbs-ms-guestbook-card .tbs-guestbook-book-decor{
    position: absolute;
    top: 32px;
    left: 42px;
    width: 120px;
    height: 120px;
    pointer-events: none;
    z-index: 2;
}

.tbs-ms-guestbook-card .tbs-guestbook-book-heart{
    position: absolute;
    top: 0;
    left: 0;
    font-size: 62px;
    line-height: 1;
    color: var(--tbs-gb-accent);
    opacity: .95;
}

.tbs-ms-guestbook-card .tbs-guestbook-book-sparkle{
    position: absolute;
    top: 88px;
    left: 74px;
    font-size: 28px;
    line-height: 1;
    color: var(--tbs-gb-accent);
    opacity: .85;
}

/* =========================
   HEADERS
========================= */
.tbs-ms-guestbook-card .tbs-guestbook-header,
.tbs-ms-guestbook-card .tbs-guestbook-sub,
.tbs-ms-guestbook-card .tbs-form-guestbook{
    position: relative;
    z-index: 2;
}

.tbs-ms-guestbook-card .tbs-guestbook-header{
    margin: 70px 0 12px !important;
    text-align: center !important;
    font-family: "Cormorant Garamond", serif !important;
    font-size: clamp(54px, 6vw, 84px) !important;
    line-height: .95 !important;
    letter-spacing: -.02em !important;
    font-weight: 700 !important;
    color: var(--tbs-gb-ink) !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.tbs-ms-guestbook-card .tbs-guestbook-sub{
    margin: 0 0 28px !important;
    text-align: center !important;
    font-size: clamp(20px, 2vw, 28px) !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
    color: var(--tbs-gb-sub) !important;
}

/* =========================
   FORMULARIO
========================= */
.tbs-ms-guestbook-card .tbs-form-guestbook{
    display: grid !important;
    gap: 22px !important;
    max-width: 100% !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
.tbs-ms-guestbook-card .tbs-form-guestbook textarea{
    width: 100% !important;
    border-radius: 22px !important;
    border: 1px solid var(--tbs-gb-line-strong) !important;
    color: var(--tbs-gb-ink) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.74)),
        repeating-linear-gradient(
            0deg,
            rgba(120,100,90,.012) 0px,
            rgba(120,100,90,.012) 1px,
            transparent 1px,
            transparent 14px
        ),
        linear-gradient(180deg, var(--tbs-gb-paper-3), var(--tbs-gb-paper)) !important;
    box-shadow:
        var(--tbs-gb-input-shadow),
        inset 0 1px 0 rgba(255,255,255,.95) !important;
    padding: 20px 24px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    outline: none !important;
    transition: all .25s ease !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook textarea{
    min-height: 190px !important;
    line-height: 1.75 !important;
    resize: vertical !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"]::placeholder,
.tbs-ms-guestbook-card .tbs-form-guestbook textarea::placeholder{
    color: rgba(111,92,84,.75) !important;
    font-weight: 600 !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"]:focus,
.tbs-ms-guestbook-card .tbs-form-guestbook textarea:focus{
    border-color: var(--tbs-gb-line-strong) !important;
    box-shadow:
        0 0 0 4px rgba(255,255,255,.55),
        0 10px 24px rgba(0,0,0,.06),
        0 0 0 1px var(--tbs-gb-line-strong) !important;
    transform: translateY(-1px);
}

/* =========================
   BOTÓN
========================= */
.tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit,
.tbs-ms-guestbook-card .tbs-form-guestbook button{
    min-height: 74px !important;
    border-radius: 999px !important;
    padding: 18px 28px !important;
    border: 1px solid transparent !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
    cursor: pointer !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.24), transparent 32%),
        linear-gradient(135deg, var(--tbs-gb-btn-1), var(--tbs-gb-btn-2)) !important;
    box-shadow:
        0 16px 34px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.28) !important;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit:hover,
.tbs-ms-guestbook-card .tbs-form-guestbook button:hover{
    transform: translateY(-2px) !important;
    filter: brightness(1.02) !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit:active,
.tbs-ms-guestbook-card .tbs-form-guestbook button:active{
    transform: translateY(0) !important;
}

.tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit::before,
.tbs-ms-guestbook-card .tbs-form-guestbook button::before{
    content: "💌";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-right: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    vertical-align: middle;
}

/* =========================
   RECAPTCHA
========================= */
.tbs-ms-guestbook-card .g-recaptcha,
.tbs-ms-guestbook-card iframe[src*="recaptcha"]{
    margin: 4px auto 0 !important;
    max-width: 100% !important;
}

/* =========================
   LISTA DE MENSAJES (SI EXISTE EN OTRO BLOQUE)
========================= */
.tbs-ms-guestbook-card .tbs-message-card,
.tbs-ms-guestbook-card .tbs-guestbook-card{
    border: 1px solid var(--tbs-gb-line) !important;
    border-radius: 22px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.74)),
        linear-gradient(180deg, var(--tbs-gb-paper), var(--tbs-gb-paper-2)) !important;
    box-shadow: 0 14px 30px rgba(0,0,0,.05) !important;
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1024px){
    .tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book{
        padding: 44px 34px 34px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-header{
        margin-top: 62px !important;
        font-size: clamp(48px, 8vw, 68px) !important;
    }
}

@media (max-width: 767px){
    .tbs-ms-guestbook-card{
        border-radius: 28px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book{
        padding: 28px 18px 24px !important;
        border-radius: 26px !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book::before{
        inset: 10px;
        border-radius: 18px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-box.tbs-guestbook-box--book::after{
        width: 110px;
        opacity: .35;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-bookmark{
        right: 22px;
        width: 20px;
        height: 72px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-bookmark::after{
        border-left-width: 10px;
        border-right-width: 10px;
        border-top-width: 10px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-book-decor{
        top: 16px;
        left: 18px;
        width: 90px;
        height: 90px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-book-heart{
        font-size: 42px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-book-sparkle{
        top: 58px;
        left: 54px;
        font-size: 20px;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-header{
        margin: 42px 0 10px !important;
        font-size: clamp(34px, 12vw, 52px) !important;
    }

    .tbs-ms-guestbook-card .tbs-guestbook-sub{
        font-size: 16px !important;
        line-height: 1.45 !important;
        margin-bottom: 18px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook{
        gap: 16px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook input[type="text"],
    .tbs-ms-guestbook-card .tbs-form-guestbook textarea{
        font-size: 16px !important;
        border-radius: 18px !important;
        padding: 16px 18px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook textarea{
        min-height: 150px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit,
    .tbs-ms-guestbook-card .tbs-form-guestbook button{
        min-height: 60px !important;
        font-size: 18px !important;
    }

    .tbs-ms-guestbook-card .tbs-form-guestbook .tbs-guestbook-submit::before,
    .tbs-ms-guestbook-card .tbs-form-guestbook button::before{
        width: 28px;
        height: 28px;
        margin-right: 10px;
        font-size: 14px;
    }
}

/* =========================================================
   V61 - MOBILE HERO PREVIEW FIRST
   Nube Amor: en móvil muestra la imagen preview como
   primer elemento premium antes del título.
========================================================= */
@media (max-width: 767px) {
    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero-copy {
        display: block !important;
    }

    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero-copy::before {
        content: "" !important;
        display: block !important;
        width: min(100%, 320px) !important;
        aspect-ratio: 1 / 1 !important;
        margin: 0 auto 20px !important;
        border-radius: 30px !important;
        border: 1px solid rgba(255,255,255,.92) !important;
        background:
            linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,248,252,.10)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/preview-Nube-Amor.jpg') center center / cover no-repeat !important;
        box-shadow:
            0 22px 46px rgba(111,76,67,.16),
            0 8px 18px rgba(217,144,129,.10),
            inset 0 1px 0 rgba(255,255,255,.88) !important;
        opacity: 1 !important;
        transform: translateZ(0);
    }

    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero-copy::after {
        content: "" !important;
        display: block !important;
        width: 74px !important;
        height: 5px !important;
        margin: -8px auto 18px !important;
        border-radius: 999px !important;
        background: linear-gradient(90deg, transparent, rgba(217,144,129,.42), transparent) !important;
        box-shadow: 0 8px 18px rgba(217,144,129,.10) !important;
    }

    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero h1 {
        margin-top: 0 !important;
    }

    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero {
        min-height: auto !important;
        padding-top: 18px !important;
    }
}

@media (max-width: 390px) {
    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-hero-copy::before {
        width: min(100%, 286px) !important;
        border-radius: 26px !important;
        margin-bottom: 18px !important;
    }
}

/* =========================================================
   V62 - TIPOGRAFÍA PREMIUM DELGADA + TARJETAS MÓVIL MÁS TRANSPARENTES
   Aplica a datos: Fecha / Hora / Lugar y números de cuenta regresiva
========================================================= */

/* Valores de Fecha / Hora / Lugar */
.tbs-ms-meta span,
.tbs-ms-meta-value,
.tbs-ms-meta-date,
.tbs-ms-meta-time,
.tbs-ms-meta-place,
.tbs-ms-details-list > div span,
.tbs-ms-details-list > div strong + span {
    font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif !important;
    font-weight: 400 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.08 !important;
    text-wrap: balance !important;
}

/* Etiquetas FECHA / HORA / LUGAR conservan lectura premium */
.tbs-ms-meta strong,
.tbs-ms-meta-label,
.tbs-ms-meta-title {
    font-family: "Roboto", "Inter", Arial, sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: .13em !important;
}

/* Números de contador */
.tbs-ms-countdown strong,
.tbs-ms-count-number,
.tbs-countdown-number,
.tbs-ms-countdown [data-tbs-count] {
    font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif !important;
    font-weight: 400 !important;
    letter-spacing: -0.055em !important;
    line-height: .82 !important;
    font-variant-numeric: lining-nums !important;
}

/* Texto bajo números del contador */
.tbs-ms-countdown span,
.tbs-ms-countdown-label {
    font-family: "Roboto", "Inter", Arial, sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: .13em !important;
}

/* =========================
   MÓVIL
========================= */
@media (max-width: 767px) {

    /* Tarjetas de fecha/hora/lugar más transparentes */
    .tbs-ms-meta > div,
    .tbs-ms-meta-card {
        background:
            radial-gradient(circle at 0% 0%, rgba(255,255,255,.40), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.52), rgba(255,255,255,.38)) !important;
        border-color: rgba(255,255,255,.52) !important;
        box-shadow:
            0 16px 34px rgba(70, 120, 150, .08),
            inset 0 1px 0 rgba(255,255,255,.54) !important;
        backdrop-filter: blur(9px) saturate(1.05) !important;
        -webkit-backdrop-filter: blur(9px) saturate(1.05) !important;
    }

    .tbs-ms-meta > div::after,
    .tbs-ms-meta-card::after {
        opacity: .52 !important;
    }

    .tbs-ms-meta span,
    .tbs-ms-meta-value,
    .tbs-ms-meta-date,
    .tbs-ms-meta-time,
    .tbs-ms-meta-place {
        font-size: clamp(34px, 10.4vw, 50px) !important;
        font-weight: 400 !important;
        letter-spacing: -0.045em !important;
        line-height: 1.02 !important;
    }

    .tbs-ms-meta-place,
    .tbs-ms-meta .tbs-ms-meta-place,
    .tbs-ms-meta > div:nth-child(3) span {
        font-size: clamp(28px, 8.8vw, 42px) !important;
        line-height: 1.08 !important;
        max-width: 92% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .tbs-ms-meta strong,
    .tbs-ms-meta-label,
    .tbs-ms-meta-title {
        font-size: 15px !important;
        letter-spacing: .16em !important;
        margin-bottom: 12px !important;
    }

    /* Tarjetas generales y contador más transparentes en móvil */
    .tbs-ms-details-card,
    .tbs-ms-rsvp-card,
    .tbs-ms-location-card,
    .tbs-ms-module-card,
    .tbs-ms-guestbook-card,
    .tbs-ms-countdown-card,
    .tbs-ms-closing-card {
        background:
            radial-gradient(circle at 0% 0%, rgba(255,255,255,.42), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.42)) !important;
        border-color: rgba(255,255,255,.52) !important;
        box-shadow:
            0 18px 46px rgba(70, 120, 150, .08),
            inset 0 1px 0 rgba(255,255,255,.58) !important;
        backdrop-filter: blur(9px) saturate(1.05) !important;
        -webkit-backdrop-filter: blur(9px) saturate(1.05) !important;
    }

    .tbs-ms-countdown > div {
        background:
            radial-gradient(circle at 20% 10%, rgba(255,255,255,.48), transparent 38%),
            linear-gradient(180deg, rgba(255,255,255,.56), rgba(255,255,255,.40)) !important;
        border-color: rgba(255,255,255,.58) !important;
        box-shadow:
            0 12px 26px rgba(70, 120, 150, .07),
            inset 0 1px 0 rgba(255,255,255,.60) !important;
        backdrop-filter: blur(8px) saturate(1.05) !important;
        -webkit-backdrop-filter: blur(8px) saturate(1.05) !important;
    }

    .tbs-ms-countdown strong,
    .tbs-ms-count-number,
    .tbs-countdown-number {
        font-size: clamp(46px, 13vw, 66px) !important;
        font-weight: 400 !important;
        letter-spacing: -0.06em !important;
    }

    .tbs-ms-countdown span,
    .tbs-ms-countdown-label {
        font-size: 11px !important;
        letter-spacing: .15em !important;
        opacity: .88 !important;
    }
}

/* =========================
   PEQUEÑO MILAGRO
========================= */
:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) :is(
    .tbs-ms-meta span,
    .tbs-ms-meta-value,
    .tbs-ms-meta-date,
    .tbs-ms-meta-time,
    .tbs-ms-meta-place
) {
    color: #403944 !important;
    -webkit-text-fill-color: #403944 !important;
}

:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) :is(
    .tbs-ms-meta strong,
    .tbs-ms-meta-label,
    .tbs-ms-meta-title,
    .tbs-ms-countdown span,
    .tbs-ms-countdown-label
) {
    color: #4d9fbd !important;
    -webkit-text-fill-color: #4d9fbd !important;
}

:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) :is(
    .tbs-ms-countdown strong,
    .tbs-ms-count-number,
    .tbs-countdown-number
) {
    color: #4d9fbd !important;
    -webkit-text-fill-color: #4d9fbd !important;
}

/* =========================
   AMOR EN CAMINO
========================= */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) :is(
    .tbs-ms-meta span,
    .tbs-ms-meta-value,
    .tbs-ms-meta-date,
    .tbs-ms-meta-time,
    .tbs-ms-meta-place
) {
    color: #433740 !important;
    -webkit-text-fill-color: #433740 !important;
}

:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) :is(
    .tbs-ms-meta strong,
    .tbs-ms-meta-label,
    .tbs-ms-meta-title,
    .tbs-ms-countdown span,
    .tbs-ms-countdown-label
) {
    color: #c67a70 !important;
    -webkit-text-fill-color: #c67a70 !important;
}

:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) :is(
    .tbs-ms-countdown strong,
    .tbs-ms-count-number,
    .tbs-countdown-number
) {
    color: #c67a70 !important;
    -webkit-text-fill-color: #c67a70 !important;
}

/* =========================================================
   V66 - RSVP / CONFIRMA TU ASISTENCIA
   Ventana más angosta, textura premium, mejor tipografía
   y campos más legibles. Paleta por diseño de micrositio.
========================================================= */

/* Variables por diseño */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) {
    --tbs-rsvp-ink: #6f4c43;
    --tbs-rsvp-muted: #806a63;
    --tbs-rsvp-label: #79554c;
    --tbs-rsvp-line: rgba(189,119,107,.18);
    --tbs-rsvp-line-strong: rgba(189,119,107,.28);
    --tbs-rsvp-paper: #fffaf5;
    --tbs-rsvp-paper-2: #fff4ee;
    --tbs-rsvp-glow: rgba(217,144,129,.18);
    --tbs-rsvp-btn-1: #d99081;
    --tbs-rsvp-btn-2: #bd776b;
    --tbs-rsvp-accent: #f1c75d;
    --tbs-rsvp-shadow: 0 28px 70px rgba(111,76,67,.12);
}

:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) {
    --tbs-rsvp-ink: #6e584c;
    --tbs-rsvp-muted: #6a7478;
    --tbs-rsvp-label: #426474;
    --tbs-rsvp-line: rgba(116,180,214,.18);
    --tbs-rsvp-line-strong: rgba(116,180,214,.30);
    --tbs-rsvp-paper: #fbfeff;
    --tbs-rsvp-paper-2: #eefaff;
    --tbs-rsvp-glow: rgba(143,208,239,.22);
    --tbs-rsvp-btn-1: #8fd0ef;
    --tbs-rsvp-btn-2: #57b6df;
    --tbs-rsvp-accent: #f1c75d;
    --tbs-rsvp-shadow: 0 28px 70px rgba(87,182,223,.16);
}

/* Ventana RSVP más angosta y con textura tipo papel premium */
.tbs-ms-rsvp-card {
    width: min(100%, 760px) !important;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: clamp(34px, 4.6vw, 58px) clamp(32px, 5vw, 64px) !important;
    border-radius: 34px !important;
    border: 1px solid var(--tbs-rsvp-line-strong) !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.78)),
        repeating-linear-gradient(
            0deg,
            rgba(92,72,62,.020) 0px,
            rgba(92,72,62,.020) 1px,
            transparent 1px,
            transparent 15px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(92,72,62,.012) 0px,
            rgba(92,72,62,.012) 1px,
            transparent 1px,
            transparent 18px
        ),
        radial-gradient(circle at 8% 10%, var(--tbs-rsvp-glow), transparent 34%),
        linear-gradient(180deg, var(--tbs-rsvp-paper), var(--tbs-rsvp-paper-2)) !important;
    box-shadow:
        var(--tbs-rsvp-shadow),
        inset 0 1px 0 rgba(255,255,255,.92),
        inset 0 -16px 30px rgba(255,255,255,.42) !important;
    backdrop-filter: blur(12px) saturate(1.08) !important;
    -webkit-backdrop-filter: blur(12px) saturate(1.08) !important;
}

/* Borde interior elegante */
.tbs-ms-rsvp-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 18px !important;
    border-radius: 26px !important;
    border: 1px solid var(--tbs-rsvp-line) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

/* Decoración circular suave */
.tbs-ms-rsvp-card::after {
    content: "" !important;
    position: absolute !important;
    right: -72px !important;
    bottom: -86px !important;
    width: 230px !important;
    height: 230px !important;
    border-radius: 999px !important;
    background:
        radial-gradient(circle, var(--tbs-rsvp-glow), rgba(255,255,255,0) 68%) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

/* Corazón / detalle superior más fino */
.tbs-ms-rsvp-card > .tbs-rsvp-heart,
.tbs-ms-rsvp-card .tbs-rsvp-icon,
.tbs-ms-rsvp-card > span:first-child {
    color: var(--tbs-rsvp-accent) !important;
}

/* Título principal del formulario */
.tbs-rsvp-header {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 auto 12px !important;
    max-width: 620px !important;
    color: var(--tbs-rsvp-ink) !important;
    font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif !important;
    font-size: clamp(46px, 4.8vw, 72px) !important;
    font-weight: 500 !important;
    line-height: .98 !important;
    letter-spacing: -0.045em !important;
    text-align: center !important;
    text-wrap: balance !important;
}

.tbs-rsvp-sub {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 auto 34px !important;
    max-width: 560px !important;
    color: var(--tbs-rsvp-muted) !important;
    font-size: clamp(18px, 1.35vw, 22px) !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    text-align: center !important;
    text-wrap: balance !important;
}

/* Formulario */
.tbs-ms-rsvp-card .fluentform,
.tbs-ms-rsvp-card form {
    position: relative !important;
    z-index: 2 !important;
}

.tbs-ms-rsvp-card .ff-el-group {
    margin-bottom: 24px !important;
}

/* Labels más grandes y legibles */
.tbs-ms-rsvp-card label,
.tbs-ms-rsvp-card .ff-el-input--label label,
.tbs-ms-rsvp-card .ff-el-form-check-label {
    color: var(--tbs-rsvp-label) !important;
    font-family: "Roboto", "Inter", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.01em !important;
}

.tbs-ms-rsvp-card .ff-el-input--label {
    margin-bottom: 10px !important;
}

/* Inputs con textura ligera */
.tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tbs-ms-rsvp-card select,
.tbs-ms-rsvp-card textarea {
    width: 100% !important;
    min-height: 62px !important;
    padding: 16px 20px !important;
    border-radius: 20px !important;
    border: 1px solid var(--tbs-rsvp-line-strong) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.66)),
        repeating-linear-gradient(
            0deg,
            rgba(92,72,62,.010) 0px,
            rgba(92,72,62,.010) 1px,
            transparent 1px,
            transparent 14px
        ),
        linear-gradient(180deg, #fff, var(--tbs-rsvp-paper)) !important;
    color: var(--tbs-rsvp-ink) !important;
    font-family: "Roboto", "Inter", Arial, sans-serif !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    outline: none !important;
    box-shadow:
        0 12px 26px rgba(0,0,0,.035),
        inset 0 1px 0 rgba(255,255,255,.90) !important;
}

.tbs-ms-rsvp-card textarea {
    min-height: 96px !important;
    resize: vertical !important;
}

.tbs-ms-rsvp-card input:focus,
.tbs-ms-rsvp-card select:focus,
.tbs-ms-rsvp-card textarea:focus {
    border-color: var(--tbs-rsvp-line-strong) !important;
    box-shadow:
        0 0 0 4px rgba(255,255,255,.64),
        0 12px 26px rgba(0,0,0,.045),
        0 0 0 1px var(--tbs-rsvp-line-strong) !important;
}

/* Radios más premium y legibles */
.tbs-ms-rsvp-card input[type="radio"],
.tbs-ms-rsvp-card input[type="checkbox"] {
    width: 21px !important;
    height: 21px !important;
    margin-right: 9px !important;
    accent-color: var(--tbs-rsvp-btn-2) !important;
}

.tbs-ms-rsvp-card .ff-el-form-check {
    margin: 10px 0 !important;
}

.tbs-ms-rsvp-card .ff-el-form-check-label {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--tbs-rsvp-muted) !important;
}

/* Botón */
.tbs-ms-rsvp-card .ff-btn-submit,
.tbs-ms-rsvp-card button[type="submit"],
.tbs-ms-rsvp-card input[type="submit"] {
    width: 100% !important;
    min-height: 68px !important;
    margin-top: 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.45) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-family: "Roboto", "Inter", Arial, sans-serif !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: -0.01em !important;
    background:
        radial-gradient(circle at 25% 18%, rgba(255,255,255,.25), transparent 30%),
        linear-gradient(135deg, var(--tbs-rsvp-btn-1), var(--tbs-rsvp-btn-2)) !important;
    box-shadow:
        0 16px 34px rgba(0,0,0,.12),
        inset 0 1px 0 rgba(255,255,255,.28) !important;
}

/* =========================
   Responsive
========================= */
@media (max-width: 1024px) {
    .tbs-ms-rsvp-card {
        width: min(100%, 720px) !important;
        max-width: 720px !important;
    }
}

@media (max-width: 767px) {
    .tbs-ms-rsvp-card {
        width: calc(100% - 28px) !important;
        max-width: 430px !important;
        padding: 34px 22px 28px !important;
        border-radius: 28px !important;
        background:
            linear-gradient(135deg, rgba(255,255,255,.74), rgba(255,255,255,.50)),
            repeating-linear-gradient(
                0deg,
                rgba(92,72,62,.018) 0px,
                rgba(92,72,62,.018) 1px,
                transparent 1px,
                transparent 14px
            ),
            radial-gradient(circle at 8% 8%, var(--tbs-rsvp-glow), transparent 38%),
            linear-gradient(180deg, var(--tbs-rsvp-paper), var(--tbs-rsvp-paper-2)) !important;
        box-shadow:
            0 20px 48px rgba(70,120,150,.09),
            inset 0 1px 0 rgba(255,255,255,.72) !important;
        backdrop-filter: blur(8px) saturate(1.05) !important;
        -webkit-backdrop-filter: blur(8px) saturate(1.05) !important;
    }

    .tbs-ms-rsvp-card::before {
        inset: 10px !important;
        border-radius: 20px !important;
    }

    .tbs-ms-rsvp-card::after {
        right: -88px !important;
        bottom: -92px !important;
        width: 190px !important;
        height: 190px !important;
        opacity: .72 !important;
    }

    .tbs-rsvp-header {
        font-size: clamp(38px, 11vw, 52px) !important;
        margin-bottom: 10px !important;
    }

    .tbs-rsvp-sub {
        font-size: 17px !important;
        line-height: 1.48 !important;
        margin-bottom: 28px !important;
    }

    .tbs-ms-rsvp-card .ff-el-group {
        margin-bottom: 22px !important;
    }

    .tbs-ms-rsvp-card label,
    .tbs-ms-rsvp-card .ff-el-input--label label,
    .tbs-ms-rsvp-card .ff-el-form-check-label {
        font-size: 16px !important;
    }

    .tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
    .tbs-ms-rsvp-card select,
    .tbs-ms-rsvp-card textarea {
        min-height: 58px !important;
        font-size: 16px !important;
        border-radius: 18px !important;
        background:
            linear-gradient(180deg, rgba(255,255,255,.68), rgba(255,255,255,.48)),
            linear-gradient(180deg, #fff, var(--tbs-rsvp-paper)) !important;
    }

    .tbs-ms-rsvp-card .ff-btn-submit,
    .tbs-ms-rsvp-card button[type="submit"],
    .tbs-ms-rsvp-card input[type="submit"] {
        min-height: 62px !important;
        font-size: 17px !important;
    }
}

/* =========================================================
   V69 - MOBILE SCROLL SAFE FIX
   Reemplaza V68. No usa body fixed ni contenedor fixed.
   Objetivo: evitar rebote sin bloquear la carga del micrositio.
========================================================= */

/* Base segura */
html,
body {
    overflow-x: clip !important;
    max-width: 100% !important;
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
}

body {
    overscroll-behavior-x: none !important;
}

/* Micrositio: scroll natural del documento */
.tbs-ms,
.tbs-micrositio-publico,
.tbs-publico-nube-amor,
.tbs-publico-pequeno-milagro,
.tbs-micrositio-nube-amor,
.tbs-micrositio-pequeno-milagro,
.tbs-micrositio-diseno-pequeno-milagro,
.tbs-micrositio-diseno-pequeno_milagro {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    overscroll-behavior-x: none !important;
    contain: none !important;
}

/* Elimina scroll-snap heredado */
.tbs-ms *,
.tbs-micrositio-publico * {
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
}

/* Secciones sin micro-scroll interno */
.tbs-ms section,
.tbs-ms .elementor-section,
.tbs-ms .elementor-container,
.tbs-ms .elementor-column,
.tbs-ms .elementor-widget-wrap,
.tbs-ms .elementor-widget-container,
.tbs-ms .tbs-ms-section,
.tbs-ms .tbs-ms-hero,
.tbs-ms .tbs-ms-details-card,
.tbs-ms .tbs-ms-rsvp-card,
.tbs-ms .tbs-ms-location-card,
.tbs-ms .tbs-ms-module-card,
.tbs-ms .tbs-ms-guestbook-card,
.tbs-ms .tbs-ms-countdown-card,
.tbs-ms .tbs-ms-closing-card,
.tbs-micrositio-publico section,
.tbs-micrositio-publico .elementor-section,
.tbs-micrositio-publico .elementor-container,
.tbs-micrositio-publico .elementor-column,
.tbs-micrositio-publico .elementor-widget-wrap,
.tbs-micrositio-publico .elementor-widget-container {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    overscroll-behavior: auto !important;
}

/* Móvil */
@media (max-width: 767px) {
    html {
        height: auto !important;
        min-height: 100% !important;
        overflow-x: clip !important;
        overflow-y: auto !important;
        overscroll-behavior-y: none !important;
        -webkit-text-size-adjust: 100% !important;
    }

    body {
        position: static !important;
        inset: auto !important;
        height: auto !important;
        min-height: 100% !important;
        overflow-x: clip !important;
        overflow-y: auto !important;
        overscroll-behavior-y: none !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }

    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-publico-nube-amor,
    .tbs-publico-pequeno-milagro,
    .tbs-micrositio-nube-amor,
    .tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-diseno-pequeno_milagro {
        position: relative !important;
        inset: auto !important;
        height: auto !important;
        min-height: 100svh !important;
        max-height: none !important;
        overflow-x: clip !important;
        overflow-y: visible !important;
        overscroll-behavior-y: none !important;
        -webkit-overflow-scrolling: auto !important;
        touch-action: pan-y !important;
        scroll-snap-type: none !important;
        contain: none !important;
        transform: none !important;
    }

    /*
       iOS / WhatsApp WebView:
       Los fondos fixed y filtros pesados durante scroll producen saltos.
    */
    .tbs-ms,
    .tbs-ms::before,
    .tbs-ms::after,
    .tbs-micrositio-publico,
    .tbs-micrositio-publico::before,
    .tbs-micrositio-publico::after,
    .tbs-ms-hero,
    .tbs-ms-hero::before,
    .tbs-ms-hero::after {
        background-attachment: scroll !important;
    }

    /*
       Evitar que tarjetas grandes generen micro-scroll.
       Excepción: textarea, mapas e iframes siguen funcionando.
    */
    .tbs-ms-rsvp-card,
    .tbs-ms-location-card,
    .tbs-ms-guestbook-card,
    .tbs-ms-module-card,
    .tbs-ms-details-card,
    .tbs-ms-countdown-card,
    .tbs-ms-closing-card {
        max-height: none !important;
        overflow: visible !important;
        overscroll-behavior: auto !important;
    }

    textarea {
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
    }

    iframe,
    .gm-style,
    .tbs-map,
    .tbs-location-map,
    .tbs-ms-map {
        touch-action: auto !important;
    }

    /*
       Espacio final para que no se sienta un corte seco al final.
       No crea contenedor fixed ni bloquea carga.
    */
    .tbs-ms::after,
    .tbs-micrositio-publico::after {
        content: "" !important;
        display: block !important;
        height: max(42px, env(safe-area-inset-bottom)) !important;
        pointer-events: none !important;
    }
}

/* Clase JS segura */
html.tbs-scroll-safe-ready,
html.tbs-scroll-safe-ready body {
    scroll-snap-type: none !important;
    overflow-x: clip !important;
}

@media (max-width: 767px) {
    html.tbs-scroll-safe-ready,
    html.tbs-scroll-safe-ready body {
        overscroll-behavior-y: none !important;
        touch-action: pan-y !important;
    }
}

/* =========================================================
   V70 - WISHLIST / REGALOS FÍSICOS POR DISEÑO DE MICROSITIO
   Las tarjetas y botones de Wishlist toman la paleta del diseño
   seleccionado: Nube Amor o Pequeño Milagro.
========================================================= */

/* =========================
   VARIABLES POR DISEÑO
========================= */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-wishlist-design-nube-amor,
    html.tbs-wishlist-design-nube-amor
) {
    --tbs-wish-ink: #6f4c43;
    --tbs-wish-muted: #806a63;
    --tbs-wish-accent: #c67a70;
    --tbs-wish-accent-2: #d99081;
    --tbs-wish-accent-dark: #bd776b;
    --tbs-wish-soft: #fff4ee;
    --tbs-wish-soft-2: #fffaf6;
    --tbs-wish-border: rgba(198,122,112,.22);
    --tbs-wish-border-strong: rgba(198,122,112,.34);
    --tbs-wish-shadow: rgba(111,76,67,.13);
    --tbs-wish-pill-bg: rgba(255,244,238,.92);
    --tbs-wish-pill-text: #bd776b;
    --tbs-wish-button-text: #ffffff;
}

:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro,
    body.tbs-publico-pequeno-milagro,
    body.tbs-micrositio-pequeno-milagro,
    body.tbs-micrositio-diseno-pequeno-milagro,
    body.tbs-micrositio-diseno-pequeno_milagro,
    body.tbs-wishlist-design-pequeno-milagro,
    html.tbs-wishlist-design-pequeno-milagro
) {
    --tbs-wish-ink: #2f4e5c;
    --tbs-wish-muted: #5f7884;
    --tbs-wish-accent: #4d9fbd;
    --tbs-wish-accent-2: #8fd0ef;
    --tbs-wish-accent-dark: #57b6df;
    --tbs-wish-soft: #eefaff;
    --tbs-wish-soft-2: #fbfeff;
    --tbs-wish-border: rgba(77,159,189,.22);
    --tbs-wish-border-strong: rgba(77,159,189,.36);
    --tbs-wish-shadow: rgba(77,159,189,.16);
    --tbs-wish-pill-bg: rgba(238,250,255,.94);
    --tbs-wish-pill-text: #4d9fbd;
    --tbs-wish-button-text: #ffffff;
}

/* =========================
   CONTENEDOR WISHLIST
========================= */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-public,
    .tbs-wishlist-grid,
    .tbs-wishlist-list,
    .tbs-ms-wishlist,
    .tbs-ms-wishlist-grid,
    .tbs-regalos-fisicos,
    .tbs-gift-list,
    .tbs-gifts-list
) {
    --tbs-card-radius: 28px;
}

/* Ventana principal de Wishlist */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-wrapper,
    .tbs-wishlist-public,
    .tbs-ms-wishlist-panel,
    .tbs-ms-wishlist-card,
    .tbs-wishlist-list-wrap,
    .tbs-wishlist-section-card,
    .tbs-wishlist-container
) {
    background:
        radial-gradient(circle at 0% 0%, rgba(255,255,255,.56), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.58)),
        linear-gradient(180deg, var(--tbs-wish-soft-2), var(--tbs-wish-soft)) !important;
    border: 1px solid var(--tbs-wish-border) !important;
    box-shadow:
        0 26px 68px var(--tbs-wish-shadow),
        inset 0 1px 0 rgba(255,255,255,.82) !important;
    backdrop-filter: blur(10px) saturate(1.04) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.04) !important;
}

/* Título y subtítulo */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-title,
    .tbs-ms-wishlist-title,
    .tbs-wishlist-section h2,
    .tbs-ms-wishlist h2,
    #wishlist h2
) {
    color: var(--tbs-wish-ink) !important;
    -webkit-text-fill-color: var(--tbs-wish-ink) !important;
}

:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-subtitle,
    .tbs-ms-wishlist-subtitle,
    .tbs-wishlist-section p,
    .tbs-ms-wishlist p
) {
    color: var(--tbs-wish-muted) !important;
}

/* =========================
   TARJETAS DE REGALO
========================= */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card,
    .tbs-regalo-card,
    .tbs-regalo-public-card,
    .tbs-wish-card,
    .tbs-gift-card,
    .tbs-ms-gift-card,
    .tbs-wishlist-item,
    .tbs-regalo-item
) {
    background:
        radial-gradient(circle at 0% 0%, rgba(255,255,255,.62), transparent 36%),
        radial-gradient(circle at 100% 100%, var(--tbs-wish-soft), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.62)),
        linear-gradient(180deg, var(--tbs-wish-soft-2), var(--tbs-wish-soft)) !important;
    border: 1px solid var(--tbs-wish-border) !important;
    box-shadow:
        0 22px 50px var(--tbs-wish-shadow),
        inset 0 1px 0 rgba(255,255,255,.86) !important;
    color: var(--tbs-wish-ink) !important;
    overflow: hidden !important;
}

/* Imagen de la tarjeta */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card img,
    .tbs-regalo-card img,
    .tbs-regalo-public-card img,
    .tbs-wish-card img,
    .tbs-gift-card img,
    .tbs-ms-gift-card img,
    .tbs-wishlist-item img,
    .tbs-regalo-item img
) {
    border: 1px solid rgba(255,255,255,.82) !important;
    box-shadow:
        0 14px 30px rgba(0,0,0,.045),
        inset 0 1px 0 rgba(255,255,255,.74) !important;
}

/* Nombre y precio */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card h3,
    .tbs-regalo-card h3,
    .tbs-regalo-public-card h3,
    .tbs-wish-card h3,
    .tbs-gift-card h3,
    .tbs-ms-gift-card h3,
    .tbs-wishlist-item h3,
    .tbs-regalo-item h3,
    .tbs-regalo-nombre,
    .tbs-wishlist-name,
    .tbs-gift-name
) {
    color: var(--tbs-wish-ink) !important;
    -webkit-text-fill-color: var(--tbs-wish-ink) !important;
}

:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-regalo-precio,
    .tbs-wishlist-price,
    .tbs-gift-price,
    .tbs-wishlist-card .price,
    .tbs-regalo-card .price,
    .tbs-gift-card .price
) {
    color: var(--tbs-wish-accent) !important;
    -webkit-text-fill-color: var(--tbs-wish-accent) !important;
}

/* Badges */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-regalo-status,
    .tbs-wishlist-status,
    .tbs-gift-status,
    .tbs-reserved-badge,
    .tbs-disponible-badge,
    .tbs-regalo-badge,
    .tbs-wish-badge,
    .tbs-gift-badge,
    .tbs-regalo-estado
) {
    color: var(--tbs-wish-pill-text) !important;
    -webkit-text-fill-color: var(--tbs-wish-pill-text) !important;
    background: var(--tbs-wish-pill-bg) !important;
    border: 1px solid var(--tbs-wish-border) !important;
    box-shadow: 0 10px 22px var(--tbs-wish-shadow) !important;
}

/* Inputs dentro de Wishlist */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card input,
    .tbs-regalo-card input,
    .tbs-regalo-public-card input,
    .tbs-wish-card input,
    .tbs-gift-card input,
    .tbs-ms-gift-card input,
    .tbs-wishlist-item input,
    .tbs-regalo-item input
) {
    background:
        linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.70)),
        linear-gradient(180deg, var(--tbs-wish-soft-2), var(--tbs-wish-soft)) !important;
    border: 1px solid var(--tbs-wish-border) !important;
    color: var(--tbs-wish-ink) !important;
    box-shadow:
        0 12px 24px rgba(0,0,0,.035),
        inset 0 1px 0 rgba(255,255,255,.82) !important;
}

:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card input::placeholder,
    .tbs-regalo-card input::placeholder,
    .tbs-regalo-public-card input::placeholder,
    .tbs-wish-card input::placeholder,
    .tbs-gift-card input::placeholder,
    .tbs-ms-gift-card input::placeholder,
    .tbs-wishlist-item input::placeholder,
    .tbs-regalo-item input::placeholder
) {
    color: color-mix(in srgb, var(--tbs-wish-muted) 72%, white) !important;
}

/* =========================
   BOTONES WISHLIST
========================= */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-wishlist-card button,
    .tbs-regalo-card button,
    .tbs-regalo-public-card button,
    .tbs-wish-card button,
    .tbs-gift-card button,
    .tbs-ms-gift-card button,
    .tbs-wishlist-item button,
    .tbs-regalo-item button,
    .tbs-wishlist-card .button,
    .tbs-regalo-card .button,
    .tbs-regalo-public-card .button,
    .tbs-wish-card .button,
    .tbs-gift-card .button,
    .tbs-ms-gift-card .button,
    .tbs-wishlist-item .button,
    .tbs-regalo-item .button,
    .tbs-btn-ver-regalo,
    .tbs-btn-reservar,
    .tbs-regalo-btn,
    .tbs-wishlist-btn,
    .tbs-gift-btn,
    a.tbs-btn-ver-regalo,
    a.tbs-regalo-btn,
    a.tbs-wishlist-btn,
    a.tbs-gift-btn
) {
    color: var(--tbs-wish-button-text) !important;
    -webkit-text-fill-color: var(--tbs-wish-button-text) !important;
    border: 1px solid rgba(255,255,255,.42) !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.26), transparent 34%),
        linear-gradient(135deg, var(--tbs-wish-accent-2), var(--tbs-wish-accent-dark)) !important;
    box-shadow:
        0 14px 28px var(--tbs-wish-shadow),
        inset 0 1px 0 rgba(255,255,255,.34) !important;
    text-shadow: none !important;
}

/* Botón secundario Ver regalo puede ser más suave, pero con paleta del diseño */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-btn-ver-regalo,
    a.tbs-btn-ver-regalo,
    .tbs-regalo-card a:not(.tbs-btn-reservar),
    .tbs-wishlist-card a:not(.tbs-btn-reservar),
    .tbs-gift-card a:not(.tbs-btn-reservar)
) {
    color: var(--tbs-wish-accent) !important;
    -webkit-text-fill-color: var(--tbs-wish-accent) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.62)),
        linear-gradient(135deg, var(--tbs-wish-soft-2), var(--tbs-wish-soft)) !important;
    border: 1px solid var(--tbs-wish-border) !important;
    box-shadow:
        0 10px 22px rgba(0,0,0,.045),
        inset 0 1px 0 rgba(255,255,255,.80) !important;
}

/* Reservar / Regala siempre primario */
:is(
    .tbs-ms,
    .tbs-micrositio-publico
) :is(
    .tbs-btn-reservar,
    .tbs-regalo-reservar,
    .tbs-wishlist-reservar,
    button[name*="reserv"],
    button[class*="reserv"],
    button[class*="regala"],
    .tbs-regalo-card button,
    .tbs-wishlist-card button,
    .tbs-gift-card button
) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.26), transparent 34%),
        linear-gradient(135deg, var(--tbs-wish-accent-2), var(--tbs-wish-accent-dark)) !important;
    border-color: rgba(255,255,255,.42) !important;
}

/* Hover desktop */
@media (hover: hover) {
    :is(
        .tbs-ms,
        .tbs-micrositio-publico
    ) :is(
        .tbs-wishlist-card button,
        .tbs-regalo-card button,
        .tbs-regalo-public-card button,
        .tbs-wish-card button,
        .tbs-gift-card button,
        .tbs-ms-gift-card button,
        .tbs-btn-reservar,
        .tbs-regalo-reservar,
        .tbs-wishlist-reservar
    ):hover {
        transform: translateY(-1px) !important;
        filter: saturate(1.05) brightness(1.015) !important;
    }
}

/* =========================
   PEQUEÑO MILAGRO: FORZAR CELESTE EN CASOS HEREDADOS
========================= */
:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) :is(
    .tbs-regalo-precio,
    .tbs-wishlist-price,
    .tbs-gift-price,
    .tbs-wishlist-card .price,
    .tbs-regalo-card .price,
    .tbs-gift-card .price,
    .tbs-reserved-badge,
    .tbs-disponible-badge,
    .tbs-regalo-status,
    .tbs-regalo-estado
) {
    color: #4d9fbd !important;
    -webkit-text-fill-color: #4d9fbd !important;
}

/* Botón primario Pequeño Milagro */
:is(
    .tbs-ms.tbs-publico-pequeno-milagro,
    .tbs-ms.tbs-micrositio-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-ms.tbs-micrositio-diseno-pequeno_milagro,
    .tbs-micrositio-publico.tbs-publico-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno-milagro,
    .tbs-micrositio-publico.tbs-micrositio-diseno-pequeno_milagro
) :is(
    .tbs-btn-reservar,
    .tbs-regalo-reservar,
    .tbs-wishlist-reservar,
    button[name*="reserv"],
    button[class*="reserv"],
    button[class*="regala"]
) {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.28), transparent 34%),
        linear-gradient(135deg, #8fd0ef, #57b6df) !important;
    border-color: rgba(255,255,255,.48) !important;
    box-shadow:
        0 14px 28px rgba(77,159,189,.18),
        inset 0 1px 0 rgba(255,255,255,.34) !important;
}

/* =========================
   MÓVIL
========================= */
@media (max-width: 767px) {
    :is(
        .tbs-ms,
        .tbs-micrositio-publico
    ) :is(
        .tbs-wishlist-card,
        .tbs-regalo-card,
        .tbs-regalo-public-card,
        .tbs-wish-card,
        .tbs-gift-card,
        .tbs-ms-gift-card,
        .tbs-wishlist-item,
        .tbs-regalo-item
    ) {
        background:
            radial-gradient(circle at 0% 0%, rgba(255,255,255,.52), transparent 36%),
            radial-gradient(circle at 100% 100%, var(--tbs-wish-soft), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.74), rgba(255,255,255,.52)),
            linear-gradient(180deg, var(--tbs-wish-soft-2), var(--tbs-wish-soft)) !important;
        border-color: var(--tbs-wish-border) !important;
        box-shadow:
            0 18px 40px var(--tbs-wish-shadow),
            inset 0 1px 0 rgba(255,255,255,.76) !important;
    }

    :is(
        .tbs-ms,
        .tbs-micrositio-publico
    ) :is(
        .tbs-wishlist-card button,
        .tbs-regalo-card button,
        .tbs-regalo-public-card button,
        .tbs-wish-card button,
        .tbs-gift-card button,
        .tbs-ms-gift-card button,
        .tbs-btn-reservar,
        .tbs-regalo-reservar,
        .tbs-wishlist-reservar
    ) {
        min-height: 52px !important;
        border-radius: 999px !important;
        font-weight: 900 !important;
    }
}


/* =========================================================
   NUBE AMOR / NUBE AMORE - AJUSTES FINALES V5
   - Elimina ventana detrás del título del hero en desktop/móvil.
   - Botones de navegación en tonos rosa + celeste.
   - Quita doble ventana de "Deja tu mensaje".
   - Mantiene el decor del cuerpo fijo sin moverse con scroll.
   - Mejora RSVP, formulario y botón de confirmar asistencia.
========================================================= */

html:has(.tbs-ms.tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-publico) {
    background-color: #fff8ec !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.50), rgba(255,248,236,.60)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
}

body.tbs-publico-nube-amor,
body.tbs-micrositio-nube-amor,
body.tbs-public-microsite-design-nube-amor,
body.tbs-ms-live-nube-amor,
body.tbs-publico-nube-amore,
body.tbs-micrositio-nube-amore {
    --tbs-ms-pink: #f7cfe0 !important;
    --tbs-ms-pink-dark: #c97892 !important;
    --tbs-ms-rose-deep: #b96f82 !important;
    --tbs-ms-blue: #a9d8f5 !important;
    --tbs-ms-blue-dark: #63b7e8 !important;
    --tbs-ms-sky-soft: #eaf7ff !important;
    --tbs-ms-gold: #d9b76f !important;
    --tbs-ms-cream: #fff8ec !important;
    --tbs-ms-mint: #cdefe5 !important;
    --tbs-ms-lilac: #e6ddf8 !important;
    --tbs-ms-ink: #4e6172 !important;
    --tbs-ms-muted: #7c8a96 !important;
    --tbs-ms-border: rgba(169,216,245,.35) !important;
    --tbs-ms-shadow: 0 30px 86px rgba(78,97,114,.14) !important;
    --tbs-ms-shadow-soft: 0 18px 46px rgba(78,97,114,.10) !important;
}

.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-publico-nube-amore,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-nube-amore,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amore,
.tbs-micrositio-publico.tbs-micrositio-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amore {
    color: var(--tbs-ms-ink) !important;
    background: transparent !important;
}

/* Fondo del cuerpo del micrositio: fijo, sin capa que se mueva con el scroll */
.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-publico-nube-amore::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amore::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amore::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amore::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: -3 !important;
    pointer-events: none !important;
    opacity: .82 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.52), rgba(255,248,236,.60)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
    transform: translateZ(0) !important;
}

.tbs-ms.tbs-micrositio-publico::after,
.tbs-ms.tbs-publico-nube-amor::after,
.tbs-ms.tbs-publico-nube-amore::after,
.tbs-ms.tbs-micrositio-nube-amor::after,
.tbs-ms.tbs-micrositio-nube-amore::after,
.tbs-micrositio-publico.tbs-publico-nube-amor::after,
.tbs-micrositio-publico.tbs-publico-nube-amore::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amore::after {
    content: none !important;
    display: none !important;
}

/* HERO: quitar ventana blanca detrás del título */
.tbs-ms .tbs-ms-hero {
    background-image:
        linear-gradient(90deg, rgba(255,255,255,.08), rgba(255,255,255,.54) 42%, rgba(255,255,255,.38)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/hero-Nube-Amor.jpg') !important;
    background-size: cover, cover !important;
    background-position: center center, center center !important;
    background-repeat: no-repeat, no-repeat !important;
}

.tbs-ms .tbs-ms-hero-copy,
.tbs-ms .tbs-ms-hero-copy:hover,
.tbs-ms .tbs-ms-hero-copy:focus,
.tbs-ms .tbs-ms-hero-copy:focus-within {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: clamp(18px, 3vw, 32px) !important;
}

.tbs-ms .tbs-ms-hero-copy::before,
.tbs-ms .tbs-ms-hero-copy::after {
    content: none !important;
    display: none !important;
}

.tbs-ms .tbs-ms-hero h1 {
    color: #4e6172 !important;
    text-shadow: 0 5px 28px rgba(255,255,255,.86), 0 1px 0 rgba(255,255,255,.72) !important;
}

.tbs-ms .tbs-ms-hero h1 span {
    color: #d998b8 !important;
    text-shadow: 0 5px 24px rgba(255,255,255,.86), 0 14px 38px rgba(217,152,184,.18) !important;
}

.tbs-ms .tbs-ms-hero-text {
    color: #69606a !important;
    text-shadow: 0 2px 14px rgba(255,255,255,.82) !important;
}

/* Tarjetas FECHA / HORA / LUGAR con lectura suave */
.tbs-ms .tbs-ms-meta > div {
    background:
        radial-gradient(circle at 100% 100%, rgba(247,207,224,.28), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.82), rgba(234,247,255,.62)) !important;
    border: 1px solid rgba(169,216,245,.44) !important;
    box-shadow: 0 18px 44px rgba(78,97,114,.10), inset 0 1px 0 rgba(255,255,255,.74) !important;
}

.tbs-ms .tbs-ms-meta strong {
    color: #c97892 !important;
}

.tbs-ms .tbs-ms-meta span {
    color: #4e6172 !important;
}

/* Botones principales del hero */
.tbs-ms .tbs-ms-btn-primary,
.tbs-ms .ff-btn-submit,
.tbs-ms button[type="submit"],
.tbs-ms input[type="submit"] {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.32), transparent 30%),
        linear-gradient(135deg, #f7cfe0 0%, #d98aa3 54%, #c97892 100%) !important;
    border: 1px solid rgba(255,255,255,.42) !important;
    box-shadow: 0 18px 42px rgba(201,120,146,.26), inset 0 1px 0 rgba(255,255,255,.30) !important;
}

.tbs-ms .tbs-ms-btn-soft,
.tbs-ms .tbs-ms-btn-ghost {
    color: #b96f82 !important;
    -webkit-text-fill-color: #b96f82 !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.88), rgba(234,247,255,.84)) !important;
    border: 1px solid rgba(169,216,245,.42) !important;
    box-shadow: 0 14px 32px rgba(78,97,114,.10), inset 0 1px 0 rgba(255,255,255,.82) !important;
}

/* Quicknav: tonos rosa y celeste, más balanceados */
.tbs-ms .tbs-ms-quicknav {
    gap: 14px !important;
    padding: 18px !important;
    border-radius: 34px !important;
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    box-shadow: 0 24px 70px rgba(78,97,114,.14), inset 0 1px 0 rgba(255,255,255,.80) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
}

.tbs-ms .tbs-ms-quicknav a {
    min-height: 76px !important;
    padding: 13px 18px !important;
    gap: 12px !important;
    border-radius: 999px !important;
    color: #4e6172 !important;
    background:
        radial-gradient(circle at 14% 14%, rgba(255,255,255,.78), transparent 28%),
        linear-gradient(135deg, rgba(169,216,245,.96) 0%, rgba(205,239,229,.88) 48%, rgba(247,207,224,.96) 100%) !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    box-shadow: 0 16px 38px rgba(99,183,232,.18), inset 0 1px 0 rgba(255,255,255,.62) !important;
}

.tbs-ms .tbs-ms-quicknav a:hover,
.tbs-ms .tbs-ms-quicknav a:focus-visible {
    transform: translateY(-2px) !important;
    color: #b96f82 !important;
    background:
        radial-gradient(circle at 14% 14%, rgba(255,255,255,.86), transparent 28%),
        linear-gradient(135deg, rgba(247,207,224,.98) 0%, rgba(234,247,255,.92) 46%, rgba(169,216,245,.98) 100%) !important;
    box-shadow: 0 22px 48px rgba(201,120,146,.18), inset 0 1px 0 rgba(255,255,255,.66) !important;
}

.tbs-ms .tbs-ms-quicknav span {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    border-radius: 17px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 10px 22px rgba(78,97,114,.09) !important;
    font-size: 21px !important;
}

.tbs-ms .tbs-ms-quicknav strong {
    font-size: clamp(14px, 1.05vw, 17px) !important;
    font-weight: 900 !important;
    letter-spacing: -.02em !important;
}

/* RSVP: ventana premium y botón de confirmar */
.tbs-ms .tbs-ms-rsvp-card,
.tbs-ms :is(.tbs-rsvp, .tbs-rsvp-section, .tbs-confirmacion, .tbs-confirmar-asistencia, .tbs-asistencia, .tbs-ms-rsvp, .tbs-ms-confirmacion, .tbs-ms-asistencia, .tbs-rsvp-card, .tbs-form-rsvp, .tbs-rsvp-form, .tbs-confirmacion-form, .tbs-asistencia-form, #fluentform_1) {
    border-radius: 38px !important;
    background:
        radial-gradient(circle at 14% 0%, rgba(169,216,245,.24), transparent 32%),
        radial-gradient(circle at 100% 100%, rgba(247,207,224,.24), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,248,236,.86)) !important;
    border: 1px solid rgba(169,216,245,.34) !important;
    box-shadow: 0 28px 76px rgba(78,97,114,.14), inset 0 1px 0 rgba(255,255,255,.86) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

.tbs-ms .tbs-ms-rsvp-card label,
.tbs-ms .tbs-ms-rsvp-card .ff-el-input--label label,
.tbs-ms :is(#fluentform_1, .tbs-form-rsvp, .tbs-rsvp-form, .tbs-confirmacion-form, .tbs-asistencia-form) :is(label, .ff-el-input--label label, .ff-el-form-check-label) {
    color: #4e6172 !important;
    -webkit-text-fill-color: #4e6172 !important;
    font-weight: 900 !important;
}

.tbs-ms .tbs-ms-rsvp-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tbs-ms .tbs-ms-rsvp-card select,
.tbs-ms .tbs-ms-rsvp-card textarea,
.tbs-ms :is(#fluentform_1, .tbs-form-rsvp, .tbs-rsvp-form, .tbs-confirmacion-form, .tbs-asistencia-form) :is(input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, select) {
    min-height: 54px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(169,216,245,.44) !important;
    background: rgba(255,255,255,.82) !important;
    color: #4e6172 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.90), 0 10px 24px rgba(78,97,114,.06) !important;
}

.tbs-ms .tbs-ms-rsvp-card .ff-btn-submit,
.tbs-ms :is(#fluentform_1, .tbs-form-rsvp, .tbs-rsvp-form, .tbs-confirmacion-form, .tbs-asistencia-form) :is(button[type="submit"], input[type="submit"], .ff-btn-submit) {
    width: min(100%, 440px) !important;
    min-height: 58px !important;
    margin: 18px auto 0 !important;
    display: flex !important;
    border-radius: 999px !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.34), transparent 30%),
        linear-gradient(135deg, #f7cfe0 0%, #d98aa3 52%, #c97892 100%) !important;
    box-shadow: 0 20px 46px rgba(201,120,146,.28), inset 0 1px 0 rgba(255,255,255,.34) !important;
}

/* Deja tu mensaje: quitar la segunda ventana exterior */
.tbs-ms .tbs-ms-guestbook-card,
.tbs-ms :is(.tbs-guestbook-card, .tbs-guestbook-section, .tbs-mensajes-section, .tbs-message-section, .tbs-deja-mensaje-section) {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
    overflow: visible !important;
}

.tbs-ms .tbs-ms-guestbook-card::before,
.tbs-ms .tbs-ms-guestbook-card::after,
.tbs-ms :is(.tbs-guestbook-card, .tbs-guestbook-section, .tbs-mensajes-section, .tbs-message-section, .tbs-deja-mensaje-section)::before,
.tbs-ms :is(.tbs-guestbook-card, .tbs-guestbook-section, .tbs-mensajes-section, .tbs-message-section, .tbs-deja-mensaje-section)::after {
    content: none !important;
    display: none !important;
}

/* Mantener una sola ventana: la del formulario/mensaje */
.tbs-ms :is(#fluentform_2, #fluentform_3, .tbs-form-mensaje, .tbs-mensaje-form, .tbs-guestbook-form, .tbs-deja-tu-mensaje, .tbs-deja-mensaje, .tbs-mensaje-form-wrap) {
    width: min(100%, 840px) !important;
    margin: 0 auto !important;
    padding: clamp(26px, 4vw, 46px) !important;
    border-radius: 38px !important;
    background:
        radial-gradient(circle at 100% 100%, rgba(169,216,245,.22), transparent 30%),
        radial-gradient(circle at 0% 0%, rgba(247,207,224,.20), transparent 32%),
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,248,236,.86)) !important;
    border: 1px solid rgba(247,207,224,.34) !important;
    box-shadow: 0 28px 76px rgba(78,97,114,.13), inset 0 1px 0 rgba(255,255,255,.86) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    overflow: hidden !important;
}

.tbs-ms :is(#fluentform_2, #fluentform_3, .tbs-form-mensaje, .tbs-mensaje-form, .tbs-guestbook-form) :is(input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, select) {
    min-height: 56px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(247,207,224,.38) !important;
    background: rgba(255,255,255,.84) !important;
    color: #4e6172 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.90), 0 10px 24px rgba(78,97,114,.06) !important;
}

.tbs-ms :is(#fluentform_2, #fluentform_3, .tbs-form-mensaje, .tbs-mensaje-form, .tbs-guestbook-form) :is(button[type="submit"], input[type="submit"], .ff-btn-submit) {
    width: min(100%, 430px) !important;
    min-height: 58px !important;
    margin: 18px auto 0 !important;
    display: flex !important;
    border-radius: 999px !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.34), transparent 30%),
        linear-gradient(135deg, #f7cfe0 0%, #d98aa3 52%, #c97892 100%) !important;
    border: 1px solid rgba(255,255,255,.42) !important;
    box-shadow: 0 20px 46px rgba(201,120,146,.28), inset 0 1px 0 rgba(255,255,255,.34) !important;
}

@media (max-width: 767px) {
    html:has(.tbs-ms.tbs-micrositio-publico),
    body:has(.tbs-ms.tbs-micrositio-publico) {
        background-attachment: scroll, scroll !important;
        background-image:
            linear-gradient(180deg, rgba(255,255,255,.54), rgba(255,248,236,.66)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
    }

    .tbs-ms.tbs-micrositio-publico::before,
    .tbs-ms.tbs-publico-nube-amor::before,
    .tbs-ms.tbs-publico-nube-amore::before,
    .tbs-ms.tbs-micrositio-nube-amor::before,
    .tbs-ms.tbs-micrositio-nube-amore::before,
    .tbs-micrositio-publico.tbs-publico-nube-amor::before,
    .tbs-micrositio-publico.tbs-publico-nube-amore::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amore::before {
        position: fixed !important;
        background:
            linear-gradient(180deg, rgba(255,255,255,.56), rgba(255,248,236,.68)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') center top / cover no-repeat !important;
    }

    .tbs-ms .tbs-ms-hero-copy,
    .tbs-ms .tbs-ms-hero-copy:hover,
    .tbs-ms .tbs-ms-hero-copy:focus,
    .tbs-ms .tbs-ms-hero-copy:focus-within {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 14px 8px !important;
    }

    .tbs-ms .tbs-ms-quicknav {
        grid-template-columns: 1fr 1fr !important;
        padding: 12px !important;
        gap: 10px !important;
        border-radius: 24px !important;
    }

    .tbs-ms .tbs-ms-quicknav a {
        min-height: 62px !important;
        padding: 10px 12px !important;
        justify-content: flex-start !important;
    }

    .tbs-ms .tbs-ms-quicknav span {
        width: 38px !important;
        height: 38px !important;
        flex-basis: 38px !important;
        font-size: 18px !important;
    }

    .tbs-ms .tbs-ms-quicknav strong {
        font-size: 13.5px !important;
    }

    .tbs-ms .tbs-ms-rsvp-card,
    .tbs-ms :is(.tbs-rsvp, .tbs-rsvp-section, .tbs-confirmacion, .tbs-confirmar-asistencia, .tbs-asistencia, .tbs-ms-rsvp, .tbs-ms-confirmacion, .tbs-ms-asistencia, .tbs-rsvp-card, .tbs-form-rsvp, .tbs-rsvp-form, .tbs-confirmacion-form, .tbs-asistencia-form, #fluentform_1),
    .tbs-ms :is(#fluentform_2, #fluentform_3, .tbs-form-mensaje, .tbs-mensaje-form, .tbs-guestbook-form, .tbs-deja-tu-mensaje, .tbs-deja-mensaje, .tbs-mensaje-form-wrap) {
        width: calc(100% - 22px) !important;
        padding: 22px 16px !important;
        border-radius: 28px !important;
    }
}

/* =========================================================
   NUBE AMOR - AJUSTE ESTABLE V6
   Base: versión estable indicada por el usuario.
   Objetivos:
   1) Quitar la ventana interna del formulario RSVP para que
      el formulario se acople a una sola tarjeta premium.
   2) Centrar realmente el modal de confirmar regalo virtual
      en desktop y móvil.
   3) Mantener paleta Nube Amor: rosa suave, celeste nube,
      crema, dorado champagne y texto azul grisáceo.
========================================================= */

/* ---------------------------------------------------------
   RSVP: elimina la tarjeta/ventana pequeña interna del form.
   Deja una sola ventana: .tbs-ms-rsvp-card.
--------------------------------------------------------- */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(
    form,
    .fluentform,
    #fluentform_1,
    .ff-el-form,
    .ff_form_instance_1,
    .ff_form_instance,
    .frm-fluent-form,
    .ff-default,
    .ff-el-group,
    .ff-el-input--content,
    .ff-el-form-check,
    .ff_t_c
) {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(
    form,
    .fluentform,
    #fluentform_1,
    .ff-el-form,
    .ff_form_instance_1,
    .ff_form_instance,
    .frm-fluent-form,
    .ff-default
) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card .ff-el-group {
    padding: 0 !important;
    margin-bottom: 22px !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Radios sin mini tarjetas internas, para evitar el bloque azul/transparente. */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(.ff-el-form-check, .ff_t_c) {
    padding: 6px 0 !important;
    margin: 6px 0 !important;
}

/* Campos RSVP integrados a la tarjeta principal, sin sensación de contenedor secundario. */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
    select,
    textarea
) {
    background:
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.82)),
        linear-gradient(135deg, rgba(234,247,255,.34), rgba(255,243,246,.28)) !important;
    border: 1px solid rgba(169,216,245,.48) !important;
    box-shadow:
        0 12px 26px rgba(78,97,114,.045),
        inset 0 1px 0 rgba(255,255,255,.94) !important;
}

:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(label, .ff-el-input--label label, .ff-el-form-check-label) {
    color: #4E6172 !important;
    -webkit-text-fill-color: #4E6172 !important;
}

/* Botón confirmar asistencia con acento Nube Amor, más limpio y visible. */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor
) .tbs-ms-rsvp-card :is(.ff-btn-submit, button[type="submit"], input[type="submit"]) {
    width: min(100%, 520px) !important;
    min-height: 64px !important;
    margin: 16px auto 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.30), transparent 30%),
        linear-gradient(135deg, #F7CFE0 0%, #A9D8F5 52%, #D9B76F 100%) !important;
    border: 1px solid rgba(255,255,255,.62) !important;
    box-shadow:
        0 18px 42px rgba(169,216,245,.26),
        0 10px 24px rgba(247,207,224,.18),
        inset 0 1px 0 rgba(255,255,255,.34) !important;
}

/* ---------------------------------------------------------
   Modal confirmar regalo: centrado real en viewport.
   Se fuerza el overlay a ocupar pantalla completa aunque el
   shortcode esté dentro de contenedores Elementor/Theme.
--------------------------------------------------------- */
html:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra.tbs-modal-open) {
    overflow: hidden !important;
}

#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
    display: none !important;
    place-items: center !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 2147483000 !important;
    background:
        radial-gradient(circle at 20% 15%, rgba(234,247,255,.58), transparent 34%),
        radial-gradient(circle at 82% 18%, rgba(247,207,224,.48), transparent 30%),
        linear-gradient(180deg, rgba(255,248,236,.76), rgba(234,247,255,.72)) !important;
    backdrop-filter: blur(16px) saturate(1.08) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.08) !important;
    transform: none !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
#tbs-modal-compra[style*="display: block"],
#tbs-modal-compra[style*="display:block"] {
    display: grid !important;
}

#tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: min(94vw, 680px) !important;
    max-width: 680px !important;
    max-height: min(88dvh, 780px) !important;
    margin: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    border-radius: 34px !important;
    border: 1px solid rgba(255,255,255,.84) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,243,214,.66), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(234,247,255,.82), transparent 36%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,236,.96)) !important;
    box-shadow:
        0 32px 92px rgba(78,97,114,.18),
        0 16px 42px rgba(247,207,224,.16),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    color: #C86F96 !important;
    -webkit-text-fill-color: #C86F96 !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: clamp(34px, 4.2vw, 48px) !important;
    font-weight: 700 !important;
}

#tbs-modal-compra .tbs-app-header p,
#tbs-modal-compra .tbs-app-method,
#tbs-modal-compra .tbs-app-error,
#tbs-modal-compra .tbs-upload span {
    color: #4E6172 !important;
    -webkit-text-fill-color: #4E6172 !important;
}

#tbs-modal-compra .tbs-app-method,
#tbs-modal-compra .tbs-upload {
    border: 1px solid rgba(169,216,245,.36) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(234,247,255,.54)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.92) !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea,
#tbs-modal-compra .tbs-upload input[type="file"] {
    border: 1px solid rgba(169,216,245,.40) !important;
    background: rgba(255,255,255,.92) !important;
    color: #4E6172 !important;
    -webkit-text-fill-color: #4E6172 !important;
    box-shadow: 0 10px 22px rgba(78,97,114,.045) !important;
}

#tbs-modal-compra .tbs-cancel-buy {
    color: #7C8A96 !important;
    -webkit-text-fill-color: #7C8A96 !important;
    background: rgba(255,255,255,.82) !important;
    border: 1px solid rgba(247,207,224,.42) !important;
}

#tbs-modal-compra .tbs-confirm-buy {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.30), transparent 30%),
        linear-gradient(135deg, #A9D8F5 0%, #F7CFE0 62%, #D9B76F 100%) !important;
    border: 1px solid rgba(255,255,255,.58) !important;
    box-shadow: 0 16px 34px rgba(169,216,245,.24) !important;
}

@media (max-width: 767px) {
    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-rsvp-card {
        width: calc(100% - 24px) !important;
        max-width: 430px !important;
        padding: 30px 18px 26px !important;
    }

    :is(
        .tbs-ms.tbs-publico-nube-amor,
        .tbs-ms.tbs-micrositio-nube-amor,
        .tbs-micrositio-publico.tbs-publico-nube-amor,
        .tbs-micrositio-publico.tbs-micrositio-nube-amor
    ) .tbs-ms-rsvp-card :is(form, .fluentform, #fluentform_1) {
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: min(88dvh, 760px) !important;
        border-radius: 28px !important;
    }

    #tbs-modal-compra .tbs-app-header {
        padding: 24px 64px 12px 22px !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error {
        margin-left: 22px !important;
        margin-right: 22px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }
}

/* =========================================================
   NUBE AMOR - ESTABLE V7
   Ajuste único solicitado:
   - Mantener V6 como base estable.
   - Forzar decor-Nube-Amor-desktop.png como imagen decorativa
     del cuerpo del micrositio.
   - La decoración queda fija y no se mueve con el scroll.
   - En móvil mantiene decor-Nube-Amor.png también fija.
========================================================= */

html:has(.tbs-ms.tbs-publico-nube-amor),
html:has(.tbs-ms.tbs-micrositio-nube-amor),
html:has(.tbs-micrositio-publico.tbs-publico-nube-amor),
html:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor),
body:has(.tbs-ms.tbs-publico-nube-amor),
body:has(.tbs-ms.tbs-micrositio-nube-amor),
body:has(.tbs-micrositio-publico.tbs-publico-nube-amor),
body:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor),
body.tbs-publico-nube-amor,
body.tbs-micrositio-nube-amor,
body.tbs-public-microsite-design-nube-amor,
body.tbs-ms-live-nube-amor,
body[data-tbs-ms-active-design="nube-amor"] {
    background-color: #FFF8EC !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,248,236,.56)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
}

/* Capa fija de respaldo: permite ver la decoración aunque algún wrapper
   del tema/Elementor coloque fondos blancos encima del body. */
body:has(.tbs-ms.tbs-publico-nube-amor)::before,
body:has(.tbs-ms.tbs-micrositio-nube-amor)::before,
body:has(.tbs-micrositio-publico.tbs-publico-nube-amor)::before,
body:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor)::before,
body.tbs-publico-nube-amor::before,
body.tbs-micrositio-nube-amor::before,
body.tbs-public-microsite-design-nube-amor::before,
body.tbs-ms-live-nube-amor::before,
body[data-tbs-ms-active-design="nube-amor"]::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    pointer-events: none !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,248,236,.50)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    opacity: 1 !important;
    transform: translateZ(0) !important;
    will-change: transform !important;
}

/* Todo el contenido queda por encima de la decoración fija. */
body:has(.tbs-ms.tbs-publico-nube-amor) :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-nube-amor) :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body:has(.tbs-micrositio-publico.tbs-publico-nube-amor) :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor) :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body.tbs-publico-nube-amor :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body.tbs-micrositio-nube-amor :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body.tbs-public-microsite-design-nube-amor :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body.tbs-ms-live-nube-amor :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico),
body[data-tbs-ms-active-design="nube-amor"] :is(.site, #page, #content, .site-content, .content-area, main, .entry-content, .page-content, .elementor, .elementor-section, .elementor-container, .elementor-widget-container, .tbs-ms, .tbs-micrositio-publico) {
    position: relative !important;
    z-index: 1 !important;
}

/* Evita que el root del micrositio tape la decoración del cuerpo. */
:is(
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor,
    .tbs-ms.tbs-micrositio-diseno-nube-amor,
    .tbs-ms.tbs-micrositio-publico-diseno-nube-amor
) {
    background-color: transparent !important;
}

@media (max-width: 767px) {
    html:has(.tbs-ms.tbs-publico-nube-amor),
    html:has(.tbs-ms.tbs-micrositio-nube-amor),
    html:has(.tbs-micrositio-publico.tbs-publico-nube-amor),
    html:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor),
    body:has(.tbs-ms.tbs-publico-nube-amor),
    body:has(.tbs-ms.tbs-micrositio-nube-amor),
    body:has(.tbs-micrositio-publico.tbs-publico-nube-amor),
    body:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor),
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-nube-amor,
    body.tbs-ms-live-nube-amor,
    body[data-tbs-ms-active-design="nube-amor"] {
        background-image:
            linear-gradient(180deg, rgba(255,255,255,.46), rgba(255,248,236,.62)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
        background-size: cover, cover !important;
        background-position: center top, center top !important;
        background-repeat: no-repeat, no-repeat !important;
        background-attachment: fixed, fixed !important;
    }

    body:has(.tbs-ms.tbs-publico-nube-amor)::before,
    body:has(.tbs-ms.tbs-micrositio-nube-amor)::before,
    body:has(.tbs-micrositio-publico.tbs-publico-nube-amor)::before,
    body:has(.tbs-micrositio-publico.tbs-micrositio-nube-amor)::before,
    body.tbs-publico-nube-amor::before,
    body.tbs-micrositio-nube-amor::before,
    body.tbs-public-microsite-design-nube-amor::before,
    body.tbs-ms-live-nube-amor::before,
    body[data-tbs-ms-active-design="nube-amor"]::before {
        background-image:
            linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,248,236,.62)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
        background-size: cover, cover !important;
        background-position: center top, center top !important;
        background-repeat: no-repeat, no-repeat !important;
    }
}

/* =========================================================
   NUBE AMOR - AJUSTE V8
   Fondo decorativo visible en el cuerpo del micrositio
   - Desktop: decor-Nube-Amor-desktop.png fijo, sin moverse con scroll.
   - Móvil: decor-Nube-Amor.png fijo/visible con énfasis en cigüeña.
   - No altera la versión estable de tarjetas, botones, RSVP ni modales.
========================================================= */

html:has(.tbs-ms.tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-publico) {
    background-color: #fff8ec !important;
    background-image: none !important;
}

body:has(.tbs-ms.tbs-micrositio-publico)::before,
body.tbs-publico-nube-amor::before,
body.tbs-micrositio-nube-amor::before,
body.tbs-public-microsite-design-nube-amor::before,
body.tbs-ms-live-nube-amor::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 0 !important;
    pointer-events: none !important;
    opacity: .92 !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,248,236,.20)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
    transform: translateZ(0) !important;
    will-change: transform !important;
}

body:has(.tbs-ms.tbs-micrositio-publico) > * {
    position: relative !important;
    z-index: 1 !important;
}

/* El contenedor del micrositio queda transparente para dejar ver el decor del cuerpo. */
.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Capa decorativa fija adicional dentro del micrositio por compatibilidad con temas/constructores. */
.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    opacity: .88 !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,248,236,.22)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
    transform: translateZ(0) !important;
}

/* Evita que secciones internas vuelvan a tapar la decoración con fondos planos. */
.tbs-ms.tbs-micrositio-publico :is(
    .site,
    .site-content,
    .content-area,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-section-wrap,
    .tbs-ms-section-wrap
) {
    background: transparent !important;
    background-image: none !important;
    background-color: transparent !important;
}

/* Mantiene una película suave en tarjetas grandes sin ocultar la imagen del cuerpo. */
.tbs-ms-section,
.tbs-ms-countdown-section,
.tbs-ms-closing {
    background: transparent !important;
}

@media (max-width: 767px) {
    body:has(.tbs-ms.tbs-micrositio-publico)::before,
    body.tbs-publico-nube-amor::before,
    body.tbs-micrositio-nube-amor::before,
    body.tbs-public-microsite-design-nube-amor::before,
    body.tbs-ms-live-nube-amor::before,
    .tbs-ms.tbs-micrositio-publico::before,
    .tbs-ms.tbs-publico-nube-amor::before,
    .tbs-ms.tbs-micrositio-nube-amor::before,
    .tbs-micrositio-publico.tbs-publico-nube-amor::before,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor::before {
        opacity: .95 !important;
        background-image:
            linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,248,236,.18)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
        background-size: cover, cover !important;
        /* Posición pensada para que la cigüeña del decor móvil quede visible. */
        background-position: center top, 42% top !important;
        background-repeat: no-repeat, no-repeat !important;
        background-attachment: fixed, fixed !important;
    }

    .tbs-ms.tbs-micrositio-publico,
    .tbs-ms.tbs-publico-nube-amor,
    .tbs-ms.tbs-micrositio-nube-amor,
    .tbs-micrositio-publico.tbs-publico-nube-amor,
    .tbs-micrositio-publico.tbs-micrositio-nube-amor {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
    }
}

/* =========================================================
   NUBE AMOR - AJUSTE V9 ESTABLE
   - Quita fondos decorativos internos que se desplazan con scroll.
   - Deja únicamente la imagen decorativa fija del diseño en el cuerpo.
   - Centra modal Confirmar regalo horizontal y verticalmente.
========================================================= */

/* 1) Fondo único fijo del diseño en el viewport */
html:has(.tbs-ms.tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-publico),
body.tbs-publico-nube-amor,
body.tbs-micrositio-nube-amor,
body.tbs-public-microsite-design-nube-amor,
body.tbs-ms-live-nube-amor,
body[data-tbs-ms-active-design="nube-amor"] {
    background-color: #fff8ec !important;
    background-image: none !important;
    background-attachment: scroll !important;
    overflow-x: hidden !important;
}

body:has(.tbs-ms.tbs-micrositio-publico)::before,
body.tbs-publico-nube-amor::before,
body.tbs-micrositio-nube-amor::before,
body.tbs-public-microsite-design-nube-amor::before,
body.tbs-ms-live-nube-amor::before,
body[data-tbs-ms-active-design="nube-amor"]::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 0 !important;
    pointer-events: none !important;
    opacity: .96 !important;
    background-image:
        linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,248,236,.18)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') !important;
    background-size: cover, cover !important;
    background-position: center top, center top !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
    transform: translate3d(0,0,0) !important;
    will-change: transform !important;
}

/* 2) El micrositio y sus pseudo-fondos no vuelven a pintar decoraciones que se mueven */
.tbs-ms.tbs-micrositio-publico,
.tbs-ms.tbs-publico-nube-amor,
.tbs-ms.tbs-micrositio-nube-amor,
.tbs-ms.tbs-micrositio-diseno-nube_amor,
.tbs-ms.tbs-micrositio-publico-diseno-nube-amor,
.tbs-micrositio-publico.tbs-publico-nube-amor,
.tbs-micrositio-publico.tbs-micrositio-nube-amor {
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

.tbs-ms.tbs-micrositio-publico::before,
.tbs-ms.tbs-micrositio-publico::after,
.tbs-ms.tbs-publico-nube-amor::before,
.tbs-ms.tbs-publico-nube-amor::after,
.tbs-ms.tbs-micrositio-nube-amor::before,
.tbs-ms.tbs-micrositio-nube-amor::after,
.tbs-micrositio-publico.tbs-publico-nube-amor::before,
.tbs-micrositio-publico.tbs-publico-nube-amor::after,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::before,
.tbs-micrositio-publico.tbs-micrositio-nube-amor::after {
    content: none !important;
    display: none !important;
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* 3) Quita fondos grandes con imagen que se desplazan dentro de secciones/cierre,
      dejando ver el decor fijo del diseño detrás. */
.tbs-ms.tbs-micrositio-publico :is(
    .site,
    #page,
    #content,
    .site-content,
    .content-area,
    main,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-section-wrap,
    .tbs-ms-section-wrap,
    .tbs-ms-closing,
    .tbs-ms-countdown-section,
    .tbs-public-section
) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Mantiene las tarjetas premium claras, pero sin imagen de fondo desplazable. */
.tbs-ms-closing-card,
.tbs-ms-countdown-card,
.tbs-ms-details-card,
.tbs-ms-module-card,
.tbs-ms-guestbook-card,
.tbs-ms-rsvp-card,
.tbs-ms-location-card {
    background-image:
        radial-gradient(circle at 0% 0%, rgba(234,247,255,.34), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(247,207,224,.28), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,248,236,.78)) !important;
    background-attachment: scroll, scroll, scroll !important;
}

.tbs-ms-closing-card::before,
.tbs-ms-closing-card::after,
.tbs-ms-countdown-card::before,
.tbs-ms-countdown-card::after,
.tbs-ms-details-card::before,
.tbs-ms-details-card::after,
.tbs-ms-module-card::before,
.tbs-ms-module-card::after,
.tbs-ms-guestbook-card::before,
.tbs-ms-guestbook-card::after,
.tbs-ms-rsvp-card::before,
.tbs-ms-rsvp-card::after,
.tbs-ms-location-card::before,
.tbs-ms-location-card::after {
    background-image: none !important;
}

/* 4) Modal Confirmar regalo: centrado real en viewport */
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    z-index: 2147483000 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 18px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background:
        radial-gradient(circle at 20% 12%, rgba(234,247,255,.54), transparent 30%),
        radial-gradient(circle at 82% 88%, rgba(247,207,224,.42), transparent 34%),
        linear-gradient(180deg, rgba(255,248,252,.84), rgba(246,250,255,.78)) !important;
    backdrop-filter: blur(16px) saturate(1.08) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.08) !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
#tbs-modal-compra[style*="display: block"],
#tbs-modal-compra[style*="display:block"] {
    display: flex !important;
}

#tbs-modal-compra.tbs-modal-open .tbs-app-sheet,
#tbs-modal-compra[style*="display"] .tbs-app-sheet,
#tbs-modal-compra .tbs-app-sheet {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    width: min(92vw, 700px) !important;
    max-width: 700px !important;
    max-height: min(88vh, 840px) !important;
    margin: 0 !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    border-radius: 32px !important;
    border: 1px solid rgba(169,216,245,.38) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(234,247,255,.96), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(247,207,224,.82), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,236,.96)) !important;
    box-shadow:
        0 34px 100px rgba(78,97,114,.20),
        0 14px 38px rgba(217,183,111,.12),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    color: #c75f93 !important;
}

#tbs-modal-compra .tbs-confirm-buy {
    color: #fff !important;
    background:
        radial-gradient(circle at 24% 20%, rgba(255,255,255,.30), transparent 30%),
        linear-gradient(135deg, #A9D8F5 0%, #F7CFE0 58%, #D9B76F 100%) !important;
    border: 1px solid rgba(169,216,245,.40) !important;
    box-shadow: 0 16px 34px rgba(169,216,245,.22) !important;
}

@media (max-width: 767px) {
    body:has(.tbs-ms.tbs-micrositio-publico)::before,
    body.tbs-publico-nube-amor::before,
    body.tbs-micrositio-nube-amor::before,
    body.tbs-public-microsite-design-nube-amor::before,
    body.tbs-ms-live-nube-amor::before,
    body[data-tbs-ms-active-design="nube-amor"]::before {
        opacity: .98 !important;
        background-image:
            linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,248,236,.16)),
            url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') !important;
        background-size: cover, cover !important;
        background-position: center top, 42% top !important;
        background-repeat: no-repeat, no-repeat !important;
        background-attachment: fixed, fixed !important;
    }

    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        padding: 12px !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
    }

    #tbs-modal-compra.tbs-modal-open .tbs-app-sheet,
    #tbs-modal-compra[style*="display"] .tbs-app-sheet,
    #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: 88dvh !important;
        border-radius: 28px !important;
    }
}

/* =========================================================
   NUBE AMOR - AJUSTE V10
   - Elimina velos/fondos internos opacos que ocultaban decor-Nube-Amor.
   - Refuerza que el cuerpo use solo decor-Nube-Amor fijo.
   - Centra realmente el modal Confirmar regalo aunque esté dentro de
     contenedores con transform/animation.
   - Mejora el botón Confirmar regalo.
========================================================= */

/* Fondo real del diseño siempre visible detrás del micrositio */
html:has(.tbs-ms.tbs-micrositio-publico),
body:has(.tbs-ms.tbs-micrositio-publico),
body.tbs-publico-nube-amor,
body.tbs-micrositio-nube-amor,
body.tbs-public-microsite-design-nube-amor,
body.tbs-ms-live-nube-amor,
body[data-tbs-ms-active-design="nube-amor"] {
    background: #fff8ec url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover fixed no-repeat !important;
    overflow-x: hidden !important;
}

/* Capa fija de respaldo, sin velo blanco encima */
body:has(.tbs-ms.tbs-micrositio-publico)::before,
body.tbs-publico-nube-amor::before,
body.tbs-micrositio-nube-amor::before,
body.tbs-public-microsite-design-nube-amor::before,
body.tbs-ms-live-nube-amor::before,
body[data-tbs-ms-active-design="nube-amor"]::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 0 !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
    background-attachment: fixed !important;
    transform: none !important;
    filter: none !important;
}

/* Todo el lienzo estructural queda transparente para no tapar el decor del diseño */
body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .site,
    #page,
    #content,
    .site-content,
    .content-area,
    main,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-section-wrap,
    .tbs-ms-section-wrap,
    .tbs-public-section,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing
),
body.tbs-publico-nube-amor :is(
    .site,
    #page,
    #content,
    .site-content,
    .content-area,
    main,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-section-wrap,
    .tbs-ms-section-wrap,
    .tbs-public-section,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing
) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* Quita pseudo-velos grandes de wrappers, pero conserva decoraciones internas de tarjetas puntuales */
body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .site,
    #page,
    #content,
    .site-content,
    .content-area,
    main,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-public-section,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing
)::before,
body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .site,
    #page,
    #content,
    .site-content,
    .content-area,
    main,
    .entry-content,
    .page-content,
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-widget-wrap,
    .elementor-widget-container,
    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-ms-main,
    .tbs-ms-shell,
    .tbs-ms-wrap,
    .tbs-ms-content,
    .tbs-ms-content-wrap,
    .tbs-ms-inner,
    .tbs-public-section,
    .tbs-ms-section,
    .tbs-ms-countdown-section,
    .tbs-ms-closing
)::after {
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* La experiencia de regalos no debe crear una pantalla opaca detrás del diseño */
body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .tbs-gift-experience,
    .tbs-gift-experience__shell,
    .tbs-gift-controlled,
    .tbs-gift-controlled__body,
    .tbs-gift-panel,
    .tbs-gift-panel__body,
    .tbs-gift-panel__content,
    .tbs-public-wishlist-section,
    .tbs-public-virtual-section,
    [data-tbs-section="wishlist"],
    [data-tbs-section="virtuales"],
    [data-tbs-section="regalos-virtuales"]
) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .tbs-gift-experience__shell,
    .tbs-gift-controlled,
    .tbs-gift-controlled__body,
    .tbs-gift-panel,
    .tbs-gift-panel__body,
    .tbs-gift-panel__content
)::before,
body:has(.tbs-ms.tbs-micrositio-publico) :is(
    .tbs-gift-experience__shell,
    .tbs-gift-controlled,
    .tbs-gift-controlled__body,
    .tbs-gift-panel,
    .tbs-gift-panel__body,
    .tbs-gift-panel__content
)::after {
    content: none !important;
    display: none !important;
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
}

/* Evita que transforms/animations de contenedores conviertan el fixed del modal en relativo a la sección */
body:has(#tbs-modal-compra[style*="display: flex"]) :is(
    .tbs-ms,
    .tbs-micrositio-publico,
    .tbs-ms-section,
    .tbs-ms-module-card,
    .tbs-gift-experience,
    .tbs-gift-experience__shell,
    .tbs-gift-controlled,
    .tbs-gift-panel,
    .tbs-public-virtual-section,
    [data-tbs-section="virtuales"],
    [data-tbs-section="regalos-virtuales"]
) {
    transform: none !important;
    filter: none !important;
    perspective: none !important;
    animation: none !important;
    contain: none !important;
}

/* Modal Confirmar regalo: overlay centrado real */
body #tbs-modal-compra,
body #tbs-modal-compra.tbs-app-modal {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: clamp(14px, 2.4vw, 26px) !important;
    z-index: 2147483647 !important;
    align-items: center !important;
    justify-content: center !important;
    place-items: center !important;
    box-sizing: border-box !important;
    background:
        radial-gradient(circle at 22% 12%, rgba(234,247,255,.50), transparent 34%),
        radial-gradient(circle at 86% 86%, rgba(247,207,224,.40), transparent 36%),
        linear-gradient(180deg, rgba(255,248,252,.72), rgba(255,248,236,.66)) !important;
    backdrop-filter: blur(18px) saturate(1.06) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.06) !important;
}

body #tbs-modal-compra[style*="display: flex"],
body #tbs-modal-compra[style*="display:flex"],
body #tbs-modal-compra.tbs-modal-open,
body #tbs-modal-compra.is-open,
body #tbs-modal-compra.active {
    display: grid !important;
}

body #tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    translate: none !important;
    justify-self: center !important;
    align-self: center !important;
    width: min(92vw, 700px) !important;
    max-width: 700px !important;
    max-height: min(88vh, 840px) !important;
    margin: auto !important;
    overflow: auto !important;
    border-radius: 34px !important;
    border: 1px solid rgba(169,216,245,.46) !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(234,247,255,.98), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(247,207,224,.86), transparent 38%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,236,.96)) !important;
    box-shadow:
        0 36px 100px rgba(78,97,114,.24),
        0 18px 42px rgba(217,183,111,.13),
        inset 0 1px 0 rgba(255,255,255,.94) !important;
}

body #tbs-modal-compra .tbs-app-header h3 {
    color: #C75F93 !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: clamp(34px, 4vw, 48px) !important;
    line-height: .95 !important;
    letter-spacing: -.035em !important;
}

body #tbs-modal-compra .tbs-app-header p,
body #tbs-modal-compra .tbs-app-method,
body #tbs-modal-compra .tbs-app-form :is(input, label, span) {
    color: #4E6172 !important;
}

body #tbs-modal-compra .tbs-confirm-buy {
    min-height: 56px !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    border: 1px solid rgba(255,255,255,.60) !important;
    background:
        radial-gradient(circle at 24% 20%, rgba(255,255,255,.36), transparent 30%),
        linear-gradient(135deg, #8FCEF3 0%, #F5AFCB 56%, #D9B76F 100%) !important;
    box-shadow:
        0 18px 38px rgba(169,216,245,.28),
        0 10px 24px rgba(247,207,224,.20),
        inset 0 1px 0 rgba(255,255,255,.36) !important;
    opacity: 1 !important;
    cursor: pointer !important;
}

body #tbs-modal-compra .tbs-confirm-buy:hover,
body #tbs-modal-compra .tbs-confirm-buy:focus-visible {
    transform: translateY(-2px) !important;
    filter: brightness(1.03) saturate(1.02) !important;
    outline: none !important;
    box-shadow:
        0 22px 46px rgba(169,216,245,.34),
        0 12px 28px rgba(247,207,224,.24),
        inset 0 1px 0 rgba(255,255,255,.42) !important;
}

@media (max-width: 767px) {
    html:has(.tbs-ms.tbs-micrositio-publico),
    body:has(.tbs-ms.tbs-micrositio-publico),
    body.tbs-publico-nube-amor,
    body.tbs-micrositio-nube-amor,
    body.tbs-public-microsite-design-nube-amor,
    body.tbs-ms-live-nube-amor,
    body[data-tbs-ms-active-design="nube-amor"] {
        background: #fff8ec url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') 42% top / cover fixed no-repeat !important;
    }

    body:has(.tbs-ms.tbs-micrositio-publico)::before,
    body.tbs-publico-nube-amor::before,
    body.tbs-micrositio-nube-amor::before,
    body.tbs-public-microsite-design-nube-amor::before,
    body.tbs-ms-live-nube-amor::before,
    body[data-tbs-ms-active-design="nube-amor"]::before {
        background: url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor.png') 42% top / cover no-repeat !important;
        background-attachment: fixed !important;
        opacity: 1 !important;
    }

    body #tbs-modal-compra,
    body #tbs-modal-compra.tbs-app-modal {
        height: 100dvh !important;
        min-height: 100dvh !important;
        padding: 12px !important;
    }

    body #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: 88dvh !important;
        border-radius: 28px !important;
    }

    body #tbs-modal-compra .tbs-confirm-buy {
        width: 100% !important;
        min-height: 56px !important;
    }
}

/* =========================================================
   31) AJUSTE FINAL - MODAL CONFIRMAR REGALO NUBE AMOR PREMIUM
   - Se aplica únicamente cuando está activo el diseño Nube Amor.
   - Ventana limpia, compacta, luminosa y sin scroll incómodo.
========================================================= */
body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
body.tbs-publico-nube-amor #tbs-modal-compra,
body.tbs-micrositio-nube-amor #tbs-modal-compra,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra,
.tbs-ms.tbs-publico-nube-amor #tbs-modal-compra,
.tbs-ms.tbs-micrositio-nube-amor #tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) !important;
    background:
        radial-gradient(circle at 18% 10%, rgba(169, 216, 245, .22), transparent 34%),
        radial-gradient(circle at 82% 18%, rgba(247, 207, 224, .26), transparent 32%),
        rgba(255, 248, 252, .78) !important;
    backdrop-filter: blur(6px) saturate(1.02) !important;
    -webkit-backdrop-filter: blur(6px) saturate(1.02) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra.tbs-modal-open,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra.tbs-modal-open,
body.tbs-publico-nube-amor #tbs-modal-compra.tbs-modal-open,
body.tbs-micrositio-nube-amor #tbs-modal-compra.tbs-modal-open,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra.tbs-modal-open,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra.tbs-modal-open,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra[style*="display: flex"],
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra[style*="display: flex"],
body.tbs-publico-nube-amor #tbs-modal-compra[style*="display: flex"],
body.tbs-micrositio-nube-amor #tbs-modal-compra[style*="display: flex"],
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra[style*="display: flex"],
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra[style*="display: flex"] {
    display: flex !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet,
.tbs-ms.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
.tbs-ms.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    width: min(94vw, 740px) !important;
    max-width: 740px !important;
    max-height: calc(100dvh - 36px) !important;
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    overflow: hidden !important;
    margin: auto !important;
    padding: 0 !important;
    border-radius: 38px !important;
    border: 1px solid rgba(255,255,255,.86) !important;
    background:
        radial-gradient(circle at 8% 0%, rgba(255,255,255,.94), transparent 34%),
        radial-gradient(circle at 100% 0%, rgba(234,247,255,.88), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(255,231,242,.76), transparent 38%),
        linear-gradient(145deg, rgba(255,255,255,.99), rgba(255,248,252,.96) 58%, rgba(239,250,255,.94)) !important;
    color: #4d3f47 !important;
    box-shadow:
        0 38px 100px rgba(91, 64, 79, .24),
        0 0 0 8px rgba(255,255,255,.26),
        inset 0 1px 0 rgba(255,255,255,.94) !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet::before {
    content: "" !important;
    position: absolute !important;
    inset: 14px !important;
    z-index: 0 !important;
    border-radius: 30px !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    pointer-events: none !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet::after,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet::after,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet::after {
    content: "☁" !important;
    position: absolute !important;
    right: 34px !important;
    bottom: 24px !important;
    z-index: 0 !important;
    color: rgba(143,199,220,.16) !important;
    font-size: 108px !important;
    line-height: 1 !important;
    pointer-events: none !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-handle,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-handle,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-handle,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-handle,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-handle,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-handle {
    display: none !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
    padding: 30px 78px 18px 34px !important;
    margin: 0 !important;
    text-align: left !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header::before,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header::before,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header::before,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header::before {
    content: "💝" !important;
    width: 56px !important;
    height: 56px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 28% 18%, rgba(255,255,255,.96), transparent 34%),
        linear-gradient(135deg, #eaf7ff, #fff0f7) !important;
    border: 1px solid rgba(255,255,255,.92) !important;
    box-shadow: 0 16px 34px rgba(91,64,79,.11) !important;
    font-size: 25px !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3 {
    margin: 0 0 5px !important;
    color: #ce4f86 !important;
    font-family: var(--tbs-ms-font-title, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(38px, 4.2vw, 58px) !important;
    font-weight: 700 !important;
    line-height: .92 !important;
    letter-spacing: -.05em !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header p,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header p,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header p,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header p {
    margin: 0 !important;
    max-width: 470px !important;
    color: rgba(77,63,71,.76) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.42 !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-close-modal,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-close-modal,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-close-modal,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-close-modal,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-close-modal,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-close-modal {
    position: absolute !important;
    top: 22px !important;
    right: 24px !important;
    z-index: 4 !important;
    width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.88) !important;
    color: #4d3f47 !important;
    box-shadow: 0 12px 26px rgba(91,64,79,.10) !important;
    font-size: 20px !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 34px 16px !important;
    padding: 16px 18px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(143,199,220,.24) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 12px 28px rgba(91,64,79,.06) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method .label,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method .label,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method .label,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method .label,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method .label,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method .label {
    display: block !important;
    margin: 0 0 7px !important;
    color: #5aa3bf !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
body.tbs-publico-nube-amor #tbs-modal-compra #tbs-metodo-modal,
body.tbs-micrositio-nube-amor #tbs-modal-compra #tbs-metodo-modal,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra #tbs-metodo-modal,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra #tbs-metodo-modal {
    white-space: pre-line !important;
    color: #4d3f47 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.42 !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 0 34px !important;
    overflow: auto !important;
    max-height: 38dvh !important;
    scrollbar-width: thin !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form input,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form textarea,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form input,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-height: 50px !important;
    padding: 13px 15px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.94) !important;
    color: #4d3f47 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88) !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    outline: none !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input:focus,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form textarea:focus,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input:focus,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form textarea:focus,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input:focus,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea:focus,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input:focus,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea:focus,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form input:focus,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form textarea:focus,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form input:focus,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form textarea:focus {
    border-color: rgba(236,111,163,.42) !important;
    box-shadow: 0 0 0 4px rgba(236,111,163,.10), inset 0 1px 0 rgba(255,255,255,.90) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-upload,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-upload,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-upload,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
    display: grid !important;
    gap: 7px !important;
    padding: 13px 15px !important;
    border-radius: 20px !important;
    border: 1px dashed rgba(236,111,163,.28) !important;
    background: rgba(255,255,255,.72) !important;
    color: rgba(77,63,71,.76) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-modal-actions,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-modal-actions,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-modal-actions,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-modal-actions {
    position: relative !important;
    z-index: 2 !important;
    display: grid !important;
    grid-template-columns: 1fr 1.25fr !important;
    gap: 12px !important;
    padding: 18px 34px 34px !important;
    margin: 0 !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-cancel-buy,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-confirm-buy {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 54px !important;
    padding: 14px 20px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-cancel-buy {
    border: 1px solid rgba(236,111,163,.14) !important;
    background: rgba(255,255,255,.82) !important;
    color: #6c5a64 !important;
    box-shadow: 0 12px 26px rgba(91,64,79,.07) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-confirm-buy {
    border: 0 !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 25% 18%, rgba(255,255,255,.34), transparent 30%),
        linear-gradient(135deg, #ec6fa3, #ce4f86) !important;
    box-shadow: 0 18px 38px rgba(236,111,163,.28), inset 0 1px 0 rgba(255,255,255,.26) !important;
}

body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-error,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-error,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-error,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-error,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-error,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-error {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 34px 12px !important;
    padding: 12px 15px !important;
    border-radius: 16px !important;
    background: rgba(255,240,247,.90) !important;
    color: #ce4f86 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

@media (max-width: 767px) {
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        align-items: center !important;
        padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
        backdrop-filter: blur(4px) !important;
        -webkit-backdrop-filter: blur(4px) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        width: min(96vw, 430px) !important;
        max-width: 430px !important;
        max-height: calc(100dvh - 16px) !important;
        border-radius: 30px !important;
        grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet::before {
        inset: 9px !important;
        border-radius: 24px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet::after,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet::after,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet::after,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet::after {
        right: 16px !important;
        bottom: 10px !important;
        font-size: 76px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
        grid-template-columns: 44px minmax(0, 1fr) !important;
        gap: 11px !important;
        padding: 18px 56px 10px 18px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header::before {
        width: 44px !important;
        height: 44px !important;
        border-radius: 17px !important;
        font-size: 21px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(30px, 9vw, 42px) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header p,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header p {
        font-size: 12.5px !important;
        line-height: 1.25 !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-close-modal,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-close-modal,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-close-modal,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-close-modal,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-close-modal,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-close-modal {
        top: 14px !important;
        right: 14px !important;
        width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        border-radius: 14px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-error,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-error,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-error,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-error,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-error,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-error {
        margin: 0 18px 9px !important;
        padding: 10px 12px !important;
        border-radius: 17px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method .label,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method .label,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method .label {
        font-size: 10px !important;
        margin-bottom: 5px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-publico-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-micrositio-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra #tbs-metodo-modal {
        font-size: 13px !important;
        line-height: 1.24 !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 0 18px !important;
        max-height: 42dvh !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form input,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form textarea {
        min-height: 42px !important;
        padding: 10px 13px !important;
        border-radius: 15px !important;
        font-size: 13px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-upload,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-upload,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-upload,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-upload {
        padding: 9px 12px !important;
        border-radius: 16px !important;
        font-size: 12px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        padding: 11px 18px 18px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-cancel-buy,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-confirm-buy {
        min-height: 44px !important;
        padding: 10px 12px !important;
        font-size: 12.5px !important;
    }
}

@media (max-width: 370px) {
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3 {
        font-size: 28px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
        grid-template-columns: 1fr !important;
        padding-right: 54px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header::before {
        display: none !important;
    }
}

/* =========================================================
   31) AJUSTE V31 - MODAL CONFIRMAR REGALO MÓVIL PREMIUM
   - Corrige el texto vertical del encabezado en iPhone/Safari.
   - Elimina el micro-scroll dentro del formulario.
   - Usa scroll únicamente en el overlay si la pantalla es muy baja.
   - Compacta espacios, campos y acciones para que se vea premium.
========================================================= */

@media (max-width: 767px) {
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra {
        align-items: flex-start !important;
        justify-content: center !important;
        padding: max(10px, env(safe-area-inset-top)) 10px max(14px, env(safe-area-inset-bottom)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        background: rgba(255, 248, 252, .66) !important;
        backdrop-filter: blur(3px) !important;
        -webkit-backdrop-filter: blur(3px) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet,
    #tbs-modal-compra .tbs-app-sheet {
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        max-height: none !important;
        min-height: 0 !important;
        display: block !important;
        overflow: visible !important;
        margin: 0 auto !important;
        border-radius: 30px !important;
        border: 1px solid rgba(255,255,255,.86) !important;
        background:
            radial-gradient(circle at 0% 0%, rgba(255,235,244,.72), transparent 32%),
            radial-gradient(circle at 100% 100%, rgba(232,248,255,.58), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,252,.96)) !important;
        box-shadow:
            0 26px 70px rgba(75, 55, 67, .20),
            inset 0 1px 0 rgba(255,255,255,.92) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet::before,
    #tbs-modal-compra .tbs-app-sheet::before {
        inset: 9px !important;
        border-radius: 24px !important;
        pointer-events: none !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header,
    #tbs-modal-compra .tbs-app-header {
        position: relative !important;
        z-index: 2 !important;
        display: block !important;
        min-height: 0 !important;
        padding: 22px 58px 8px 22px !important;
        margin: 0 !important;
        text-align: center !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header::before,
    #tbs-modal-compra .tbs-app-header::before {
        content: "🎁" !important;
        display: grid !important;
        place-items: center !important;
        width: 44px !important;
        height: 44px !important;
        margin: 0 auto 8px !important;
        border-radius: 17px !important;
        background:
            radial-gradient(circle at 28% 18%, rgba(255,255,255,.94), transparent 34%),
            linear-gradient(135deg, #fff0f7, #eaf8ff) !important;
        border: 1px solid rgba(255,255,255,.88) !important;
        box-shadow: 0 12px 28px rgba(109,73,96,.10) !important;
        font-size: 21px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3,
    #tbs-modal-compra .tbs-app-header h3 {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 6px !important;
        padding: 0 !important;
        color: #ce4f86 !important;
        font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
        font-size: clamp(32px, 9.8vw, 44px) !important;
        font-weight: 700 !important;
        line-height: .94 !important;
        letter-spacing: -.045em !important;
        text-align: center !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
        text-wrap: balance !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header p,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header p,
    #tbs-modal-compra .tbs-app-header p {
        display: block !important;
        width: min(100%, 310px) !important;
        max-width: 310px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        color: rgba(77,63,71,.76) !important;
        font-size: 13.5px !important;
        font-weight: 600 !important;
        line-height: 1.34 !important;
        text-align: center !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-close-modal,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-close-modal,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-close-modal,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-close-modal,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-close-modal,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-close-modal,
    #tbs-modal-compra .tbs-close-modal {
        top: 18px !important;
        right: 18px !important;
        width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        border-radius: 15px !important;
        background: rgba(255,255,255,.88) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-method {
        position: relative !important;
        z-index: 2 !important;
        margin: 8px 22px 10px !important;
        padding: 12px 14px !important;
        border-radius: 19px !important;
        background: rgba(255,255,255,.78) !important;
        border: 1px solid rgba(143,199,220,.18) !important;
        box-shadow: 0 10px 24px rgba(109,73,96,.06) !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method .label,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method .label,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method .label,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method .label,
    #tbs-modal-compra .tbs-app-method .label {
        margin: 0 0 5px !important;
        color: #5aa3bf !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        letter-spacing: .10em !important;
        text-align: left !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-publico-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-micrositio-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra #tbs-metodo-modal,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra #tbs-metodo-modal,
    #tbs-modal-compra #tbs-metodo-modal {
        color: #4d3f47 !important;
        font-size: 13.5px !important;
        font-weight: 800 !important;
        line-height: 1.22 !important;
        white-space: pre-line !important;
        text-align: left !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form,
    #tbs-modal-compra .tbs-app-form {
        position: relative !important;
        z-index: 2 !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 0 22px !important;
        max-height: none !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="text"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="email"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form input[type="tel"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form input,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form input,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form textarea,
    #tbs-modal-compra .tbs-app-form input,
    #tbs-modal-compra .tbs-app-form textarea {
        width: 100% !important;
        min-height: 46px !important;
        padding: 11px 14px !important;
        border-radius: 17px !important;
        font-size: 13.5px !important;
        font-weight: 700 !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-upload,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-upload,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-upload,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-upload,
    #tbs-modal-compra .tbs-upload {
        grid-column: 1 / -1 !important;
        display: grid !important;
        gap: 7px !important;
        padding: 12px 13px !important;
        border-radius: 18px !important;
        border: 1px dashed rgba(236,111,163,.24) !important;
        background: rgba(255,255,255,.66) !important;
        font-size: 13px !important;
        font-weight: 800 !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-upload input[type="file"],
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-upload input[type="file"],
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-upload input[type="file"],
    #tbs-modal-compra .tbs-upload input[type="file"] {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 42px !important;
        padding: 7px !important;
        overflow: hidden !important;
        border-radius: 15px !important;
        background: rgba(255,255,255,.92) !important;
        font-size: 12px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-modal-actions,
    #tbs-modal-compra .tbs-modal-actions {
        position: relative !important;
        z-index: 2 !important;
        display: grid !important;
        grid-template-columns: 1fr 1.15fr !important;
        gap: 8px !important;
        padding: 11px 22px 22px !important;
        margin: 0 !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-cancel-buy,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-cancel-buy,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-confirm-buy,
    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 46px !important;
        padding: 11px 12px !important;
        border-radius: 999px !important;
        font-size: 12.5px !important;
        font-weight: 900 !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 380px) {
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet,
    #tbs-modal-compra .tbs-app-sheet {
        border-radius: 26px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header,
    #tbs-modal-compra .tbs-app-header {
        padding: 20px 52px 8px 18px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3,
    #tbs-modal-compra .tbs-app-header h3 {
        font-size: 31px !important;
    }

    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-method,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-method,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-method,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-method,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-form,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-form,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-form,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-form,
    #tbs-modal-compra .tbs-app-form,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-modal-actions,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-modal-actions,
    #tbs-modal-compra .tbs-modal-actions {
        margin-left: 16px !important;
        margin-right: 16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}


/* =========================================================
   28) AJUSTE V28 - MODAL CONFIRMAR REGALO SIEMPRE CENTRADO
   Objetivo:
   - Mantener #tbs-modal-compra centrado en desktop y móvil.
   - Evitar que Safari/iOS lo empuje al fondo de la pantalla.
   - Eliminar microscroll interno del sheet; si falta altura, scrollea el overlay.
========================================================= */

html.tbs-modal-compra-open,
body.tbs-modal-compra-open,
html.tbs-app-modal-open,
body.tbs-app-modal-open,
body:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra[style*="display: flex"]) {
    overflow: hidden !important;
}

#tbs-modal-compra,
#tbs-modal-compra.tbs-app-modal,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
body.tbs-publico-nube-amor #tbs-modal-compra,
body.tbs-micrositio-nube-amor #tbs-modal-compra,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    place-items: center !important;
    padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)) !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    background:
        radial-gradient(circle at 15% 5%, rgba(255, 231, 242, .46), transparent 32%),
        radial-gradient(circle at 92% 98%, rgba(232, 248, 255, .42), transparent 34%),
        rgba(255, 248, 252, .76) !important;
    backdrop-filter: blur(10px) saturate(1.02) !important;
    -webkit-backdrop-filter: blur(10px) saturate(1.02) !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra.is-open,
#tbs-modal-compra[aria-hidden="false"],
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
body:has(.tbs-publico-nube-amor) #tbs-modal-compra.tbs-modal-open,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra.tbs-modal-open,
body.tbs-publico-nube-amor #tbs-modal-compra.tbs-modal-open,
body.tbs-micrositio-nube-amor #tbs-modal-compra.tbs-modal-open,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra.tbs-modal-open,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra.tbs-modal-open {
    display: grid !important;
}

#tbs-modal-compra .tbs-app-sheet,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    align-self: center !important;
    justify-self: center !important;
    width: min(94vw, 680px) !important;
    max-width: 680px !important;
    max-height: none !important;
    height: auto !important;
    min-height: auto !important;
    margin: auto !important;
    overflow: visible !important;
    transform: none !important;
}

@supports (height: 100dvh) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal {
        height: 100dvh !important;
        min-height: 100dvh !important;
    }
}

@media (max-width: 767px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        align-items: center !important;
        justify-content: center !important;
        place-items: center !important;
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
    }

    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        width: min(94vw, 430px) !important;
        max-width: 430px !important;
        max-height: calc(100dvh - 24px) !important;
        margin: auto !important;
        align-self: center !important;
        justify-self: center !important;
        overflow: visible !important;
        border-radius: 30px !important;
    }
}

@media (max-height: 760px) and (max-width: 767px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal {
        align-items: start !important;
        justify-content: center !important;
        place-items: start center !important;
        padding-top: max(14px, env(safe-area-inset-top)) !important;
        padding-bottom: max(14px, env(safe-area-inset-bottom)) !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        margin-top: auto !important;
        margin-bottom: auto !important;
    }
}

/* =========================================================
   32) AJUSTE V32 - MODAL CONFIRMAR REGALO VISIBLE DESKTOP
       + CENTRADO PREMIUM EN MÓVIL
   - Desktop: panel visible alineado a la derecha, sin recorte.
   - Móvil: ventana centrada, compacta y sin micro-scroll del formulario.
========================================================= */

html.tbs-modal-compra-open,
body.tbs-modal-compra-open,
html.tbs-app-modal-open,
body.tbs-app-modal-open,
body:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra[aria-hidden="false"]),
body:has(#tbs-modal-compra[style*="display: flex"]),
body:has(#tbs-modal-compra[style*="display:flex"]),
body:has(#tbs-modal-compra[style*="display: grid"]),
body:has(#tbs-modal-compra[style*="display:grid"]) {
    overflow: hidden !important;
}

#tbs-modal-compra,
#tbs-modal-compra.tbs-app-modal,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
body.tbs-publico-nube-amor #tbs-modal-compra,
body.tbs-micrositio-nube-amor #tbs-modal-compra,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483600 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-width: 100vw !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    display: none !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 18% 8%, rgba(255, 231, 242, .52), transparent 30%),
        radial-gradient(circle at 92% 96%, rgba(232, 248, 255, .50), transparent 32%),
        rgba(255, 248, 252, .78) !important;
    backdrop-filter: blur(9px) saturate(1.02) !important;
    -webkit-backdrop-filter: blur(9px) saturate(1.02) !important;
    box-sizing: border-box !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra.is-open,
#tbs-modal-compra[aria-hidden="false"],
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
#tbs-modal-compra[style*="display: grid"],
#tbs-modal-compra[style*="display:grid"] {
    display: block !important;
}

@media (min-width: 768px) {
    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        position: fixed !important;
        top: 50% !important;
        right: clamp(28px, 4vw, 72px) !important;
        bottom: auto !important;
        left: auto !important;
        width: min(560px, calc(100vw - 56px)) !important;
        max-width: min(560px, calc(100vw - 56px)) !important;
        max-height: calc(100vh - 56px) !important;
        max-height: calc(100dvh - 56px) !important;
        min-height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        transform: translateY(-50%) !important;
        translate: none !important;
        box-sizing: border-box !important;
        border-radius: 34px !important;
        border: 1px solid rgba(255,255,255,.88) !important;
        background:
            radial-gradient(circle at 0% 0%, rgba(255,235,244,.76), transparent 32%),
            radial-gradient(circle at 100% 100%, rgba(232,248,255,.62), transparent 34%),
            linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,252,.96)) !important;
        box-shadow:
            0 34px 96px rgba(63, 49, 56, .24),
            inset 0 1px 0 rgba(255,255,255,.92) !important;
        -webkit-overflow-scrolling: touch !important;
    }

    #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
        display: block !important;
        padding: 28px 72px 14px 30px !important;
        margin: 0 !important;
        text-align: center !important;
    }

    #tbs-modal-compra .tbs-app-header::before,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header::before,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header::before {
        content: "🎁" !important;
        display: grid !important;
        place-items: center !important;
        width: 48px !important;
        height: 48px !important;
        margin: 0 auto 10px !important;
        border-radius: 18px !important;
        background: linear-gradient(135deg, #fff0f7, #eaf8ff) !important;
        box-shadow: 0 12px 28px rgba(109,73,96,.10) !important;
        font-size: 22px !important;
    }

    #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header h3,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header h3 {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto 8px !important;
        padding: 0 !important;
        color: #ce4f86 !important;
        font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
        font-size: clamp(38px, 3.3vw, 54px) !important;
        line-height: .96 !important;
        letter-spacing: -.045em !important;
        text-align: center !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    #tbs-modal-compra .tbs-app-header p,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header p,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header p,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header p {
        display: block !important;
        width: min(100%, 390px) !important;
        max-width: 390px !important;
        margin: 0 auto !important;
        color: #596b7b !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 1.4 !important;
        text-align: center !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: normal !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error,
    #tbs-modal-compra .tbs-app-form,
    #tbs-modal-compra .tbs-modal-actions {
        margin-left: 30px !important;
        margin-right: 30px !important;
    }

    #tbs-modal-compra .tbs-app-method {
        margin-bottom: 14px !important;
        padding: 15px 17px !important;
        border-radius: 22px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"] {
        min-width: 0 !important;
        min-height: 48px !important;
        padding: 12px 14px !important;
        border-radius: 17px !important;
        font-size: 13.5px !important;
    }

    #tbs-modal-compra .tbs-upload {
        grid-column: 1 / -1 !important;
        padding: 13px 14px !important;
        border-radius: 20px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        display: grid !important;
        grid-template-columns: 1fr 1.12fr !important;
        gap: 10px !important;
        padding: 16px 0 26px !important;
    }
}

@media (max-width: 767px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        overflow: hidden !important;
        background: rgba(255, 248, 252, .72) !important;
        backdrop-filter: blur(6px) saturate(1.02) !important;
        -webkit-backdrop-filter: blur(6px) saturate(1.02) !important;
    }

    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        width: min(430px, calc(100vw - 20px)) !important;
        max-width: min(430px, calc(100vw - 20px)) !important;
        max-height: calc(100vh - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        transform: translate(-50%, -50%) !important;
        translate: none !important;
        -webkit-overflow-scrolling: touch !important;
        border-radius: 30px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        overflow: visible !important;
        max-height: none !important;
    }
}

/* =========================================================
   AJUSTE FINAL - MODAL CONFIRMAR REGALO CENTRADO REAL
   Nube Amor
   - Desktop: centra la ventana respecto al viewport completo.
   - Corrige desplazamiento a la derecha por reglas previas.
   - Evita que el panel/backdrop interno se salga horizontalmente.
========================================================= */

html:has(#tbs-modal-compra.tbs-modal-open),
html:has(#tbs-modal-compra.is-open),
html:has(#tbs-modal-compra[aria-hidden="false"]),
body:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra.is-open),
body:has(#tbs-modal-compra[aria-hidden="false"]),
body.tbs-modal-open,
body.tbs-aec-modal-visible {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
}

#tbs-modal-compra,
#tbs-modal-compra.tbs-app-modal,
body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
body.tbs-publico-nube-amor #tbs-modal-compra,
body.tbs-micrositio-nube-amor #tbs-modal-compra,
body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: clamp(14px, 2.2vw, 32px) !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: rgba(255, 248, 252, .70) !important;
    backdrop-filter: blur(8px) saturate(1.03) !important;
    -webkit-backdrop-filter: blur(8px) saturate(1.03) !important;
    transform: none !important;
    translate: none !important;
    z-index: 2147483000 !important;
}

#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra.is-open,
#tbs-modal-compra[aria-hidden="false"],
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
#tbs-modal-compra[style*="display: grid"],
#tbs-modal-compra[style*="display:grid"],
#tbs-modal-compra[style*="display: block"],
#tbs-modal-compra[style*="display:block"] {
    display: grid !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
}

@media (min-width: 768px) {
    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: min(760px, calc(100vw - 64px)) !important;
        max-width: min(760px, calc(100vw - 64px)) !important;
        max-height: calc(100vh - 64px) !important;
        max-height: calc(100dvh - 64px) !important;
        margin: auto !important;
        transform: none !important;
        translate: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        border-radius: 34px !important;
    }

    #tbs-modal-compra .tbs-app-sheet::before {
        inset: 10px !important;
        border-radius: 28px !important;
    }

    #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
        padding: 28px 74px 16px !important;
        text-align: center !important;
    }

    #tbs-modal-compra .tbs-app-method,
    #tbs-modal-compra .tbs-app-error,
    #tbs-modal-compra .tbs-app-form,
    #tbs-modal-compra .tbs-modal-actions {
        width: auto !important;
        margin-left: 42px !important;
        margin-right: 42px !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="tel"],
    #tbs-modal-compra .tbs-app-form .tbs-upload,
    #tbs-modal-compra .tbs-upload {
        grid-column: 1 / -1 !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        padding-bottom: 30px !important;
    }
}

@media (max-width: 767px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        padding: 10px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background: rgba(255, 248, 252, .74) !important;
    }

    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: min(430px, calc(100vw - 20px)) !important;
        max-width: min(430px, calc(100vw - 20px)) !important;
        max-height: calc(100dvh - 20px) !important;
        margin: auto !important;
        transform: none !important;
        translate: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }
}

/* =========================================================
   AJUSTE FINAL V2 - MODAL CONFIRMAR REGALO EN INICIO DESKTOP
   Nube Amor
   - Desktop: ubica la ventana al inicio horizontal y vertical
     del área visible del micrositio, sin salirse del viewport.
   - Móvil: conserva centrado compacto premium.
========================================================= */

@media (min-width: 768px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        position: fixed !important;
        inset: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        margin: 0 !important;
        padding-top: clamp(24px, 3vh, 44px) !important;
        padding-right: 32px !important;
        padding-bottom: 32px !important;
        padding-left: max(28px, calc((100vw - 1180px) / 2)) !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        background: rgba(255, 248, 252, .68) !important;
        backdrop-filter: blur(8px) saturate(1.03) !important;
        -webkit-backdrop-filter: blur(8px) saturate(1.03) !important;
        transform: none !important;
        translate: none !important;
        z-index: 2147483000 !important;
    }

    #tbs-modal-compra.tbs-modal-open,
    #tbs-modal-compra.is-open,
    #tbs-modal-compra[aria-hidden="false"],
    #tbs-modal-compra[style*="display: flex"],
    #tbs-modal-compra[style*="display:flex"],
    #tbs-modal-compra[style*="display: grid"],
    #tbs-modal-compra[style*="display:grid"],
    #tbs-modal-compra[style*="display: block"],
    #tbs-modal-compra[style*="display:block"] {
        display: grid !important;
        place-items: start !important;
        align-items: start !important;
        justify-items: start !important;
    }

    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: min(760px, calc(100vw - max(28px, calc((100vw - 1180px) / 2)) - 64px)) !important;
        max-width: min(760px, calc(100vw - max(28px, calc((100vw - 1180px) / 2)) - 64px)) !important;
        max-height: calc(100vh - 68px) !important;
        max-height: calc(100dvh - 68px) !important;
        margin: 0 !important;
        transform: none !important;
        translate: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        border-radius: 34px !important;
    }

    #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-header,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-header,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-header,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-header {
        padding-top: 30px !important;
    }
}

@media (min-width: 768px) and (max-width: 1120px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra,
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-publico-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body:has(.tbs-micrositio-nube-amor) #tbs-modal-compra .tbs-app-sheet,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-public-microsite-design-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body[data-tbs-ms-active-design="nube-amor"] #tbs-modal-compra .tbs-app-sheet {
        width: min(760px, calc(100vw - 48px)) !important;
        max-width: min(760px, calc(100vw - 48px)) !important;
    }
}

/* =========================================================
   32) AJUSTE FINAL - CONFIRMAR REGALO COMO FORMULARIO CENTRADO
   - Elimina visualmente la ventana/modal grande.
   - Centra el formulario real en pantalla desktop y móvil.
   - Evita desplazamientos laterales y micro-scroll interno.
   - Mantiene acabado premium Nube Amor.
========================================================= */

html:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra.tbs-modal-open),
html.tbs-modal-compra-open,
body.tbs-modal-compra-open,
html.tbs-aec-modal-visible,
body.tbs-aec-modal-visible {
    overflow: hidden !important;
}

#tbs-modal-compra,
#tbs-modal-compra.tbs-app-modal,
#tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"] {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: clamp(18px, 3vw, 42px) !important;
    display: grid !important;
    place-items: center !important;
    justify-content: center !important;
    align-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    background:
        radial-gradient(circle at 12% 18%, rgba(255, 230, 242, .42), transparent 34%),
        radial-gradient(circle at 90% 16%, rgba(232, 248, 255, .40), transparent 30%),
        rgba(255, 248, 252, .62) !important;
    backdrop-filter: blur(12px) saturate(1.04) !important;
    -webkit-backdrop-filter: blur(12px) saturate(1.04) !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* La antigua “ventana” queda invisible; solo contiene el formulario centrado */
#tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: min(640px, calc(100vw - 36px)) !important;
    max-width: 640px !important;
    min-width: 0 !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 14px !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

#tbs-modal-compra .tbs-app-sheet::before,
#tbs-modal-compra .tbs-app-sheet::after,
#tbs-modal-compra .tbs-handle {
    display: none !important;
    content: none !important;
}

/* Botón cerrar flotante, sin depender de la caja anterior */
#tbs-modal-compra .tbs-close-modal {
    position: fixed !important;
    top: max(18px, env(safe-area-inset-top)) !important;
    right: max(18px, env(safe-area-inset-right)) !important;
    z-index: 2147483002 !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    background: rgba(255,255,255,.92) !important;
    color: #4d3f47 !important;
    font-size: 24px !important;
    line-height: 1 !important;
    box-shadow: 0 16px 38px rgba(87, 63, 76, .16) !important;
}

/* Encabezado convertido en cabecera del formulario, centrado y compacto */
#tbs-modal-compra .tbs-app-header {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    justify-items: center !important;
    gap: 8px !important;
    text-align: center !important;
    background: transparent !important;
    border: 0 !important;
}

#tbs-modal-compra .tbs-app-header::before {
    content: "🎁" !important;
    width: 58px !important;
    height: 58px !important;
    margin: 0 auto 4px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at 30% 20%, rgba(255,255,255,.94), transparent 34%),
        linear-gradient(135deg, rgba(255,240,247,.96), rgba(235,248,255,.94)) !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-size: 27px !important;
    box-shadow: 0 14px 32px rgba(124,87,106,.12) !important;
}

#tbs-modal-compra .tbs-app-header h3 {
    margin: 0 !important;
    max-width: 100% !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-family: var(--tbs-ms-font-title, Georgia, serif) !important;
    font-size: clamp(44px, 4.6vw, 64px) !important;
    font-weight: 700 !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    text-align: center !important;
    white-space: normal !important;
}

#tbs-modal-compra .tbs-app-header p {
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto 2px !important;
    color: #455d70 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Método de pago como tarjeta del formulario */
#tbs-modal-compra .tbs-app-method {
    width: 100% !important;
    margin: 2px auto 0 !important;
    padding: 18px 20px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(143,199,220,.22) !important;
    background: rgba(255,255,255,.90) !important;
    box-shadow:
        0 18px 44px rgba(124,87,106,.10),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

#tbs-modal-compra .tbs-app-method .label {
    display: block !important;
    margin: 0 0 8px !important;
    color: #455d70 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
}

#tbs-modal-compra #tbs-metodo-modal {
    color: #455d70 !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    white-space: pre-line !important;
}

#tbs-modal-compra .tbs-app-error {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 12px 14px !important;
    border-radius: 18px !important;
    background: rgba(255,240,247,.94) !important;
    color: var(--tbs-ms-pink-dark, #ce4f86) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-align: center !important;
}

/* El formulario queda en el centro, como único contenedor funcional */
#tbs-modal-compra .tbs-app-form {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    overflow: visible !important;
    background: transparent !important;
}

#tbs-modal-compra .tbs-app-form input[type="text"],
#tbs-modal-compra .tbs-app-form input[type="email"],
#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 54px !important;
    padding: 15px 18px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.94) !important;
    color: #455d70 !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    outline: none !important;
    box-shadow:
        0 12px 28px rgba(124,87,106,.07),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
}

#tbs-modal-compra .tbs-app-form input::placeholder,
#tbs-modal-compra .tbs-app-form textarea::placeholder {
    color: #455d70 !important;
    opacity: .94 !important;
}

#tbs-modal-compra .tbs-app-form input:focus,
#tbs-modal-compra .tbs-app-form textarea:focus {
    border-color: rgba(236,111,163,.38) !important;
    box-shadow:
        0 0 0 4px rgba(236,111,163,.10),
        0 14px 30px rgba(124,87,106,.09),
        inset 0 1px 0 rgba(255,255,255,.94) !important;
}

#tbs-modal-compra .tbs-app-form input[type="tel"],
#tbs-modal-compra .tbs-app-form textarea,
#tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
}

#tbs-modal-compra .tbs-upload {
    width: 100% !important;
    margin: 0 !important;
    padding: 16px !important;
    display: grid !important;
    gap: 10px !important;
    border-radius: 22px !important;
    border: 1px dashed rgba(236,111,163,.28) !important;
    background: rgba(255,255,255,.74) !important;
    color: #455d70 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    box-shadow: 0 12px 28px rgba(124,87,106,.06) !important;
}

#tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 46px !important;
    padding: 9px 10px !important;
    border-radius: 17px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.95) !important;
    color: #455d70 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

#tbs-modal-compra .tbs-modal-actions {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1.12fr !important;
    gap: 12px !important;
    background: transparent !important;
}

#tbs-modal-compra .tbs-cancel-buy,
#tbs-modal-compra .tbs-confirm-buy {
    width: 100% !important;
    min-height: 56px !important;
    padding: 15px 20px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
}

#tbs-modal-compra .tbs-cancel-buy {
    border: 1px solid rgba(255,255,255,.82) !important;
    background: rgba(255,255,255,.92) !important;
    color: #6f7f8d !important;
    box-shadow: 0 14px 30px rgba(124,87,106,.09) !important;
}

#tbs-modal-compra .tbs-confirm-buy {
    border: 1px solid rgba(255,255,255,.76) !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 24% 18%, rgba(255,255,255,.34), transparent 28%),
        linear-gradient(135deg, #ec6fa3 0%, #d75d96 48%, #8fc7dc 100%) !important;
    box-shadow: 0 18px 40px rgba(236,111,163,.28) !important;
}

#tbs-modal-compra .tbs-confirm-buy:disabled,
#tbs-modal-compra .tbs-confirm-buy[disabled] {
    opacity: .74 !important;
    filter: saturate(.92) !important;
    cursor: not-allowed !important;
}

@media (min-width: 768px) {
    #tbs-modal-compra .tbs-app-sheet {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

@media (max-width: 767px) {
    #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal,
    #tbs-modal-compra.tbs-modal-open,
    #tbs-modal-compra[style*="display: flex"],
    #tbs-modal-compra[style*="display:flex"] {
        padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
        align-content: center !important;
        place-items: center !important;
    }

    #tbs-modal-compra .tbs-app-sheet {
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        gap: 11px !important;
    }

    #tbs-modal-compra .tbs-close-modal {
        top: max(12px, env(safe-area-inset-top)) !important;
        right: 12px !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        min-height: 42px !important;
        font-size: 21px !important;
    }

    #tbs-modal-compra .tbs-app-header::before {
        width: 48px !important;
        height: 48px !important;
        border-radius: 18px !important;
        font-size: 23px !important;
        margin-bottom: 2px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(36px, 11vw, 48px) !important;
        line-height: .92 !important;
    }

    #tbs-modal-compra .tbs-app-header p {
        max-width: 330px !important;
        font-size: 13.5px !important;
        line-height: 1.28 !important;
    }

    #tbs-modal-compra .tbs-app-method {
        padding: 14px 16px !important;
        border-radius: 20px !important;
    }

    #tbs-modal-compra #tbs-metodo-modal {
        font-size: 14.5px !important;
        line-height: 1.28 !important;
    }

    #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"],
    #tbs-modal-compra .tbs-app-form textarea {
        min-height: 48px !important;
        padding: 12px 15px !important;
        border-radius: 17px !important;
        font-size: 13.5px !important;
    }

    #tbs-modal-compra .tbs-upload {
        padding: 12px !important;
        gap: 7px !important;
        border-radius: 18px !important;
        font-size: 13px !important;
    }

    #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 40px !important;
        padding: 7px !important;
        border-radius: 15px !important;
        font-size: 12px !important;
    }

    #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 9px !important;
    }

    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 48px !important;
        padding: 12px 10px !important;
        font-size: 12.5px !important;
    }
}

@media (max-width: 380px) {
    #tbs-modal-compra .tbs-app-sheet {
        gap: 9px !important;
    }

    #tbs-modal-compra .tbs-app-header h3 {
        font-size: 34px !important;
    }

    #tbs-modal-compra .tbs-app-header p {
        font-size: 12.8px !important;
    }

    #tbs-modal-compra .tbs-app-method {
        padding: 12px 14px !important;
    }

    #tbs-modal-compra .tbs-app-form input[type="text"],
    #tbs-modal-compra .tbs-app-form input[type="email"],
    #tbs-modal-compra .tbs-app-form input[type="tel"] {
        min-height: 44px !important;
    }

    #tbs-modal-compra .tbs-cancel-buy,
    #tbs-modal-compra .tbs-confirm-buy {
        min-height: 44px !important;
        font-size: 12px !important;
    }
}


/* =========================================================
   NUBE AMOR - CONFIRMAR REGALO CENTRADO PREMIUM FINAL V30
   Objetivo:
   - El modal ocupa todo el viewport real.
   - El formulario queda centrado horizontal y verticalmente en desktop.
   - Se elimina el desplazamiento heredado de contenedores Elementor/shortcode.
   - No hay panel lateral gigante ni micro-scroll interno del formulario.
========================================================= */

html:has(#tbs-modal-compra.tbs-modal-open),
body:has(#tbs-modal-compra.tbs-modal-open),
html:has(#tbs-modal-compra[style*="display: flex"]),
body:has(#tbs-modal-compra[style*="display: flex"]),
html:has(#tbs-modal-compra[style*="display:flex"]),
body:has(#tbs-modal-compra[style*="display:flex"]) {
    overflow: hidden !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra,
body.tbs-micrositio-nube-amor #tbs-modal-compra,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra,
#tbs-modal-compra.tbs-app-modal {
    position: fixed !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    inset: auto !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: clamp(18px, 3vw, 34px) !important;
    z-index: 2147483600 !important;
    overflow: hidden !important;
    display: none !important;
    place-items: center !important;
    align-items: center !important;
    justify-content: center !important;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.30), transparent 32%),
        linear-gradient(90deg, rgba(255,248,252,.78), rgba(239,250,255,.72)) !important;
    backdrop-filter: blur(14px) saturate(1.04) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.04) !important;
    transform: none !important;
    translate: none !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra.tbs-modal-open,
body.tbs-micrositio-nube-amor #tbs-modal-compra.tbs-modal-open,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra.tbs-modal-open,
#tbs-modal-compra.tbs-app-modal.tbs-modal-open,
#tbs-modal-compra[style*="display: flex"],
#tbs-modal-compra[style*="display:flex"],
#tbs-modal-compra[style*="display: block"],
#tbs-modal-compra[style*="display:block"] {
    display: grid !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra::before,
body.tbs-micrositio-nube-amor #tbs-modal-compra::before,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,248,252,.22)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
    opacity: .18 !important;
    filter: blur(1px) !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-sheet,
#tbs-modal-compra.tbs-app-modal .tbs-app-sheet {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    translate: none !important;
    margin: 0 auto !important;
    width: min(760px, calc(100vw - 64px)) !important;
    min-width: 0 !important;
    max-width: 760px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 68px) !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-rows: auto auto auto auto !important;
    align-content: center !important;
    border-radius: 36px !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    background:
        radial-gradient(circle at 18% 0%, rgba(255,255,255,.96), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(223,244,255,.70), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.97), rgba(255,248,252,.94) 62%, rgba(240,250,255,.90)) !important;
    box-shadow:
        0 34px 94px rgba(64, 52, 59, .20),
        0 12px 34px rgba(236,111,163,.10),
        inset 0 1px 0 rgba(255,255,255,.92) !important;
    font-family: var(--tbs-ms-font-body, "Roboto", Arial, sans-serif) !important;
    color: #4e6172 !important;
    isolation: isolate !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet::before,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-sheet::before {
    content: "" !important;
    position: absolute !important;
    inset: 12px !important;
    z-index: -1 !important;
    border-radius: 30px !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.06)) !important;
    pointer-events: none !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-handle,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-handle,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-handle {
    display: none !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-close-modal,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-close-modal,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-close-modal {
    position: absolute !important;
    top: 22px !important;
    right: 22px !important;
    z-index: 10 !important;
    width: 42px !important;
    height: 42px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.86) !important;
    color: #4e6172 !important;
    box-shadow: 0 12px 26px rgba(78,97,114,.12) !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header {
    padding: 34px 72px 14px !important;
    margin: 0 !important;
    text-align: center !important;
    display: grid !important;
    justify-items: center !important;
    gap: 8px !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header::before {
    content: "🎁" !important;
    width: 54px !important;
    height: 54px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto 6px !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, rgba(255,240,247,.96), rgba(234,248,255,.94)) !important;
    border: 1px solid rgba(255,255,255,.88) !important;
    box-shadow: 0 14px 30px rgba(78,97,114,.10) !important;
    font-size: 25px !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header h3 {
    margin: 0 !important;
    color: #c76595 !important;
    font-family: var(--tbs-ms-font-title, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(42px, 4.3vw, 60px) !important;
    font-weight: 700 !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    white-space: normal !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header p {
    width: 100% !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    word-break: normal !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-method {
    margin: 0 48px 16px !important;
    padding: 16px 18px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(169,216,245,.38) !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 14px 28px rgba(78,97,114,.06) !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method .label,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method .label,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-method .label {
    display: block !important;
    margin-bottom: 8px !important;
    color: #4e6172 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra #tbs-metodo-modal,
body.tbs-micrositio-nube-amor #tbs-modal-compra #tbs-metodo-modal,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra #tbs-metodo-modal {
    color: #4e6172 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    white-space: pre-line !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    padding: 0 48px !important;
    overflow: visible !important;
    max-height: none !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form input,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-height: 50px !important;
    padding: 13px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.10) !important;
    background: rgba(255,255,255,.92) !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.86) !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form input[type="tel"] {
    grid-column: 1 / -1 !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    border: 1px dashed rgba(236,111,163,.22) !important;
    background: rgba(255,255,255,.54) !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 42px !important;
    margin-top: 9px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.86) !important;
    color: #4e6172 !important;
    font-size: 13px !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-modal-actions {
    display: grid !important;
    grid-template-columns: 1fr 1.2fr !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 18px 48px 34px !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-cancel-buy,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-confirm-buy {
    min-height: 52px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-cancel-buy {
    border: 1px solid rgba(236,111,163,.10) !important;
    background: rgba(255,255,255,.78) !important;
    color: #6f8190 !important;
}

body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-confirm-buy {
    border: 1px solid rgba(255,255,255,.36) !important;
    color: #fff !important;
    background: linear-gradient(135deg, #f5bfd7 0%, #dfa4dc 46%, #bfe4ff 100%) !important;
    box-shadow: 0 18px 38px rgba(198,101,149,.20), inset 0 1px 0 rgba(255,255,255,.28) !important;
}

@media (min-width: 768px) and (max-height: 760px) {
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra {
        overflow-y: auto !important;
        align-items: center !important;
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-sheet {
        max-height: none !important;
        overflow: visible !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header {
        padding-top: 24px !important;
    }
}

@media (max-width: 767px) {
    body.tbs-publico-nube-amor #tbs-modal-compra,
    body.tbs-micrositio-nube-amor #tbs-modal-compra,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra,
    #tbs-modal-compra.tbs-app-modal {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
        overflow-y: auto !important;
        place-items: center !important;
        background: rgba(255,248,252,.76) !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-sheet,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-sheet,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-sheet,
    #tbs-modal-compra.tbs-app-modal .tbs-app-sheet {
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        max-height: none !important;
        overflow: visible !important;
        border-radius: 30px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-close-modal,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-close-modal,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-close-modal {
        top: 16px !important;
        right: 16px !important;
        width: 38px !important;
        height: 38px !important;
        border-radius: 14px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header {
        padding: 22px 56px 12px !important;
        gap: 6px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header::before,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header::before,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header::before {
        width: 44px !important;
        height: 44px !important;
        border-radius: 16px !important;
        font-size: 21px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header h3,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header h3,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(34px, 10vw, 46px) !important;
        line-height: .9 !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-header p,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-header p,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-header p {
        font-size: 13px !important;
        line-height: 1.3 !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-method,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-method,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-method {
        margin: 0 18px 12px !important;
        padding: 13px 14px !important;
        border-radius: 20px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        padding: 0 18px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="text"],
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="email"],
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form input[type="tel"],
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-app-form textarea,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form input,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-app-form textarea {
        min-height: 44px !important;
        padding: 11px 13px !important;
        border-radius: 16px !important;
        font-size: 13.5px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-upload {
        padding: 11px 12px !important;
        border-radius: 18px !important;
        font-size: 12.5px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-upload input[type="file"],
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 36px !important;
        font-size: 11.5px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-modal-actions,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-modal-actions,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        padding: 12px 18px 20px !important;
    }

    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-publico-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-cancel-buy,
    body.tbs-micrositio-nube-amor #tbs-modal-compra .tbs-confirm-buy,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-cancel-buy,
    html.tbs-public-microsite-design-nube-amor body #tbs-modal-compra .tbs-confirm-buy {
        min-height: 44px !important;
        padding: 10px 12px !important;
        font-size: 12.5px !important;
    }
}


/* =========================================================
   NUBE AMOR - CONFIRMAR REGALO CENTRADO REAL V31
   - Requiere el JS que mueve #tbs-modal-compra al <body>.
   - Centra el formulario respecto al viewport real.
   - Corrige texto vertical/partido en header.
   - Evita micro-scroll interno del formulario.
========================================================= */
html.tbs-modal-compra-open,
body.tbs-modal-compra-open,
html.tbs-aec-modal-visible,
body.tbs-aec-modal-visible,
html:has(body > #tbs-modal-compra.tbs-modal-open),
body:has(> #tbs-modal-compra.tbs-modal-open) {
    overflow: hidden !important;
}

body > #tbs-modal-compra,
body > #tbs-modal-compra.tbs-app-modal,
body > #tbs-modal-compra.tbs-modal-body-mounted {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 2147483600 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: clamp(22px, 3vw, 42px) !important;
    box-sizing: border-box !important;
    display: none !important;
    place-items: center !important;
    align-items: center !important;
    justify-items: center !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background:
        radial-gradient(circle at 10% 16%, rgba(255, 231, 242, .50), transparent 32%),
        radial-gradient(circle at 90% 14%, rgba(225, 246, 255, .44), transparent 30%),
        linear-gradient(135deg, rgba(255, 248, 252, .78), rgba(240, 250, 255, .74)) !important;
    backdrop-filter: blur(14px) saturate(1.05) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.05) !important;
    transform: none !important;
    translate: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body > #tbs-modal-compra.tbs-modal-open,
body > #tbs-modal-compra.tbs-modal-body-mounted.tbs-modal-open,
body > #tbs-modal-compra[style*="display: grid"],
body > #tbs-modal-compra[style*="display:grid"],
body > #tbs-modal-compra[style*="display: flex"],
body > #tbs-modal-compra[style*="display:flex"] {
    display: grid !important;
}

body > #tbs-modal-compra::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    opacity: .16 !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,248,252,.24)),
        url('/wp-content/uploads/Disenos/Micrositios/NubeAmor/decor-Nube-Amor-desktop.png') center top / cover no-repeat !important;
    filter: blur(1px) !important;
}

body > #tbs-modal-compra .tbs-app-sheet,
body.tbs-publico-nube-amor > #tbs-modal-compra .tbs-app-sheet,
body.tbs-micrositio-nube-amor > #tbs-modal-compra .tbs-app-sheet,
html.tbs-public-microsite-design-nube-amor body > #tbs-modal-compra .tbs-app-sheet {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: min(760px, calc(100vw - 52px)) !important;
    max-width: 760px !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: auto !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    transform: none !important;
    translate: none !important;
    border-radius: 38px !important;
    border: 1px solid rgba(255,255,255,.82) !important;
    background:
        radial-gradient(circle at 16% 0%, rgba(255,255,255,.98), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(223,244,255,.66), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,248,252,.95) 62%, rgba(240,250,255,.92)) !important;
    box-shadow:
        0 34px 96px rgba(64, 52, 59, .22),
        0 12px 34px rgba(236,111,163,.10),
        inset 0 1px 0 rgba(255,255,255,.94) !important;
    color: #4e6172 !important;
    isolation: isolate !important;
}

body > #tbs-modal-compra .tbs-app-sheet::before {
    content: "" !important;
    position: absolute !important;
    inset: 12px !important;
    z-index: -1 !important;
    border-radius: 31px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.06)) !important;
    pointer-events: none !important;
}

body > #tbs-modal-compra .tbs-app-sheet::after,
body > #tbs-modal-compra .tbs-handle {
    display: none !important;
    content: none !important;
}

body > #tbs-modal-compra .tbs-close-modal {
    position: absolute !important;
    top: 22px !important;
    right: 22px !important;
    z-index: 10 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.90) !important;
    color: #4e6172 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    box-shadow: 0 12px 26px rgba(78,97,114,.12) !important;
}

body > #tbs-modal-compra .tbs-app-header {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 36px 76px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    text-align: center !important;
    background: transparent !important;
    border: 0 !important;
}

body > #tbs-modal-compra .tbs-app-header::before {
    content: "🎁" !important;
    position: static !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
    margin: 0 auto 6px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 21px !important;
    background: linear-gradient(135deg, rgba(255,240,247,.98), rgba(234,248,255,.95)) !important;
    border: 1px solid rgba(255,255,255,.90) !important;
    box-shadow: 0 14px 30px rgba(78,97,114,.10) !important;
    font-size: 26px !important;
    line-height: 1 !important;
}

body > #tbs-modal-compra .tbs-app-header h3 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #c76595 !important;
    font-family: var(--tbs-ms-font-title, "Cormorant Garamond", Georgia, serif) !important;
    font-size: clamp(42px, 4.3vw, 62px) !important;
    font-weight: 700 !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    writing-mode: horizontal-tb !important;
}

body > #tbs-modal-compra .tbs-app-header p {
    display: block !important;
    width: 100% !important;
    max-width: 580px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    writing-mode: horizontal-tb !important;
}

body > #tbs-modal-compra .tbs-app-method {
    width: auto !important;
    margin: 0 48px 16px !important;
    padding: 16px 18px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(169,216,245,.38) !important;
    background: rgba(255,255,255,.80) !important;
    box-shadow: 0 14px 28px rgba(78,97,114,.06) !important;
}

body > #tbs-modal-compra .tbs-app-form {
    width: auto !important;
    margin: 0 !important;
    padding: 0 48px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    overflow: visible !important;
    max-height: none !important;
}

body > #tbs-modal-compra .tbs-app-form input[type="text"],
body > #tbs-modal-compra .tbs-app-form input[type="email"],
body > #tbs-modal-compra .tbs-app-form input[type="tel"],
body > #tbs-modal-compra .tbs-app-form textarea {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    padding: 13px 16px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(236,111,163,.10) !important;
    background: rgba(255,255,255,.94) !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88) !important;
}

body > #tbs-modal-compra .tbs-app-form input[type="tel"],
body > #tbs-modal-compra .tbs-upload {
    grid-column: 1 / -1 !important;
}

body > #tbs-modal-compra .tbs-upload {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px !important;
    border-radius: 20px !important;
    border: 1px dashed rgba(236,111,163,.22) !important;
    background: rgba(255,255,255,.58) !important;
    color: #4e6172 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    overflow: visible !important;
}

body > #tbs-modal-compra .tbs-upload input[type="file"] {
    width: 100% !important;
    min-height: 42px !important;
    margin-top: 9px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(236,111,163,.12) !important;
    background: rgba(255,255,255,.88) !important;
    color: #4e6172 !important;
    font-size: 13px !important;
}

body > #tbs-modal-compra .tbs-modal-actions {
    width: auto !important;
    margin: 0 !important;
    padding: 18px 48px 34px !important;
    display: grid !important;
    grid-template-columns: 1fr 1.2fr !important;
    gap: 12px !important;
    background: transparent !important;
}

body > #tbs-modal-compra .tbs-cancel-buy,
body > #tbs-modal-compra .tbs-confirm-buy {
    width: 100% !important;
    min-height: 52px !important;
    padding: 14px 18px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-align: center !important;
}

body > #tbs-modal-compra .tbs-cancel-buy {
    border: 1px solid rgba(236,111,163,.10) !important;
    background: rgba(255,255,255,.82) !important;
    color: #6f8190 !important;
}

body > #tbs-modal-compra .tbs-confirm-buy {
    border: 1px solid rgba(255,255,255,.38) !important;
    color: #fff !important;
    background: linear-gradient(135deg, #f5bfd7 0%, #dfa4dc 46%, #bfe4ff 100%) !important;
    box-shadow: 0 18px 38px rgba(198,101,149,.20), inset 0 1px 0 rgba(255,255,255,.28) !important;
}

@media (min-width: 768px) and (max-height: 760px) {
    body > #tbs-modal-compra {
        align-items: start !important;
        place-items: start center !important;
        padding-top: 18px !important;
        padding-bottom: 18px !important;
    }
}

@media (max-width: 767px) {
    body > #tbs-modal-compra,
    body > #tbs-modal-compra.tbs-app-modal,
    body > #tbs-modal-compra.tbs-modal-body-mounted {
        padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)) !important;
        place-items: center !important;
        align-items: center !important;
        overflow-y: auto !important;
        background: rgba(255,248,252,.78) !important;
    }

    body > #tbs-modal-compra .tbs-app-sheet {
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        border-radius: 30px !important;
    }

    body > #tbs-modal-compra .tbs-app-sheet::before {
        inset: 9px !important;
        border-radius: 24px !important;
    }

    body > #tbs-modal-compra .tbs-close-modal {
        top: 14px !important;
        right: 14px !important;
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
        border-radius: 14px !important;
        font-size: 20px !important;
    }

    body > #tbs-modal-compra .tbs-app-header {
        padding: 22px 54px 12px !important;
        gap: 6px !important;
    }

    body > #tbs-modal-compra .tbs-app-header::before {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        border-radius: 16px !important;
        font-size: 21px !important;
        margin-bottom: 4px !important;
    }

    body > #tbs-modal-compra .tbs-app-header h3 {
        font-size: clamp(34px, 10vw, 46px) !important;
        line-height: .9 !important;
    }

    body > #tbs-modal-compra .tbs-app-header p {
        max-width: 320px !important;
        font-size: 13px !important;
        line-height: 1.3 !important;
    }

    body > #tbs-modal-compra .tbs-app-method {
        margin: 0 18px 12px !important;
        padding: 13px 14px !important;
        border-radius: 20px !important;
    }

    body > #tbs-modal-compra .tbs-app-form {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
        padding: 0 18px !important;
    }

    body > #tbs-modal-compra .tbs-app-form input[type="text"],
    body > #tbs-modal-compra .tbs-app-form input[type="email"],
    body > #tbs-modal-compra .tbs-app-form input[type="tel"],
    body > #tbs-modal-compra .tbs-app-form textarea {
        min-height: 44px !important;
        padding: 11px 13px !important;
        border-radius: 16px !important;
        font-size: 13.5px !important;
    }

    body > #tbs-modal-compra .tbs-upload {
        padding: 11px 12px !important;
        border-radius: 18px !important;
        font-size: 12.5px !important;
    }

    body > #tbs-modal-compra .tbs-upload input[type="file"] {
        min-height: 36px !important;
        font-size: 11.5px !important;
    }

    body > #tbs-modal-compra .tbs-modal-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        padding: 12px 18px 20px !important;
    }

    body > #tbs-modal-compra .tbs-cancel-buy,
    body > #tbs-modal-compra .tbs-confirm-buy {
        min-height: 44px !important;
        padding: 10px 12px !important;
        font-size: 12.5px !important;
    }
}

/* =========================================================
   TBS SCROLL FLUIDO V2 — OVERRIDE MÓVIL FINAL
   - Neutraliza fondos/pseudo-capas fixed reintroducidos por versiones antiguas.
   - Elimina filtros y animaciones de repintado continuo en pantallas táctiles.
   - Evita scrolls anidados y prioriza el desplazamiento vertical nativo.
   - Debe permanecer al FINAL del archivo.
========================================================= */
@media (max-width: 1024px), (pointer: coarse) {
    html[data-tbs-public-ms-design],
    html[class*="tbs-ms-design-"] {
        min-height: 100% !important;
        height: auto !important;
        overflow-x: clip !important;
        overflow-y: auto !important;
        position: static !important;
        touch-action: pan-y pinch-zoom !important;
        overscroll-behavior-x: none !important;
        overscroll-behavior-y: auto !important;
        scroll-behavior: auto !important;
        background-attachment: scroll !important;
        -webkit-overflow-scrolling: touch !important;
    }

    html[data-tbs-public-ms-design] body,
    html[data-tbs-public-ms-design] body.tbs-public-microsite-ready,
    html[data-tbs-public-ms-design] body[class*="tbs-publico-"],
    html[data-tbs-public-ms-design] body[class*="tbs-micrositio-"] {
        min-height: 100% !important;
        height: auto !important;
        overflow-x: clip !important;
        overflow-y: visible !important;
        position: relative !important;
        touch-action: pan-y pinch-zoom !important;
        overscroll-behavior-y: auto !important;
        scroll-behavior: auto !important;
        background-attachment: scroll !important;
    }

    html[data-tbs-public-ms-design] body::before,
    html[data-tbs-public-ms-design] body::after,
    html[data-tbs-public-ms-design] body.tbs-public-microsite-ready::before,
    html[data-tbs-public-ms-design] body.tbs-public-microsite-ready::after,
    html[data-tbs-public-ms-design] body[class*="tbs-publico-"]::before,
    html[data-tbs-public-ms-design] body[class*="tbs-publico-"]::after,
    html[data-tbs-public-ms-design] body[class*="tbs-micrositio-"]::before,
    html[data-tbs-public-ms-design] body[class*="tbs-micrositio-"]::after {
        content: none !important;
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        position: static !important;
        inset: auto !important;
        background: none !important;
        background-image: none !important;
        transform: none !important;
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: none !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms.tbs-micrositio-publico,
    html[data-tbs-public-ms-design] body .tbs-micrositio-publico,
    html[data-tbs-public-ms-design] body .tbs-public-event-shell {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow-x: clip !important;
        overflow-y: visible !important;
        position: relative !important;
        inset: auto !important;
        transform: none !important;
        perspective: none !important;
        contain: none !important;
        will-change: auto !important;
        touch-action: pan-y pinch-zoom !important;
        overscroll-behavior-y: auto !important;
        scroll-snap-type: none !important;
        background-attachment: scroll !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms :is(
        section,
        .tbs-ms-section,
        .tbs-ms-hero,
        .tbs-ms-countdown-section,
        .tbs-ms-closing,
        .tbs-ms-details-card,
        .tbs-ms-rsvp-card,
        .tbs-ms-location-card,
        .tbs-ms-module-card,
        .tbs-ms-guestbook-card,
        .tbs-ms-countdown-card,
        .tbs-ms-art-card,
        .tbs-regalos-publico,
        .tbs-virtual-publico,
        .tbs-guestbook
    ) {
        overflow-y: visible !important;
        max-height: none !important;
        scroll-snap-type: none !important;
        scroll-snap-align: none !important;
        scroll-snap-stop: normal !important;
        overscroll-behavior-y: auto !important;
        background-attachment: scroll !important;
        will-change: auto !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms :is(
        .tbs-ms-bg,
        .tbs-ms-bg-one,
        .tbs-ms-bg-two,
        .tbs-ms-floating,
        .tbs-ms-floating-one,
        .tbs-ms-floating-two
    ) {
        display: none !important;
        animation: none !important;
        transform: none !important;
        filter: none !important;
        -webkit-filter: none !important;
        will-change: auto !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms :is(
        .tbs-ms-quicknav,
        .tbs-ms-nav,
        .tbs-ms-menu,
        .tbs-ms-anchor-nav,
        .tbs-ms-floating-nav
    ) {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        flex-wrap: wrap !important;
        touch-action: pan-y pinch-zoom !important;
        overscroll-behavior: auto !important;
        scroll-snap-type: none !important;
        -webkit-overflow-scrolling: auto !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms :is(
        [class*="card"],
        [class*="glass"],
        [class*="quicknav"],
        [class*="sticky-nav"],
        [class*="header"]
    ) {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background-attachment: scroll !important;
        will-change: auto !important;
    }

    html[data-tbs-public-ms-design] body .tbs-ms * ,
    html[data-tbs-public-ms-design] body .tbs-ms *::before,
    html[data-tbs-public-ms-design] body .tbs-ms *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }

    /* Los diálogos reales conservan su capa fija y scroll interno. */
    html[data-tbs-public-ms-design] body :is(
        [aria-modal="true"],
        .tbs-modal.is-open,
        #tbs-modal-compra.tbs-modal-open,
        #tbs-regalo-form-window,
        .elementor-popup-modal,
        .tbs-regalo-thanks-modal,
        .tbs-aec-thanks-overlay,
        .tbs-pm-thanks-overlay
    ) {
        touch-action: pan-y pinch-zoom !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

