:root {
    --x-popover-transitionout: 300ms;
    --x-popover-transitionin: 300ms;
    --x-popover-translatex: 0;
    --x-popover-translatey: 10px;
    --x-popover-scale: .95;
    --x-popover-background: #fff;
}

.x-add-to-calendar {
    display: inline-block;
    position: relative;
}

.x-add-to-calendar_button {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    padding: 0.5em .75em;
    cursor: pointer;
}

.x-add-to-calendar_icon {
    display: inline-flex;
    font-size: 0.9em;
    align-items: center;
}

.x-add-to-calendar_icon > svg {
    height: 1em;
    width: 1em;
}

.x-add-to-calendar_text {
    display: inline-block;
}

.x-add-to-calendar_menu {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-radius: inherit;
}

.x-add-to-calendar_link {
    display: flex;
    align-items: center;
    gap: 0.75em;
    padding: 0.75em 1em;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.2s ease;
}

.x-add-to-calendar_link:hover,
.x-add-to-calendar_link:focus {
    background-color: rgba(0, 0, 0, 0.05);
}

.x-add-to-calendar_link:first-child {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
}
 
.x-add-to-calendar_link:last-child {
    border-bottom-left-radius: inherit;
    border-bottom-right-radius: inherit;
}

.x-add-to-calendar_service-icon {
    display: inline-flex;
    align-items: center;
    font-size: 1em;
}

.x-add-to-calendar_service-label {
    display: inline-block;
    white-space: nowrap;
}

/* Tippy.js styling */

.x-add-to-calendar .tippy-box {
    color: inherit;
    background: transparent;
    transform: translateZ(0);
    display: flex;
}

.x-add-to-calendar .tippy-content {
    padding: 0;
    background: var(--x-popover-background);
    box-shadow: 0 10px 20px rgb(0 0 0 / 10%);
    border-radius: 5px;
}

.x-add-to-calendar .tippy-arrow {
    color: var(--x-popover-background);
    opacity: 1;
    visibility: visible;
}

/* Animation */

.tippy-box[data-animation='extras'][data-state='hidden'] {
    opacity: 0;
    transform: translate(var(--x-popover-translatex),var(--x-popover-translatey)) scale(var(--x-popover-scale));
    transition-duration: var(--x-popover-transitionout);
    transition-property: opacity, transform;
}

[data-state='visible'] > .tippy-box[data-animation='extras'] {
    opacity: 1;
    transform: none;
    transition-duration: var(--x-popover-transitionin);
    transition-property: opacity, transform;
}
