* { box-sizing: border-box; }

        body {
            margin: 0;
            font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            background: #f5f1ea;
            color: #1f1f1f;
        }

        .page {
            width: min(760px, calc(100% - 32px));
            margin: 0 auto;
            padding: 64px 0 96px;
        }

        .brand {
            text-align: center;
            margin-bottom: 32px;
        }

        .logo {
            font-size: 42px;
            letter-spacing: -0.04em;
            font-weight: 650;
        }

        .claim {
            margin-top: 8px;
            font-size: 14px;
            color: #6d665d;
        }

        .search {
            margin-top: 28px;
        }

        .search input {
            width: 100%;
            border: 1px solid #d8d0c4;
            background: #fffaf3;
            border-radius: 999px;
            padding: 18px 24px;
            font-size: 17px;
            outline: none;
        }

        .stream {
            margin-top: 36px;
            display: flex;
            flex-direction: column;
            gap: 14px;
        }

        .card {
            background: #fffaf3;
            border: 1px solid #e3dacd;
            border-radius: 22px;
            padding: 22px;
            box-shadow: 0 8px 24px rgba(40, 32, 24, 0.04);
        }

        .card.relevant {
            border-color: #bfae98;
            background: #fff7ec;
        }

        .card.external {
            padding: 15px 18px;
            border-radius: 18px;
            box-shadow: none;
            background: rgba(255, 250, 243, 0.55);
        }

        .card-top {
            display: flex;
            justify-content: space-between;
            gap: 16px;
            align-items: flex-start;
        }

        .name {
            font-size: 24px;
            font-weight: 650;
            letter-spacing: -0.02em;
        }

        .time {
            font-size: 13px;
            color: #8a8177;
            white-space: nowrap;
            padding-top: 5px;
        }

        .dates {
            margin-top: 4px;
            color: #6d665d;
            font-size: 15px;
        }

        .place {
            margin-top: 10px;
            font-size: 15px;
            color: #4d4740;
        }

        .body {
            margin-top: 16px;
            display: flex;
            flex-direction: column;
            gap: 16px;
        }

        .text {
            line-height: 1.6;
            font-size: 14px;
            color: #302b27;
        }

        .media-grid {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }

        .media-grid.single {
            display: flex;
        }

        .media {
            width: 112px;
            height: 112px;
            border-radius: 14px;
            overflow: hidden;
            border: 1px solid #ddd3c5;
            background: #eee4d8;
            display: block;
            cursor: pointer;
        }

        .media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .media.obituary {
            width: 140px;
            height: 112px;
            background: #f8f1e8;
        }

        .media.obituary img {
            object-fit: contain;
            background: #f8f1e8;
        }

        .meta {
            margin-top: 18px;
            font-size: 13px;
            color: #857a70;
            display: flex;
            justify-content: space-between;
            gap: 12px;
        }

        .badge {
            font-size: 12px;
            color: #6d5e4e;
        }

        @media (max-width: 640px) {
            .page {
                width: min(100% - 24px, 760px);
                padding-top: 40px;
            }

            .logo {
                font-size: 34px;
            }

            .card {
                padding: 18px;
                border-radius: 18px;
            }

            .name {
                font-size: 21px;
            }

            .card-top {
                flex-direction: column;
                gap: 4px;
            }

            .time {
                padding-top: 0;
            }

            .media-grid {
                grid-template-columns: 1fr;
            }
        }

.report-link {
    margin-left: 10px;
    text-decoration: none;
    color: #8a4f3d;
}

.report-link:hover {
    text-decoration: underline;
}

.report-button {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    font: inherit;
}

.report-modal {
    width: min(520px, calc(100% - 28px));
    border: 0;
    border-radius: 24px;
    padding: 0;
    background: transparent;
}

.report-modal::backdrop {
    background: rgba(31, 25, 20, 0.42);
}

.report-modal-card {
    background: #fffaf3;
    border: 1px solid #e3dacd;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 24px 80px rgba(40, 32, 24, 0.24);
}

.report-modal-top {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.report-title {
    font-size: 23px;
    font-weight: 650;
    letter-spacing: -0.03em;
}

.report-target {
    margin-top: 4px;
    color: #6d665d;
    font-size: 14px;
}

.report-close {
    border: 0;
    background: transparent;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    color: #6d665d;
}

.report-field {
    margin-bottom: 14px;
}

.report-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    color: #6d665d;
}

.report-field input,
.report-field select,
.report-field textarea {
    width: 100%;
    border: 1px solid #d8d0c4;
    background: #fff;
    border-radius: 14px;
    padding: 12px 13px;
    font-size: 15px;
    outline: none;
}

.report-field textarea {
    min-height: 110px;
    resize: vertical;
}

.report-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.report-primary,
.report-secondary {
    border: 1px solid #cfc2b2;
    border-radius: 999px;
    padding: 10px 15px;
    cursor: pointer;
    font-size: 14px;
}

.report-primary {
    background: #302b27;
    color: #fffaf3;
    border-color: #302b27;
}

.report-secondary {
    background: #fffaf3;
    color: #302b27;
}

