/* Site header & footer (layouts/master) */
:root {
    --site-primary: #900f6c;
    --site-primary-dark: #750c58;
    --site-gold: #d9a441;
    --site-tint: #f7eef5;
    --site-border: #efe3ec;
}

.site-header {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: 50;
    background: rgba(255, 255, 255, .85);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid var(--site-border);
}
.site-header::after {
    content: "";
    position: absolute;
    inset: auto 0 -1px 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--site-gold) 30%, var(--site-primary) 70%, transparent);
    opacity: .6;
}
.site-header__inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 72px;
    padding-block: .75rem;
}
.site-header__logo { display: flex; flex-shrink: 0; }
.site-header__logo img { width: 120px; height: auto; }
.site-header__title {
    flex: 1;
    display: none;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    font-size: 1rem;
    font-weight: 600;
    color: #4a3447;
    text-align: center;
}
.site-header__title::before,
.site-header__title::after {
    content: "";
    width: .4rem;
    height: .4rem;
    flex-shrink: 0;
    transform: rotate(45deg);
    background: var(--site-gold);
}
.site-header__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-inline-start: auto;
}
.site-header__cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .85rem;
    font-weight: 700;
    color: #fff;
    padding: .6rem 1rem;
    border-radius: .75rem;
    background: linear-gradient(135deg, var(--site-primary), var(--site-primary-dark));
    box-shadow: 0 8px 18px -10px rgba(144, 15, 108, .9);
    transition: transform .2s ease, box-shadow .2s ease;
}
.site-header__cta:hover { transform: translateY(-1px); box-shadow: 0 12px 22px -10px rgba(144, 15, 108, .9); }
.site-header__cta svg { width: 1rem; height: 1rem; }
.site-header__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: .75rem;
    color: var(--site-primary);
    background: var(--site-tint);
    transition: background-color .2s ease;
}
.site-header__icon:hover { background: #efdcea; }
.site-header__icon svg { width: 1.35rem; height: 1.35rem; }

@media (min-width: 768px) {
    .site-header__inner { gap: 2rem; min-height: 84px; }
    .site-header__logo img { width: 140px; }
    .site-header__title { display: flex; }
    .site-header__actions { margin-inline-start: 0; }
    .site-header__cta { font-size: .9rem; padding: .65rem 1.25rem; }
}

.site-footer {
    position: relative;
    margin-top: auto;
    color: #d9c6d5;
    background: linear-gradient(160deg, #3a0a2e 0%, #24071d 100%);
}
.site-footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(90deg, var(--site-primary), var(--site-gold), var(--site-primary));
}
.site-footer__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    padding-block: 2.25rem 1.75rem;
    text-align: center;
}
.site-footer__logo {
    display: inline-flex;
    padding: .6rem .9rem;
    border-radius: 1rem;
    background: #fff;
}
.site-footer__logo img { width: 120px; height: auto; }
.site-footer__about { max-width: 34rem; font-size: .85rem; line-height: 2; }
.site-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; font-size: .85rem; }
.site-footer__links a { color: #fff; opacity: .85; transition: opacity .2s ease, color .2s ease; }
.site-footer__links a:hover { opacity: 1; color: var(--site-gold); }
.site-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-block: 1rem;
    font-size: .75rem;
    text-align: center;
    color: #a88fa2;
}

@media (min-width: 768px) {
    .site-footer__main {
        flex-direction: row;
        justify-content: space-between;
        text-align: start;
        gap: 2rem;
    }
    .site-footer__brand { display: flex; align-items: center; gap: 1.25rem; }
}

.site-header__inner,
.site-footer .container { padding-inline: 1rem; }

.site-header__logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    height: 42px;
    min-width: 42px;
    padding: 0 .7rem;
    border: 1.5px solid #f1d4d2;
    border-radius: .75rem;
    font-size: .85rem;
    font-weight: 600;
    color: #b3261e;
    background: #fff;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.site-header__logout:hover,
.site-header__logout:focus-visible { background: #b3261e; border-color: #b3261e; color: #fff; }
.site-header__logout svg { width: 1.2rem; height: 1.2rem; }
/* Icon only on phones */
@media (max-width: 767px) {
    .site-header__logout { padding: 0; }
    .site-header__logout span { display: none; }
}
