/* Raging Cider Animated Dividers v1.3.0 */
.raging-animated-divider {
    --rcad-color: #B4854C;
    --rcad-max-width: 100%;
    --rcad-duration-scale: 1;
    /* Pull the artwork upward so the line sits close beneath a heading while
       the trees grow into the open space on the right, matching the reference composition. */
    --rcad-lift: -8.7%;
    position: relative;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
}

/* Suppress Divi's native divider line only on modules carrying our opt-in class. */
.raging-animated-divider.et_pb_divider,
.raging-animated-divider.et_pb_divider.et_pb_space {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.raging-animated-divider.et_pb_divider::before,
.raging-animated-divider.et_pb_divider::after,
.raging-animated-divider .et_pb_divider_internal,
.raging-animated-divider .et_pb_divider_internal::before,
.raging-animated-divider .et_pb_divider_internal::after {
    border: 0 !important;
    border-top: 0 !important;
}

.raging-animated-divider .et_pb_divider_internal {
    display: none !important;
}

.raging-animated-divider .rcad-wrap {
    display: block;
    width: min(100%, var(--rcad-max-width));
    margin: var(--rcad-lift) 0 0;
    padding: 0;
    line-height: 0;
    overflow: visible;
    pointer-events: none;
}

.raging-animated-divider .rcad-svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.raging-animated-divider .rcad-stroke {
    fill: none;
    stroke: var(--rcad-color);
    stroke-width: 6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Line is visible only by stroke-drawing; no opacity/fade trick is used. */
.raging-animated-divider .rcad-line-group {
    transform-box: fill-box;
    transform-origin: 50% 50%;
}

.raging-animated-divider .rcad-line {
    path-length: 1;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transform-origin: 50% 50%;
}

/* Trees start physically collapsed at the shared baseline so they grow from it. */
.raging-animated-divider .rcad-tree {
    transform-box: fill-box;
    transform-origin: 50% 100%;
    transform: scale(0.92, 0.001);
}

.raging-animated-divider.rcad-ready.rcad-animate .rcad-line-group,
.raging-animated-divider.rcad-ready .rcad-wrap.rcad-animate .rcad-line-group {
    animation: rcad-line-sea-motion calc(1.45s * var(--rcad-duration-scale)) cubic-bezier(.22,.78,.24,1) both;
}

.raging-animated-divider.rcad-ready.rcad-animate .rcad-line,
.raging-animated-divider.rcad-ready .rcad-wrap.rcad-animate .rcad-line {
    animation: rcad-line-draw calc(1.02s * var(--rcad-duration-scale)) cubic-bezier(.18,.72,.22,1) both;
}

.raging-animated-divider.rcad-ready.rcad-animate .rcad-tree-small,
.raging-animated-divider.rcad-ready .rcad-wrap.rcad-animate .rcad-tree-small {
    animation: rcad-tree-grow calc(0.88s * var(--rcad-duration-scale)) cubic-bezier(.22,.84,.24,1) calc(0.98s * var(--rcad-duration-scale)) both;
}

.raging-animated-divider.rcad-ready.rcad-animate .rcad-tree-large,
.raging-animated-divider.rcad-ready .rcad-wrap.rcad-animate .rcad-tree-large {
    animation: rcad-tree-grow calc(1.02s * var(--rcad-duration-scale)) cubic-bezier(.22,.84,.24,1) calc(1.14s * var(--rcad-duration-scale)) both;
}

@keyframes rcad-line-draw {
    0%   { stroke-dashoffset: 1; }
    100% { stroke-dashoffset: 0; }
}

@keyframes rcad-line-sea-motion {
    0%   { transform: translateY(22px) scaleY(0.84) scaleX(0.985); }
    20%  { transform: translateY(8px) scaleY(1.09) scaleX(1.003); }
    42%  { transform: translateY(-5px) scaleY(0.96) scaleX(0.998); }
    62%  { transform: translateY(3px) scaleY(1.03) scaleX(1.0015); }
    80%  { transform: translateY(-1.5px) scaleY(0.992) scaleX(0.9995); }
    100% { transform: translateY(0) scaleY(1) scaleX(1); }
}

@keyframes rcad-tree-grow {
    0%   { transform: scale(0.92, 0.001); }
    56%  { transform: scale(1.035, 1.13); }
    72%  { transform: scale(0.985, 0.94); }
    84%  { transform: scale(1.012, 1.045); }
    93%  { transform: scale(0.996, 0.985); }
    100% { transform: scale(1, 1); }
}

/* On narrow screens, slightly strengthen the line so the art does not disappear. */
@media (max-width: 767px) {
    .raging-animated-divider .rcad-stroke {
        stroke-width: 8;
    }
}

/* On phones the SVG is much shorter, so use a gentler lift to avoid the
   trees crowding a multi-line heading. */
@media (max-width: 767px) {
    .raging-animated-divider {
        --rcad-lift: -5.5%;
    }
}

/* Optional escape hatch for a divider that should keep its natural SVG box. */
.raging-animated-divider.raging-divider-no-lift {
    --rcad-lift: 0%;
}

/* Accessibility: keep the final artwork, skip motion. */
@media (prefers-reduced-motion: reduce) {
    .raging-animated-divider .rcad-line,
    .raging-animated-divider .rcad-tree,
    .raging-animated-divider.rcad-ready.rcad-animate .rcad-line,
    .raging-animated-divider.rcad-ready.rcad-animate .rcad-tree {
        animation: none !important;
        stroke-dashoffset: 0 !important;
        transform: none !important;
    }
}