.hp-field {
    position: absolute;
    left: -9999px;
    opacity: 0;
    pointer-events: none;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 50;
    width: min(1120px, calc(100% - 24px));
    margin: 12px auto 24px;
    padding: 10px 14px;
    border: 1px solid #e3dacd;
    border-radius: 999px;
    background: rgba(255, 250, 243, 0.94);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(40, 32, 24, 0.06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.admin-topbar-logo {
    color: #302b27;
    text-decoration: none;
    font-weight: 750;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

.admin-topbar-links {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.admin-topbar-links a {
    color: #5f564d;
    text-decoration: none;
    font-size: 13px;
    padding: 7px 10px;
    border-radius: 999px;
}

.admin-topbar-links a:hover {
    background: #efe5d7;
    color: #302b27;
}

@media (max-width: 720px) {
    .admin-topbar {
        position: static;
        border-radius: 20px;
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-topbar-links {
        justify-content: flex-start;
    }
}

.admin-topbar-logout {
    margin: 0;
}

.admin-topbar-logout button {
    border: 0;
    background: transparent;
    color: #8a4f3d;
    font-size: 13px;
    padding: 7px 10px;
    border-radius: 999px;
    cursor: pointer;
}

.admin-topbar-logout button:hover {
    background: #efe5d7;
    color: #302b27;
}

.password-wrap {
    position: relative;
    width: 100%;
}

.password-wrap input {
    padding-right: 92px;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    border: 0;
    border-radius: 999px;
    padding: 6px 10px;
    background: #efe5d7;
    color: #5f564d;
    font-size: 12px;
    cursor: pointer;
}

.password-toggle:hover {
    background: #e4d6c6;
    color: #302b27;
}

.name-link {
    color: inherit;
    text-decoration: none;
}

.name-link:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.search-form {
    position: relative;
}

.search-form input {
    padding-right: 46px;
}

.search-clear {
    position: absolute;
    top: 50%;
    right: 11px;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: #efe5d7;
    color: #6d665d;
    font-size: 21px;
    line-height: 1;
    cursor: pointer;
    display: none;
}

.search-clear.visible {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.search-clear:hover {
    background: #e4d6c6;
    color: #302b27;
}

/* Chrome/Safari search decoration off */
.search-form input::-webkit-search-decoration,
.search-form input::-webkit-search-cancel-button,
.search-form input::-webkit-search-results-button,
.search-form input::-webkit-search-results-decoration {
    display: none;
}

.search-suggestions {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    z-index: 30;
    background: #fffaf3;
    border: 1px solid #e3dacd;
    border-radius: 18px;
    box-shadow: 0 16px 42px rgba(40, 32, 24, 0.14);
    overflow: hidden;
    text-align: left;
}

.search-suggestions.visible {
    display: block;
}

.search-suggestion {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 12px 14px;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    cursor: pointer;
    color: #302b27;
    font-size: 14px;
}

.search-suggestion + .search-suggestion {
    border-top: 1px solid #eadfd2;
}

.search-suggestion:hover,
.search-suggestion.active {
    background: #f3eadf;
}

.search-suggestion-label {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.search-suggestion-type {
    flex: 0 0 auto;
    color: #857a70;
    font-size: 12px;
    border: 1px solid #d8c7b4;
    border-radius: 999px;
    padding: 3px 8px;
    background: #fff7ec;
}

.search-suggestion-label strong {
    font-weight: 800;
    color: #1f1914;
}

.search-suggestion.approx .search-suggestion-label {
    color: #5f564d;
}

.search-suggestion.approx .search-suggestion-type {
    border-color: #c8b59f;
    background: #f8eee2;
}

.feed-loader {
    width: min(720px, 100%);
    margin: 18px auto 34px;
    padding: 16px;
    text-align: center;
    color: #857a70;
    font-size: 14px;
}

.feed-loader.loading {
    color: #5f564d;
}

.card {
    position: relative;
}

.card-click-layer {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

.card .name-link,
.card .report-button,
.card .report-link,
.card button,
.card a:not(.card-click-layer) {
    position: relative;
    z-index: 3;
}

.card .media-grid,
.card .media-box {
    position: relative;
    z-index: 2;
}

.report-button,
.report-link {
    position: relative;
    z-index: 10;
}

.media-box {
    pointer-events: none;
}

/* Card feed: tutta la card è cliccabile, miniature comprese */
.card {
    position: relative;
}

.card-click-layer {
    position: absolute;
    inset: 0;
    z-index: 5;
    border-radius: inherit;
    background: transparent;
}

/* Il contenuto resta visibile, ma non blocca il click generale */
.card .card-top,
.card .place,
.card .body,
.card .media-grid,
.card .media-box,
.card .meta {
    position: relative;
}

/* Le miniature nel feed sono solo visuali: il click passa alla card */
.card .media-grid,
.card .media-box,
.card .media-box img,
.card .media-box span {
    pointer-events: none;
}

/* Segnala un problema deve restare sopra tutto */
.card .report-button,
.card .report-link,
.card button.report-button {
    position: relative;
    z-index: 20;
    pointer-events: auto;
}

/* Evita che vecchi z-index su link/nome competano col layer cliccabile */
.card .name-link {
    position: relative;
    z-index: 1;
}

/* Nel feed non serve più nessun bottone di segnalazione */
.card .report-button,
.card .report-link {
    display: none;
}

/* Miniature vere nel feed */
.card .feed-thumbs {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    margin-bottom: 2px;
    width: auto;
}

.card .feed-thumb {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    padding: 4px;
    border-radius: 12px;
    background: #f4eadf;
    border: 1px solid #e3dacd;
    box-shadow: none;
}

.card .feed-thumb img {
    display: block;
    width: 100%;
    border-radius: 8px;
    background: #eadfd2;
}

.card .feed-thumb-person {
    width: 58px;
}

.card .feed-thumb-person img {
    height: 68px;
    object-fit: cover;
}

.card .feed-thumb-obit {
    width: 76px;
}

.card .feed-thumb-obit img {
    height: 68px;
    object-fit: contain;
}

.card .feed-thumb span {
    display: block;
    margin-top: 3px;
    text-align: center;
    font-size: 10px;
    line-height: 1.1;
    color: #857a70;
}

/* Le miniature nel feed sono solo parte della card cliccabile */
.card .feed-thumbs,
.card .feed-thumb,
.card .feed-thumb img,
.card .feed-thumb span {
    pointer-events: none;
}

/* Miniature nella scheda dettaglio: piccole tessere, non immagini grandi */
.detail-media-grid {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
}

.detail-media {
    width: 118px !important;
    min-height: auto;
    padding: 7px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
}

.detail-media img {
    width: 100% !important;
    height: 92px !important;
    object-fit: contain !important;
    border-radius: 10px !important;
    margin-bottom: 6px !important;
    background: #eadfd2;
}

.detail-media.pdf {
    min-height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Mobile: ancora più compatte */
@media (max-width: 520px) {
    .card .feed-thumb-person {
        width: 52px;
    }

    .card .feed-thumb-person img {
        height: 62px;
    }

    .card .feed-thumb-obit {
        width: 68px;
    }

    .card .feed-thumb-obit img {
        height: 62px;
    }

    .detail-media {
        width: 104px !important;
    }

    .detail-media img {
        height: 82px !important;
    }
}

.impersonation-bar {
    width: min(760px, calc(100% - 24px));
    margin: 12px auto 0;
    background: #302b27;
    color: #fffaf3;
    border-radius: 999px;
    padding: 9px 12px 9px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    position: sticky;
    top: 10px;
    z-index: 100;
    box-shadow: 0 10px 30px rgba(40, 32, 24, .22);
}

.impersonation-bar form {
    margin: 0;
}

.impersonation-bar button {
    border: 0;
    border-radius: 999px;
    background: #fffaf3;
    color: #302b27;
    padding: 7px 12px;
    cursor: pointer;
    font-size: 13px;
}

.impersonation-bar button:hover {
    background: #efe5d7;
}

/* Pagination Laravel senza Tailwind: evita frecce SVG giganti */
nav[role="navigation"] {
    width: min(900px, 100%);
    margin: 18px auto 34px;
    font-size: 14px;
    color: #6d665d;
}

nav[role="navigation"] svg {
    width: 18px !important;
    height: 18px !important;
    display: inline-block;
    vertical-align: middle;
}

nav[role="navigation"] a,
nav[role="navigation"] span {
    color: #302b27;
    text-decoration: none;
}

nav[role="navigation"] a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

nav[role="navigation"] > div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
}

nav[role="navigation"] .hidden {
    display: none !important;
}

nav[role="navigation"] .relative {
    position: relative;
}

nav[role="navigation"] .inline-flex {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

nav[role="navigation"] [aria-current="page"] span {
    background: #302b27;
    color: #fffaf3;
    border-radius: 999px;
    padding: 7px 10px;
}

nav[role="navigation"] a[rel="prev"],
nav[role="navigation"] a[rel="next"] {
    border: 1px solid #cfc2b2;
    background: #fffaf3;
    border-radius: 999px;
    padding: 7px 10px;
}

/* =========================================================
   Home branding - Cenotaphy
   ========================================================= */

.site-brand {
    display: inline-flex;
    align-items: center;
    gap: clamp(0.85rem, 2vw, 1.35rem);
    flex-wrap: wrap;
}

.site-brand-logo {
    width: clamp(52px, 7vw, 88px);
    height: clamp(52px, 7vw, 88px);
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.site-brand-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.logo-word {
    font-family: "Raleway", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
    font-weight: 300;
    letter-spacing: 0.16em;
    font-size: clamp(2rem, 5vw, 4.2rem);
    line-height: 1;
    color: #111;
    text-transform: none;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .site-brand {
        gap: 0.8rem;
    }

    .logo-word {
        letter-spacing: 0.12em;
        white-space: normal;
    }
}

/* Home logo wordmark */
.home-identity {
    width: min(760px, calc(100vw - 32px));
    margin: -0.9rem auto 0.95rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.logo {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0.28rem;
}

.site-brand {
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(0.18rem, 0.55vw, 0.4rem);
    text-decoration: none;
    color: inherit;
}

.site-brand-logo {
    width: clamp(36px, 4.2vw, 54px);
    height: clamp(36px, 4.2vw, 54px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    transform: translateY(7px);
    opacity: 0.94;
}

.site-brand-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.logo-word {
    font-family: "Raleway", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
    font-weight: 400;
    font-variant-caps: all-small-caps;
    text-transform: uppercase;
    letter-spacing: 0.038em;
    font-size: clamp(2.55rem, 5.1vw, 4.42rem);
    line-height: 0.96;
    color: #111;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .home-identity {
        margin-top: -0.35rem;
        margin-bottom: 0.85rem;
    }

    .logo {
        margin-bottom: 0.18rem;
    }

    .site-brand {
        gap: 0.2rem;
    }

    .site-brand-logo {
        width: 32px;
        height: 32px;
        transform: translateY(5px);
    }

    .logo-word {
        font-size: clamp(2.05rem, 10vw, 3.08rem);
        letter-spacing: 0.032em;
    }
}

/* Home rotating slogan */
.home-slogan {
    max-width: 34ch;
    margin: 0 auto 0;
    text-align: center;
    color: #5c544c;
    font-family: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(1rem, 1.45vw, 1.16rem);
    font-weight: 400;
    line-height: 1.32;
    letter-spacing: 0.008em;
    text-wrap: balance;
    opacity: 0.9;
    transition: opacity .18s ease;
}

.home-slogan.is-changing {
    opacity: 0;
}

@media (max-width: 640px) {
    .home-slogan {
        max-width: 26ch;
        font-size: 0.98rem;
        line-height: 1.3;
    }
}

/* =========================================================
   HOME CARD - bordo nero + hover shadow
   ========================================================= */

.home-card-v2,
.obituary-card {
    border: 1.5px solid #111 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.055);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease;
}

.home-card-v2:hover,
.obituary-card:hover {
    border-color: #000 !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.16),
        0 4px 12px rgba(0, 0, 0, 0.10);
    background-color: #fffaf2;
}

.home-card-v2__thumb,
.obituary-card img {
    border-color: rgba(0, 0, 0, 0.22);
}

/* mobile: niente salto, ma ombra più visibile */
@media (max-width: 640px) {
    .home-card-v2:hover,
    .obituary-card:hover {
        transform: none;
        box-shadow:
            0 9px 26px rgba(0, 0, 0, 0.13),
            0 2px 8px rgba(0, 0, 0, 0.08);
    }
}


/* =========================================================
   HOME FEED CARD - bordo nero + hover shadow
   ========================================================= */

.feed-card {
    border: 1.5px solid #111 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.055);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        background-color 0.18s ease;
}

.feed-card:hover {
    border-color: #000 !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.16),
        0 4px 12px rgba(0, 0, 0, 0.10);
    background-color: #fffaf2;
}

/* se la card contiene immagine/thumb */
.feed-card img {
    border-color: rgba(0, 0, 0, 0.22);
}

/* mobile: ombra sì, salto no */
@media (max-width: 640px) {
    .feed-card:hover {
        transform: none;
        box-shadow:
            0 9px 26px rgba(0, 0, 0, 0.13),
            0 2px 8px rgba(0, 0, 0, 0.08);
    }
}


/* =========================================================
   HOME FEED CARD - correzione hover fermo + radius sobrio
   ========================================================= */

.feed-card {
    border-radius: 14px !important;
    transform: none !important;
}

.feed-card:hover {
    transform: none !important;
    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.145),
        0 3px 10px rgba(0, 0, 0, 0.085);
}

/* miniature meno tonde della card */
.feed-card img {
    border-radius: 10px;
}

/* mobile */
@media (max-width: 640px) {
    .feed-card {
        border-radius: 12px !important;
    }

    .feed-card:hover {
        transform: none !important;
        box-shadow:
            0 9px 24px rgba(0, 0, 0, 0.13),
            0 2px 8px rgba(0, 0, 0, 0.08);
    }

    .feed-card img {
        border-radius: 9px;
    }
}


/* =========================================================
   HOME FEED v3 - spaziature, gerarchia, leggibilità
   ========================================================= */

:root {
    --feed-card-radius: 14px;
    --feed-card-radius-mobile: 12px;
    --feed-card-border: #111;
    --feed-card-bg: #fffdf8;
    --feed-card-bg-hover: #fffaf2;
    --feed-card-text: #171717;
    --feed-card-muted: #6f6760;
    --feed-card-soft-line: rgba(17, 17, 17, 0.14);
}

/* ritmo del feed: distanza costante tra card */
.feed-card + .feed-card {
    margin-top: 18px;
}

/* card base */
.feed-card {
    position: relative;
    overflow: hidden;

    border: 1.5px solid var(--feed-card-border) !important;
    border-radius: var(--feed-card-radius) !important;
    background: var(--feed-card-bg);

    padding: 16px 17px;
    min-height: 132px;

    color: var(--feed-card-text);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.052);

    transform: none !important;
    transition:
        box-shadow 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.feed-card:hover {
    transform: none !important;
    border-color: #000 !important;
    background: var(--feed-card-bg-hover);
    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.145),
        0 3px 10px rgba(0, 0, 0, 0.085);
}

/* focus tastiera, utile e pulito */
.feed-card:focus-within {
    outline: 3px solid rgba(17, 17, 17, 0.22);
    outline-offset: 3px;
}

/* parte alta della card: thumbnail + contenuti */
.feed-card .card-top {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
}

/* immagini/miniature: regolari, meno tonde della card */
.feed-card img,
.feed-card picture,
.feed-card .thumb,
.feed-card .thumbnail,
.feed-card .card-thumb,
.feed-card .card-image {
    border-radius: 10px !important;
}

.feed-card img {
    display: block;
    object-fit: cover;
    background: #eee8df;
}

/* titolo/nome: più autorevole, non gigante */
.feed-card h1,
.feed-card h2,
.feed-card h3,
.feed-card .card-title,
.feed-card .name,
.feed-card .obituary-name {
    margin-top: 0;
    margin-bottom: 7px;

    color: var(--feed-card-text);
    font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
    font-size: clamp(1.05rem, 0.98rem + 0.28vw, 1.24rem);
    line-height: 1.16;
    font-weight: 600;
    letter-spacing: -0.012em;

    overflow-wrap: anywhere;
}

/* testo: leggibile, non troppo lungo nel feed */
.feed-card p,
.feed-card .card-text,
.feed-card .excerpt,
.feed-card .description {
    margin-top: 0;
    margin-bottom: 0;

    color: #37322e;
    font-size: 0.94rem;
    line-height: 1.43;
}

/* paragrafi secondari dentro la card */
.feed-card p + p {
    margin-top: 6px;
}

/* data/metadati: più ordinati, meno dispersi */
.feed-card time,
.feed-card .date,
.feed-card .card-date,
.feed-card .published-at {
    display: inline-flex;
    align-items: center;
    width: fit-content;

    margin-bottom: 8px;
    padding: 5px 8px;

    border: 1px solid rgba(17, 17, 17, 0.10);
    border-radius: 999px;
    background: #f1ebe2;

    color: var(--feed-card-muted);
    font-size: 0.72rem;
    line-height: 1;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

/* luogo/fonte/metadati: piccoli ma leggibili */
.feed-card .meta,
.feed-card .card-meta,
.feed-card .place,
.feed-card .source,
.feed-card .location {
    color: var(--feed-card-muted);
    font-size: 0.82rem;
    line-height: 1.32;
}

/* link dentro la card: niente blu standard */
.feed-card a {
    color: inherit;
    text-decoration: none;
}

.feed-card a:not(.card-click-layer):hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* se esiste un layer cliccabile, resta invisibile ma non altera layout */
.feed-card .card-click-layer {
    border-radius: inherit;
}

/* desktop largo: feed più respirato */
@media (min-width: 900px) {
    .feed-card {
        padding: 17px 19px;
    }

    .feed-card + .feed-card {
        margin-top: 20px;
    }
}

/* mobile: più compatto, ma non compresso */
@media (max-width: 640px) {
    .feed-card + .feed-card {
        margin-top: 13px;
    }

    .feed-card {
        border-radius: var(--feed-card-radius-mobile) !important;
        padding: 12px;
        min-height: 104px;
    }

    .feed-card:hover {
        transform: none !important;
        box-shadow:
            0 8px 22px rgba(0, 0, 0, 0.12),
            0 2px 8px rgba(0, 0, 0, 0.07);
    }

    .feed-card .card-top {
        gap: 11px;
    }

    .feed-card img,
    .feed-card picture,
    .feed-card .thumb,
    .feed-card .thumbnail,
    .feed-card .card-thumb,
    .feed-card .card-image {
        border-radius: 8px !important;
    }

    .feed-card h1,
    .feed-card h2,
    .feed-card h3,
    .feed-card .card-title,
    .feed-card .name,
    .feed-card .obituary-name {
        margin-bottom: 5px;
        font-size: 1.02rem;
        line-height: 1.15;
        letter-spacing: -0.008em;
    }

    .feed-card p,
    .feed-card .card-text,
    .feed-card .excerpt,
    .feed-card .description {
        font-size: 0.86rem;
        line-height: 1.35;
    }

    .feed-card time,
    .feed-card .date,
    .feed-card .card-date,
    .feed-card .published-at {
        margin-bottom: 6px;
        padding: 4px 7px;
        font-size: 0.66rem;
    }

    .feed-card .meta,
    .feed-card .card-meta,
    .feed-card .place,
    .feed-card .source,
    .feed-card .location {
        font-size: 0.76rem;
    }
}


/* =========================================================
   HOME FEED v4 - font nomi + colori tipologie più stabili
   ========================================================= */

:root {
    --feed-bg-default: #fffdf8;
    --feed-bg-hover: #fffaf2;

    --feed-accent-default: #1b1b1b;
    --feed-accent-internal: #1b1b1b;
    --feed-accent-external: #7a6048;
    --feed-accent-relevant: #9a6a2f;

    --feed-name: #151515;
    --feed-body: #39342f;
    --feed-muted: #6f6760;
}

/* tutte le card hanno sfondo quasi identico */
.feed-card,
.feed-card.obituary,
.feed-card.external,
.feed-card.external-obituary,
.feed-card.external_obituary,
.feed-card.source,
.feed-card.scraping,
.feed-card.scraped,
.feed-card.relevant,
.feed-card.premium {
    background: var(--feed-bg-default) !important;
}

/* hover uguale per tutte: niente effetto strobo */
.feed-card:hover,
.feed-card.obituary:hover,
.feed-card.external:hover,
.feed-card.external-obituary:hover,
.feed-card.external_obituary:hover,
.feed-card.source:hover,
.feed-card.scraping:hover,
.feed-card.scraped:hover,
.feed-card.relevant:hover,
.feed-card.premium:hover {
    background: var(--feed-bg-hover) !important;
}

/* distinzione tipologia: barra laterale, non sfondo pieno */
.feed-card::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;

    width: 4px;
    border-radius: 0 999px 999px 0;
    background: var(--feed-accent-default);
    opacity: 0.78;
}

/* interni */
.feed-card.obituary::before,
.feed-card.internal::before {
    background: var(--feed-accent-internal);
}

/* da scraping / fonti esterne */
.feed-card.external::before,
.feed-card.external-obituary::before,
.feed-card.external_obituary::before,
.feed-card.source::before,
.feed-card.scraping::before,
.feed-card.scraped::before {
    background: var(--feed-accent-external);
}

/* relevant / “per chi desidera salutare” */
.feed-card.relevant::before,
.feed-card.premium::before {
    background: var(--feed-accent-relevant);
}

/* più aria a sinistra per la barra */
.feed-card {
    padding-left: 20px;
}

/* font nomi: via serif, più moderno e stabile */
.feed-card h1,
.feed-card h2,
.feed-card h3,
.feed-card .card-title,
.feed-card .name,
.feed-card .obituary-name {
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif !important;

    color: var(--feed-name);
    font-size: clamp(1.04rem, 0.99rem + 0.22vw, 1.18rem);
    line-height: 1.18;
    font-weight: 650;
    letter-spacing: -0.018em;

    margin-top: 0;
    margin-bottom: 6px;
}

/* testo più neutro */
.feed-card p,
.feed-card .card-text,
.feed-card .excerpt,
.feed-card .description {
    color: var(--feed-body);
    font-size: 0.93rem;
    line-height: 1.42;
}

/* data più discreta: non deve competere col nome */
.feed-card time,
.feed-card .date,
.feed-card .card-date,
.feed-card .published-at {
    background: rgba(241, 235, 226, 0.78);
    color: var(--feed-muted);
    border-color: rgba(17, 17, 17, 0.09);
}

/* metadati/fonte */
.feed-card .meta,
.feed-card .card-meta,
.feed-card .place,
.feed-card .source,
.feed-card .location {
    color: var(--feed-muted);
}

/* mobile */
@media (max-width: 640px) {
    .feed-card {
        padding-left: 15px;
    }

    .feed-card::before {
        top: 12px;
        bottom: 12px;
        width: 3px;
    }

    .feed-card h1,
    .feed-card h2,
    .feed-card h3,
    .feed-card .card-title,
    .feed-card .name,
    .feed-card .obituary-name {
        font-size: 1rem;
        line-height: 1.16;
        font-weight: 650;
        letter-spacing: -0.014em;
    }

    .feed-card p,
    .feed-card .card-text,
    .feed-card .excerpt,
    .feed-card .description {
        font-size: 0.86rem;
        line-height: 1.36;
    }
}


/* =========================================================
   HOME FEED v5 - barra più sottile + colore label relevant
   ========================================================= */

/* barra laterale dimezzata */
.feed-card::before {
    width: 2px !important;
}

/* mobile: sottile ma ancora visibile */
@media (max-width: 640px) {
    .feed-card::before {
        width: 1.5px !important;
    }
}

/* label relevant / "Per chi desidera salutare" nello stesso colore della barra */
.feed-card.relevant .badge,
.feed-card.relevant .tag,
.feed-card.relevant .chip,
.feed-card.relevant .label,
.feed-card.relevant .type-label,
.feed-card.relevant .card-badge,
.feed-card.relevant .card-label,
.feed-card.relevant .relevant-label,
.feed-card.relevant .premium-label,
.feed-card.premium .badge,
.feed-card.premium .tag,
.feed-card.premium .chip,
.feed-card.premium .label,
.feed-card.premium .type-label,
.feed-card.premium .card-badge,
.feed-card.premium .card-label,
.feed-card.premium .relevant-label,
.feed-card.premium .premium-label {
    color: var(--feed-accent-relevant) !important;
    border-color: rgba(154, 106, 47, 0.28) !important;
    background: rgba(154, 106, 47, 0.075) !important;
}


/* =========================================================
   HOME FEED v6 - hover cromaticamente neutro
   ========================================================= */

:root {
    --feed-bg-default: #fffdf8;
    --feed-bg-hover: #fffdf8;
}

/* hover: niente cambio caldo/freddo, solo profondità */
.feed-card:hover,
.feed-card.obituary:hover,
.feed-card.external:hover,
.feed-card.external-obituary:hover,
.feed-card.external_obituary:hover,
.feed-card.source:hover,
.feed-card.scraping:hover,
.feed-card.scraped:hover,
.feed-card.relevant:hover,
.feed-card.premium:hover {
    background: var(--feed-bg-hover) !important;
    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.145),
        0 3px 10px rgba(0, 0, 0, 0.085);
}


/* =========================================================
   HOME SEARCH - schema colori coerente con feed
   ========================================================= */

.home-search,
.search-box,
.search-form,
.feed-search,
.public-search {
    background: #fffdf8;
    border: 1px solid #cfc7bd !important;
    border-radius: 14px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.045);
}

/* input ricerca */
.home-search input,
.search-box input,
.search-form input,
.feed-search input,
.public-search input,
input[type="search"] {
    background: #fffdf8;
    color: #171717;
    border-color: #cfc7bd !important;
}

.home-search input::placeholder,
.search-box input::placeholder,
.search-form input::placeholder,
.feed-search input::placeholder,
.public-search input::placeholder,
input[type="search"]::placeholder {
    color: #8a8178;
}

/* focus: grigio più marcato, non nero */
.home-search:focus-within,
.search-box:focus-within,
.search-form:focus-within,
.feed-search:focus-within,
.public-search:focus-within {
    border-color: #9f968c !important;
    box-shadow:
        0 0 0 3px rgba(159, 150, 140, 0.22),
        0 7px 20px rgba(0, 0, 0, 0.065);
}

/* pulsante ricerca, se presente */
.home-search button,
.search-box button,
.search-form button,
.feed-search button,
.public-search button {
    background: #171717;
    color: #fffdf8;
    border: 1px solid #171717;
}

.home-search button:hover,
.search-box button:hover,
.search-form button:hover,
.feed-search button:hover,
.public-search button:hover {
    background: #2a2622;
    border-color: #2a2622;
}

/* suggerimenti ricerca */
.search-suggestions,
.suggestions,
.autocomplete,
.autocomplete-results {
    background: #fffdf8;
    border: 1px solid #cfc7bd;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.11);
    overflow: hidden;
}

.search-suggestions a,
.search-suggestions button,
.suggestions a,
.suggestions button,
.autocomplete a,
.autocomplete button,
.autocomplete-results a,
.autocomplete-results button {
    color: #171717;
}

.search-suggestions a:hover,
.search-suggestions button:hover,
.suggestions a:hover,
.suggestions button:hover,
.autocomplete a:hover,
.autocomplete button:hover,
.autocomplete-results a:hover,
.autocomplete-results button:hover {
    background: #f3ede4;
}

/* mobile */
@media (max-width: 640px) {
    .home-search,
    .search-box,
    .search-form,
    .feed-search,
    .public-search {
        border-radius: 12px;
    }

    .search-suggestions,
    .suggestions,
    .autocomplete,
    .autocomplete-results {
        border-radius: 11px;
    }
}





/* =========================================================
   SEARCH SURGICAL FIX - solo correzioni minime
   ========================================================= */

/* la tendina deve coprire quei 2px senza cambiare stile interno */
.search-suggestions {
    width: calc(100% + 2px) !important;
    left: -1px !important;
    right: auto !important;
    box-sizing: border-box !important;
}

/* la tendina non deve essere tagliata dal form */
.search.search-form {
    overflow: visible !important;
}

/* X ricerca: non nera, ma senza toccare i suggerimenti */
.search-clear {
    background: #f4eee6 !important;
    color: #171717 !important;
    border: 1px solid #d3c8bb !important;
    box-shadow: none !important;
}

.search-clear:hover {
    background: #ebe2d8 !important;
    border-color: #c6b8a8 !important;
}


/* =========================================================
   SEARCH SUGGESTIONS FINAL FIX - solo classi reali
   ========================================================= */

.search.search-form {
    overflow: visible !important;
}

/* contenitore tendina */
.search-suggestions {
    width: calc(100% + 2px) !important;
    left: -1px !important;
    right: auto !important;

    background: #fffdf8 !important;
    border: 1px solid #cfc7bd !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.095) !important;

    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* singola riga */
.search-suggestion {
    background: #fffdf8 !important;
    color: #171717 !important;

    border: 0 !important;
    border-bottom: 1px solid #e4dbd0 !important;
    box-shadow: none !important;
}

.search-suggestion:last-child {
    border-bottom: 0 !important;
}

.search-suggestion:hover,
.search-suggestion.active {
    background: #f7f2eb !important;
    color: #171717 !important;
}

/* testo principale */
.search-suggestion-label {
    color: #171717 !important;
}

/* eventuale highlight */
.search-suggestion-label mark,
.search-suggestion mark {
    color: inherit !important;
    background: rgba(154, 106, 47, 0.16) !important;
    border-radius: 4px;
    padding: 0 1px;
}

/* pill a destra: persona / località / data */
.search-suggestion-type {
    background: #fbf6ef !important;
    color: #7a6a59 !important;
    border: 1px solid #d8ccbe !important;
}

/* X ricerca */
.search-clear {
    background: #f4eee6 !important;
    color: #171717 !important;
    border: 1px solid #d3c8bb !important;
    box-shadow: none !important;
}

.search-clear:hover {
    background: #ebe2d8 !important;
    border-color: #c6b8a8 !important;
}


/* =========================================================
   SEARCH LAST FIX - bordo singolo + nessun risultato
   ========================================================= */

/* un solo bordo: quello del form */
.search.search-form {
    border: 1px solid #cfc7bd !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.045) !important;
}

/* niente bordo interno dell'input */
.search.search-form input,
.search.search-form input:focus,
.search.search-form input:focus-visible {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* stato vuoto suggerimenti */
.search-suggestion-empty {
    cursor: default !important;
    justify-content: flex-start !important;
    color: #6f6760 !important;
    background: #fffdf8 !important;
}

.search-suggestion-empty:hover {
    background: #fffdf8 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic;
}


/* =========================================================
   SEARCH EMPTY STATE - nessun risultato
   ========================================================= */

.search-suggestion-empty {
    cursor: default !important;
    justify-content: flex-start !important;
    background: #fffdf8 !important;
    color: #6f6760 !important;
    pointer-events: none;
}

.search-suggestion-empty:hover {
    background: #fffdf8 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic;
}


/* =========================================================
   SEARCH EMPTY STATE FINAL
   ========================================================= */

.search-suggestion-empty,
.search-suggestion-empty:disabled {
    display: flex !important;
    width: 100% !important;
    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #6f6760 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.search-suggestion-empty:hover,
.search-suggestion-empty:disabled:hover {
    background: #fffdf8 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}


/* =========================================================
   SEARCH EMPTY STATE FINAL
   ========================================================= */

.search-suggestion-empty,
.search-suggestion-empty:disabled {
    display: flex !important;
    width: 100% !important;
    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #6f6760 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.search-suggestion-empty:hover,
.search-suggestion-empty:disabled:hover {
    background: #fffdf8 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}


/* =========================================================
   SEARCH - un carattere: tendina vuota
   ========================================================= */

.search-suggestions.one-char-empty {
    min-height: 42px !important;
    background: #fffdf8 !important;
}

@media (max-width: 640px) {
    .search-suggestions.one-char-empty {
        min-height: 38px !important;
    }
}


/* =========================================================
   SEARCH - hint per un solo carattere
   ========================================================= */

.search-suggestions.one-char-empty {
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 14px !important;
    background: #fffdf8 !important;
}

.search-suggestions.one-char-empty::before {
    content: "Continua a digitare…";
    color: #8a8178;
    font-size: 0.92rem;
    font-style: italic;
    line-height: 1;
}

@media (max-width: 640px) {
    .search-suggestions.one-char-empty {
        min-height: 38px !important;
        padding: 0 12px !important;
    }

    .search-suggestions.one-char-empty::before {
        font-size: 0.86rem;
    }
}


/* =========================================================
   SEARCH HINT / EMPTY STATE - final
   ========================================================= */

.search-suggestions.one-char-empty {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
}

.search-suggestion-hint,
.search-suggestion-hint:disabled,
.search-suggestion-empty,
.search-suggestion-empty:disabled {
    display: flex !important;
    width: 100% !important;
    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #8a8178 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.search-suggestion-hint .search-suggestion-label {
    color: #8a8178 !important;
    font-style: normal !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}

.search-suggestion-hint:hover,
.search-suggestion-hint:disabled:hover,
.search-suggestion-empty:hover,
.search-suggestion-empty:disabled:hover {
    background: #fffdf8 !important;
}


/* =========================================================
   SEARCH ONE-CHAR CLEANUP - niente pseudo-elementi residui
   ========================================================= */

/* elimina definitivamente il vecchio testo via ::before */
.search-suggestions.one-char-empty::before,
.search-suggestions::before {
    content: none !important;
    display: none !important;
}

/* la tendina non deve aggiungere padding proprio */
.search-suggestions.one-char-empty {
    padding: 0 !important;
}

/* hint allineato come le altre righe */
.search-suggestion-hint,
.search-suggestion-hint:disabled {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;

    padding: 14px 20px !important;

    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #8a8178 !important;
    border: 0 !important;
    box-shadow: none !important;
}

.search-suggestion-hint .search-suggestion-label {
    color: #8a8178 !important;
    font-style: normal !important;
}

@media (max-width: 640px) {
    .search-suggestion-hint,
    .search-suggestion-hint:disabled {
        padding: 12px 18px !important;
    }
}


/* =========================================================
   SEARCH ONE-CHAR PLACEHOLDER - non è una riga suggerimento
   ========================================================= */

.search-suggestions.one-char-empty {
    padding: 0 !important;
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
}

.search-one-char-placeholder {
    width: 100%;
    padding: 0 20px;

    color: #8a8178;
    font-size: 0.94rem;
    line-height: 1;
    font-style: normal;

    background: transparent;
    border: 0;
    box-shadow: none;
}

/* disattiva il vecchio stile da riga, se resta in cache/precedenti blocchi */
.search-suggestions.one-char-empty .search-suggestion-hint {
    display: none !important;
}

@media (max-width: 640px) {
    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-one-char-placeholder {
        padding: 0 14px;
        font-size: 0.88rem;
    }
}


/* =========================================================
   SEARCH ONE-CHAR PLACEHOLDER - testo visibile
   ========================================================= */

.search-suggestions.one-char-empty {
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    padding: 0 !important;
    background: #fffdf8 !important;
}

.search-suggestions.one-char-empty::before {
    content: none !important;
    display: none !important;
}

.search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 46px !important;
    padding: 0 20px !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    line-height: 1 !important;
    font-style: normal !important;
    opacity: 1 !important;
    visibility: visible !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (max-width: 640px) {
    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-one-char-placeholder {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH ONE-CHAR TEXT - fallback visibile
   ========================================================= */

.search-suggestions.one-char-empty {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    padding: 0 !important;
    background: #fffdf8 !important;
}

/* disattiva vecchi pseudo-elementi conflittuali */
.search-suggestions.one-char-empty::before {
    content: none !important;
    display: none !important;
}

/* testo effettivo */
.search-suggestions.one-char-empty::after {
    content: "Cerca persone, luoghi o date" !important;
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    height: 46px !important;
    padding: 0 20px !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    font-style: normal !important;
    line-height: 1 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* se il JS inserisce un placeholder vero, non serve mostrarlo */
.search-suggestions.one-char-empty .search-one-char-placeholder {
    display: none !important;
}

@media (max-width: 640px) {
    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-suggestions.one-char-empty::after {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH SUGGESTIONS LAYOUT FIX
   ========================================================= */

/* stato normale: risultati in colonna, mai in orizzontale */
.search-suggestions.visible:not(.one-char-empty) {
    display: block !important;
}

/* singolo carattere: placeholder vuoto con testo via CSS */
.search-suggestions.one-char-empty {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    padding: 0 !important;
    background: #fffdf8 !important;
}

.search-suggestions.one-char-empty::before {
    content: none !important;
    display: none !important;
}

.search-suggestions.one-char-empty::after {
    content: "Cerca persone, luoghi o date" !important;
    display: flex !important;
    align-items: center !important;
    height: 46px !important;
    padding: 0 20px !important;
    color: #8a8178 !important;
    font-size: 0.94rem !important;
}

/* con risultati veri, nessun pseudo-testo */
.search-suggestions.visible:not(.one-char-empty)::after,
.search-suggestions.visible:not(.one-char-empty)::before {
    content: none !important;
    display: none !important;
}


/* =========================================================
   SEARCH FINAL CLEAN - posizione e stati coerenti
   ========================================================= */

.search.search-form {
    position: relative !important;
    overflow: visible !important;
}

/* tendina: sempre sotto la searchbar, 2px più larga */
.search-suggestions {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    left: -1px !important;
    right: auto !important;
    width: calc(100% + 2px) !important;
    box-sizing: border-box !important;
    z-index: 1000 !important;
}

/* stato normale: mai layout orizzontale */
.search-suggestions.visible:not(.one-char-empty) {
    display: block !important;
}

/* stato a un solo carattere */
.search-suggestions.one-char-empty {
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    padding: 0 !important;
    background: #fffdf8 !important;
}

/* elimina vecchi testi fantasma */
.search-suggestions.one-char-empty::before,
.search-suggestions.one-char-empty::after,
.search-suggestions.visible:not(.one-char-empty)::before,
.search-suggestions.visible:not(.one-char-empty)::after {
    content: none !important;
    display: none !important;
}

/* testo vero del placeholder a un carattere */
.search-suggestions.one-char-empty .search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 46px !important;
    padding: 0 20px !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    font-style: normal !important;
    line-height: 1 !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* le righe risultato devono restare verticali e larghe */
.search-suggestion {
    width: 100% !important;
}

/* stato nessun risultato */
.search-suggestion-empty,
.search-suggestion-empty:disabled {
    display: flex !important;
    width: 100% !important;
    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #6f6760 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}

@media (max-width: 640px) {
    .search-suggestions {
        top: calc(100% + 8px) !important;
    }

    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-suggestions.one-char-empty .search-one-char-placeholder {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH FINAL CLEAN - posizione e stati coerenti
   ========================================================= */

.search.search-form {
    position: relative !important;
    overflow: visible !important;
}

.search-suggestions {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    left: -1px !important;
    right: auto !important;
    width: calc(100% + 2px) !important;
    box-sizing: border-box !important;
    z-index: 1000 !important;
}

.search-suggestions.visible:not(.one-char-empty) {
    display: block !important;
}

.search-suggestions.one-char-empty {
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    padding: 0 !important;
    background: #fffdf8 !important;
}

.search-suggestions.one-char-empty::before,
.search-suggestions.one-char-empty::after,
.search-suggestions.visible:not(.one-char-empty)::before,
.search-suggestions.visible:not(.one-char-empty)::after {
    content: none !important;
    display: none !important;
}

.search-suggestions.one-char-empty .search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 46px !important;
    padding: 0 20px !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    font-style: normal !important;
    line-height: 1 !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.search-suggestion {
    width: 100% !important;
}

.search-suggestion-empty,
.search-suggestion-empty:disabled {
    display: flex !important;
    width: 100% !important;
    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #6f6760 !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}

@media (max-width: 640px) {
    .search-suggestions {
        top: calc(100% + 8px) !important;
    }

    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-suggestions.one-char-empty .search-one-char-placeholder {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH LAYOUT HARD FIX - risultati sempre verticali
   ========================================================= */

.search.search-form {
    position: relative !important;
    overflow: visible !important;
}

/* base tendina */
.search-suggestions {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    left: -1px !important;
    right: auto !important;
    width: calc(100% + 2px) !important;
    box-sizing: border-box !important;
    z-index: 1000 !important;
}

/* stato aperto: SEMPRE colonna, mai riga */
.search-suggestions.visible {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
}

/* nessun pseudo-testo fantasma */
.search-suggestions::before,
.search-suggestions::after {
    content: none !important;
    display: none !important;
}

/* righe risultato */
.search-suggestion {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;

    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
}

/* singolo carattere: resta una tendina, ma non una lista risultati */
.search-suggestions.one-char-empty {
    min-height: 46px !important;
    background: #fffdf8 !important;
}

.search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 46px !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    font-style: normal !important;
    line-height: 1 !important;
}

/* nessun risultato */
.search-suggestion-empty,
.search-suggestion-empty:disabled {
    opacity: 1 !important;
    pointer-events: none !important;
    cursor: default !important;
}

.search-suggestion-empty .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}

@media (max-width: 640px) {
    .search-suggestions {
        top: calc(100% + 8px) !important;
    }

    .search-suggestions.one-char-empty {
        min-height: 42px !important;
    }

    .search-one-char-placeholder {
        height: 42px !important;
        padding: 0 18px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH ONE-CHAR ALIGNMENT
   ========================================================= */

/* la tendina a un carattere deve comportarsi come la lista normale */
.search-suggestions.one-char-empty {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    padding: 0 !important;
}

/* placeholder allineato esattamente come una riga suggerimento */
.search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: 100% !important;
    min-height: 46px !important;
    height: auto !important;

    padding: 14px 16px !important;
    box-sizing: border-box !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    line-height: 1.25 !important;
    font-style: normal !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* mobile */
@media (max-width: 640px) {
    .search-one-char-placeholder {
        min-height: 42px !important;
        padding: 12px 14px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH ONE-CHAR FINAL ALIGNMENT
   ========================================================= */

/* anche la tendina placeholder deve stare esattamente dove stanno i risultati */
.search-suggestions.visible.one-char-empty {
    position: absolute !important;
    top: calc(100% + 10px) !important;
    left: -1px !important;
    right: auto !important;
    width: calc(100% + 2px) !important;

    display: block !important;
    padding: 0 !important;
    margin: 0 !important;

    transform: none !important;
    box-sizing: border-box !important;
}

/* il placeholder deve avere lo stesso padding delle righe suggerimento */
.search-suggestions.visible.one-char-empty .search-one-char-placeholder {
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    min-height: 57px !important;
    height: auto !important;

    padding: 14px 24px !important;
    margin: 0 !important;
    box-sizing: border-box !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    line-height: 1.3 !important;
    font-style: normal !important;

    background: transparent !important;
}

/* evita che vecchie regole flex spostino il placeholder */
.search-suggestions.visible.one-char-empty {
    flex-direction: initial !important;
    align-items: initial !important;
    justify-content: initial !important;
}

/* mobile */
@media (max-width: 640px) {
    .search-suggestions.visible.one-char-empty {
        top: calc(100% + 8px) !important;
    }

    .search-suggestions.visible.one-char-empty .search-one-char-placeholder {
        min-height: 52px !important;
        padding: 12px 20px !important;
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   SEARCH ONE-CHAR = stessa riga dei suggerimenti
   ========================================================= */

.search-suggestions.visible.one-char-empty {
    display: block !important;
    padding: 0 !important;
}

/* la riga hint usa la stessa struttura di .search-suggestion */
.search-suggestion-hint,
.search-suggestion-hint:disabled {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;

    opacity: 1 !important;
    cursor: default !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #8a8178 !important;
}

/* testo allineato come negli altri suggerimenti */
.search-suggestion-hint .search-suggestion-label {
    color: #8a8178 !important;
    font-style: normal !important;
}

/* elimina vecchio placeholder se qualche CSS residuo lo richiama */
.search-one-char-placeholder {
    display: none !important;
}


/* =========================================================
   SEARCH ONE-CHAR HINT - riattiva testo nascosto
   ========================================================= */

.search-suggestions.visible.one-char-empty .search-suggestion-hint,
.search-suggestions.visible.one-char-empty .search-suggestion-hint:disabled {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: 100% !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;

    background: #fffdf8 !important;
    color: #8a8178 !important;
}

.search-suggestions.visible.one-char-empty .search-suggestion-hint .search-suggestion-label {
    display: inline !important;
    color: #8a8178 !important;
    font-style: normal !important;
    opacity: 1 !important;
    visibility: visible !important;
}


/* =========================================================
   SEARCH ONE-CHAR HINT - stesso allineamento di Nessun risultato
   ========================================================= */

.search-suggestions.visible.one-char-empty .search-suggestion-hint,
.search-suggestions.visible.one-char-empty .search-suggestion-hint:disabled {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
}

/* non ridefiniamo padding/altezza: li eredita da search-suggestion-empty */
.search-suggestions.visible.one-char-empty .search-suggestion-hint .search-suggestion-label {
    display: inline !important;
    color: #8a8178 !important;
    font-style: normal !important;
    opacity: 1 !important;
    visibility: visible !important;
}


/* =========================================================
   SEARCH EMPTY/HINT HARD ALIGN - identici al pixel
   ========================================================= */

/* il contenitore, sia normale sia one-char, deve comportarsi uguale */
.search.search-form .search-suggestions.visible,
.search.search-form .search-suggestions.visible.one-char-empty {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    align-items: initial !important;
    justify-content: initial !important;
    flex-direction: initial !important;
}

/* disattiva qualunque pseudo-testo precedente */
.search.search-form .search-suggestions::before,
.search.search-form .search-suggestions::after,
.search.search-form .search-suggestions.visible.one-char-empty::before,
.search.search-form .search-suggestions.visible.one-char-empty::after {
    content: none !important;
    display: none !important;
}

/* QUESTA è la riga unica per:
   - suggerimenti normali
   - Nessun risultato
   - Cerca persone, luoghi o date */
.search.search-form .search-suggestions.visible > .search-suggestion,
.search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion,
.search.search-form .search-suggestions.visible > .search-suggestion-empty,
.search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion-hint {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    width: 100% !important;
    min-height: 54px !important;
    height: auto !important;

    padding: 14px 16px !important;
    margin: 0 !important;

    box-sizing: border-box !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;

    flex: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* per hint e nessun risultato niente spazio a destra: testo allineato uguale */
.search.search-form .search-suggestions.visible > .search-suggestion-empty,
.search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion-hint {
    justify-content: flex-start !important;
    pointer-events: none !important;
    cursor: default !important;
}

/* anche lo span interno deve essere identico */
.search.search-form .search-suggestions.visible > .search-suggestion-empty .search-suggestion-label,
.search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion-hint .search-suggestion-label {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #8a8178 !important;
    font-size: 0.94rem !important;
    line-height: 1.25 !important;
    font-style: normal !important;

    opacity: 1 !important;
    visibility: visible !important;
}

/* se vuoi mantenere "Nessun risultato" più discreto */
.search.search-form .search-suggestions.visible > .search-suggestion-empty:not(.search-suggestion-hint) .search-suggestion-label {
    color: #6f6760 !important;
    font-style: italic !important;
}

/* elimina vecchio placeholder div, se resta da qualche tentativo precedente */
.search.search-form .search-one-char-placeholder {
    display: none !important;
}

@media (max-width: 640px) {
    .search.search-form .search-suggestions.visible > .search-suggestion,
    .search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion,
    .search.search-form .search-suggestions.visible > .search-suggestion-empty,
    .search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion-hint {
        min-height: 50px !important;
        padding: 12px 14px !important;
    }

    .search.search-form .search-suggestions.visible > .search-suggestion-empty .search-suggestion-label,
    .search.search-form .search-suggestions.visible.one-char-empty > .search-suggestion-hint .search-suggestion-label {
        font-size: 0.88rem !important;
    }
}


/* =========================================================
   DETAIL PAGE v2 - scheda caso / fonte esterna
   ========================================================= */

.detail-page-body {
    background: #f3eee6;
}

.detail-page {
    width: min(960px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}


/* scheda principale */
.detail-card {
    position: relative;
    overflow: hidden;

    background: #fffdf8;
    border: 1.5px solid #111;
    border-radius: 16px;
    padding: 30px;

    color: #171717;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.075);
}

.detail-card::before {
    content: "";
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 0;
    width: 2px;
    border-radius: 0 999px 999px 0;
    background: #1b1b1b;
    opacity: 0.82;
}

.detail-card-external::before {
    background: #7a6048;
}

/* nome */
.detail-name {
    margin: 0 0 9px;

    color: #111;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    font-size: clamp(1.95rem, 1.55rem + 1.3vw, 2.55rem);
    line-height: 1.04;
    font-weight: 760;
    letter-spacing: -0.045em;

    overflow-wrap: anywhere;
}

/* date e luogo */
.detail-dates,
.detail-muted {
    color: #5f5851;
    font-size: 1.02rem;
    line-height: 1.35;
    margin-bottom: 8px;
}

.detail-place {
    width: fit-content;
    margin: 10px 0 22px;

    color: #6f6760;
    font-size: 0.96rem;
    line-height: 1.15;

    background: #f4eee6;
    border: 1px solid #d8ccbe;
    border-radius: 999px;
    padding: 7px 11px;
}

/* testo annuncio */
.detail-text {
    max-width: 72ch;
    margin: 22px 0 26px;

    white-space: pre-wrap;
    color: #39342f;
    font-size: 1.04rem;
    line-height: 1.68;
}

/* nota fonte esterna */
.external-note {
    margin: 24px 0 22px;
    padding: 17px 19px;

    background: #f4eee6;
    border: 1px solid #d8ccbe;
    border-radius: 14px;

    color: #39342f;
    font-size: 1rem;
    line-height: 1.58;
}

.detail-source-line {
    margin-top: 4px;
    color: #6f6760;
    font-size: 0.94rem;
    line-height: 1.4;
}

/* meta */
.detail-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;

    margin-top: 24px;
    padding-top: 16px;

    border-top: 1px solid #e4dbd0;
    color: #6f6760;
    font-size: 0.84rem;
    line-height: 1.35;
}

/* azioni */
.detail-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.detail-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;
    padding: 10px 16px;

    border: 1px solid #cfc2b2;
    border-radius: 999px;
    background: #fffdf8;

    color: #171717;
    text-decoration: none;
    font-size: 0.93rem;
    line-height: 1;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease;
}

.detail-button:hover {
    background: #f4eee6;
    border-color: #bfb1a0;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.07);
}

.detail-button.primary {
    background: #171717;
    border-color: #171717;
    color: #fffdf8;
}

.detail-button.primary:hover {
    background: #2a2622;
    border-color: #2a2622;
}

/* allegati */
.media-section {
    margin-top: 26px;
}

.media-section-title {
    margin-bottom: 11px;
    color: #6f6760;
    font-size: 0.88rem;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.detail-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 12px;
}

.detail-media {
    display: block;
    width: 100%;

    padding: 10px;

    background: #f4eee6;
    border: 1px solid #d8ccbe;
    border-radius: 13px;

    color: #39342f;
    font-size: 0.86rem;
    line-height: 1.25;
    text-align: left;
    text-decoration: none;

    overflow: hidden;
    cursor: pointer;
}

.detail-media:hover {
    background: #eee5da;
}

.detail-media img {
    display: block;
    width: 100%;
    height: 156px;
    object-fit: cover;

    margin-bottom: 8px;
    border-radius: 9px;
    background: #e8dfd4;
}

.detail-media.pdf {
    cursor: default;
    min-height: 64px;
}

/* carousel allegati */
.media-carousel {
    width: min(980px, calc(100% - 24px));
    border: 0;
    padding: 0;
    background: transparent;
}

.media-carousel::backdrop {
    background: rgba(18, 14, 10, 0.72);
}

.carousel-card {
    background: #1f1914;
    border-radius: 18px;
    padding: 14px;
    color: #fffdf8;
    box-shadow: 0 24px 90px rgba(0, 0, 0, 0.4);
}

.carousel-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.carousel-title {
    color: #eadfd2;
    font-size: 0.9rem;
}

.carousel-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border: 1px solid rgba(255, 253, 248, 0.14);
    border-radius: 999px;
    background: #3b3129;

    color: #fffdf8;
    cursor: pointer;
    font-size: 1.45rem;
    line-height: 1;
}

.carousel-body {
    display: grid;
    grid-template-columns: 48px 1fr 48px;
    align-items: center;
    gap: 10px;
}

.carousel-nav {
    height: 48px;
    border: 1px solid rgba(255, 253, 248, 0.14);
    border-radius: 999px;
    background: #3b3129;
    color: #fffdf8;
    cursor: pointer;
    font-size: 1.75rem;
}

.carousel-stage {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;

    background: #110d0a;
    border-radius: 14px;
    overflow: hidden;
}

.carousel-stage img {
    max-width: 100%;
    max-height: 78vh;
    object-fit: contain;
}

.carousel-footer {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;

    color: #c8b59f;
    font-size: 0.84rem;
}

/* mobile */
@media (max-width: 720px) {
    .detail-page {
        width: min(100% - 20px, 960px);
        padding-bottom: 36px;
    }


    .detail-card {
        border-radius: 13px;
        padding: 22px 18px;
    }

    .detail-card::before {
        top: 15px;
        bottom: 15px;
        width: 2px;
    }

    .detail-name {
        font-size: clamp(1.65rem, 1.32rem + 3vw, 2.05rem);
        letter-spacing: -0.035em;
    }

    .detail-dates,
    .detail-muted {
        font-size: 0.96rem;
    }

    .detail-place {
        margin-bottom: 18px;
        font-size: 0.9rem;
        padding: 6px 10px;
    }

    .detail-text {
        font-size: 0.98rem;
        line-height: 1.62;
    }

    .external-note {
        padding: 14px 15px;
        border-radius: 12px;
        font-size: 0.94rem;
    }

    .detail-actions {
        gap: 8px;
    }

    .detail-button {
        min-height: 40px;
        padding: 9px 13px;
        font-size: 0.88rem;
    }

    .detail-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .detail-media img {
        height: 120px;
    }

    .carousel-body {
        grid-template-columns: 1fr;
    }

    .carousel-nav {
        display: none;
    }

    .carousel-stage {
        min-height: 60vh;
    }
}


/* =========================================================
   DETAIL ACTIONS - back minimal + report outside card
   ========================================================= */

.detail-back-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;
    margin: 0 0 12px 2px;

    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;

    color: #171717;
    text-decoration: none;
    font-size: 1.45rem;
    line-height: 1;
    font-weight: 400;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease;
}

.detail-back-arrow:hover {
    background: #fffdf8;
    border-color: #d8ccbe;
}

.detail-report-row {
    display: flex;
    justify-content: flex-end;

    margin-top: 12px;
    padding: 0 4px;
}

.detail-report-link {
    color: #6f6760;
    font-size: 0.86rem;
    line-height: 1.2;
    text-decoration: none;
    border-bottom: 1px solid rgba(111, 103, 96, 0.35);
}

.detail-report-link:hover {
    color: #171717;
    border-bottom-color: rgba(23, 23, 23, 0.55);
}

@media (max-width: 720px) {
    .detail-back-arrow {
        width: 32px;
        height: 32px;
        margin-bottom: 10px;
        font-size: 1.35rem;
    }

    .detail-report-row {
        justify-content: flex-start;
        margin-top: 10px;
        padding-left: 2px;
    }

    .detail-report-link {
        font-size: 0.82rem;
    }
}


/* =========================================================
   DETAIL UNDER ACTIONS - freccia + segnala sotto scheda
   ========================================================= */

.detail-under-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-top: 10px;
    padding: 0 4px;
}

/* freccetta minimal, nessuna decorazione hover */
.detail-under-actions .detail-back-arrow,
.detail-under-actions .detail-back-arrow:hover,
.detail-under-actions .detail-back-arrow:focus,
.detail-under-actions .detail-back-arrow:focus-visible {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;

    color: #6f6760 !important;
    text-decoration: none !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
}

.detail-under-actions .detail-back-arrow:hover {
    color: #171717 !important;
}

/* segnalazione: fuori dalla scheda, discreta ma visibile */
.detail-under-actions .detail-report-link {
    color: #6f6760;
    font-size: 0.86rem;
    line-height: 1.2;
    text-decoration: none;
    border-bottom: 1px solid rgba(111, 103, 96, 0.35);
}

.detail-under-actions .detail-report-link:hover {
    color: #171717;
    border-bottom-color: rgba(23, 23, 23, 0.55);
}

@media (max-width: 720px) {
    .detail-under-actions {
        margin-top: 9px;
        padding: 0 2px;
    }

    .detail-under-actions .detail-back-arrow {
        font-size: 1.28rem !important;
    }

    .detail-under-actions .detail-report-link {
        font-size: 0.82rem;
    }
}


/* =========================================================
   DETAIL UNDER ACTIONS - fix visibilità
   ========================================================= */

.detail-under-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;

    margin-top: 10px !important;
    padding: 0 4px !important;
}

.detail-under-actions .detail-back-arrow,
.detail-under-actions .detail-back-arrow:hover,
.detail-under-actions .detail-back-arrow:focus,
.detail-under-actions .detail-back-arrow:focus-visible {
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;

    color: #6f6760 !important;
    text-decoration: none !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
}

.detail-under-actions .detail-back-arrow:hover {
    color: #171717 !important;
}

.detail-under-actions .detail-report-link {
    display: inline-flex !important;
    color: #6f6760 !important;
    font-size: 0.86rem !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(111, 103, 96, 0.35) !important;
}

.detail-under-actions .detail-report-link:hover {
    color: #171717 !important;
    border-bottom-color: rgba(23, 23, 23, 0.55) !important;
}


/* =========================================================
   DETAIL BACK BUTTON - cronologia, non link home
   ========================================================= */

.detail-under-actions button.detail-back-arrow,
.detail-under-actions button.detail-back-arrow:hover,
.detail-under-actions button.detail-back-arrow:focus,
.detail-under-actions button.detail-back-arrow:focus-visible {
    appearance: none !important;
    -webkit-appearance: none !important;

    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;

    color: #6f6760 !important;
    text-decoration: none !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

.detail-under-actions button.detail-back-arrow:hover {
    color: #171717 !important;
}


/* =========================================================
   REPORT PAGE - segnala un problema
   ========================================================= */

.report-page-body {
    background: #f3eee6;
}

.report-page {
    width: min(900px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}

/* titolo pagina: non è il logo */
.report-heading {
    margin: 26px 0 20px;
    text-align: center;
}

.report-heading h1 {
    margin: 0;

    color: #171717;
    font-size: clamp(1.65rem, 1.35rem + 1.15vw, 2.25rem);
    line-height: 1.05;
    font-weight: 760;
    letter-spacing: -0.04em;
}

.report-target {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    margin-top: 10px;
    padding: 6px 12px;

    border: 1px solid #d8ccbe;
    border-radius: 999px;
    background: #fffdf8;

    color: #6f6760;
    font-size: 0.9rem;
    line-height: 1.1;
}

/* card form */
.report-form-card {
    background: #fffdf8 !important;
    border: 1px solid #cfc7bd !important;
    border-radius: 16px !important;
    padding: 28px !important;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.065);
}

.report-form-card .field {
    margin-bottom: 18px;
}

.report-form-card label {
    display: block;
    margin-bottom: 7px;

    color: #5f5851;
    font-size: 0.94rem;
    line-height: 1.25;
}

.report-form-card input,
.report-form-card select,
.report-form-card textarea {
    width: 100%;

    border: 1px solid #cfc7bd;
    border-radius: 13px;
    background: #fffdf8;

    color: #171717;
    font-size: 1rem;
    line-height: 1.35;

    padding: 13px 14px;
    outline: none;
    box-shadow: none;

    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

.report-form-card textarea {
    min-height: 128px;
    resize: vertical;
}

.report-form-card input:focus,
.report-form-card select:focus,
.report-form-card textarea:focus {
    border-color: #9f968c;
    box-shadow: 0 0 0 3px rgba(159, 150, 140, 0.18);
    background: #fffdf8;
}

.report-form-card textarea::placeholder {
    color: #8a8178;
}

/* bottoni */
.report-form-card .button-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-top: 24px;
}

.report-form-card .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;
    padding: 10px 16px;

    border: 1px solid #cfc2b2;
    border-radius: 999px;
    background: #fffdf8;

    color: #171717;
    text-decoration: none;
    font-size: 0.94rem;
    line-height: 1;

    cursor: pointer;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease;
}

.report-form-card .button:hover {
    background: #f4eee6;
    border-color: #bfb1a0;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.07);
}

.report-form-card .button.primary {
    background: #171717;
    border-color: #171717;
    color: #fffdf8;
}

.report-form-card .button.primary:hover {
    background: #2a2622;
    border-color: #2a2622;
}

/* il bottone indietro è secondario */
.report-form-card .report-back-button {
    background: transparent;
}

/* errori */
.report-page .errors {
    margin-bottom: 16px;
    padding: 13px 16px;

    border-radius: 13px;
    border: 1px solid #e0b7b0;
    background: #fff2ef;

    color: #74372f;
    font-size: 0.94rem;
    line-height: 1.35;
}

/* mobile */
@media (max-width: 720px) {
    .report-page {
        width: min(100% - 20px, 900px);
        padding-bottom: 36px;
    }

    .report-heading {
        margin: 22px 0 17px;
    }

    .report-heading h1 {
        font-size: clamp(1.45rem, 1.15rem + 4vw, 1.9rem);
        letter-spacing: -0.035em;
    }

    .report-target {
        font-size: 0.84rem;
        padding: 5px 10px;
    }

    .report-form-card {
        border-radius: 13px !important;
        padding: 20px 16px !important;
    }

    .report-form-card input,
    .report-form-card select,
    .report-form-card textarea {
        border-radius: 12px;
        font-size: 0.96rem;
    }

    .report-form-card .button-row {
        align-items: stretch;
    }

    .report-form-card .button {
        min-height: 40px;
        padding: 9px 13px;
        font-size: 0.88rem;
    }
}


/* =========================================================
   REPORT PAGE FINAL - coerente con scheda dettaglio
   ========================================================= */

.report-page-body {
    background: #f3eee6;
}

.report-page {
    width: min(900px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}

/* niente searchbar nella pagina report */
.report-page .search,
.report-page .search-form,
.report-page [data-search-form] {
    display: none !important;
}

.report-form-card {
    position: relative;
    overflow: hidden;

    background: #fffdf8 !important;
    border: 1.5px solid #111 !important;
    border-radius: 16px !important;
    padding: 30px !important;

    color: #171717;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.075);
}

.report-form-card::before {
    content: "";
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 0;
    width: 2px;
    border-radius: 0 999px 999px 0;
    background: #1b1b1b;
    opacity: 0.82;
}

.report-card-heading {
    margin-bottom: 26px;
}

.report-card-heading h1 {
    margin: 0 0 10px;

    color: #111;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    font-size: clamp(1.85rem, 1.45rem + 1.1vw, 2.35rem);
    line-height: 1.04;
    font-weight: 760;
    letter-spacing: -0.045em;
}

.report-target {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: fit-content;
    padding: 7px 11px;

    border: 1px solid #d8ccbe;
    border-radius: 999px;
    background: #f4eee6;

    color: #6f6760;
    font-size: 0.94rem;
    line-height: 1.15;
}

.report-form-card .field {
    margin-bottom: 18px;
}

.report-form-card label {
    display: block;
    margin-bottom: 7px;

    color: #5f5851;
    font-size: 0.94rem;
    line-height: 1.25;
}

.report-form-card input,
.report-form-card textarea {
    width: 100%;

    border: 1px solid #cfc7bd;
    border-radius: 13px;
    background: #fffdf8;

    color: #171717;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    font-size: 1rem;
    line-height: 1.35;

    padding: 13px 14px;
    outline: none;
    box-shadow: none;

    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

.report-form-card textarea {
    min-height: 150px;
    resize: vertical;
}

.report-form-card input:focus,
.report-form-card textarea:focus {
    border-color: #9f968c;
    box-shadow: 0 0 0 3px rgba(159, 150, 140, 0.18);
    background: #fffdf8;
}

.report-form-card textarea::placeholder {
    color: #8a8178;
}

.report-form-card .button-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-top: 24px;
}

.report-form-card .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;
    padding: 10px 16px;

    border: 1px solid #cfc2b2;
    border-radius: 999px;
    background: #fffdf8;

    color: #171717;
    text-decoration: none;
    font-size: 0.94rem;
    line-height: 1;

    cursor: pointer;

    transition:
        background-color 0.16s ease,
        border-color 0.16s ease,
        box-shadow 0.16s ease;
}

.report-form-card .button:hover {
    background: #f4eee6;
    border-color: #bfb1a0;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.07);
}

.report-form-card .button.primary {
    background: #171717;
    border-color: #171717;
    color: #fffdf8;
}

.report-form-card .button.primary:hover {
    background: #2a2622;
    border-color: #2a2622;
}

.report-form-card .report-back-button {
    background: transparent;
}

.report-errors {
    margin-bottom: 16px;
    padding: 13px 16px;

    border-radius: 13px;
    border: 1px solid #e0b7b0;
    background: #fff2ef;

    color: #74372f;
    font-size: 0.94rem;
    line-height: 1.35;
}

/* mobile */
@media (max-width: 720px) {
    .report-page {
        width: min(100% - 20px, 900px);
        padding-bottom: 36px;
    }

    .report-form-card {
        border-radius: 13px !important;
        padding: 22px 18px !important;
    }

    .report-form-card::before {
        top: 15px;
        bottom: 15px;
        width: 2px;
    }

    .report-card-heading h1 {
        font-size: clamp(1.55rem, 1.2rem + 3.2vw, 1.95rem);
        letter-spacing: -0.035em;
    }

    .report-target {
        font-size: 0.88rem;
        padding: 6px 10px;
    }

    .report-form-card input,
    .report-form-card textarea {
        border-radius: 12px;
        font-size: 0.96rem;
    }

    .report-form-card textarea {
        min-height: 140px;
    }

    .report-form-card .button-row {
        align-items: stretch;
    }

    .report-form-card .button {
        min-height: 40px;
        padding: 9px 13px;
        font-size: 0.88rem;
    }
}


/* report page: niente barra verticale a sinistra */
.report-form-card::before {
    display: none !important;
    content: none !important;
}


/* =========================================================
   404 PAGE - logo + ricerca
   ========================================================= */

.not-found-page-body {
    background: #f3eee6;
}

.not-found-page {
    width: min(860px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}

.not-found-card {
    margin-top: 28px;
    padding: 30px;

    background: #fffdf8;
    border: 1.5px solid #111;
    border-radius: 16px;

    color: #171717;
    text-align: center;

    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.075);
}

.not-found-code {
    width: fit-content;
    margin: 0 auto 14px;
    padding: 6px 11px;

    border: 1px solid #d8ccbe;
    border-radius: 999px;
    background: #f4eee6;

    color: #6f6760;
    font-size: 0.86rem;
    line-height: 1;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.not-found-card h1 {
    margin: 0;

    color: #111;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    font-size: clamp(1.85rem, 1.45rem + 1.15vw, 2.35rem);
    line-height: 1.04;
    font-weight: 760;
    letter-spacing: -0.045em;
}

.not-found-card p {
    max-width: 56ch;
    margin: 12px auto 24px;

    color: #6f6760;
    font-size: 1rem;
    line-height: 1.5;
}

.not-found-search {
    max-width: 620px;
    margin: 0 auto;
    text-align: left;
}

/* la searchbar nella 404 deve essere visibile e coerente */
.not-found-page .search,
.not-found-page .search-form,
.not-found-page [data-search-form] {
    display: block !important;
}

/* mobile */
@media (max-width: 720px) {
    .not-found-page {
        width: min(100% - 20px, 860px);
        padding-bottom: 36px;
    }

    .not-found-card {
        margin-top: 22px;
        padding: 22px 18px;
        border-radius: 13px;
    }

    .not-found-card h1 {
        font-size: clamp(1.55rem, 1.2rem + 3.2vw, 1.95rem);
        letter-spacing: -0.035em;
    }

    .not-found-card p {
        font-size: 0.94rem;
        margin-bottom: 20px;
    }
}


/* =========================================================
   404 MINIMAL - logo + ricerca come home
   ========================================================= */

.not-found-page-body {
    background: #f3eee6;
}

.not-found-page-minimal {
    width: min(860px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}

.not-found-minimal {
    margin-top: 30px;
    text-align: center;
}

.not-found-minimal h1 {
    margin: 0 0 22px;

    color: #171717;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;
    font-size: clamp(1.65rem, 1.32rem + 1vw, 2.15rem);
    line-height: 1.05;
    font-weight: 760;
    letter-spacing: -0.04em;
}

.not-found-search {
    max-width: 620px;
    margin: 0 auto;
    text-align: left;
}

.not-found-page-minimal .search,
.not-found-page-minimal .search-form,
.not-found-page-minimal [data-search-form] {
    display: block !important;
}

.not-found-url {
    max-width: 620px;
    margin: 14px auto 0;

    color: #8a8178;
    font-size: 0.86rem;
    line-height: 1.35;
    text-align: center;

    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .not-found-page-minimal {
        width: min(100% - 20px, 860px);
        padding-bottom: 36px;
    }

    .not-found-minimal {
        margin-top: 24px;
    }

    .not-found-minimal h1 {
        margin-bottom: 18px;
        font-size: clamp(1.45rem, 1.15rem + 3vw, 1.85rem);
    }

    .not-found-url {
        font-size: 0.8rem;
    }
}


/* =========================================================
   404 MINIMAL ORDER/TYPO FIX
   ========================================================= */

.not-found-minimal {
    margin-top: 30px !important;
    text-align: center !important;
}

.not-found-search {
    max-width: 620px !important;
    margin: 0 auto !important;
    text-align: left !important;
}

.not-found-status {
    margin: 22px auto 0;

    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;

    color: #171717;
    line-height: 1;
    letter-spacing: -0.025em;
}

.not-found-code-inline {
    font-size: 1.72rem;
    font-weight: 650;
}

.not-found-separator {
    font-size: 1.62rem;
    font-weight: 450;
    color: #5f5851;
}

.not-found-text-inline {
    font-size: 1.56rem;
    font-weight: 400;
}

.not-found-url {
    max-width: 620px !important;
    margin: 14px auto 0 !important;

    color: #8a8178 !important;
    font-size: 0.86rem !important;
    line-height: 1.35 !important;
    text-align: center !important;

    overflow-wrap: anywhere !important;
}

/* neutralizza il vecchio h1, se resta da CSS precedente */
.not-found-minimal h1 {
    display: none !important;
}

@media (max-width: 720px) {
    .not-found-minimal {
        margin-top: 24px !important;
    }

    .not-found-status {
        margin-top: 18px;
        gap: 7px;
    }

    .not-found-code-inline {
        font-size: 1.42rem;
    }

    .not-found-separator {
        font-size: 1.34rem;
    }

    .not-found-text-inline {
        font-size: 1.3rem;
    }

    .not-found-url {
        font-size: 0.8rem !important;
    }
}


/* 404: più aria sotto la barra ricerca */
.not-found-status {
    margin-top: 34px !important;
}

@media (max-width: 720px) {
    .not-found-status {
        margin-top: 28px !important;
    }
}



/* =========================================================
   404 STATUS - correzione solo testo/separatore
   ========================================================= */

/* la searchbar resta com'era prima */
.not-found-page-minimal .not-found-search {
    max-width: 620px !important;
    margin: 0 auto !important;
}

/* più spazio sotto la searchbar */
.not-found-status {
    margin-top: 34px !important;
}

/* 404 un po' più piccolo e non troppo pesante */
.not-found-code-inline {
    font-size: 1.62rem !important;
    font-weight: 650 !important;
}

/* questa è la barra verticale: resta più presente */
.not-found-separator {
    font-size: 1.72rem !important;
    font-weight: 700 !important;
    color: #171717 !important;
}

/* Not found più piccolo e senza grassetto */
.not-found-text-inline {
    font-size: 1.46rem !important;
    font-weight: 400 !important;
}

@media (max-width: 720px) {
    .not-found-status {
        margin-top: 28px !important;
    }

    .not-found-code-inline {
        font-size: 1.36rem !important;
    }

    .not-found-separator {
        font-size: 1.46rem !important;
    }

    .not-found-text-inline {
        font-size: 1.24rem !important;
    }
}


/* =========================================================
   404 - searchbar identica alla home
   ========================================================= */

/* nessun wrapper dedicato: la searchbar usa le regole globali della home */
.not-found-search {
    all: unset !important;
}

/* il blocco 404 resta sotto la searchbar */
.not-found-minimal {
    margin-top: 34px !important;
}

@media (max-width: 720px) {
    .not-found-minimal {
        margin-top: 28px !important;
    }
}


/* =========================================================
   404 - stessa larghezza della home
   ========================================================= */

/* la 404 non deve allargare il contenitore rispetto alla home */
.not-found-page,
.not-found-page-minimal {
    width: var(--home-page-width, min(760px, calc(100% - 32px))) !important;
    max-width: var(--home-page-max-width, 760px) !important;
    margin-inline: auto !important;
}

/* la searchbar nella 404 deve seguire la larghezza normale del contenitore */
.not-found-page .search,
.not-found-page .search-form,
.not-found-page [data-search-form] {
    width: 100% !important;
    max-width: none !important;
}

@media (max-width: 720px) {
    .not-found-page,
    .not-found-page-minimal {
        width: min(100% - 20px, 760px) !important;
        max-width: 760px !important;
    }
}



/* =========================================================
   BIRDSONG TRIGGER - solo uccellino del logo
   ========================================================= */

[data-birdsong-trigger],
.logo-bird,
.brand-bird,
.bird-logo,
.site-bird,
.logo .bird,
.brand .logo img,
.brand .logo svg {
    cursor: pointer;
}

[data-birdsong-trigger].birdsong-is-playing,
.logo-bird.birdsong-is-playing,
.brand-bird.birdsong-is-playing,
.bird-logo.birdsong-is-playing,
.site-bird.birdsong-is-playing,
.logo .bird.birdsong-is-playing,
.brand .logo img.birdsong-is-playing,
.brand .logo svg.birdsong-is-playing {
    filter: drop-shadow(0 0 5px rgba(154, 106, 47, 0.28));
}

@media print {
    [data-birdsong-audio] {
        display: none !important;
    }
}


/* =========================================================
   PUBLIC SOFT NAVIGATION
   ========================================================= */

#public-page-root {
    transition: opacity 0.12s ease;
}

body.is-soft-loading #public-page-root {
    opacity: 0.62;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    #public-page-root {
        transition: none !important;
    }
}







/* =========================================================
   SCROLLBAR STABILITY - desktop con mouse/trackpad
   ========================================================= */

/* desktop/laptop: scrollbar sempre riservata */
@media (hover: hover) and (pointer: fine) {
    html {
        overflow-y: scroll !important;
        scrollbar-gutter: stable !important;
    }

    body {
        overflow-x: hidden !important;
    }
}

/* touch/mobile: comportamento naturale */
@media (hover: none), (pointer: coarse) {
    html {
        overflow-y: auto !important;
        scrollbar-gutter: auto !important;
    }

    body {
        overflow-x: hidden !important;
    }
}


/* =========================================================
   BIRDSONG CURSOR - solo uccellino
   ========================================================= */

[data-birdsong-trigger],
.logo-bird,
.brand-bird,
.bird-logo,
.site-bird,
.logo .bird,
.brand .logo img,
.brand .logo svg {
    cursor: url('/img/cursor-note.svg') 8 24, pointer !important;
}

body.birdsong-playing [data-birdsong-trigger],
body.birdsong-playing .logo-bird,
body.birdsong-playing .brand-bird,
body.birdsong-playing .bird-logo,
body.birdsong-playing .site-bird,
body.birdsong-playing .logo .bird,
body.birdsong-playing .brand .logo img,
body.birdsong-playing .brand .logo svg {
    cursor: url('/img/cursor-note-off.svg') 8 24, pointer !important;
}

[data-birdsong-trigger],
.logo-bird,
.brand-bird,
.bird-logo,
.site-bird,
.logo .bird,
.brand .logo img,
.brand .logo svg {
    transition: filter 0.16s ease;
}

[data-birdsong-trigger].birdsong-is-playing,
.logo-bird.birdsong-is-playing,
.brand-bird.birdsong-is-playing,
.bird-logo.birdsong-is-playing,
.site-bird.birdsong-is-playing,
.logo .bird.birdsong-is-playing,
.brand .logo img.birdsong-is-playing,
.brand .logo svg.birdsong-is-playing {
    filter: drop-shadow(0 0 5px rgba(154, 106, 47, 0.22));
}


/* =========================================================
   SEARCH RESULTS PAGE - coerente con home feed
   ========================================================= */

.search-page .brand {
    margin-bottom: 28px;
}

.search-result-title {
    margin: 18px 0 24px;

    color: #6f6760;
    text-align: center;
    font-size: 0.96rem;
    line-height: 1.35;
}

.search-results-stream {
    margin-top: 0;
}

.search-empty-state {
    background: #fffdf8;
    border: 1px solid #cfc7bd;
    border-radius: 16px;
    padding: 24px;

    color: #6f6760;
    text-align: center;
    font-size: 0.96rem;
    line-height: 1.4;

    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.045);
}

/* nessuna grafica speciale: le card ricerca devono essere feed-card normali */
.search-results-stream .feed-card {
    width: 100%;
}

/* mobile */
@media (max-width: 720px) {
    .search-page .brand {
        margin-bottom: 22px;
    }

    .search-result-title {
        margin: 14px 0 18px;
        font-size: 0.88rem;
    }

    .search-empty-state {
        border-radius: 13px;
        padding: 20px 16px;
        font-size: 0.9rem;
    }
}


/* =========================================================
   PUBLIC HELP LINK
   ========================================================= */

.public-help-link {
    position: fixed;
    top: 18px;
    right: 20px;
    z-index: 1200;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 28px;
    height: 28px;

    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;

    color: #aaa199;
    text-decoration: none;
    font-size: 1.05rem;
    line-height: 1;
    font-weight: 500;

    opacity: 0.78;

    transition:
        color 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        opacity 0.16s ease;
}

.public-help-link:hover {
    color: #6f6760;
    background: rgba(255, 253, 248, 0.72);
    border-color: #d8ccbe;
    opacity: 1;
}

/* pagina informazioni */
.info-page-body {
    background: #f3eee6;
}

.info-page {
    width: min(760px, calc(100% - 32px));
    margin-inline: auto;
    padding-bottom: 52px;
}

.info-card {
    margin-top: 32px;
    padding: 30px;

    background: #fffdf8;
    border: 1.5px solid #111;
    border-radius: 16px;

    color: #171717;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.075);
}

.info-card h1 {
    margin: 0 0 18px;

    color: #111;
    font-size: clamp(1.85rem, 1.45rem + 1.1vw, 2.35rem);
    line-height: 1.04;
    font-weight: 760;
    letter-spacing: -0.045em;
}

.info-card p {
    margin: 0 0 16px;

    color: #39342f;
    font-size: 1.02rem;
    line-height: 1.65;
}

.info-card p:last-child {
    margin-bottom: 0;
}

@media (max-width: 720px) {
    .public-help-link {
        top: 12px;
        right: 12px;
        width: 26px;
        height: 26px;
        font-size: 0.98rem;
    }

    .info-page {
        width: min(100% - 20px, 760px);
        padding-bottom: 36px;
    }

    .info-card {
        margin-top: 24px;
        padding: 22px 18px;
        border-radius: 13px;
    }

    .info-card h1 {
        font-size: clamp(1.55rem, 1.2rem + 3.2vw, 1.95rem);
        letter-spacing: -0.035em;
    }

    .info-card p {
        font-size: 0.96rem;
        line-height: 1.58;
    }
}

@media print {
    .public-help-link {
        display: none !important;
    }
}


/* =========================================================
   PUBLIC HELP LINK - force visible
   ========================================================= */

.public-help-link {
    position: fixed !important;
    top: 18px !important;
    right: 20px !important;
    z-index: 2147483000 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 30px !important;
    height: 30px !important;

    color: #9b928a !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 999px !important;

    font-size: 1.15rem !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    text-decoration: none !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.public-help-link:hover {
    color: #171717 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (max-width: 720px) {
    .public-help-link {
        top: 12px !important;
        right: 12px !important;
        width: 28px !important;
        height: 28px !important;
        font-size: 1.05rem !important;
    }
}


/* =========================================================
   PUBLIC BRAND - rifinitura unica
   ========================================================= */

.brand {
    text-align: center;
}

.brand .logo,
.logo {
    text-decoration: none;
}

.brand .claim,
.claim {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;

    color: #6f6760;
    line-height: 1.2;
}

/* mobile: può andare a capo solo se serve davvero */
@media (max-width: 520px) {
    .brand .claim,
    .claim {
        white-space: normal;
        max-width: 92vw;
    }
}


/* =========================================================
   PUBLIC BRAND CLAIM - no wrap se non necessario
   ========================================================= */

.brand .claim,
.claim[data-public-brand-claim] {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
    line-height: 1.22;
}

/* solo su schermi stretti può andare a capo */
@media (max-width: 520px) {
    .brand .claim,
    .claim[data-public-brand-claim] {
        white-space: normal;
        max-width: 92vw;
    }
}


/* =========================================================
   PUBLIC BRAND DESIGN - logo/uccellino/claim unico
   ========================================================= */

.public-brand {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    margin-top: 0 !important;
    margin-bottom: 28px !important;

    text-align: center !important;
}

/* wordmark */
.public-brand .logo {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;

    margin: 0 !important;

    color: #171717 !important;
    text-decoration: none !important;

    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif !important;

    font-size: clamp(2.65rem, 5vw, 4.05rem) !important;
    line-height: 0.92 !important;
    font-weight: 780 !important;
    letter-spacing: -0.058em !important;

    white-space: nowrap !important;
}

/* uccellino dentro il logo */
.public-brand .logo img,
.public-brand .logo svg {
    flex: 0 0 auto !important;

    width: clamp(34px, 3.5vw, 50px) !important;
    height: auto !important;

    margin: 0 !important;
    transform: translateY(1px) !important;
}

/* claim: non deve andare a capo se non serve davvero */
.public-brand .claim,
.public-brand .claim[data-public-brand-claim] {
    display: inline-block !important;

    max-width: min(100%, 92vw) !important;
    margin-top: 10px !important;

    color: #6f6760 !important;

    font-size: clamp(1rem, 1.25vw, 1.14rem) !important;
    font-weight: 450 !important;
    line-height: 1.22 !important;
    letter-spacing: -0.01em !important;

    white-space: nowrap !important;
}

/* quando sotto il brand c'è la searchbar, lo stacco deve essere sempre identico */
.public-brand + .public-search-row {
    margin-top: 0 !important;
}

/* mobile */
@media (max-width: 720px) {
    .public-brand {
        margin-bottom: 24px !important;
    }

    .public-brand .logo {
        gap: 7px !important;

        font-size: clamp(2.12rem, 9vw, 3rem) !important;
        letter-spacing: -0.05em !important;
    }

    .public-brand .logo img,
    .public-brand .logo svg {
        width: clamp(28px, 7vw, 38px) !important;
        transform: translateY(1px) !important;
    }

    .public-brand .claim,
    .public-brand .claim[data-public-brand-claim] {
        margin-top: 8px !important;

        font-size: 0.98rem !important;
        line-height: 1.25 !important;

        white-space: normal !important;
        max-width: 92vw !important;
    }
}

/* schermi molto stretti */
@media (max-width: 380px) {
    .public-brand .logo {
        font-size: clamp(1.9rem, 8.5vw, 2.45rem) !important;
    }

    .public-brand .logo img,
    .public-brand .logo svg {
        width: 28px !important;
    }

    .public-brand .claim,
    .public-brand .claim[data-public-brand-claim] {
        font-size: 0.92rem !important;
    }
}


/* =========================================================
   PUBLIC SEARCH - ripristino larghezza corretta
   ========================================================= */

.public-search-row {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 44px !important;
    padding: 0 !important;
}

.public-search-row .search,
.public-search-row .search.search-form {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.public-search-row .search input,
.public-search-row .search.search-form input {
    width: 100% !important;
    max-width: none !important;
}

@media (max-width: 720px) {
    .public-search-row {
        margin-bottom: 32px !important;
    }
}


/* =========================================================
   PUBLIC SEARCH - oggetto unico home / ricerca / 404
   ========================================================= */

.public-search-row {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 44px !important;
    padding: 0 !important;
}

.public-search-row .search.search-form {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.public-search-row .search.search-form input {
    width: 100% !important;
    max-width: none !important;
}

/* la 404 non deve avere wrapper speciali per la search */
.not-found-search {
    all: unset !important;
}

@media (max-width: 720px) {
    .public-search-row {
        margin-bottom: 32px !important;
    }
}


/* =========================================================
   DETAIL MEDIA - allegati senza testo
   ========================================================= */

.detail-media {
    line-height: 0 !important;
}

.detail-media img {
    margin-bottom: 0 !important;
}

.detail-media.pdf {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 156px !important;
    color: #6f6760 !important;
}

.detail-media-pdf-icon {
    width: 44px;
    height: 44px;
    opacity: 0.72;
}

@media (max-width: 720px) {
    .detail-media.pdf {
        min-height: 120px !important;
    }

    .detail-media-pdf-icon {
        width: 38px;
        height: 38px;
    }
}


/* allegati: nessun testo visibile */
.detail-media {
    font-size: 0 !important;
    line-height: 0 !important;
}

.detail-media img {
    margin-bottom: 0 !important;
}

.carousel-title:empty {
    display: none !important;
}


/* =========================================================
   DETAIL MEDIA - solo miniature, una riga, carousel
   ========================================================= */

.media-section {
    margin-top: 22px !important;
}

.detail-media-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 2px 0 4px !important;
    scrollbar-width: thin;
}

.detail-media {
    flex: 0 0 76px !important;

    width: 76px !important;
    height: 76px !important;
    aspect-ratio: 1 / 1 !important;

    padding: 0 !important;
    margin: 0 !important;

    border-radius: 12px !important;
    overflow: hidden !important;

    background: #f4eee6 !important;
    border: 1px solid #d8ccbe !important;

    font-size: 0 !important;
    line-height: 0 !important;
    cursor: pointer !important;
}

.detail-media img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #f4eee6 !important;
}

.detail-media:hover {
    border-color: #bfb1a0 !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08) !important;
}

/* nessun PDF separato nella scheda pubblica */
.detail-media.pdf,
.detail-media-pdf-icon {
    display: none !important;
}

@media (max-width: 720px) {
    .detail-media-grid {
        gap: 8px !important;
        padding-bottom: 5px !important;
    }

    .detail-media {
        flex-basis: 64px !important;
        width: 64px !important;
        height: 64px !important;
        border-radius: 10px !important;
    }
}


/* =========================================================
   DETAIL MEDIA - miniature sole, una riga, tutto carousel
   ========================================================= */

.media-section {
    margin-top: 22px !important;
}

.detail-media-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;

    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 2px 0 4px !important;
    scrollbar-width: thin;
}

.detail-media {
    flex: 0 0 76px !important;

    width: 76px !important;
    height: 76px !important;
    aspect-ratio: 1 / 1 !important;

    padding: 0 !important;
    margin: 0 !important;

    border-radius: 12px !important;
    overflow: hidden !important;

    background: #f4eee6 !important;
    border: 1px solid #d8ccbe !important;

    font-size: 0 !important;
    line-height: 0 !important;
    cursor: pointer !important;
}

.detail-media img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #f4eee6 !important;
}

.detail-media:hover {
    border-color: #bfb1a0 !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08) !important;
}

.detail-media.pdf,
.detail-media-pdf-icon {
    display: none !important;
}

@media (max-width: 720px) {
    .detail-media-grid {
        gap: 8px !important;
        padding-bottom: 5px !important;
    }

    .detail-media {
        flex-basis: 64px !important;
        width: 64px !important;
        height: 64px !important;
        border-radius: 10px !important;
    }
}


/* =========================================================
   DETAIL MEDIA - miniature sole, una riga, tutto carousel
   ========================================================= */

.media-section {
    margin-top: 22px !important;
}

.detail-media-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 0 4px !important;
    scrollbar-width: thin;
}

.detail-media {
    flex: 0 0 76px !important;
    width: 76px !important;
    height: 76px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #f4eee6 !important;
    border: 1px solid #d8ccbe !important;
    font-size: 0 !important;
    line-height: 0 !important;
    cursor: pointer !important;
}

.detail-media img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #f4eee6 !important;
}

.detail-media:hover {
    border-color: #bfb1a0 !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08) !important;
}

.detail-media.pdf,
.detail-media-pdf-icon {
    display: none !important;
}

@media (max-width: 720px) {
    .detail-media-grid {
        gap: 8px !important;
        padding-bottom: 5px !important;
    }

    .detail-media {
        flex-basis: 64px !important;
        width: 64px !important;
        height: 64px !important;
        border-radius: 10px !important;
    }
}


/* =========================================================
   FEED CARD THUMBS - niente testi, max 8, riga unica
   ========================================================= */

.feed-card .feed-thumbs {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 8px !important;

    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    padding: 2px 0 4px !important;
    margin-top: 14px !important;

    scrollbar-width: thin;
}

.feed-card .feed-thumb {
    flex: 0 0 58px !important;

    width: 58px !important;
    height: 58px !important;
    aspect-ratio: 1 / 1 !important;

    padding: 0 !important;
    margin: 0 !important;

    border-radius: 10px !important;
    overflow: hidden !important;

    background: #f4eee6 !important;
    border: 1px solid #d8ccbe !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.feed-card .feed-thumb img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

.feed-card .feed-thumb span {
    display: none !important;
}

@media (max-width: 720px) {
    .feed-card .feed-thumbs {
        gap: 7px !important;
    }

    .feed-card .feed-thumb {
        flex-basis: 52px !important;
        width: 52px !important;
        height: 52px !important;
        border-radius: 9px !important;
    }
}


/* =========================================================
   FEED CARD THUMBS - no text, max 8, one row
   ========================================================= */

.feed-card .feed-thumbs {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 0 4px !important;
    margin-top: 14px !important;
    scrollbar-width: thin;
}

.feed-card .feed-thumb {
    flex: 0 0 58px !important;
    width: 58px !important;
    height: 58px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: #f4eee6 !important;
    border: 1px solid #d8ccbe !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.feed-card .feed-thumb img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

.feed-card .feed-thumb span {
    display: none !important;
}

@media (max-width: 720px) {
    .feed-card .feed-thumb {
        flex-basis: 52px !important;
        width: 52px !important;
        height: 52px !important;
        border-radius: 9px !important;
    }
}


/* =========================================================
   PUBLIC HELP LINK - non fixed
   ========================================================= */

body {
    position: relative;
}

.public-help-link {
    position: absolute !important;
    top: 18px !important;
    right: 20px !important;
    z-index: 1200 !important;
}

@media (max-width: 720px) {
    .public-help-link {
        top: 12px !important;
        right: 12px !important;
    }
}


/* =========================================================
   Admin typography standard
   ========================================================= */

:root {
    --admin-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

    --admin-text-xs: 12px;
    --admin-text-sm: 13px;
    --admin-text-base: 14px;
    --admin-text-md: 15px;
    --admin-text-lg: 16px;
    --admin-text-xl: 20px;
    --admin-text-page: 30px;

    --admin-line-xs: 16px;
    --admin-line-sm: 18px;
    --admin-line-base: 20px;
    --admin-line-md: 22px;
    --admin-line-lg: 24px;
    --admin-line-xl: 28px;
    --admin-line-page: 36px;

    --admin-weight-normal: 400;
    --admin-weight-medium: 550;
    --admin-weight-semibold: 650;
    --admin-weight-bold: 750;

    --admin-letter-tight: -0.025em;
    --admin-letter-title: -0.035em;
}

body.admin-area,
.admin-area,
.admin-responsive-v2,
.admin-obituaries-page,
.admin-dashboard-page,
.admin-agencies-page,
.admin-moderation-page {
    font-family: var(--admin-font);
    font-size: var(--admin-text-base);
    line-height: var(--admin-line-base);
}

.admin-page-title {
    font-family: var(--admin-font);
    font-size: var(--admin-text-page);
    line-height: var(--admin-line-page);
    font-weight: var(--admin-weight-bold);
    letter-spacing: var(--admin-letter-title);
    margin: 0;
}

.admin-page-subtitle,
.admin-page-claim {
    font-size: var(--admin-text-md);
    line-height: var(--admin-line-md);
    font-weight: var(--admin-weight-normal);
}

.admin-section-title {
    font-size: var(--admin-text-xl);
    line-height: var(--admin-line-xl);
    font-weight: var(--admin-weight-bold);
    letter-spacing: var(--admin-letter-tight);
}

.admin-card-title {
    font-size: var(--admin-text-lg);
    line-height: var(--admin-line-lg);
    font-weight: var(--admin-weight-bold);
}

.admin-body-text {
    font-size: var(--admin-text-base);
    line-height: var(--admin-line-base);
    font-weight: var(--admin-weight-normal);
}

.admin-small-text {
    font-size: var(--admin-text-xs);
    line-height: var(--admin-line-xs);
    font-weight: var(--admin-weight-normal);
}

.admin-label {
    font-size: var(--admin-text-xs);
    line-height: var(--admin-line-xs);
    font-weight: var(--admin-weight-medium);
}

.admin-button,
.admin-tab,
.admin-pill,
.admin-table,
.admin-table th,
.admin-table td,
.admin-input,
.admin-select,
.admin-topbar-v2 {
    font-family: var(--admin-font);
}

.admin-button,
.admin-tab {
    font-size: var(--admin-text-base);
    line-height: 1;
    font-weight: var(--admin-weight-semibold);
}

.admin-table th,
.admin-table td {
    font-size: var(--admin-text-base);
    line-height: var(--admin-line-base);
}

.admin-table th {
    font-weight: var(--admin-weight-semibold);
}

.admin-pill {
    font-size: var(--admin-text-xs);
    line-height: var(--admin-line-xs);
    font-weight: var(--admin-weight-medium);
}

.admin-input,
.admin-select,
.admin-textarea {
    font-size: var(--admin-text-base);
    line-height: var(--admin-line-base);
    font-weight: var(--admin-weight-normal);
}


/* Admin shared page header */
.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin: 0 0 22px;
}

.admin-page-title {
    margin: 0 0 7px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 30px;
    line-height: 36px;
    font-weight: 750;
    letter-spacing: -0.035em;
    color: #302b27;
}

.admin-page-subtitle {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 22px;
    color: #7d7167;
}

@media (max-width: 760px) {
    .admin-page-header {
        display: block;
    }
}

/* =========================================================
   Admin page structure
   ========================================================= */

.admin-page {
    width: min(1180px, calc(100% - 32px));
    margin: 28px auto 56px;
}

.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin: 0 0 22px;
}

.admin-page-heading {
    min-width: 0;
}

.admin-page-title {
    margin: 0 0 7px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 30px;
    line-height: 36px;
    font-weight: 750;
    letter-spacing: -0.035em;
    color: #302b27;
}

.admin-page-subtitle {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 22px;
    color: #7d7167;
}

.admin-page-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    flex: 0 0 auto;
}

.admin-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 15px;
    border-radius: 999px;
    background: #302b27;
    color: #fffaf3;
    border: 1px solid #302b27;
    text-decoration: none;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    font-weight: 750;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .admin-page-header {
        display: block;
    }

    .admin-page-actions {
        justify-content: flex-start;
        margin-top: 14px;
    }
}

/* =========================================================
   ADMIN CANONICAL PAGE LAYOUT
   ========================================================= */

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.admin-page {
    width: min(1180px, calc(100% - 32px));
    margin: 28px auto 56px;
}

.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin: 0 0 22px;
}

.admin-page-heading {
    min-width: 0;
}

.admin-page-title {
    margin: 0 0 7px;
    font-size: 30px;
    line-height: 36px;
    font-weight: 750;
    letter-spacing: -0.035em;
    color: #302b27;
}

.admin-page-subtitle {
    font-size: 15px;
    line-height: 22px;
    color: #7d7167;
}

.admin-page-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    flex: 0 0 auto;
}

.admin-action-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 15px;
    border-radius: 999px;
    background: #302b27;
    color: #fffaf3;
    border: 1px solid #302b27;
    text-decoration: none;
    font-size: 14px;
    font-weight: 750;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .admin-page-header {
        display: block;
    }

    .admin-page-actions {
        justify-content: flex-start;
        margin-top: 14px;
    }
}

/* Admin: header subito dopo topbar */
.admin-page {
    margin-top: 0 !important;
}

.admin-page-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Admin: niente spazio morto tra topbar e contenuto */
main.page.admin-page {
    margin-top: 0 !important;
    padding-top: 18px !important;
}

main.page.admin-page > .admin-page-header:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Admin Annunci: tab a sinistra, inserimento a destra */
.admin-obit-tabs-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 18px;
}

.admin-obit-tabs-row .admin-obit-tabs {
    margin: 0;
}

.admin-obit-insert {
    flex: 0 0 auto;
}

@media (max-width: 760px) {
    .admin-obit-tabs-row {
        display: block;
    }

    .admin-obit-insert {
        margin-top: 12px;
    }
}

/* Admin cases: filtri diversi per Interni / Da agenzia */
.admin-obit-filter-row.no-agency-filter {
    grid-template-columns: 2fr 1fr 1fr auto auto !important;
}

.admin-obit-filter-row.has-agency-filter {
    grid-template-columns: 2fr 1fr 1fr 1fr auto auto !important;
}

@media (max-width: 980px) {
    .admin-obit-filter-row.no-agency-filter,
    .admin-obit-filter-row.has-agency-filter {
        grid-template-columns: 1fr !important;
    }
}

/* Admin cases: tab e bottone Inserisci sulla stessa riga */
.admin-obit-tabs-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
}

.admin-obit-tabs-row .admin-obit-tabs {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.admin-obit-insert {
    margin-left: auto !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

@media (max-width: 620px) {
    .admin-obit-tabs-row {
        flex-wrap: wrap !important;
    }

    .admin-obit-insert {
        margin-left: 0 !important;
    }
}

/* =========================================================
   Admin unified tables/cards v1
   Desktop: tabella pulita
   Mobile: righe trasformate in schede
   ========================================================= */

.admin-table-scroll {
    width: 100%;
    overflow-x: auto;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
}

.admin-unified-table {
    width: 100%;
    min-width: 760px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    font-size: .94rem;
}

.admin-unified-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
    color: #475569;
    font-size: .74rem;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
    text-align: left;
    padding: .85rem .95rem;
    border-bottom: 1px solid rgba(15, 23, 42, .09);
    white-space: nowrap;
}

.admin-unified-table tbody td {
    padding: .88rem .95rem;
    border-bottom: 1px solid rgba(15, 23, 42, .065);
    color: #1e293b;
    vertical-align: middle;
}

.admin-unified-table tbody tr:last-child td {
    border-bottom: 0;
}

.admin-unified-table tbody tr {
    transition: background-color .16s ease, box-shadow .16s ease;
}

.admin-unified-table tbody tr:hover {
    background: #f8fafc;
}

.admin-unified-table td.admin-actions-cell {
    white-space: nowrap;
}

.admin-unified-table td.admin-actions-cell form {
    display: inline-flex;
    margin: 0;
}

.admin-unified-table td.admin-actions-cell a,
.admin-unified-table td.admin-actions-cell button,
.admin-unified-table td.admin-actions-cell input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 34px;
    padding: .45rem .68rem;
    margin: .12rem .14rem .12rem 0;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, .12);
    background: #fff;
    color: #334155;
    font-size: .82rem;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.admin-unified-table td.admin-actions-cell a:hover,
.admin-unified-table td.admin-actions-cell button:hover,
.admin-unified-table td.admin-actions-cell input[type="submit"]:hover {
    background: #f1f5f9;
    border-color: rgba(15, 23, 42, .18);
}

.admin-unified-table td.admin-actions-cell .danger,
.admin-unified-table td.admin-actions-cell .btn-danger,
.admin-unified-table td.admin-actions-cell button[formmethod="delete"],
.admin-unified-table td.admin-actions-cell button[data-danger="true"] {
    color: #991b1b;
    border-color: rgba(153, 27, 27, .18);
    background: #fffafa;
}

.admin-unified-table .badge,
.admin-unified-table .status,
.admin-unified-table [class*="badge"],
.admin-unified-table [class*="status"] {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
}

@media (max-width: 820px) {
    .admin-table-scroll {
        overflow: visible;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: transparent;
    }

    .admin-unified-table {
        min-width: 0;
        display: block;
        background: transparent;
        font-size: .93rem;
    }

    .admin-unified-table thead {
        display: none;
    }

    .admin-unified-table tbody {
        display: grid;
        gap: .85rem;
    }

    .admin-unified-table tr {
        display: block;
        background: #fff;
        border: 1px solid rgba(15, 23, 42, .08);
        border-radius: 18px;
        padding: .48rem 0;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .055);
        overflow: hidden;
    }

    .admin-unified-table tbody tr:hover {
        background: #fff;
    }

    .admin-unified-table td {
        display: grid;
        grid-template-columns: minmax(7.2rem, 38%) minmax(0, 1fr);
        gap: .75rem;
        align-items: start;
        border-bottom: 0;
        padding: .48rem .82rem;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .admin-unified-table td::before {
        content: attr(data-label);
        color: #64748b;
        font-size: .73rem;
        font-weight: 750;
        letter-spacing: .035em;
        text-transform: uppercase;
        line-height: 1.35;
    }

    .admin-unified-table td.admin-actions-cell {
        display: block;
        padding-top: .72rem;
        margin-top: .42rem;
        border-top: 1px solid rgba(15, 23, 42, .075);
        white-space: normal;
    }

    .admin-unified-table td.admin-actions-cell::before {
        display: block;
        margin-bottom: .55rem;
    }

    .admin-unified-table td.admin-actions-cell form {
        display: inline-flex;
        vertical-align: middle;
    }

    .admin-unified-table td.admin-actions-cell a,
    .admin-unified-table td.admin-actions-cell button,
    .admin-unified-table td.admin-actions-cell input[type="submit"] {
        min-height: 36px;
        margin: .15rem .18rem .15rem 0;
        padding: .52rem .72rem;
        white-space: nowrap;
    }

    .admin-unified-table td:empty {
        display: none;
    }
}

@media (max-width: 520px) {
    .admin-unified-table td {
        grid-template-columns: 1fr;
        gap: .18rem;
        padding: .52rem .86rem;
    }

    .admin-unified-table td::before {
        font-size: .68rem;
    }

    .admin-unified-table td.admin-actions-cell a,
    .admin-unified-table td.admin-actions-cell button,
    .admin-unified-table td.admin-actions-cell input[type="submit"] {
        width: 100%;
        margin-right: 0;
    }

    .admin-unified-table td.admin-actions-cell form {
        width: 100%;
    }

    .admin-unified-table td.admin-actions-cell form button,
    .admin-unified-table td.admin-actions-cell form input[type="submit"] {
        width: 100%;
    }
}


/* =========================================================
   Admin table palette normalization v2
   Coerenza colori tabelle: Agenzie / Annunci / future admin
   Le card responsive restano invariate
   ========================================================= */

.admin-table-scroll,
.admin-table-scroll table,
.admin-unified-table {
    background: #ffffff !important;
}

.admin-table-scroll .admin-unified-table thead th,
.admin-unified-table thead th {
    background: #f8fafc !important;
    color: #475569 !important;
    border-bottom: 1px solid rgba(15, 23, 42, .09) !important;
}

.admin-table-scroll .admin-unified-table tbody tr,
.admin-unified-table tbody tr {
    background: #ffffff !important;
}

.admin-table-scroll .admin-unified-table tbody td,
.admin-unified-table tbody td {
    background: #ffffff !important;
    color: #1e293b !important;
    border-bottom-color: rgba(15, 23, 42, .065) !important;
}

.admin-table-scroll .admin-unified-table tbody tr:nth-child(even),
.admin-table-scroll .admin-unified-table tbody tr:nth-child(even) td,
.admin-unified-table tbody tr:nth-child(even),
.admin-unified-table tbody tr:nth-child(even) td {
    background: #ffffff !important;
}

.admin-table-scroll .admin-unified-table tbody tr:hover,
.admin-table-scroll .admin-unified-table tbody tr:hover td,
.admin-unified-table tbody tr:hover,
.admin-unified-table tbody tr:hover td {
    background: #f8fafc !important;
}

/* spegne eventuali vecchie tinte rosa/pesca nelle tabelle agenzie */
.admin-agency-tabs-shell table,
.admin-agency-tabs-shell thead,
.admin-agency-tabs-shell tbody,
.admin-agency-tabs-shell tr,
.admin-agency-tabs-shell td,
.admin-agency-tabs-shell th,
.admin-agencies-shell table,
.admin-agencies-shell thead,
.admin-agencies-shell tbody,
.admin-agencies-shell tr,
.admin-agencies-shell td,
.admin-agencies-shell th {
    background-color: inherit;
}

/* mobile: manteniamo le card bianche come ora */
@media (max-width: 820px) {
    .admin-unified-table tr,
    .admin-unified-table tbody tr,
    .admin-unified-table tbody tr:nth-child(even),
    .admin-unified-table tbody tr:hover {
        background: #ffffff !important;
    }

    .admin-unified-table td,
    .admin-unified-table tbody tr:hover td {
        background: transparent !important;
    }
}


/* =========================================================
   Admin page actions v1
   Barra bottoni sotto header pagina
   ========================================================= */

.admin-page-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .62rem;
    margin: -6px 0 22px;
}

.admin-page-actions form {
    display: inline-flex;
    margin: 0;
}

.admin-action-button,
.admin-page-actions a,
.admin-page-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .58rem .92rem;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, .13);
    background: #ffffff;
    color: #334155;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.admin-action-button:hover,
.admin-page-actions a:hover,
.admin-page-actions button:hover {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, .20);
}

.admin-action-button-primary,
.admin-page-actions .admin-action-button-primary {
    background: #24211f;
    border-color: #24211f;
    color: #ffffff;
}

.admin-action-button-primary:hover,
.admin-page-actions .admin-action-button-primary:hover {
    background: #111827;
    border-color: #111827;
    color: #ffffff;
}

@media (max-width: 640px) {
    .admin-page-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .admin-page-actions form,
    .admin-page-actions a,
    .admin-page-actions button {
        width: 100%;
    }
}


/* ADMIN_PAGE_ACTIONS_V2 */
.admin-page-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .62rem;
    margin: -6px 0 22px;
}

.admin-page-actions form {
    display: inline-flex;
    margin: 0;
}

.admin-action-button,
.admin-page-actions a,
.admin-page-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .58rem .92rem;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, .13);
    background: #ffffff;
    color: #334155;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.admin-action-button:hover,
.admin-page-actions a:hover,
.admin-page-actions button:hover {
    background: #f8fafc;
    border-color: rgba(15, 23, 42, .20);
}

.admin-action-button-primary,
.admin-page-actions .admin-action-button-primary {
    background: #24211f;
    border-color: #24211f;
    color: #ffffff;
}

.admin-action-button-primary:hover,
.admin-page-actions .admin-action-button-primary:hover {
    background: #111827;
    border-color: #111827;
    color: #ffffff;
}

@media (max-width: 640px) {
    .admin-page-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .admin-page-actions form,
    .admin-page-actions a,
    .admin-page-actions button {
        width: 100%;
    }
}


/* ADMIN_SECTION_TABS_UNIFIED_V1
   Stessa grafica per i bottoni sotto header:
   Annunci / Agenzie / future sezioni admin
*/

.admin-obituary-tabs-shell,
.admin-agency-tabs-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    margin: 28px 0 22px;
}

.admin-obituary-tabs-left,
.admin-agency-tabs-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-obituary-tabs-shell a,
.admin-obituary-tabs-shell button,
.admin-agency-tabs-shell a,
.admin-agency-tabs-shell button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 21px;
    border-radius: 999px;
    border: 1px solid rgba(120, 84, 47, .24);
    background: rgba(255, 255, 255, .58);
    color: #24211f;
    font-size: 14px;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
}

.admin-obituary-tabs-shell a:hover,
.admin-obituary-tabs-shell button:hover,
.admin-agency-tabs-shell a:hover,
.admin-agency-tabs-shell button:hover {
    background: #ffffff;
    border-color: rgba(120, 84, 47, .32);
}

.admin-obituary-tabs-shell a.active,
.admin-obituary-tabs-shell button.active,
.admin-obituary-tabs-shell a.is-active,
.admin-obituary-tabs-shell button.is-active,
.admin-obituary-tabs-shell a[aria-current="page"],
.admin-obituary-tabs-shell button[aria-current="page"],
.admin-agency-tabs-shell a.active,
.admin-agency-tabs-shell button.active,
.admin-agency-tabs-shell a.is-active,
.admin-agency-tabs-shell button.is-active,
.admin-agency-tabs-shell a[aria-current="page"],
.admin-agency-tabs-shell button[aria-current="page"] {
    background: #24211f;
    border-color: #24211f;
    color: #ffffff;
}

.admin-obituary-tabs-shell form,
.admin-agency-tabs-shell form {
    margin: 0;
    display: inline-flex;
}

@media (max-width: 700px) {
    .admin-obituary-tabs-shell,
    .admin-agency-tabs-shell {
        display: grid;
        grid-template-columns: 1fr;
    }

    .admin-obituary-tabs-left,
    .admin-agency-tabs-left {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .admin-obituary-tabs-shell a,
    .admin-obituary-tabs-shell button,
    .admin-agency-tabs-shell a,
    .admin-agency-tabs-shell button,
    .admin-obituary-tabs-shell form,
    .admin-agency-tabs-shell form {
        width: 100%;
    }
}

/* ADMIN_SECTION_TABS_V3_FINAL
   Componente unico per i bottoni sotto header:
   Annunci / Agenzie / future sezioni admin
*/

.admin-section-tabs-shell {
    width: 100%;
    max-width: 100%;
    margin: 0 0 28px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-section-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.admin-section-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d8c4ad;
    background: #fffaf3;
    color: #1f1f1f;
    text-decoration: none;
    font: inherit;
    font-size: 14px;
    line-height: 1;
    box-shadow: 0 1px 0 rgba(0,0,0,.025);
    transition: background .12s ease, color .12s ease, border-color .12s ease;
    white-space: nowrap;
}

.admin-section-tab:hover {
    background: #f4ecdf;
}

.admin-section-tab.is-active {
    background: #1f1f1f;
    border-color: #1f1f1f;
    color: #fff;
}

.admin-section-new {
    margin-left: auto;
}

@media (max-width: 560px) {
    .admin-section-tabs-shell {
        margin-top: 16px;
        align-items: flex-start;
    }

    .admin-section-tab {
        min-height: 38px;
        padding: 0 14px;
        font-size: 15px;
    }

    .admin-section-new {
        margin-left: 0;
    }
}


/* ADMIN_OBIT_TABS_SHARED_FINAL
   Barra bottoni usata da Annunci e Agenzie
*/

.admin-obit-tabs-row {
    width: 100%;
    max-width: 100%;
    margin: 28px 0 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-obit-tabs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.admin-obit-tab,
.admin-action-primary.admin-obit-insert {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d8c4ad;
    background: #fffaf3;
    color: #1f1f1f;
    text-decoration: none;
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    line-height: 1;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .025);
    white-space: nowrap;
}

.admin-obit-tab:hover,
.admin-action-primary.admin-obit-insert:hover {
    background: #f4ecdf;
}

.admin-obit-tab.is-active {
    background: #1f1f1f;
    border-color: #1f1f1f;
    color: #ffffff;
}

.admin-action-primary.admin-obit-insert {
    margin-left: auto;
    background: #1f1f1f;
    border-color: #1f1f1f;
    color: #ffffff;
}

.admin-action-primary.admin-obit-insert:hover {
    background: #2b2826;
    border-color: #2b2826;
    color: #ffffff;
}

@media (max-width: 560px) {
    .admin-obit-tabs-row {
        margin-top: 16px;
        align-items: flex-start;
    }

    .admin-obit-tab,
    .admin-action-primary.admin-obit-insert {
        min-height: 38px;
        padding: 0 14px;
        font-size: 15px;
    }

    .admin-action-primary.admin-obit-insert {
        margin-left: 0;
    }
}


/* =========================================================
   ADMIN_CARD_TABLE_CLEAN_V1
   Mobile/tablet: tabelle admin trasformate in card pulite
   ========================================================= */

@media (max-width: 820px) {
    .admin-obit-table-wrap,
    .admin-table-scroll {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow: visible !important;
    }

    .admin-unified-table,
    .admin-obit-table.admin-unified-table {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .admin-unified-table thead,
    .admin-obit-table.admin-unified-table thead {
        display: none !important;
    }

    .admin-unified-table tbody,
    .admin-obit-table.admin-unified-table tbody {
        display: grid !important;
        gap: 14px !important;
        background: transparent !important;
    }

    .admin-unified-table tbody tr,
    .admin-obit-table.admin-unified-table tbody tr {
        display: block !important;
        background: #ffffff !important;
        border: 1px solid rgba(120, 84, 47, .16) !important;
        border-radius: 20px !important;
        padding: 0 !important;
        overflow: hidden !important;
        box-shadow: 0 8px 22px rgba(15, 23, 42, .045) !important;
    }

    .admin-unified-table tbody td,
    .admin-obit-table.admin-unified-table tbody td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 14px 16px !important;
        border-bottom: 1px solid rgba(120, 84, 47, .13) !important;
        background: transparent !important;
        color: #1e293b !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .admin-unified-table tbody tr td:last-child,
    .admin-obit-table.admin-unified-table tbody tr td:last-child {
        border-bottom: 0 !important;
    }

    .admin-unified-table tbody td::before,
    .admin-obit-table.admin-unified-table tbody td::before {
        content: attr(data-label);
        display: block !important;
        margin: 0 0 8px !important;
        color: #475569 !important;
        font-size: 12px !important;
        font-weight: 750 !important;
        letter-spacing: .035em !important;
        text-transform: uppercase !important;
        line-height: 1.25 !important;
    }

    .admin-unified-table td.admin-actions-cell,
    .admin-obit-table.admin-unified-table td.admin-actions-cell {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding-top: 14px !important;
        margin-top: 0 !important;
        border-top: 0 !important;
    }

    .admin-unified-table td.admin-actions-cell::before,
    .admin-obit-table.admin-unified-table td.admin-actions-cell::before {
        flex: 0 0 100% !important;
        margin-bottom: 2px !important;
    }

    .admin-unified-table td.admin-actions-cell a,
    .admin-unified-table td.admin-actions-cell button,
    .admin-unified-table td.admin-actions-cell input[type="submit"],
    .admin-obit-table.admin-unified-table td.admin-actions-cell a,
    .admin-obit-table.admin-unified-table td.admin-actions-cell button,
    .admin-obit-table.admin-unified-table td.admin-actions-cell input[type="submit"] {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        min-height: 38px !important;
        padding: 0 14px !important;
        border-radius: 999px !important;
        font-size: 14px !important;
        font-weight: 650 !important;
        line-height: 1 !important;
    }

    .admin-unified-table td.admin-actions-cell form,
    .admin-obit-table.admin-unified-table td.admin-actions-cell form {
        width: auto !important;
        display: inline-flex !important;
        margin: 0 !important;
    }
}


/* =========================================================
   ADMIN_BUTTON_VERTICAL_ALIGN_FIX_V1
   Evita testo spostato in alto nei bottoni responsive/card
   ========================================================= */

.admin-actions-cell a,
.admin-actions-cell button,
.admin-actions-cell input[type="submit"],
.admin-obit-tab,
.admin-obit-insert,
.admin-form-button,
.admin-agency-show-button-v2,
.admin-page-actions a,
.admin-page-actions button {
    box-sizing: border-box !important;
    height: 38px !important;
    min-height: 38px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 38px !important;
    font-family: inherit !important;
    vertical-align: middle !important;
}

.admin-actions-cell button,
.admin-actions-cell input[type="submit"],
.admin-form-button,
.admin-agency-show-button-v2,
.admin-page-actions button {
    appearance: none !important;
    -webkit-appearance: none !important;
}

@media (max-width: 820px) {
    .admin-actions-cell a,
    .admin-actions-cell button,
    .admin-actions-cell input[type="submit"],
    .admin-obit-tab,
    .admin-obit-insert,
    .admin-form-button,
    .admin-agency-show-button-v2,
    .admin-page-actions a,
    .admin-page-actions button {
        height: 38px !important;
        min-height: 38px !important;
        line-height: 38px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        align-items: center !important;
    }
}


/* =========================================================
   ADMIN_STATUS_BADGES_V1
   Stato omogeneo: agenzie / annunci
   ========================================================= */

.admin-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, .10);
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

.admin-status-badge.is-public,
.admin-status-badge.is-active {
    background: #ecfdf5;
    border-color: rgba(22, 163, 74, .18);
    color: #166534;
}

.admin-status-badge.is-hidden,
.admin-status-badge.is-blocked {
    background: #fef2f2;
    border-color: rgba(220, 38, 38, .18);
    color: #991b1b;
}

@media (max-width: 820px) {
    .admin-status-badge {
        min-height: 28px;
        padding: 0 10px;
        font-size: 13px;
    }
}


/* ADMIN_PUBLIC_SHEET_BUTTON_V1 */
.admin-actions-cell a span + span,
.admin-actions-cell button span + span {
    margin-left: 5px;
}


/* PUBLIC_OBITUARY_DETAIL_LINK_V1 */
.detail-link-section {
    margin-top: 18px;
}

.detail-external-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d6c8b7;
    background: #fffaf3;
    color: #302b27;
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 38px;
}

.detail-external-link:hover {
    background: #f4ecdf;
}

.detail-external-link-icon {
    font-size: 15px;
    line-height: 1;
}

@media (max-width: 560px) {
    .detail-external-link {
        width: 100%;
    }
}

/* PUBLIC_OBITUARY_DETAIL_LINK_V2 */
.detail-link-section {
    margin-top: 18px;
}

.detail-external-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d6c8b7;
    background: #fffaf3;
    color: #302b27;
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 38px;
}

.detail-external-link:hover {
    background: #f4ecdf;
}

.detail-external-link-icon {
    font-size: 15px;
    line-height: 1;
}

@media (max-width: 560px) {
    .detail-external-link {
        width: 100%;
    }
}

/* PUBLIC_DETAIL_LINK_SHARED_V3 */
.detail-link-section {
    margin-top: 18px;
}

.detail-external-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d6c8b7;
    background: #fffaf3;
    color: #302b27;
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 38px;
}

.detail-external-link:hover {
    background: #f4ecdf;
}

.detail-external-link-icon {
    font-size: 15px;
    line-height: 1;
}

@media (max-width: 560px) {
    .detail-external-link {
        width: 100%;
    }
}


/* PUBLIC_DETAIL_LINK_LINE_INSERT_V1 */
.detail-link-section {
    margin-top: 18px;
}

.detail-external-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #d6c8b7;
    background: #fffaf3;
    color: #302b27;
    text-decoration: none;
    font-size: 14px;
    font-weight: 650;
    line-height: 38px;
}

.detail-external-link:hover {
    background: #f4ecdf;
}

.detail-external-link-icon {
    font-size: 15px;
    line-height: 1;
}

@media (max-width: 560px) {
    .detail-external-link {
        width: 100%;
    }
}

/* PUBLIC_DETAIL_LINK_FORCE_STYLE_V1 */
.detail-card .detail-link-section {
    margin-top: 18px !important;
}

.detail-card a.detail-external-link,
.detail-card a.detail-external-link:link,
.detail-card a.detail-external-link:visited {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    border: 1px solid #d6c8b7 !important;
    background: #fffaf3 !important;
    color: #302b27 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 38px !important;
}

.detail-card a.detail-external-link:hover {
    background: #f4ecdf !important;
    color: #302b27 !important;
    text-decoration: none !important;
}

.detail-card .detail-external-link-icon {
    color: inherit !important;
    font-size: 15px !important;
    line-height: 1 !important;
}

@media (max-width: 560px) {
    .detail-card a.detail-external-link {
        width: 100% !important;
    }
}

/* PUBLIC_DETAIL_LINK_TEXT_ONLY_V1 */
.detail-card .detail-link-section {
    margin-top: 18px !important;
}

.detail-card a.detail-external-link,
.detail-card a.detail-external-link:link,
.detail-card a.detail-external-link:visited {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #5f5146 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 4px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}

.detail-card a.detail-external-link:hover {
    background: transparent !important;
    color: #302b27 !important;
    text-decoration: underline !important;
}

.detail-card .detail-external-link-icon {
    color: inherit !important;
    font-size: 13px !important;
    line-height: 1 !important;
}

@media (max-width: 560px) {
    .detail-card a.detail-external-link {
        width: auto !important;
    }
}

/* PUBLIC_DETAIL_LINK_CONTINUOUS_UNDERLINE_V1 */
.detail-card a.detail-external-link,
.detail-card a.detail-external-link:link,
.detail-card a.detail-external-link:visited {
    gap: 6px !important;
    text-decoration: none !important;
    border-bottom: 1px solid currentColor !important;
    padding-bottom: 1px !important;
}

.detail-card a.detail-external-link:hover {
    text-decoration: none !important;
    border-bottom-color: currentColor !important;
}

/* Agency area v1 */
.agency-page {
    padding-top: 32px;
    padding-bottom: 64px;
}

.agency-shell-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(73, 61, 49, 0.12);
    border-radius: 24px;
    background: rgba(255, 250, 243, 0.86);
    box-shadow: 0 18px 45px rgba(53, 43, 33, 0.06);
}

.agency-kicker {
    margin-bottom: 3px;
    color: #857a70;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.agency-shell-title {
    color: #302b27;
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 760;
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.agency-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.agency-logout-form {
    margin: 0;
}

.agency-nav-link,
.agency-nav-button,
.agency-button,
.agency-main-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border: 1px solid #cfc2b2;
    border-radius: 999px;
    padding: 9px 15px;
    background: #fffaf3;
    color: #302b27;
    font: inherit;
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
}

.agency-nav-link:hover,
.agency-nav-button:hover,
.agency-button:hover,
.agency-main-action:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(53, 43, 33, 0.08);
}

.agency-nav-link.is-active,
.agency-nav-link-primary,
.agency-button-primary,
.agency-main-action {
    border-color: #302b27;
    background: #302b27;
    color: #fffaf3;
}

.agency-main-action-soft,
.agency-button-soft {
    border-color: #d8cbbb;
    background: #fffaf3;
    color: #302b27;
}

.agency-button-danger {
    border-color: #e1b1ad;
    background: #fff2f1;
    color: #743232;
}

.agency-hero-card,
.agency-obituary-card,
.agency-empty-card,
.agency-form-card {
    border: 1px solid rgba(73, 61, 49, 0.12);
    border-radius: 24px;
    background: rgba(255, 250, 243, 0.9);
    box-shadow: 0 18px 45px rgba(53, 43, 33, 0.055);
}

.agency-hero-card {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 18px;
    padding: 22px;
}

.agency-section-title {
    color: #302b27;
    font-size: 22px;
    font-weight: 760;
    letter-spacing: -0.035em;
}

.agency-section-text {
    max-width: 680px;
    margin: 7px 0 0;
    color: #6f665e;
    font-size: 15px;
    line-height: 1.55;
}

.agency-small-link {
    display: inline-flex;
    margin-top: 10px;
    color: #7a6f65;
    font-size: 13px;
    text-decoration: none;
}

.agency-small-link:hover {
    text-decoration: underline;
}

.agency-notice,
.agency-errors {
    margin-bottom: 16px;
    padding: 13px 16px;
    border-radius: 16px;
    font-size: 14px;
    line-height: 1.45;
}

.agency-notice {
    border: 1px solid #d8c7b4;
    background: #fff7ec;
    color: #5e5145;
}

.agency-errors {
    border: 1px solid #e5b6b6;
    background: #fff2f2;
    color: #6d2f2f;
}

.agency-card-list {
    display: grid;
    gap: 14px;
}

.agency-obituary-card,
.agency-empty-card {
    padding: 20px;
}

.agency-obituary-main {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.agency-obituary-name {
    color: #302b27;
    font-size: 21px;
    font-weight: 760;
    letter-spacing: -0.035em;
    line-height: 1.15;
}

.agency-obituary-dates,
.agency-obituary-place,
.agency-obituary-text,
.agency-obituary-meta,
.agency-time {
    color: #766d64;
}

.agency-obituary-dates {
    margin-top: 4px;
    font-size: 14px;
}

.agency-obituary-place {
    margin-top: 14px;
    font-size: 15px;
}

.agency-obituary-text {
    margin-top: 12px;
    max-width: 760px;
    font-size: 15px;
    line-height: 1.55;
}

.agency-obituary-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
    flex-shrink: 0;
    text-align: right;
}

.agency-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border: 1px solid #d8cbbb;
    border-radius: 999px;
    padding: 5px 10px;
    background: #fff;
    color: #5f574f;
    font-size: 12px;
    font-weight: 700;
}

