.apmpt-price-group,
.apmpt-price-card,
.apmpt-benefits,
.apmpt-title,
.apmpt-title * {
    box-sizing: border-box;
}

/* Títulos decorativos */
.apmpt-title {
    --apmpt-title-color: #f1eddb;
    --apmpt-title-line: #bda45a;
    --apmpt-title-icon: #bda45a;
    --apmpt-title-shadow: #000000;
    --apmpt-title-size: 76px;
    --apmpt-title-size-mobile: 38px;
    --apmpt-title-spacing: 14px;
    --apmpt-title-line-width: 180px;
    --apmpt-title-line-height: 3px;
    --apmpt-title-gap: 22px;
    --apmpt-title-mt: 0px;
    --apmpt-title-mb: 26px;

    width: 100%;
    margin-top: var(--apmpt-title-mt);
    margin-bottom: var(--apmpt-title-mb);
}

.apmpt-title__row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--apmpt-title-gap);
    width: 100%;
}

.apmpt-title--left .apmpt-title__row {
    justify-content: flex-start;
}

.apmpt-title--right .apmpt-title__row {
    justify-content: flex-end;
}

.apmpt-title__text {
    margin: 0;
    color: var(--apmpt-title-color);
    font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size: clamp(var(--apmpt-title-size-mobile), 7vw, var(--apmpt-title-size));
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: var(--apmpt-title-spacing);
    text-align: center;
    text-transform: uppercase;
    text-shadow: 0 4px 12px color-mix(in srgb, var(--apmpt-title-shadow) 55%, transparent);
    white-space: nowrap;
}

.apmpt-title__line {
    position: relative;
    flex: 0 1 var(--apmpt-title-line-width);
    width: var(--apmpt-title-line-width);
    max-width: 18vw;
    height: var(--apmpt-title-line-height);
    background: var(--apmpt-title-line);
    opacity: 0.85;
}

.apmpt-title--lines-double .apmpt-title__line::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(var(--apmpt-title-line-height) + 8px);
    height: max(1px, calc(var(--apmpt-title-line-height) - 1px));
    background: var(--apmpt-title-line);
    opacity: 0.45;
}

.apmpt-title--lines-none .apmpt-title__line {
    display: none;
}

.apmpt-title__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 10px auto 0;
    color: var(--apmpt-title-icon);
    font-size: clamp(22px, 3vw, 36px);
    line-height: 1;
    text-align: center;
    text-shadow: 0 3px 8px color-mix(in srgb, var(--apmpt-title-shadow) 45%, transparent);
}

.apmpt-title__icon img {
    display: block;
    width: clamp(24px, 3vw, 42px);
    height: clamp(24px, 3vw, 42px);
    object-fit: contain;
}

/* Cajas de precio */
.apmpt-price-group {
    display: grid;
    grid-template-columns: repeat(var(--apmpt-columns, 2), minmax(220px, 1fr));
    gap: 24px;
    align-items: stretch;
    justify-items: var(--apmpt-group-align, center);
    width: 100%;
}

.apmpt-price-card {
    --apmpt-card-bg: #eee9d7;
    --apmpt-card-text: #182012;
    --apmpt-card-border: #bda45a;
    --apmpt-card-accent: #223018;
    --apmpt-ribbon-bg: #c8b36b;
    --apmpt-ribbon-color: #4b3b11;
    --apmpt-card-radius: 16px;
    --apmpt-card-width: 360px;

    position: relative;
    display: block;
    width: 100%;
    max-width: var(--apmpt-card-width);
    min-height: 138px;
    margin: 0 auto;
    padding: 22px 26px 22px;
    overflow: hidden;
    color: var(--apmpt-card-text);
    text-align: center;
    text-decoration: none !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.58), transparent 46%),
        var(--apmpt-card-bg);
    border: 2px solid var(--apmpt-card-border);
    border-radius: var(--apmpt-card-radius);
    transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, filter .22s ease;
}

