/* ==========================================================================
   GP Icon Accordion
   ========================================================================== */

.gp-accordion {
    width: 100%;
}

/* --- Item: two-column layout (icon | content) --- */

.gp-accordion .gp-accordion__item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
}

.gp-accordion .gp-accordion__item + .gp-accordion__item {
    border-top: 1px solid currentColor;
}

/* --- Icon (column 1) --- */

.gp-accordion .gp-accordion__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding-top: 20px;
}

.gp-accordion .gp-accordion__icon svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.gp-accordion .gp-accordion__icon i {
    font-size: inherit;
}

/* --- Content (column 2: title row + body) --- */

.gp-accordion .gp-accordion__content {
    flex: 1 1 auto;
    min-width: 0;
}

/* --- Header row: title + chevron --- */

.gp-accordion .gp-accordion__header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 0;
    margin: 0;
    border: none;
    background: none;
    text-align: left;
    color: inherit;
    cursor: pointer;
}

/* --- Title --- */

.gp-accordion .gp-accordion__title {
    flex: 1 1 auto;
}

/* --- Chevron --- */

.gp-accordion .gp-accordion__chevron {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
}

.gp-accordion .gp-accordion__chevron svg {
    fill: none;
    stroke: currentColor;
}

.gp-accordion .gp-accordion__chevron {
    transition: transform 0.3s ease;
}

.gp-accordion__item--open .gp-accordion__chevron {
    transform: rotate(180deg);
}

/* --- Panel / Body --- */

.gp-accordion .gp-accordion__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease;
}

.gp-accordion__item--open .gp-accordion__panel {
    grid-template-rows: 1fr;
}

.gp-accordion .gp-accordion__body {
    overflow: hidden;
}

.gp-accordion .gp-accordion__body p:last-child {
    margin-bottom: 0;
}