.agency-time {
    font-size: 12px;
}

.agency-obituary-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
    font-size: 12px;
}

.agency-obituary-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    border-radius: 999px;
    padding: 4px 9px;
    background: rgba(255, 255, 255, 0.72);
}

.agency-edit-window {
    color: #5e5145;
}

.agency-card-actions,
.agency-form-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.agency-card-actions form {
    margin: 0;
}

.agency-empty-card p {
    margin: 8px 0 0;
    color: #766d64;
    line-height: 1.5;
}

.agency-form-card {
    padding: 22px;
}

.agency-field {
    margin-bottom: 16px;
}

.agency-field label {
    display: block;
    margin-bottom: 6px;
    color: #6d665d;
    font-size: 14px;
    font-weight: 650;
}

.agency-field select,
.agency-field textarea {
    width: 100%;
    border: 1px solid #d8d0c4;
    border-radius: 15px;
    padding: 13px 14px;
    background: #fff;
    color: #302b27;
    font: inherit;
    font-size: 15px;
    outline: none;
}

.agency-field textarea {
    min-height: 150px;
    resize: vertical;
}

.agency-field select:focus,
.agency-field textarea:focus {
    border-color: #9d8d7d;
    box-shadow: 0 0 0 4px rgba(157, 141, 125, 0.14);
}