.apmpt-price-card--shadow {
    box-shadow: 0 14px 26px rgba(0,0,0,0.25);
}

.apmpt-price-card:hover {
    color: var(--apmpt-card-text);
    text-decoration: none !important;
}

.apmpt-price-card__head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-bottom: 10px;
}

.apmpt-price-card__line {
    position: absolute;
    left: 18%;
    right: 18%;
    top: 50%;
    height: 1px;
    background: color-mix(in srgb, var(--apmpt-card-text) 30%, transparent);
}

.apmpt-price-card__icon {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    color: var(--apmpt-card-bg);
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    background: var(--apmpt-card-accent);
    border: 1px solid var(--apmpt-card-border);
    border-radius: 999px;
}

.apmpt-price-card__icon img {
    display: block;
    width: 62%;
    height: 62%;
    object-fit: contain;
}

.apmpt-price-card__title {
    margin: 0 0 10px;
    color: var(--apmpt-card-text);
    font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size: clamp(20px, 2vw, 32px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.apmpt-price-card__price {
    margin: 0;
    color: var(--apmpt-card-text);
    font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
    font-size: clamp(58px, 7vw, 92px);
    font-weight: 900;
    line-height: 0.86;
    letter-spacing: 0.035em;
}

.apmpt-price-card__price span {
    margin-left: 7px;
    font-size: 0.52em;
}

.apmpt-price-card__subtitle {
    max-width: 310px;
    margin: 10px auto 0;
    color: var(--apmpt-card-text);
    font-size: clamp(14px, 1.3vw, 17px);
    line-height: 1.18;
}

.apmpt-price-card__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    padding: 8px 18px;
    color: var(--apmpt-card-bg);
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--apmpt-card-accent);
    border-radius: 999px;
}

.apmpt-price-card__ribbon {
    position: absolute;
    top: 16px;
    right: -38px;
    z-index: 5;
    width: 205px;
    padding: 8px 12px;
    color: var(--apmpt-ribbon-color);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-align: center;
    text-transform: uppercase;
    background: var(--apmpt-ribbon-bg);
    transform: rotate(28deg);
}

/* Variantes cajas */
.apmpt-price-card--compact {
    min-height: 112px;
    padding: 14px 22px 16px;
}

.apmpt-price-card--compact .apmpt-price-card__head {
    min-height: 36px;
    margin-bottom: 4px;
}

.apmpt-price-card--compact .apmpt-price-card__icon {
    width: 38px;
    height: 38px;
    font-size: 14px;
}

.apmpt-price-card--compact .apmpt-price-card__title {
    margin-bottom: 6px;
    font-size: clamp(17px, 1.7vw, 24px);
}

.apmpt-price-card--compact .apmpt-price-card__price {
    font-size: clamp(46px, 5.8vw, 72px);
}

.apmpt-price-card--icon-left {
    display: grid;
    grid-template-columns: 62px 1fr;
    grid-template-areas:
        "icon title"
        "price price"
        "subtitle subtitle"
        "button button";
    column-gap: 14px;
    align-items: center;
    text-align: left;
}

.apmpt-price-card--icon-left .apmpt-price-card__head {
    grid-area: icon;
    min-height: auto;
    margin: 0;
}

.apmpt-price-card--icon-left .apmpt-price-card__line {
    display: none;
}

.apmpt-price-card--icon-left .apmpt-price-card__title {
    grid-area: title;
    margin: 0;
    text-align: left;
}

.apmpt-price-card--icon-left .apmpt-price-card__price {
    grid-area: price;
    margin-top: 10px;
    text-align: center;
}

.apmpt-price-card--icon-left .apmpt-price-card__subtitle {
    grid-area: subtitle;
    text-align: center;
}

.apmpt-price-card--icon-left .apmpt-price-card__button {
    grid-area: button;
    justify-self: center;
}

