/* Rosa Amor · Categorías Florales PRO. Todos los selectores están aislados. */
.elementor-widget-raac-categorias-florales, .elementor-widget-raac-categorias-florales .elementor-widget-container { width: 100%; }
.raac-section {
    --raac-accent: #d70058;
    --raac-deep: #89043f;
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    padding: 65px 0 70px;
    overflow: hidden;
    background: radial-gradient(ellipse 60% 45% at 10% 20%, rgba(250,183,205,.54), transparent 90%),
                radial-gradient(ellipse 45% 60% at 91% 75%, rgba(250,166,193,.36), transparent 85%),
                linear-gradient(145deg,#fff8fa 0%,#fff0f5 43%,#ffe0eb 100%);
    color: #3b2a41;
    font-family: 'Montserrat', 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
    box-sizing: border-box;
}
.raac-section *, .raac-section *::before, .raac-section *::after { box-sizing: border-box; }
.raac-section a { text-decoration: none; }
.raac-inner { position: relative; z-index: 2; width: 90%; max-width: 1480px; margin: 0 auto; }
.raac-intro { text-align: center; margin: 0 auto 30px; max-width: 780px; }
.raac-heading {
    font-family: Georgia, 'Times New Roman', serif;
    color: #9d003c;
    font-size: clamp(2.2rem, 5vw, 4.3rem);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -.035em;
    margin: 0;
    text-shadow: 0 2px 1px #ffffff80;
}
.raac-divider { display: flex; justify-content: center; align-items: center; gap: 14px; margin: 6px 0 11px; color: var(--raac-accent); font-size: 19px; line-height: 1; }
.raac-divider::before,.raac-divider::after { content: ''; display: block; width: clamp(40px, 6vw, 94px); height: 1px; background: linear-gradient(to right, transparent, #f6a2c0); }
.raac-divider::after { transform: rotate(180deg); }
.raac-subtitle { margin: 0; font-size: clamp(.9rem,1.3vw,1.12rem); color: #64445e; line-height: 1.55; }
.raac-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; align-items: stretch; }
.raac-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    border-radius: 13px;
    border: 1px solid #f8cbdc;
    background: #fffafc;
    box-shadow: 0 9px 24px rgba(149,25,82,.10);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.raac-card:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(149,25,82,.17); }
.raac-card__visual { position: relative; display: block; min-width: 0; width: 100%; outline-offset: -3px; }
.raac-card__photo { height: 215px; position: relative; overflow: hidden; background: linear-gradient(135deg,#f9e1eb,#fffafc 45%,#f6c9d8); }
.raac-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; border-radius: 0; transition: transform .45s ease; }
.raac-card:hover .raac-card__photo img { transform: scale(1.045); }
.raac-photo-placeholder { display: flex; width: 100%; height: 100%; color: #e9acc5; font-size: clamp(38px,7vw,80px); align-items: center; justify-content: center; background: repeating-linear-gradient(135deg,rgba(255,255,255,.3) 0 10px,transparent 10px 22px); }
.raac-card__swoosh { position: absolute; z-index: 1; bottom: -1px; left: 0; right: 0; height: 56px; overflow: hidden; pointer-events: none; }
.raac-card__swoosh::before { content: ''; position: absolute; height: 95px; left: -10%; right: -10%; bottom: -72px; transform: rotate(-8deg); background: linear-gradient(103deg,#fbd6e2 0%,#fff9fb 73%); border-radius: 48% 47% 0 0; }
.raac-card__swoosh::after { content: '❧'; position: absolute; right: 7px; bottom: 9px; color: #ff82ae; font-family: Georgia,serif; transform: rotate(-32deg); font-size: 28px; }
.raac-card__icon {
    position: absolute;
    bottom: -25px;
    left: 50%;
    z-index: 3;
    transform: translateX(-50%);
    display: flex;
    width: 58px; height: 58px;
    align-items: center;
    justify-content: center;
    background: rgba(255,247,250,.97);
    border: 2px solid #fff;
    color: #e60069;
    border-radius: 50%;
    box-shadow: 0 4px 13px #d516672c;
    font-size: 28px;
    pointer-events: none;
}
.raac-card__icon svg { width: 28px; height: 28px; fill: currentColor; }
.raac-card__body { padding: 36px 12px 12px; flex: 1; display: flex; flex-direction: column; align-items: stretch; min-width: 0; text-align: center; }
.raac-card__title {
    margin: 0 auto 12px;
    min-height: 2.65em;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b70051;
    font-size: clamp(.83rem,1.12vw,1.06rem);
    font-weight: 750;
    line-height: 1.28;
    text-transform: uppercase;
    letter-spacing: -.01em;
    overflow-wrap: anywhere;
    hyphens: auto;
}
.raac-card__count { display: block; margin: -5px 0 9px; font-size: 12px; color: #846979; }
.raac-card__button {
    display: flex;
    width: 100%;
    min-height: 37px;
    align-items: center;
    justify-content: center;
    gap: .8em;
    padding: 10px 10px;
    margin: auto 0 0;
    border: 0;
    border-radius: 35px;
    background: linear-gradient(180deg,#d90063 0%,var(--raac-deep) 100%);
    color: #fff;
    font-family: inherit;
    font-weight: 700;
    font-size: clamp(.7rem,.85vw,.84rem);
    line-height: 1.2;
    text-align: center;
    white-space: normal;
    transition: background .2s ease, box-shadow .2s ease;
    box-shadow: 0 3px 7px rgba(173,0,84,.18);
}
.raac-card__button:hover,.raac-card__button:focus-visible { color: #fff; background: #9c0048; box-shadow: 0 5px 13px rgba(173,0,84,.3); }
.raac-arrow { font-size: 1.2em; display: inline-block; transition: transform .2s ease; }
.raac-card__button:hover .raac-arrow { transform: translateX(3px); }
.raac-decor { position: absolute; width: 215px; z-index: 3; pointer-events: none; }
.raac-decor img { display: block; width: 100%; height: auto; object-fit: contain; }
.raac-decor--top-left { top: 0; left: 0; }
.raac-decor--top-right { top: 0; right: 0; }
.raac-decor--bottom-left { bottom: 0; left: 0; }
.raac-decor--bottom-right { bottom: 0; right: 0; }
.raac-petals { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.raac-petals i { position: absolute; width: 23px; height: 38px; border-radius: 100% 0 90% 20%; background: linear-gradient(45deg,#ffb9d0 0%,#f572a3 55%,#fcd3df 100%); filter: drop-shadow(1px 3px 5px rgba(168,26,71,.15)); opacity: .62; }
.raac-petals i:nth-child(1) { top: 12%; left: 20%; transform: rotate(55deg); }
.raac-petals i:nth-child(2) { top: 21%; right: 10%; transform: rotate(-25deg); }
.raac-petals i:nth-child(3) { top: 48%; left: 1.5%; transform: rotate(100deg) scale(.75); }
.raac-petals i:nth-child(4) { top: 55%; right: 1%; transform: rotate(120deg); }
.raac-petals i:nth-child(5) { bottom: 4%; right: 22%; transform: rotate(33deg); }
.raac-petals i:nth-child(6) { bottom: 13%; left: 11%; transform: rotate(-40deg) scale(.7); }
.raac-editor-notice { text-align: center; background: #fff8fb; color: #952e5b; border: 1px dashed #e38fb2; padding: 28px; border-radius: 12px; }
@media (max-width: 1024px) {
    .raac-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .raac-decor { width: 150px; opacity: .75; }
    .raac-card__photo { height: 190px; }
}
@media (max-width: 767px) {
    .raac-section { padding: 40px 0 40px; }
    .raac-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .raac-intro { margin-bottom: 20px; }
    .raac-heading { font-size: clamp(1.75rem,7.4vw,2.6rem); line-height: 1.07; }
    .raac-subtitle { max-width: 32ch; margin: auto; font-size: clamp(.77rem,3.3vw,.97rem); }
    .raac-decor { width: 95px; opacity: .8; }
    .raac-card { border-radius: 10px; }
    .raac-card__photo { height: 150px; }
    .raac-card__swoosh { height: 42px; }
    .raac-card__swoosh::before { bottom: -78px; }
    .raac-card__swoosh::after { font-size: 18px; bottom: 4px; }
    .raac-card__icon { bottom: -18px; width: 42px; height: 42px; font-size: 21px; }
    .raac-card__icon svg { width: 21px; height: 21px; }
    .raac-card__body { padding: 25px 7px 8px; }
    .raac-card__title { font-size: clamp(.66rem,2.75vw,.88rem); min-height: 3.1em; margin-bottom: 9px; }
    .raac-card__button { padding: 9px 4px; min-height: 34px; font-size: clamp(.57rem,2.35vw,.77rem); gap: .3em; }
    .raac-decor--top-left,.raac-decor--top-right { top: 0; }
}
@media (max-width: 370px) {
    .raac-card__photo { height: 125px; }
    .raac-card__button { font-size: 10px; }
    .raac-card__title { font-size: 10px; }
    .raac-card__body { padding-left: 5px; padding-right: 5px; }
}
@media (prefers-reduced-motion: reduce) {
    .raac-section .raac-card, .raac-section .raac-card__photo img, .raac-section .raac-arrow { transition: none; }
}