.agency-form-actions {
    justify-content: space-between;
    margin-top: 22px;
}

.agency-shared-form-shell {
    border-radius: 24px;
}

.agency-form-page .brand,
.agency-shared-form-shell .brand {
    display: none;
}

@media (max-width: 760px) {
    .agency-page {
        padding-top: 18px;
    }

    .agency-shell-header,
    .agency-hero-card,
    .agency-obituary-main {
        flex-direction: column;
        align-items: stretch;
    }

    .agency-nav {
        justify-content: flex-start;
    }

    .agency-nav-link,
    .agency-nav-button,
    .agency-button,
    .agency-main-action,
    .agency-logout-form {
        width: 100%;
    }

    .agency-obituary-side {
        align-items: flex-start;
        text-align: left;
    }

    .agency-form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }
}

/* Impersonation bar: same footprint as admin topbar */
.impersonation-bar {
    min-height: var(--admin-topbar-h, 58px) !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    padding: 10px 18px !important;
    box-sizing: border-box !important;
}

/* Impersonation bar: keep it in normal document flow */
.impersonation-bar {
    position: static !important;
}

/* === HOME LOGO GRID PATCH START === */

.brand .home-identity {
    --home-logo-title-size: clamp(2.55rem, 5.1vw, 4.42rem);
    --home-logo-slogan-size: clamp(1rem, 1.45vw, 1.16rem);
    --home-logo-bird-height: calc(
        (var(--home-logo-title-size) * 0.96) +
        (var(--home-logo-slogan-size) * 1.18)
    );

    display: grid !important;
    grid-template-columns: max-content auto !important;
    grid-template-rows: auto auto !important;
    column-gap: clamp(0.22rem, 0.65vw, 0.48rem) !important;

    align-items: center !important;
    justify-content: center !important;

    width: max-content !important;
    max-width: calc(100vw - 32px) !important;

    margin: -0.9rem auto 0.95rem !important;
}