.apmpt-price-card--ribbon-horizontal {
    padding-top: 46px;
}

.apmpt-price-card--ribbon-horizontal .apmpt-price-card__ribbon {
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    padding: 9px 16px;
    font-size: 11px;
    transform: none;
}

.apmpt-price-card--ribbon-none .apmpt-price-card__ribbon {
    display: none;
}

.apmpt-price-card--icon-none .apmpt-price-card__title {
    margin-top: 8px;
}

.apmpt-price-card--width-custom {
    width: 100%;
    max-width: var(--apmpt-card-width);
}

.apmpt-price-card--width-auto {
    width: auto;
    min-width: min(100%, 280px);
    max-width: min(100%, var(--apmpt-card-width));
}

.apmpt-price-card--width-full {
    width: 100%;
    max-width: none;
}

.apmpt-price-card--align-left {
    margin-left: 0;
    margin-right: auto;
}

.apmpt-price-card--align-center {
    margin-left: auto;
    margin-right: auto;
}

.apmpt-price-card--align-right {
    margin-left: auto;
    margin-right: 0;
}

/* Hover */
.apmpt-price-card--hover-lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 34px rgba(0,0,0,0.28);
}

.apmpt-price-card--hover-bounce:hover {
    animation: apmpt-card-bounce .48s ease both;
    box-shadow: 0 20px 34px rgba(0,0,0,0.28);
}

.apmpt-price-card--hover-glow:hover {
    transform: translateY(-3px);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--apmpt-card-border) 22%, transparent), 0 22px 38px rgba(0,0,0,0.28);
}

.apmpt-price-card--hover-accent:hover {
    transform: translateY(-4px);
    border-color: var(--apmpt-card-accent);
    filter: saturate(1.08) contrast(1.02);
    box-shadow: 0 22px 38px rgba(0,0,0,0.28);
}

.apmpt-price-card--hover-none:hover {
    transform: none;
}

@keyframes apmpt-card-bounce {
    0% { transform: translateY(0) scale(1); }
    45% { transform: translateY(-8px) scale(1.018); }
    70% { transform: translateY(-3px) scale(1.006); }
    100% { transform: translateY(-5px) scale(1.01); }
}

/* Beneficios */
.apmpt-benefits {
    --apmpt-benefit-columns: 2;
    --apmpt-benefit-text: #f1eddb;
    --apmpt-benefit-icon: #bda45a;
    --apmpt-benefit-icon-bg: rgba(255,255,255,0.05);
    --apmpt-benefit-icon-box: 46px;
    --apmpt-benefit-icon-size: 20px;
    --apmpt-benefit-gap: 12px;

    display: grid;
    grid-template-columns: repeat(var(--apmpt-benefit-columns), minmax(220px, 1fr));
    gap: var(--apmpt-benefit-gap) 28px;
    width: 100%;
    color: var(--apmpt-benefit-text);
}

.apmpt-benefits__item {
    display: grid;
    grid-template-columns: var(--apmpt-benefit-icon-box) 1fr;
    gap: 12px;
    align-items: center;
    min-height: 42px;
    color: var(--apmpt-benefit-text);
}

.apmpt-benefits__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--apmpt-benefit-icon-box);
    height: var(--apmpt-benefit-icon-box);
    color: var(--apmpt-benefit-icon);
    font-size: var(--apmpt-benefit-icon-size);
    font-weight: 900;
    line-height: 1;
    background: var(--apmpt-benefit-icon-bg);
    border: 1px solid var(--apmpt-benefit-icon);
    border-radius: 999px;
}

.apmpt-benefits__icon img {
    display: block;
    width: 62%;
    height: 62%;
    object-fit: contain;
}

.apmpt-benefits__text {
    color: var(--apmpt-benefit-text);
    font-size: clamp(15px, 1.4vw, 18px);
    line-height: 1.22;
}

