﻿/* ==========================================================
   PorchLight Accordion
   Native details / summary
   Mobile First
   ========================================================== */

.pl-accordion {
    width: 100%;
    color: var(--pl-text);
}


/* ==========================================================
   Item
   ========================================================== */

.pl-accordion__item {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--pl-border);
}


/* ==========================================================
   Summary / Question
   ========================================================== */

.pl-accordion__summary {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    gap: 2rem;
    padding: 1.5rem 0.5rem 1.5rem 0;
    margin: 0;
    color: inherit;
    list-style: none;
    cursor: pointer;
}


    /* Remove browser disclosure marker */

    .pl-accordion__summary::-webkit-details-marker {
        display: none;
    }

    .pl-accordion__summary::marker {
        content: "";
    }


/* ==========================================================
   Question
   ========================================================== */

.pl-accordion__title {
    display: block;
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.15;
}


/* ==========================================================
   Plus / Minus
   ========================================================== */

.pl-accordion__summary::before,
.pl-accordion__summary::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 1.4rem;
    height: 0.25rem;
    background: var(--pl-green-light);
    transform: translateY(-50%);
    transition: transform 200ms ease, opacity 200ms ease;
}


/* Vertical stroke of + */

.pl-accordion__summary::after {
    transform: translateY(-50%) rotate(90deg);
}


/* Open = minus */

.pl-accordion__item[open]
.pl-accordion__summary::after {
    opacity: 0;
    transform: translateY(-50%) rotate(0deg);
}


/* ==========================================================
   Answer
   ========================================================== */

.pl-accordion__content {
    max-width: 72rem;
    padding: 0 3.75rem 2rem 0;
    padding: 0 0 1.5rem 0;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.45;
}


    .pl-accordion__content > :first-child {
        margin-top: 0;
    }


    .pl-accordion__content > :last-child {
        margin-bottom: 0;
    }


/* ==========================================================
   Keyboard Focus
   ========================================================== */

.pl-accordion__summary:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}


/* ==========================================================
   Desktop
   ========================================================== */

@media (min-width: 768px) {

    .pl-accordion__summary {
        align-items: center;
        padding: 2.25rem 0 1rem 0;
    }


    .pl-accordion__title {
        font-size: 2rem;
        line-height: 1.2;
    }


    .pl-accordion__summary::before,
    .pl-accordion__summary::after {
        width: 1rem;
        height: 0.2rem;
    }


    .pl-accordion__content {
        padding-right: 4rem;
        font-size: 1rem;
        line-height: 1.4;
    }
}


/* ==========================================================
   Reduced Motion
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .pl-accordion__summary::before,
    .pl-accordion__summary::after {
        transition: none;
    }
}