.brand .home-identity > .logo,
.brand .home-identity > .logo > .site-brand {
    display: contents !important;
}

.brand .home-identity .logo-word {
    grid-column: 1 !important;
    grid-row: 1 !important;

    display: block !important;
    align-self: end !important;
    justify-self: start !important;

    white-space: nowrap !important;
    text-decoration: none !important;
}

.brand .home-identity .home-slogan {
    grid-column: 1 !important;
    grid-row: 2 !important;

    display: block !important;
    align-self: start !important;
    justify-self: end !important;

    max-width: none !important;
    margin: 0.05rem 0 0 !important;

    text-align: right !important;
    white-space: nowrap !important;
    text-wrap: nowrap !important;
}

.brand .home-identity .site-brand-logo {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;

    align-self: center !important;
    justify-self: start !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    height: var(--home-logo-bird-height) !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
    cursor: pointer !important;
}

.brand .home-identity .site-brand-logo img,
.brand .home-identity .site-brand-logo svg {
    display: block !important;

    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: 100% !important;

    object-fit: contain !important;

    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;

    pointer-events: none !important;
}

@media (max-width: 640px) {
    .brand .home-identity {
        --home-logo-title-size: clamp(2.05rem, 10vw, 3.08rem);
        --home-logo-slogan-size: 0.98rem;
        --home-logo-bird-height: calc(
            (var(--home-logo-title-size) * 0.96) +
            (var(--home-logo-slogan-size) * 1.1)
        );

        column-gap: 0.26rem !important;
        max-width: calc(100vw - 24px) !important;
        margin-top: -0.35rem !important;
        margin-bottom: 0.85rem !important;
    }

    .brand .home-identity .logo-word {
        white-space: nowrap !important;
    }

    .brand .home-identity .home-slogan {
        white-space: nowrap !important;
        text-wrap: nowrap !important;
        max-width: none !important;
        font-size: clamp(0.78rem, 3.4vw, 0.98rem) !important;
    }
}

