.obata-simple-tooltip {
    position: relative;
    display: inline;
}

.obata-simple-tooltip__trigger {
    display: inline;
    cursor: help;
}

.obata-simple-tooltip__trigger:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.obata-simple-tooltip__bubble {
    position: absolute;
    z-index: 99999;
    bottom: calc(100% + 10px);
    left: 50%;
    width: max-content;
    max-width: min(var(--obata-tooltip-max-width, 300px), calc(100vw - 32px));
    padding: 14px 18px;
    border-radius: 0;
    background: var(--obata-tooltip-bg, #ffffff);
    color: var(--obata-tooltip-color, #004A98);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
    font: inherit;
    font-size: 14px;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    box-sizing: border-box;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.obata-simple-tooltip__bubble::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: var(--obata-tooltip-bg, #ffffff);
}

.obata-simple-tooltip--left .obata-simple-tooltip__bubble {
    left: 0;
    transform: translate(0, 4px);
}

.obata-simple-tooltip--left .obata-simple-tooltip__bubble::after {
    left: 18px;
    transform: none;
}

.obata-simple-tooltip--right .obata-simple-tooltip__bubble {
    right: 0;
    left: auto;
    transform: translate(0, 4px);
}

.obata-simple-tooltip--right .obata-simple-tooltip__bubble::after {
    right: 18px;
    left: auto;
    transform: none;
}

.obata-simple-tooltip:hover .obata-simple-tooltip__bubble,
.obata-simple-tooltip:focus-within .obata-simple-tooltip__bubble,
.obata-simple-tooltip.is-open .obata-simple-tooltip__bubble {
    opacity: var(--obata-tooltip-opacity, 1);
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.obata-simple-tooltip--left:hover .obata-simple-tooltip__bubble,
.obata-simple-tooltip--left:focus-within .obata-simple-tooltip__bubble,
.obata-simple-tooltip--left.is-open .obata-simple-tooltip__bubble,
.obata-simple-tooltip--right:hover .obata-simple-tooltip__bubble,
.obata-simple-tooltip--right:focus-within .obata-simple-tooltip__bubble,
.obata-simple-tooltip--right.is-open .obata-simple-tooltip__bubble {
    transform: translate(0, 0);
}

.obata-simple-tooltip__bubble a {
    color: inherit;
    text-decoration: none;
}

@media (max-width: 767px) {
    .obata-simple-tooltip__bubble {
        position: fixed;
        right: 16px;
        bottom: 16px;
        left: 16px;
        width: auto;
        max-width: none;
        transform: translateY(4px);
    }

    .obata-simple-tooltip--left .obata-simple-tooltip__bubble,
    .obata-simple-tooltip--right .obata-simple-tooltip__bubble {
        right: 16px;
        left: 16px;
        transform: translateY(4px);
    }

    .obata-simple-tooltip__bubble::after {
        display: none;
    }

    .obata-simple-tooltip:hover .obata-simple-tooltip__bubble {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .obata-simple-tooltip.is-open .obata-simple-tooltip__bubble,
    .obata-simple-tooltip:focus-within .obata-simple-tooltip__bubble {
        opacity: var(--obata-tooltip-opacity, 1);
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
}

.obata-simple-tooltip__bubble a:hover,
.obata-simple-tooltip__bubble a:focus {
    text-decoration: underline;
}