@supports not (background: color-mix(in srgb, black 30%, transparent)) {
    .apmpt-price-card__line {
        background: rgba(24,32,18,0.30);
    }

    .apmpt-price-card--hover-glow:hover {
        box-shadow: 0 0 0 4px rgba(189,164,90,0.22), 0 22px 38px rgba(0,0,0,0.28);
    }

    .apmpt-title__text {
        text-shadow: 0 4px 12px rgba(0,0,0,0.55);
    }

    .apmpt-title__icon {
        text-shadow: 0 3px 8px rgba(0,0,0,0.45);
    }
}

@media (max-width: 760px) {
    .apmpt-price-group,
    .apmpt-benefits {
        grid-template-columns: 1fr;
    }

    .apmpt-price-card,
    .apmpt-price-card--width-auto,
    .apmpt-price-card--width-custom {
        max-width: 100%;
        width: 100%;
    }

    .apmpt-price-card__ribbon {
        right: -44px;
    }

    .apmpt-price-card--icon-left {
        grid-template-columns: 1fr;
        grid-template-areas:
            "icon"
            "title"
            "price"
            "subtitle"
            "button";
        text-align: center;
    }

    .apmpt-price-card--icon-left .apmpt-price-card__head {
        justify-content: center;
        margin-bottom: 8px;
    }

    .apmpt-price-card--icon-left .apmpt-price-card__title {
        text-align: center;
    }

    .apmpt-title__row {
        gap: 12px;
    }

    .apmpt-title__text {
        white-space: normal;
        letter-spacing: min(var(--apmpt-title-spacing), 8px);
    }

    .apmpt-title__line {
        max-width: 14vw;
    }
}


/* v1.0.5: separadores decorativos independientes */
.apmpt-separator,
.apmpt-separator * {
    box-sizing: border-box;
}

.apmpt-separator {
    --apmpt-sep-line: #bda45a;
    --apmpt-sep-icon: #bda45a;
    --apmpt-sep-line-width: 160px;
    --apmpt-sep-line-height: 2px;
    --apmpt-sep-gap: 20px;
    --apmpt-sep-mt: 0px;
    --apmpt-sep-mb: 18px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--apmpt-sep-gap);
    width: 100%;
    margin-top: var(--apmpt-sep-mt);
    margin-bottom: var(--apmpt-sep-mb);
}

.apmpt-separator--left {
    justify-content: flex-start;
}

.apmpt-separator--right {
    justify-content: flex-end;
}

.apmpt-separator__line {
    position: relative;
    display: block;
    flex: 0 1 var(--apmpt-sep-line-width);
    width: var(--apmpt-sep-line-width);
    max-width: 24vw;
    height: var(--apmpt-sep-line-height);
    background: var(--apmpt-sep-line);
    opacity: 0.8;
}

.apmpt-separator--lines-double .apmpt-separator__line::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(var(--apmpt-sep-line-height) + 6px);
    height: max(1px, calc(var(--apmpt-sep-line-height) - 1px));
    background: var(--apmpt-sep-line);
    opacity: 0.42;
}

.apmpt-separator--lines-none .apmpt-separator__line {
    display: none;
}

.apmpt-separator__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    color: var(--apmpt-sep-icon);
    font-size: clamp(20px, 2.6vw, 34px);
    line-height: 1;
}

.apmpt-separator__icon img {
    display: block;
    width: clamp(24px, 3vw, 42px);
    height: clamp(24px, 3vw, 42px);
    object-fit: contain;
}

/* Si usas [apm_titulo] sin texto, se comporta mejor y no deja hueco raro. */
.apmpt-title--no-text .apmpt-title__row {
    margin-bottom: 0;
}

.apmpt-title--no-text .apmpt-title__icon {
    margin-top: 0;
}

@media (max-width: 760px) {
    .apmpt-separator {
        gap: 12px;
    }

    .apmpt-separator__line {
        max-width: 24vw;
    }
}