@media (max-width: 380px) {
    .brand .home-identity {
        column-gap: 0.2rem !important;
    }

    .brand .home-identity .home-slogan {
        font-size: 0.78rem !important;
    }
}

/* === HOME LOGO GRID PATCH END === */

/* === BIRDSONG CURSOR FINAL OVERRIDE START === */

/* Deve stare DOPO la patch del logo: ripristina nota / nota barrata come cursore */
.brand .home-identity .site-brand-logo[data-birdsong-trigger],
.brand .home-identity .site-brand-logo[data-birdsong-trigger] *,
[data-birdsong-trigger],
[data-birdsong-trigger] * {
    cursor: url('/img/cursor-note.svg') 8 24, pointer !important;
}

body.birdsong-playing .brand .home-identity .site-brand-logo[data-birdsong-trigger],
body.birdsong-playing .brand .home-identity .site-brand-logo[data-birdsong-trigger] *,
body.birdsong-playing [data-birdsong-trigger],
body.birdsong-playing [data-birdsong-trigger] * {
    cursor: url('/img/cursor-note-off.svg') 8 24, pointer !important;
}

/* === BIRDSONG CURSOR FINAL OVERRIDE END === */

/* === HOME SLOGAN PADDING PATCH START === */

.home-slogan {
    padding-right: 0.7em !important;
}

