.uh-6f52156c-heading {
    --uh-color: #ff0000;
    --uh-weight-normal: 2px;
    --uh-weight-hover: 10px;
    --uh-distance: 2px;
    --uh-wave-height: 5px;
    --uh-wave-width: 20px;
    
    margin: 0;
    padding: 0;
}

.uh-6f52156c-heading u {
    text-decoration: none;
    position: relative;
    z-index: 1;
    display: inline-block; /* Ensure width/height animations work */
}

/* Base Line (Solid) */
.uh-6f52156c-heading.type-solid u::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(-1 * var(--uh-distance));
    width: 100%;
    height: var(--uh-weight-normal);
    background-color: var(--uh-color);
    z-index: -1;
    transition: height 0.3s ease-out, width 0.5s ease-in-out;
}

.uh-6f52156c-heading.type-solid.edge-rounded u::after {
    border-radius: var(--uh-weight-hover); /* Use max weight for smooth rounding */
}

/* Base Line (Wavy) */
.uh-6f52156c-heading.type-wavy u::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(-1 * (var(--uh-distance) + var(--uh-wave-height)));
    width: 100%;
    height: calc(var(--uh-wave-height) + var(--uh-weight-normal));
    background-image: var(--uh-wave-url);
    background-repeat: repeat-x;
    background-size: var(--uh-wave-width) 100%;
    z-index: -1;
    transition: height 0.3s ease-out, width 0.5s ease-in-out;
}

/* Animation: None (Hover applies weight) */
.uh-6f52156c-heading.anim-none:hover u::after {
    height: var(--uh-weight-hover);
}
.uh-6f52156c-heading.anim-none.type-wavy:hover u::after {
    height: calc(var(--uh-wave-height) + var(--uh-weight-hover));
}

/* Animation: Expand from Left */
.uh-6f52156c-heading.anim-expand u::after {
    width: 0;
}
.uh-6f52156c-heading.anim-expand:hover u::after {
    width: 100%;
    height: var(--uh-weight-hover);
}
.uh-6f52156c-heading.anim-expand.type-wavy:hover u::after {
    height: calc(var(--uh-wave-height) + var(--uh-weight-hover));
}

/* Animation: Bottom to Top (Start thin, grow up) */
.uh-6f52156c-heading.anim-bottom_up u::after {
    /* Starts at normal weight */
    height: var(--uh-weight-normal); 
}

.uh-6f52156c-heading.anim-bottom_up:hover u::after {
    height: var(--uh-weight-hover);
}
.uh-6f52156c-heading.anim-bottom_up.type-wavy:hover u::after {
    height: calc(var(--uh-wave-height) + var(--uh-weight-hover));
}