@charset "utf-8";


/* === { BUTTON } === */

[data-component="button"] {
    border-block-end: 2px solid currentColor;
    color: inherit;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-block-start: 1lh;
    padding-block-end: 0.5lh;
    text-decoration: none;
    text-transform: uppercase;
}

[data-component="button"]:hover {
    color: var(--color_tertiary);
}


/* === { CARD } === */

[data-component="card"] {
    display: flex;
    flex-flow: column;
    height: 100%;
    width: 100%;
}

[data-component="card"] a {
    text-decoration: none;
}

[data-component="card"] a:hover {
    color: var(--color_tertiary);
}

[data-component="card"] :where(img, picture, video) {
    height: 16rem;
    object-fit: cover;
    width: 100%;
}

[data-component="card"] figcaption {
    align-items: center;
    color: inherit;
    display: flex;
    font-weight: 600;
    gap: 1rem;
    letter-spacing: 0.05em;
    line-height: 125%;
    padding-block: 0.5lh;
    text-decoration: none;
    text-transform: uppercase;
}

[data-component="card"] figcaption::after {
    background-color: currentColor;
    content: "";
    flex-grow: 1;
    height: 2px;
    min-width: 2rem;
}


/* === { FORM } === */

form {
    display: flex;
    flex-flow: column;
    width: 100%;
}

form :where(input, textarea) {
    background-color: hsl(from var(--color_primary) h s l / 5%);
    border-block-end: 2px solid currentColor;
    border-block-start: none;
    border-inline: none;
    padding: 0.5lh;
}

textarea {
    height: 6lh;
    line-height: 125%;
    resize: vertical;
}

form :where(input, textarea):focus-visible {
    border-color: var(--color_tertiary);
    outline: unset;
}

form :where(input, textarea)::placeholder {
    color: hsl(from var(--color_primary) h s l / 50%);
}

form label {
    font-size: 0.875rem;
    text-transform: uppercase;
    margin-block: 0.5lh 1lh;
    padding-inline: 0.5lh;
}

form p {
    font-size: 0.875rem;
    text-align: justify;
}

form button {
    background: none;
    border-block-end: 2px solid currentColor;
    border-block-start: none;
    border-inline: none;
    color: inherit;
    cursor: pointer;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-block-start: 1lh;
    padding-block-end: 0.5lh;
    text-decoration: none;
    text-transform: uppercase;
}

form button:hover {
    color: var(--color_tertiary);
}


/* === { ICON } === */

[data-component="icon"] {
    height: 4rem;
    width: 4rem;
}


/* === { PLACEHOLDER } === */

[data-component="placeholder"] {
    background: var(--color_secondary) url(/public/static/images/favicon.svg) no-repeat center / 2rem;
    height: 100%;
    min-height: 16rem;
    width: 100%;
}