/* === HOME SLOGAN PADDING PATCH END === */

/* === MOBILE LOGO FULL WIDTH + TEXT SCALE START === */

@media screen and (max-width: 820px) {
    html {
        -webkit-text-size-adjust: 100% !important;
        text-size-adjust: 100% !important;
    }

    /*
       Logo home: quasi tutta larghezza smartphone.
    */
    .brand .home-identity {
        width: calc(100vw - 10px) !important;
        max-width: calc(100vw - 10px) !important;

        grid-template-columns: minmax(0, 1fr) auto !important;
        column-gap: 0.12rem !important;

        margin-left: auto !important;
        margin-right: auto !important;

        --home-logo-title-size: clamp(3.15rem, 14.8vw, 5rem) !important;
        --home-logo-slogan-size: clamp(1.18rem, 5.3vw, 1.6rem) !important;
        --home-logo-bird-height: calc(
            (var(--home-logo-title-size) * 0.9) +
            (var(--home-logo-slogan-size) * 1.08)
        ) !important;
    }

    .brand .home-identity .logo-word {
        font-size: var(--home-logo-title-size) !important;
        line-height: 0.9 !important;
        white-space: nowrap !important;
    }

    .brand .home-identity .home-slogan {
        font-size: var(--home-logo-slogan-size) !important;
        line-height: 1.08 !important;
        white-space: nowrap !important;
        text-wrap: nowrap !important;
        padding-right: 0.7em !important;
    }

    .brand .home-identity .site-brand-logo {
        height: var(--home-logo-bird-height) !important;
    }

    /*
       Testi contenuto: +50% circa su mobile.
       Qui è volutamente ampio: prende feed, dettagli, ricerca, fonti e testi pubblici.
    */
    main p,
    main li,
    main dd,
    main blockquote,
    main figcaption,
    main .meta,
    main .feed-card-meta,
    main .feed-card-summary,
    main .feed-card-source,
    main .search-result-meta,
    main .source-meta,
    main .obituary-meta,
    main .public-muted,
    main .empty-state,
    .feed p,
    .feed li,
    .feed-card p,
    .feed-card li,
    .public-feed p,
    .public-feed li,
    .public-card p,
    .public-card li,
    .obituary-detail p,
    .obituary-detail li,
    .source-detail p,
    .source-detail li,
    .search-result p,
    .search-result li {
        font-size: 1.5em !important;
        line-height: 1.35 !important;
    }

    main h1,
    main h2,
    main h3,
    .feed-card-title,
    .search-result-title,
    .obituary-detail h1,
    .obituary-detail h2,
    .source-detail h1,
    .source-detail h2 {
        font-size: 1.5em !important;
        line-height: 1.12 !important;
    }
}

