$details-caret-width: 1.75rem;

.ons-details {
    &--initialised & {
        &__heading {
            color: var(--ons-color-text-link);
            cursor: pointer;
            display: inline-block;
            outline: none;
            padding: 0 0 0 $details-caret-width;
            pointer-events: initial;
            position: relative;

            &::marker,
            &::-webkit-details-marker {
                display: none;
            }

            &:focus {
                .ons-details__title {
                    @extend %a-focus;
                    // extend details focus background behind caret
                    margin-left: -$details-caret-width;
                    padding-left: $details-caret-width;
                }

                .ons-details__icon .ons-icon {
                    fill: var(--ons-color-text-link-focus);
                }
            }

            &:hover:not(:focus) {
                color: var(--ons-color-text-link-hover);

                .ons-details__icon {
                    fill: var(--ons-color-text-link-hover);
                }

                .ons-details__title {
                    text-decoration: underline solid var(--ons-color-text-link-hover) 2px;
                }
            }
        }

        &__icon {
            display: inline-block;
            fill: var(--ons-color-text-link);
            height: $details-caret-width;
            left: -0.15rem;
            position: absolute;
            top: -0.2rem;
            width: $details-caret-width;
        }

        &__content {
            display: none;
        }

        &__title {
            display: inline-block;
            font-weight: $font-weight-bold;
            margin-bottom: 0;
            text-underline-position: under;
            transform: translateY(-1px);
            pointer-events: none;
        }
    }

    &--open & {
        &__icon {
            top: 0.2rem;
            transform: rotate(90deg);
        }

        &__content {
            border-left: 4px solid var(--ons-color-borders-indent);
            display: block;
            margin: 1rem 0 0 0.5rem;
            padding: 0 0 0 1.5rem;
        }
    }

    &--accordion & {
        &__heading {
            border-top: 1px solid var(--ons-color-borders);
            margin: 0;
            padding-bottom: 1rem;
            padding-top: 15px; // set to 15px to allow for the 1px border top
            width: 100%;

            &:focus {
                outline: none;
            }
        }

        &__title {
            margin: 0 1rem 0 0;
        }

        &__icon {
            top: 0.8rem;
        }

        &__controls {
            align-items: center;
            display: flex;
            justify-content: space-between;
        }

        &__btn {
            align-self: flex-start;
            width: auto;
        }

        &__content {
            border-left: 0;
            margin: 0;
            padding: 0 0 1rem;
        }
    }

    &--accordion.ons-details--open {
        .ons-details__icon {
            position: absolute;
            top: 1.2rem;
        }
    }

    &__icon {
        display: none;
        pointer-events: none;
    }
}