@media screen and (max-width: 390px) {
    .brand .home-identity {
        width: calc(100vw - 8px) !important;
        max-width: calc(100vw - 8px) !important;

        --home-logo-title-size: clamp(2.85rem, 14.2vw, 3.75rem) !important;
        --home-logo-slogan-size: clamp(1.05rem, 4.9vw, 1.28rem) !important;
    }
}

/* === MOBILE LOGO FULL WIDTH + TEXT SCALE END === */

/* === MOBILE LOGO ALIGN FIX START === */

@media screen and (max-width: 820px) {
    .brand .home-identity {
        width: calc(100vw - 18px) !important;
        max-width: calc(100vw - 18px) !important;
        padding-right: 4px !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
    }

    .brand .home-identity .logo-word {
        justify-self: end !important;
        text-align: right !important;
    }

    .brand .home-identity .home-slogan {
        justify-self: end !important;
        text-align: right !important;
    }

    .brand .home-identity .site-brand-logo {
        justify-self: start !important;
        transform: translateX(-0.22rem) !important;
    }
}

@media screen and (max-width: 390px) {
    .brand .home-identity {
        width: calc(100vw - 14px) !important;
        max-width: calc(100vw - 14px) !important;
    }

    .brand .home-identity .site-brand-logo {
        transform: translateX(-0.3rem) !important;
    }
}

/* === MOBILE LOGO ALIGN FIX END === */

/* === MOBILE LOGO SIZE -10 START === */

@media screen and (max-width: 820px) {
    .brand .home-identity {
        --home-logo-title-size: clamp(2.84rem, 13.3vw, 4.5rem) !important;
        --home-logo-slogan-size: clamp(1.06rem, 4.77vw, 1.44rem) !important;
        --home-logo-bird-height: calc(
            (var(--home-logo-title-size) * 0.9) +
            (var(--home-logo-slogan-size) * 1.08)
        ) !important;
    }

    .brand .home-identity .logo-word {
        font-size: var(--home-logo-title-size) !important;
    }

    .brand .home-identity .home-slogan {
        font-size: var(--home-logo-slogan-size) !important;
    }

    .brand .home-identity .site-brand-logo {
        height: var(--home-logo-bird-height) !important;
    }
}

@media screen and (max-width: 390px) {
    .brand .home-identity {
        --home-logo-title-size: clamp(2.56rem, 12.78vw, 3.38rem) !important;
        --home-logo-slogan-size: clamp(0.95rem, 4.41vw, 1.15rem) !important;
    }
}

/* === MOBILE LOGO SIZE -10 END === */

/* === MOBILE LOGO CENTER FIX START === */

@media screen and (max-width: 820px) {
    .brand {
        text-align: center !important;
    }

    .brand .home-identity {
        width: fit-content !important;
        max-width: calc(100vw - 18px) !important;

        margin-left: auto !important;
        margin-right: auto !important;

        justify-content: center !important;
        justify-items: start !important;
    }

    .brand .home-identity .logo-word {
        justify-self: end !important;
        text-align: right !important;
    }

    .brand .home-identity .home-slogan {
        justify-self: end !important;
        text-align: right !important;
    }

    .brand .home-identity .site-brand-logo {
        justify-self: start !important;
        transform: translateX(-0.12rem) !important;
    }
}

@media screen and (max-width: 390px) {
    .brand .home-identity {
        max-width: calc(100vw - 14px) !important;
    }

    .brand .home-identity .site-brand-logo {
        transform: translateX(-0.16rem) !important;
    }
}

/* === MOBILE LOGO CENTER FIX END === */

/* === MOBILE CARD NAME EXACT SIZE START === */

@media screen and (max-width: 820px) {
    .feed-card .feed-card-title,
    .feed-card-title,
    .feed-card h2,
    .feed-card h3,
    .feed-card > strong:first-of-type,
    .search-page .feed-card .feed-card-title,
    .search-page .feed-card-title,
    .search-page .feed-card h2,
    .search-page .feed-card h3,
    .search-page .feed-card > strong:first-of-type {
        font-size: clamp(1.65rem, 1.32rem + 3vw, 2.05rem) !important;
    }
}

/* === MOBILE CARD NAME EXACT SIZE END === */

/* === FEED CARD NAME REAL SIZE START === */

@media screen and (max-width: 820px) {
    article.card.feed-card .card-top .name,
    .card.feed-card .card-top .name,
    .feed-card .card-top .name {
        font-size: clamp(1.65rem, 1.32rem + 3vw, 2.05rem) !important;
    }
}

/* === FEED CARD NAME REAL SIZE END === */

/* === FEED CARD AGENCY SIZE START === */

.card.feed-card .meta,
.card.feed-card .meta span,
.feed-card .meta,
.feed-card .meta span {
    font-size: 0.84rem !important;
}

/* === FEED CARD AGENCY SIZE END === */

/* === RESULTS TITLE SIZE START === */

@media screen and (max-width: 820px) {
    .search-page main > h1,
    .search-page main > h2,
    .search-page .results-title,
    .search-page .search-results-title,
    .search-page .public-results-title,
    .search-page .search-heading,
    .search-page .results-heading {
        font-size: 1.1em !important;
    }
}

/* === RESULTS TITLE SIZE END === */

/* === FORCE MOBILE HEADINGS 1.1 START === */

@media screen and (max-width: 820px) {
    body main h1,
    body main h2,
    body main h3,
    body .feed-card-title,
    body .search-result-title,
    body .obituary-detail h1,
    body .obituary-detail h2,
    body .source-detail h1,
    body .source-detail h2 {
        font-size: 1.1em !important;
        line-height: 1.12 !important;
    }
}

/* === FORCE MOBILE HEADINGS 1.1 END === */

/* === MOBILE CARD TEXT 2 LINES START === */

@media screen and (max-width: 820px) {
    article.card.feed-card .body .text,
    .card.feed-card .body .text,
    .feed-card .body .text {
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;

        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

/* === MOBILE CARD TEXT 2 LINES END === */




/* === PUBLIC FIXED HEAD START === */

body.has-public-fixed-head {
    padding-top: calc(var(--public-fixed-head-height, 0px) + 14px) !important;
}

.public-fixed-head {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;

    z-index: 5000 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;

    width: 100% !important;

    padding: calc(env(safe-area-inset-top, 0px) + 8px) 0 16px !important;

    background: var(--public-page-bg, #f3eee6) !important;

    isolation: isolate !important;
}

.public-fixed-head::after {
    content: "";

    position: absolute;
    left: 0;
    right: 0;
    bottom: -10px;

    height: 10px;

    background: linear-gradient(
        to bottom,
        var(--public-page-bg, #f3eee6),
        rgba(243, 238, 230, 0)
    );

    pointer-events: none;
    z-index: -1;
}

/* logo dentro header fixed */
.public-fixed-head .brand {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* evita che i margini vecchi gonfino troppo l'header */
.public-fixed-head .brand .home-identity {
    margin-top: 0 !important;
    margin-bottom: 0.8rem !important;
}

/* searchbar dentro header fixed, se presente */
.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 10px !important;
}

.public-fixed-head .search,
.public-fixed-head .search-form,
.public-fixed-head form[role="search"] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* quando non c'è la searchbar, meno spazio sotto */
.public-fixed-head .brand:last-child .home-identity {
    margin-bottom: 0 !important;
}

@media screen and (max-width: 820px) {
    body.has-public-fixed-head {
        padding-top: calc(var(--public-fixed-head-height, 0px) + 10px) !important;
    }

    .public-fixed-head {
        padding-top: calc(env(safe-area-inset-top, 0px) + 6px) !important;
        padding-bottom: 12px !important;
    }

    .public-fixed-head .brand .home-identity {
        margin-bottom: 0.65rem !important;
    }

    .public-fixed-head .public-search-row,
    .public-fixed-head .search-row,
    .public-fixed-head .home-search-row,
    .public-fixed-head .public-search-shell {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

/* === PUBLIC FIXED HEAD END === */

/* === PUBLIC FIXED HEAD FIX START === */

/*
   Header fisso pubblico:
   logo sempre dentro;
   searchbar dentro quando presente;
   sfondo pieno + sfumatura inferiore;
   padding superiore ripristinato.
*/

.public-fixed-head {
    top: 0 !important;

    padding-top: calc(env(safe-area-inset-top, 0px) + 18px) !important;
    padding-bottom: 16px !important;

    background: var(--public-page-bg, #f3eee6) !important;
    z-index: 5000 !important;
}

.public-fixed-head::after {
    bottom: -10px !important;
    height: 10px !important;

    background: linear-gradient(
        to bottom,
        var(--public-page-bg, #f3eee6) 0%,
        rgba(243, 238, 230, 0) 100%
    ) !important;
}

/* il logo dentro l'header non deve finire appiccicato sopra */
.public-fixed-head .brand {
    margin: 0 !important;
    padding: 0 !important;
}

.public-fixed-head .brand .home-identity {
    margin-top: 0 !important;
}

/* se c'è la barra ricerca, deve stare nel blocco fisso */
.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 10px !important;
}

/* il contenuto deve partire sotto il blocco fisso */
body.has-public-fixed-head {
    padding-top: calc(var(--public-fixed-head-height, 0px) + 14px) !important;
}

/*
   Il ? torna visibile in generale.
   Su mobile resta nascosto, ma SOLO tramite la sua classe reale.
   Niente più selettori larghi tipo a[href*=...].
*/

.public-help-link {
    display: inline-flex !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head {
        padding-top: calc(env(safe-area-inset-top, 0px) + 14px) !important;
        padding-bottom: 12px !important;
    }

    body.has-public-fixed-head {
        padding-top: calc(var(--public-fixed-head-height, 0px) + 10px) !important;
    }

    .public-fixed-head .public-search-row,
    .public-fixed-head .search-row,
    .public-fixed-head .home-search-row,
    .public-fixed-head .public-search-shell {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .public-help-link {
        display: none !important;
    }
}

/* === PUBLIC FIXED HEAD FIX END === */

/* === FIXED HEADER SEARCH WIDTH START === */

.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    width: min(760px, calc(100vw - 32px)) !important;
    max-width: 760px !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding-left: 0 !important;
    padding-right: 0 !important;
}

.public-fixed-head .search,
.public-fixed-head .search-form,
.public-fixed-head form[role="search"] {
    width: 100% !important;
    max-width: 100% !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head .public-search-row,
    .public-fixed-head .search-row,
    .public-fixed-head .home-search-row,
    .public-fixed-head .public-search-shell {
        width: calc(100vw - 22px) !important;
        max-width: calc(100vw - 22px) !important;
    }
}

/* === FIXED HEADER SEARCH WIDTH END === */

/* === FIXED HEADER SPACING RESTORE START === */

/*
   Recupero spaziatura naturale:
   alto pagina -> logo
   logo -> searchbar
   searchbar -> contenuto
*/

.public-fixed-head {
    padding-top: calc(env(safe-area-inset-top, 0px) + 26px) !important;
    padding-bottom: 18px !important;
}

.public-fixed-head .brand .home-identity {
    margin-top: 0 !important;
    margin-bottom: 0.95rem !important;
}

/* se nel blocco fixed c'è solo il logo, non lasciare vuoto sotto */
.public-fixed-head .brand:last-child .home-identity {
    margin-bottom: 0 !important;
}

.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body.has-public-fixed-head {
    padding-top: calc(var(--public-fixed-head-height, 0px) + 18px) !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head {
        padding-top: calc(env(safe-area-inset-top, 0px) + 20px) !important;
        padding-bottom: 14px !important;
    }

    .public-fixed-head .brand .home-identity {
        margin-bottom: 0.85rem !important;
    }

    .public-fixed-head .brand:last-child .home-identity {
        margin-bottom: 0 !important;
    }

    body.has-public-fixed-head {
        padding-top: calc(var(--public-fixed-head-height, 0px) + 14px) !important;
    }
}

/* === FIXED HEADER SPACING RESTORE END === */

/* === FIXED SEARCH TOP SPACE START === */

/* spazio tra logo e barra ricerca, solo quando la barra è dentro l'header fixed */
.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    margin-top: 0.95rem !important;
}

/* evitiamo doppio spazio dal margine sotto-logo */
.public-fixed-head .brand .home-identity {
    margin-bottom: 0 !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head .public-search-row,
    .public-fixed-head .search-row,
    .public-fixed-head .home-search-row,
    .public-fixed-head .public-search-shell {
        margin-top: 0.85rem !important;
    }

    .public-fixed-head .brand .home-identity {
        margin-bottom: 0 !important;
    }
}

/* === FIXED SEARCH TOP SPACE END === */

/* === FIXED HEAD GAP START === */

/*
   Spazio tra logo e searchbar dentro il blocco fixed.
   Uso gap sul contenitore, così non dipende dai margin della searchbar.
*/
.public-fixed-head {
    gap: 0.95rem !important;
}

/* azzera i margini interni che possono sommare spazio in modo incoerente */
.public-fixed-head .brand,
.public-fixed-head .brand .home-identity,
.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head {
        gap: 0.85rem !important;
    }
}

/* === FIXED HEAD GAP END === */


/* === SEARCH RELATIVE TOP FIX START === */

/* annulla lo spacer inserito tra logo e search */
.public-fixed-head-spacer {
    height: 0 !important;
    min-height: 0 !important;
    display: none !important;
}

/* sposta fisicamente la barra un po' più sotto */
.public-fixed-head .public-search-row,
.public-fixed-head .search-row,
.public-fixed-head .home-search-row,
.public-fixed-head .public-search-shell {
    position: relative !important;
    top: 0.85rem !important;
}

/* compensa lo spostamento, così il contenuto sotto non sale troppo */
.public-fixed-head {
    padding-bottom: calc(18px + 0.85rem) !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head .public-search-row,
    .public-fixed-head .search-row,
    .public-fixed-head .home-search-row,
    .public-fixed-head .public-search-shell {
        top: 0.7rem !important;
    }

    .public-fixed-head {
        padding-bottom: calc(14px + 0.7rem) !important;
    }
}

/* === SEARCH RELATIVE TOP FIX END === */






/* === HOME SLOGAN CLICKABLE START === */

.home-slogan,
.home-slogan:visited,
.home-slogan:hover,
.home-slogan:focus {
    color: inherit !important;
    text-decoration: none !important;
}

/* === HOME SLOGAN CLICKABLE END === */



/* === REPORT FORM CARD MARGIN START === */

.report-form-card {
    margin-top: 50px !important;
}

/* === REPORT FORM CARD MARGIN END === */


/* === REPORT CARD HEADING SMALLER START === */

.report-card-heading h1 {
    font-size: clamp(1.35rem, 1.15rem + 0.75vw, 1.72rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em !important;
    font-weight: 680 !important;
}

/* === REPORT CARD HEADING SMALLER END === */

/* === HELP PERSISTENT FIX START === */

/* Il ? sta dentro il blocco fixed e sopravvive alla soft-nav.
   Nessun cambio estetico. */
.public-fixed-head {
    overflow: visible !important;
}

.public-fixed-head .public-help-link {
    position: absolute !important;
    top: calc(env(safe-area-inset-top, 0px) + 18px) !important;
    right: 18px !important;
    z-index: 3 !important;

    visibility: visible !important;
    opacity: 1 !important;
}

/* mobile: nascosto come deciso */
@media screen and (max-width: 820px) {
    .public-fixed-head .public-help-link,
    .public-help-link {
        display: none !important;
    }
}

/* === HELP PERSISTENT FIX END === */


/* === INFO PAGE MARGIN START === */

.info-page {
    margin-top: 19px !important;
}

/* === INFO PAGE MARGIN END === */

/* === FIXED HEAD LOGO ONLY CLASS PADDING START === */

/*
   Solo pagine con logo senza barra ricerca visibile.
   Riduce lo spazio sotto al fixed header.
*/
.public-fixed-head.public-fixed-head-logo-only {
    padding-bottom: 0 !important;
}

/* se restasse ancora troppa aria sotto, compenso anche il padding corpo */
body.has-public-fixed-head-logo-only {
    padding-top: calc(var(--public-fixed-head-height, 0px) - 104px) !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head.public-fixed-head-logo-only {
        padding-bottom: 0 !important;
    }

    body.has-public-fixed-head-logo-only {
        padding-top: calc(var(--public-fixed-head-height, 0px) - 104px) !important;
    }
}

/* pagine con searchbar: non cambiate */
.public-fixed-head.public-fixed-head-has-search {
    padding-bottom: calc(18px + 0.85rem) !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head.public-fixed-head-has-search {
        padding-bottom: calc(14px + 0.7rem) !important;
    }
}

/* === FIXED HEAD LOGO ONLY CLASS PADDING END === */


/* === FIXED HEAD LOGO ONLY PLUS 10 START === */

/* logo senza searchbar: ripristina 10px di aria sotto */
.public-fixed-head.public-fixed-head-logo-only {
    padding-bottom: 10px !important;
}

@media screen and (max-width: 820px) {
    .public-fixed-head.public-fixed-head-logo-only {
        padding-bottom: 10px !important;
    }
}

/* === FIXED HEAD LOGO ONLY PLUS 10 END === */

/* === RAISE CONTENT AFTER FIXED HEAD START === */

/* desktop: contenuti alzati di circa 100px */
body.has-public-fixed-head {
    padding-top: calc(var(--public-fixed-head-height, 0px) - 86px) !important;
}

/* smartphone: contenuti alzati di circa 80px */
@media screen and (max-width: 820px) {
    body.has-public-fixed-head {
        padding-top: calc(var(--public-fixed-head-height, 0px) - 70px) !important;
    }
}

/* === RAISE CONTENT AFTER FIXED HEAD END === */

/* === SEARCH RESULT TITLE MARGIN FORCE START === */

body .search-page main .search-result-title,
body .search-page main .search-results-title,
body .search-page main .results-title,
body .search-page main .public-results-title,
body .search-page main .search-heading,
body .search-page main .results-heading,
body main .search-result-title {
    margin: 30px 0 12px !important;
}

/* se il titolo è un h1/h2 diretto nella pagina risultati */
body .search-page main > h1,
body .search-page main > h2 {
    margin: 30px 0 12px !important;
}

/* === SEARCH RESULT TITLE MARGIN FORCE END === */


/* =========================================================
   FEED PUBBLICO - card esterne allineate alle card normali
   ========================================================= */

.feed-card.external {
    padding: 22px !important;
}

@media (max-width: 640px) {
    .feed-card.external {
        padding: 18px !important;
    }
}

/* =========================================================
   DETTAGLIO PUBBLICO - spaziatura alta uniforme
   ========================================================= */

main.detail-page > .detail-card {
    margin-top: 50px !important;
}

@media (max-width: 640px) {
    main.detail-page > .detail-card {
        margin-top: 42px !important;
    }
}

/* =========================================================
   DETTAGLIO PUBBLICO - stato relevant
   ========================================================= */

.detail-card-relevant::before {
    background: var(--feed-accent-relevant, #9a6a2f) !important;
}

.detail-card-relevant .detail-relevant-label {
    margin: 0 0 10px;
    color: var(--feed-accent-relevant, #9a6a2f);
    font-size: 0.88rem;
    line-height: 1.25;
    font-weight: 650;
}

.detail-card-relevant .detail-name {
    margin-top: 0;
}

/* =========================================================
   DETTAGLIO PUBBLICO - label relevant senza spostare il nome
   ========================================================= */

.detail-card-relevant .detail-relevant-label {
    position: absolute;
    top: 12px;
    left: 30px;
    margin: 0 !important;

    color: var(--feed-accent-relevant, #9a6a2f);
    font-size: 0.88rem;
    line-height: 1.2;
    font-weight: 400 !important;
    letter-spacing: 0;
    z-index: 2;
}

.detail-card-relevant .detail-name {
    margin-top: 0 !important;
}

@media (max-width: 640px) {
    .detail-card-relevant .detail-relevant-label {
        top: 10px;
        left: 22px;
        font-size: 0.82rem;
    }
}
