:root {
    --bg: #0b1020;
    --bg-2: #121933;
    --panel: rgba(255, 255, 255, 0.08);
    --panel-strong: #ffffff;
    --text: #eef2ff;
    --text-dark: #111827;
    --muted: #c9d1f0;
    --muted-dark: #667085;
    --primary: #ff4d8d;
    --primary-dark: #d92f6f;
    --secondary: #7c5cff;
    --accent: #ffb347;
    --border: rgba(255, 255, 255, 0.14);
    --shadow: 0 20px 50px rgba(8, 15, 40, 0.22);
    --radius: 20px;
    --radius-sm: 14px;
    --maxw: 1200px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    background: #f6f8fc;
    color: var(--text-dark);
    line-height: 1.5;
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    max-width: 100%;
    display: block;
}

.container {
    width: min(calc(100% - 32px), var(--maxw));
    margin: 0 auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    backdrop-filter: blur(14px);
    background: rgba(11, 16, 32, 0.78);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Variante chiara riutilizzabile per le sezioni editoriali su fondo chiaro. */
.site-header.site-header-light {
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(226, 232, 244, 0.85);
    box-shadow: 0 12px 36px rgba(16, 20, 47, 0.06);
}

.site-header-light .header-inner {
    min-height: 70px;
}

.site-header-light .brand {
    color: #11162f;
    gap: 0;
}

.site-header-light .brand-mark,
.site-header-light .brand-logo-image {
    filter: none;
}

.site-header-light .nav {
    gap: 24px;
}

.site-header-light .nav a {
    color: #11162f;
    font-size: 0.9rem;
    font-weight: 800;
}

.site-header-light .nav a:hover,
.site-header-light .nav a.is-active {
    color: #7a4ce8;
}

.site-header-light .nav a.is-active {
    position: relative;
}

.site-header-light .nav a.is-active::after {
    background: linear-gradient(90deg, #f33791, #7a4ce8);
    border-radius: 999px;
    bottom: -22px;
    content: "";
    height: 3px;
    left: 0;
    position: absolute;
    right: 0;
}

.site-header-light .nav .btn-primary {
    color: #fff;
}

.site-header-light .nav-toggle {
    background: #fff;
    border-color: #e1e7f2;
}

.site-header-light .nav-toggle-line {
    background: #11162f;
}

@media (max-width: 980px) {
    .site-header-light .nav {
        background: rgba(255, 255, 255, 0.98);
        border-color: #e9edf5;
    }

    .site-header-light .nav a {
        border-bottom-color: #edf1f7;
        color: #151936;
    }

    .site-header-light .nav a.is-active::after {
        display: none;
    }
}

/* Location musicali */
.page-location-archive,
.page-location-detail { background: #f7f8fc; color: #11162f; }
.location-archive-hero {
    background:
        linear-gradient(90deg, rgba(7, 10, 38, .96), rgba(30, 18, 69, .82) 55%, rgba(7, 14, 40, .58)),
        url("../uploads/hero/hero-salentomusic.webp") center 46% / cover no-repeat;
    color: #fff; min-height: 430px; padding: 72px 0 90px; position: relative;
}
.location-archive-hero::after { background: linear-gradient(180deg, transparent, rgba(8, 11, 38, .38)); content:""; inset:0; pointer-events:none; position:absolute; }
.location-archive-hero-inner { position:relative; z-index:1; animation: location-rise .55s ease both; }
.location-breadcrumb { align-items:center; color:rgba(255,255,255,.7); display:flex; flex-wrap:wrap; gap:10px; margin-bottom:42px; }
.location-breadcrumb a { color:#fff; font-weight:800; }
.location-kicker, .location-section-head span { color:#ff789d; display:block; font-size:.76rem; font-weight:900; letter-spacing:.14em; margin-bottom:14px; text-transform:uppercase; }
.location-archive-hero h1 { color:#fff; font-size:clamp(3rem,6vw,5.3rem); letter-spacing:-.045em; line-height:.94; margin:0; max-width:820px; }
.location-archive-hero p { color:rgba(255,255,255,.88); font-size:1.16rem; line-height:1.65; margin:25px 0 0; max-width:690px; }
.location-discovery { padding-bottom:86px; }
.location-filters { align-items:end; background:#fff; border:1px solid #e3e7f0; border-radius:18px; box-shadow:0 22px 55px rgba(19,25,56,.12); display:grid; gap:16px; grid-template-columns:minmax(220px,1.35fr) repeat(3,minmax(145px,.72fr)); margin-top:-42px; padding:24px; position:relative; z-index:3; }
.location-filters > div { display:grid; gap:7px; }
.location-filters label { color:#29324d; font-size:.78rem; font-weight:900; letter-spacing:.03em; }
.location-filters input[type="search"], .location-filters select { background:#f9faff; border:1px solid #dce2ef; border-radius:10px; color:#151a35; font:inherit; height:46px; padding:0 13px; width:100%; }
.location-filter-check { align-items:center; display:flex; gap:9px; min-height:44px; }
.location-filter-check input { accent-color:#ef3f93; height:18px; width:18px; }
.location-filters .btn { justify-content:center; min-height:46px; }
.location-results-head { align-items:center; display:flex; justify-content:space-between; margin:44px 0 18px; }
.location-results-head p { color:#657087; margin:0; }
.location-grid { display:grid; gap:25px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.location-card { background:#fff; border:1px solid #e3e7ef; border-radius:18px; box-shadow:0 10px 30px rgba(21,28,58,.07); min-width:0; overflow:hidden; transition:transform .22s ease,box-shadow .22s ease; }
.location-card:hover { box-shadow:0 22px 44px rgba(21,28,58,.14); transform:translateY(-5px); }
.location-card-media { background:#111735; display:block; overflow:hidden; position:relative; }
.location-card-media img, .location-card-placeholder { aspect-ratio:16/9; display:block; height:auto; object-fit:cover; transition:transform .45s ease; width:100%; }
.location-card:hover .location-card-media img { transform:scale(1.035); }
.location-card-placeholder { align-items:center; background:linear-gradient(135deg,#24184f,#ef3f93); color:rgba(255,255,255,.78); display:flex; font-size:4rem; justify-content:center; }
.location-card-type { backdrop-filter:blur(8px); background:rgba(12,15,44,.72); border:1px solid rgba(255,255,255,.18); border-radius:999px; bottom:14px; color:#fff; font-size:.74rem; font-weight:900; left:14px; padding:7px 11px; position:absolute; }
.location-card-body { padding:23px 24px 24px; }
.location-card-place { color:#8b3cf2; font-size:.78rem; font-weight:900; letter-spacing:.06em; margin:0 0 7px; text-transform:uppercase; }
.location-card h2 { font-size:1.55rem; line-height:1.12; margin:0; }
.location-card h2 a { color:#12172f; }
.location-card-count { color:#4d5871; margin:17px 0 12px; }
.location-card-count strong { color:#ef3f93; font-size:1.3rem; }
.location-card-next { border-left:3px solid #ff7c35; display:grid; gap:3px; margin:16px 0; padding-left:13px; }
.location-card-next span { color:#7a8499; font-size:.75rem; font-weight:800; text-transform:uppercase; }
.location-card-next strong { color:#252d48; font-size:.91rem; }
.location-card-summary { color:#647087; line-height:1.55; min-height:48px; }
.location-card-link { color:#8b3cf2; display:inline-flex; font-weight:900; gap:8px; margin-top:7px; }
.location-detail-hero { background-image:linear-gradient(90deg,rgba(6,9,32,.94),rgba(23,13,54,.7),rgba(6,9,32,.28)),var(--location-hero-image); background-position:center; background-size:cover; color:#fff; min-height:580px; padding:55px 0 72px; }
.location-detail-hero.no-image { background:linear-gradient(130deg,#10183d,#4a2077 65%,#ef3f93); }
.location-detail-hero-inner { display:flex; flex-direction:column; min-height:450px; }
.location-detail-title { margin-top:auto; max-width:900px; animation:location-rise .55s ease both; }
.location-detail-title p { color:#ff9a6d; font-weight:900; letter-spacing:.08em; margin:0 0 13px; text-transform:uppercase; }
.location-detail-title h1 { color:#fff; font-size:clamp(3.4rem,7vw,6.4rem); letter-spacing:-.055em; line-height:.88; margin:0 0 24px; }
.location-detail-title > span { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.23); border-radius:999px; display:inline-flex; font-weight:900; padding:9px 15px; }
.location-detail-intro { align-items:start; display:grid; gap:58px; grid-template-columns:minmax(0,1.65fr) minmax(310px,.7fr); padding-bottom:78px; padding-top:72px; }
.location-lead { color:#161c39; font-size:clamp(1.35rem,2.2vw,1.8rem); font-weight:750; line-height:1.5; margin:0 0 34px; }
.location-rich-text { color:#3d4861; font-size:1.06rem; line-height:1.78; }
.location-rich-text h2 { color:#12172f; font-size:2rem; margin:44px 0 15px; }
.location-rich-text h3 { color:#1b2140; font-size:1.3rem; margin:32px 0 10px; }
.location-rich-text p:first-child { margin-top:0; }
.location-census-note { background:#fff; border-left:4px solid #8b3cf2; box-shadow:0 12px 34px rgba(20,27,57,.08); padding:24px; }
.location-facts { background:#fff; border:1px solid #e1e6f0; border-radius:18px; box-shadow:0 18px 45px rgba(20,27,57,.1); padding:29px; position:sticky; top:95px; }
.location-facts h2 { font-size:1.35rem; margin:0 0 22px; }
.location-facts dl { margin:0; }
.location-facts dl div { border-top:1px solid #ebedf4; display:grid; gap:4px; padding:14px 0; }
.location-facts dt { color:#7b8599; font-size:.74rem; font-weight:900; text-transform:uppercase; }
.location-facts dd { color:#1c2340; font-weight:800; margin:0; }
.location-contact-links { display:flex; flex-wrap:wrap; gap:9px; margin:18px 0; }
.location-contact-links a, .location-map > a { color:#8b3cf2; font-size:.86rem; font-weight:900; }
.location-map { border-radius:12px; overflow:hidden; }
.location-map iframe { border:0; display:block; height:230px; margin-bottom:10px; width:100%; }
.location-gallery { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:42px; }
.location-gallery figure { margin:0; }
.location-gallery img { aspect-ratio:16/10; border-radius:12px; object-fit:cover; width:100%; }
.location-gallery figcaption { color:#7b8498; font-size:.8rem; padding:7px 2px; }
.location-practical, .location-events-section, .location-genres, .location-past, .location-related { padding-bottom:80px; }
.location-practical h2, .location-section-head h2, .location-genres h2 { color:#11162f; font-size:clamp(2rem,3.6vw,3rem); line-height:1; margin:0; }
.location-practical-grid { border-top:1px solid #dfe4ee; display:grid; gap:0; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:26px; }
.location-practical-grid article { padding:27px 28px 0 0; }
.location-practical-grid article + article { border-left:1px solid #dfe4ee; padding-left:28px; }
.location-practical-grid h3 { font-size:1.08rem; margin:0 0 10px; }
.location-practical-grid p { color:#5c687f; line-height:1.65; margin:0; }
.location-section-head { align-items:end; display:flex; justify-content:space-between; margin-bottom:28px; }
.location-section-head > a { color:#8b3cf2; font-weight:900; }
.location-alternatives { border-top:1px solid #dfe3ed; margin-top:50px; padding-top:38px; }
.location-genre-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.location-genre-list a { background:#fff; border:1px solid #dfe4ee; border-radius:999px; color:#1b2140; font-weight:900; padding:10px 15px; }
.location-genre-list span { color:#ef3f93; margin-left:5px; }
.location-past-list { border-top:1px solid #dce2ec; }
.location-past-list a { align-items:center; border-bottom:1px solid #dce2ec; color:#151b37; display:grid; gap:20px; grid-template-columns:100px minmax(0,1fr) minmax(160px,.6fr); padding:17px 4px; transition:padding .2s ease,background .2s ease; }
.location-past-list a:hover { background:#fff; padding-left:12px; padding-right:12px; }
.location-past-list time { color:#8b3cf2; font-weight:900; }
.location-past-list span { color:#68738a; }
.location-related-grid { display:grid; gap:18px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.location-related-item { background:#111735; border-radius:15px; color:#fff; min-height:290px; overflow:hidden; padding:20px; position:relative; }
.location-related-item::after { background:linear-gradient(transparent,rgba(6,8,28,.93)); content:""; inset:0; position:absolute; }
.location-related-item img { height:100%; inset:0; object-fit:cover; position:absolute; transition:transform .4s ease; width:100%; }
.location-related-item:hover img { transform:scale(1.05); }
.location-related-item span,.location-related-item strong,.location-related-item em { position:relative; z-index:1; }
.location-related-item span { display:block; font-size:.75rem; font-style:normal; font-weight:900; margin-top:155px; text-transform:uppercase; }
.location-related-item strong { display:block; font-size:1.35rem; line-height:1.1; margin-top:7px; }
.location-related-item em { color:#ff98b8; display:block; font-size:.85rem; font-style:normal; font-weight:900; margin-top:13px; }
@keyframes location-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .location-archive-hero-inner,.location-detail-title { animation:none; } .location-card,.location-card-media img,.location-related-item img { transition:none; } }
@media (max-width:1050px) { .location-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .location-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .location-detail-intro { gap:34px; grid-template-columns:minmax(0,1.4fr) 320px; } .location-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
    .location-archive-hero { min-height:390px; padding:50px 0 74px; }
    .location-archive-hero h1 { font-size:3.25rem; }
    .location-breadcrumb { margin-bottom:30px; }
    .location-filters,.location-grid,.location-detail-intro,.location-practical-grid,.location-related-grid { grid-template-columns:1fr; }
    .location-filters { margin-top:-30px; padding:18px; }
    .location-detail-hero { min-height:500px; padding:35px 0 52px; }
    .location-detail-hero-inner { min-height:410px; }
    .location-detail-title h1 { font-size:3.45rem; }
    .location-detail-intro { padding-bottom:58px; padding-top:45px; }
    .location-facts { position:static; }
    .location-practical-grid article + article { border-left:0; border-top:1px solid #dfe4ee; padding-left:0; }
    .location-gallery { grid-template-columns:1fr; }
    .location-section-head { align-items:start; flex-direction:column; gap:16px; }
    .location-past-list a { gap:6px; grid-template-columns:1fr; }
    .location-related-item span { margin-top:170px; }
}
.event-location-rich { align-items:center; color:#151b37; display:grid; gap:12px; grid-template-columns:66px 1fr; margin-top:8px; }
.event-location-rich img { border-radius:9px; height:58px; object-fit:cover; width:66px; }
.event-location-rich span { display:grid; gap:2px; }
.event-location-rich b { font-size:1rem; }
.event-location-rich small { color:#69748a; }
.event-location-rich em { color:#8b3cf2; font-size:.78rem; font-style:normal; font-weight:900; margin-top:3px; }

.page-genres {
    background: #f4f6fb;
}

.genres-hero {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    color: #fff;
    background: #09132e;
}

.genres-hero-media {
    position: absolute;
    inset: 0;
}

.genres-hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 10, 31, 0.92) 0%, rgba(7, 12, 36, 0.74) 42%, rgba(8, 12, 31, 0.18) 100%),
        linear-gradient(180deg, rgba(5, 8, 24, 0.06), rgba(5, 8, 24, 0.58));
}

.genres-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.genres-hero-inner {
    position: relative;
    z-index: 1;
    min-height: 520px;
    display: grid;
    grid-template-columns: minmax(0, 680px) minmax(240px, 320px);
    gap: 40px;
    align-items: center;
}

.genres-hero-copy {
    animation: genreRise 0.65s ease both;
}

.genres-hero h1 {
    max-width: 680px;
    margin: 20px 0 18px;
    font-size: clamp(3rem, 6vw, 5.9rem);
    line-height: 0.95;
    letter-spacing: 0;
}

.genres-hero p {
    max-width: 560px;
    margin: 0 0 30px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1.18rem;
    line-height: 1.7;
}

.genres-search {
    max-width: 620px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(14px);
}

.genres-search input,
.genres-search button {
    min-height: 52px;
    border: 0;
    border-radius: 13px;
    font: inherit;
}

.genres-search input {
    width: 100%;
    padding: 0 18px;
    color: #101936;
}

.genres-search button {
    padding: 0 24px;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
    background: linear-gradient(135deg, var(--events-pink), var(--events-purple));
}

.genres-hero-stats {
    align-self: end;
    margin-bottom: 66px;
    display: grid;
    gap: 14px;
    animation: genreRise 0.75s 0.08s ease both;
}

.genres-hero-stats div {
    padding: 22px 24px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.11);
    backdrop-filter: blur(14px);
}

.genres-hero-stats strong,
.genres-hero-stats span {
    display: block;
}

.genres-hero-stats strong {
    font-size: 2.4rem;
    line-height: 1;
}

.genres-hero-stats span {
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 800;
}

.genres-section {
    padding: 56px 0 84px;
}

.genres-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.genres-section-head-spaced {
    margin-top: 54px;
}

.genres-section-head h2 {
    margin: 0 0 6px;
    color: #121a3a;
    font-size: clamp(2rem, 3vw, 3rem);
}

.genres-section-head p,
.genres-section-head span {
    margin: 0;
    color: #66748f;
    font-weight: 700;
}

.genres-section-head a {
    color: var(--events-pink);
    font-weight: 900;
    text-decoration: none;
}

.genres-featured-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.genre-feature {
    position: relative;
    min-height: 238px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 22px;
    border-radius: 22px;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 24px 56px rgba(17, 24, 49, 0.12);
    isolation: isolate;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.genre-feature:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 70px rgba(17, 24, 49, 0.18);
}

.genre-feature::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, transparent 12%, rgba(5, 8, 24, 0.82) 100%);
}

.genre-feature img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.genre-feature:hover img {
    transform: scale(1.05);
}

.genre-feature-icon {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 1.5rem;
    font-weight: 900;
}

.genre-feature strong {
    font-size: 1.55rem;
    line-height: 1.1;
}

.genre-feature small {
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 800;
}

.genres-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.genre-row {
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 16px;
    align-items: center;
    min-height: 86px;
    padding: 14px 18px;
    border: 1px solid #dfe6f2;
    border-radius: 18px;
    color: #17213e;
    text-decoration: none;
    background: #fff;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.genre-row:hover {
    border-color: rgba(209, 46, 171, 0.34);
    box-shadow: 0 18px 40px rgba(19, 29, 56, 0.08);
    transform: translateY(-2px);
}

.genre-row-mark {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: #fff;
    font-size: 1.35rem;
    font-weight: 900;
}

.genre-row-main strong,
.genre-row-main small {
    display: block;
}

.genre-row-main strong {
    font-size: 1.1rem;
}

.genre-row-main small {
    margin-top: 5px;
    color: #66748f;
    font-weight: 700;
}

.genre-row-count {
    padding: 8px 12px;
    border-radius: 999px;
    color: #c6258f;
    background: #fff0f8;
    font-weight: 900;
    white-space: nowrap;
}

.genre-tone-warm {
    background: linear-gradient(135deg, #ff7a42, #d12eab);
}

.genre-tone-violet {
    background: linear-gradient(135deg, #7a4cf0, #d12eab);
}

.genre-tone-amber {
    background: linear-gradient(135deg, #ffb13b, #ff4f7b);
}

.genre-tone-green {
    background: linear-gradient(135deg, #16b57f, #ffb13b);
}

.genre-tone-pink {
    background: linear-gradient(135deg, #f22d86, #7a4cf0);
}

.genre-tone-blue {
    background: linear-gradient(135deg, #2477ff, #7a4cf0);
}

.genres-empty {
    margin-top: 18px;
}

@keyframes genreRise {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 900px) {
    .genres-hero-inner {
        grid-template-columns: 1fr;
        min-height: 620px;
        align-content: center;
    }

    .genres-hero-stats {
        align-self: auto;
        margin-bottom: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .genres-featured-grid,
    .genres-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .genres-hero,
    .genres-hero-inner {
        min-height: 660px;
    }

    .genres-search {
        grid-template-columns: 1fr;
    }

    .genres-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .genre-row {
        grid-template-columns: 48px 1fr;
    }

    .genre-row-count {
        grid-column: 2;
        justify-self: start;
    }
}

.page-archive-events .site-header.site-header-immersive {
    margin-bottom: -76px;
    background: linear-gradient(180deg, rgba(10, 15, 36, 0.92), rgba(10, 15, 36, 0.72));
    border-bottom-color: rgba(255, 255, 255, 0.06);
    box-shadow: none;
}

.header-inner {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: white;
    font-weight: 800;
    font-size: 1.25rem;
    letter-spacing: 0.3px;
}

.brand-with-image {
    gap: 0;
    max-width: min(260px, calc(100vw - 120px));
}

.brand-mark {
    width: calc(var(--site-header-logo-height, 56px) * 3.45);
    height: var(--site-header-logo-height, 56px);
    border-radius: 0;
    overflow: hidden;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    filter: drop-shadow(0 6px 16px rgba(12, 20, 42, 0.24));
}

.brand-logo-image {
    display: block;
    width: auto;
    height: var(--site-header-logo-height, 56px);
    max-width: none;
    max-height: none;
    margin-left: -1px;
}

.brand-wordmark {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.brand-badge {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    display: grid;
    place-items: center;
    font-weight: 800;
    box-shadow: 0 10px 30px rgba(124, 92, 255, 0.35);
}

.nav {
    display: flex;
    align-items: center;
    gap: 20px;
}

.nav-toggle {
    display: none;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.08);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
}

.nav-toggle-line {
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: white;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.nav-toggle.is-active .nav-toggle-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-toggle.is-active .nav-toggle-line:nth-child(2) {
    opacity: 0;
}

.nav-toggle.is-active .nav-toggle-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.nav a {
    color: rgba(255,255,255,0.88);
    font-weight: 600;
    font-size: 0.95rem;
    white-space: nowrap;
}

/* Header coerente per login, registrazione e flusso Proponi evento. */
.page-auth-redesign .site-header {
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid #e9edf5;
    box-shadow: 0 8px 28px rgba(16, 20, 47, 0.06);
}

.page-auth-redesign .header-inner {
    min-height: 68px;
}

.page-auth-redesign .brand-mark {
    width: calc(var(--site-header-logo-height, 54px) * 3.3);
    height: var(--site-header-logo-height, 54px);
    filter: none;
}

.page-auth-redesign .brand-logo-image {
    width: calc(var(--site-header-logo-height, 54px) * 3.3);
    height: var(--site-header-logo-height, 54px);
    object-fit: contain;
    object-position: left center;
}

.page-auth-redesign .nav {
    gap: 28px;
}

.page-auth-redesign .nav a {
    color: #151936;
    font-size: 0.88rem;
    font-weight: 800;
}

.page-auth-redesign .nav a:hover,
.page-auth-redesign .nav a.is-active {
    color: #7a48df;
}

.page-auth-redesign .nav a[href$="login.php"]:not(.btn) {
    color: #f3368b;
}

.page-auth-redesign .nav .btn-primary {
    color: #ffffff;
    background: linear-gradient(135deg, #f3368b, #ff8b3d);
    box-shadow: 0 12px 28px rgba(243, 54, 139, 0.24);
}

.page-auth-redesign .nav-toggle {
    border-color: #e1e6f0;
    background: #f5f7fb;
}

.page-auth-redesign .nav-toggle-line {
    background: #151936;
}

.nav-user-actions {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-left: 8px;
}

.nav-favorites {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #ffffff;
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.nav-favorites:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.2);
}

.nav-favorites-icon {
    font-size: 1.15rem;
    line-height: 1;
}

.nav-favorites-badge {
    position: absolute;
    top: -4px;
    right: -2px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #ff4d8d, #ff7ab2);
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(255, 77, 141, 0.32);
}

.nav-user-link {
    white-space: nowrap;
    color: rgba(255,255,255,0.94);
    font-weight: 700;
}

.nav a:hover {
    color: white;
}

.global-flash-wrap {
    position: fixed;
    top: 88px;
    right: 18px;
    width: min(420px, calc(100vw - 32px));
    z-index: 140;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
    transition: opacity 0.24s ease, transform 0.24s ease;
}

.global-flash-wrap.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.global-flash-wrap.is-hiding {
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
}

.global-flash-wrap .form-message {
    margin-bottom: 0;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    pointer-events: auto;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 999px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: white;
    box-shadow: 0 14px 30px rgba(124, 92, 255, 0.28);
}

.btn-secondary {
    background: rgba(255,255,255,0.12);
    color: white;
    border: 1px solid rgba(255,255,255,0.16);
}

.hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at top left, rgba(255, 77, 141, 0.28), transparent 35%),
        radial-gradient(circle at top right, rgba(124, 92, 255, 0.28), transparent 30%),
        linear-gradient(135deg, #09101f 0%, #141c39 50%, #0e1631 100%);
    color: white;
}

/* .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.16)),
        radial-gradient(circle at 70% 30%, rgba(255,179,71,0.14), transparent 25%);
    pointer-events: none;
} */

.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 75% 30%, rgba(255, 77, 141, 0.14), transparent 22%),
        radial-gradient(circle at 85% 55%, rgba(124, 92, 255, 0.12), transparent 24%);
    pointer-events: none;
}

/* .hero-inner {
    position: relative;
    z-index: 1;
    padding: 72px 0 84px;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 36px;
    align-items: center;
} */
 .hero-inner {
    position: relative;
    z-index: 1;
    padding: 72px 0 84px;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 36px;
    align-items: start;
}

.hero-text {
    max-width: 640px;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.09);
    border: 1px solid rgba(255,255,255,0.12);
    color: #f5f7ff;
    font-size: 0.9rem;
    font-weight: 700;
}

.hero h1 {
    margin: 0 0 18px;
    font-size: clamp(2.2rem, 5vw, 4.4rem);
    line-height: 1.02;
    letter-spacing: -1.8px;
}

.hero p {
    margin: 0 0 28px;
    color: var(--muted);
    font-size: 1.08rem;
    max-width: 560px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 28px;
}

.hero {
    position: relative;
    overflow: hidden;
    color: white;
    background:
        linear-gradient(90deg, rgba(7, 10, 28, 0.97) 0%, rgba(7, 10, 28, 0.94) 20%, rgba(7, 10, 28, 0.72) 40%, rgba(7, 10, 28, 0.28) 62%, rgba(7, 10, 28, 0.08) 100%),
        url('../uploads/hero/hero-salentomusic.png') center right / cover no-repeat;
}

.stats-strip {
    background: linear-gradient(180deg, #0a0f24 0%, #10172f 100%);
    padding: 22px 0 34px;
}

.hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.stat {
    min-width: 0;
    padding: 20px 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 14px;
    color: #fff;
}

.stat-icon svg {
    width: 48px;
    height: 48px;
    display: block;
    stroke: #c554bf;
    fill: none;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.stat strong {
    display: block;
    font-size: 1.9rem;
    line-height: 1;
    margin-bottom: 10px;
    color: #ffffff;
}

.stat span {
    display: block;
    color: #c9d1f0;
    font-size: 1rem;
    line-height: 1.45;
}

.stat strong,
.stat span {
    text-align: center;
}

/* .hero-card {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 28px;
    padding: 22px;
    box-shadow: var(--shadow);
} */

/* .hero-card {
    background: rgba(20, 24, 45, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 28px;
    padding: 22px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
} */

.hero-card {
    max-width: 520px;
    margin-left: auto;
    margin-top: 22px;
    /* background: rgba(20, 24, 45, 0.68); */
    background: rgb(134 34 124 / 40%);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 24px;
    padding: 18px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.hero-highlight {
    padding: 16px;
}

.hero-highlight h3 {
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.hero-highlight p {
    font-size: 0.95rem;
    margin-bottom: 12px;
}

/* .hero-highlight {
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    padding: 18px;
} */
 .hero-highlight {
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.10);
    padding: 16px;
}

.hero-card-top span {
    color: rgba(255,255,255,0.88);
}

.hero-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.hero-card-top span {
    color: var(--muted);
    font-size: 0.95rem;
    font-weight: 700;
}

.hero-card-live {
    padding: 8px 12px;
    border-radius: 999px;
    /* background: rgba(255, 77, 141, 0.18); */
    background: rgb(154 78 255 / 55%);
    color: #ffd7e6;
    font-size: 0.85rem;
    font-weight: 800;
}

.hero-highlight {
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.06));
    padding: 18px;
}

.hero-highlight h3 {
    margin: 0 0 8px;
    font-size: 1.35rem;
}

.hero-highlight p {
    margin: 0 0 14px;
    color: var(--muted);
    font-size: 0.98rem;
}

.mini-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.mini-meta span {
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 0.9rem;
    border: 1px solid rgba(255,255,255,0.1);
}

.section {
    padding: 76px 0;
}

.support-band {
    padding-top: 18px;
}

.support-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 24px;
    align-items: start;
}

.support-panel {
    background: white;
    border: 1px solid #eef1f7;
    border-radius: 28px;
    padding: 28px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.06);
}

.support-panel h2,
.support-panel h3 {
    margin: 0 0 10px;
    letter-spacing: -0.8px;
}

.support-panel p {
    margin: 0;
    color: #667085;
}

.quick-link-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.quick-link-pills a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 999px;
    background: #f5f7fb;
    border: 1px solid #e4e7ec;
    color: #1f2937;
    font-weight: 700;
    transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.quick-link-pills a:hover {
    transform: translateY(-1px);
    border-color: #d0d5dd;
    color: var(--primary-dark);
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 26px;
}

.section-head h2 {
    margin: 0 0 8px;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -1px;
}

.section-head p {
    margin: 0;
    color: var(--muted-dark);
    max-width: 640px;
}

.badge-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff1f6;
    color: var(--primary-dark);
    font-size: 0.88rem;
    font-weight: 800;
}

.event-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.event-card {
    background: white;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    border: 1px solid #eef1f7;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    display: flex;
    flex-direction: column;
}

.event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 26px 55px rgba(15, 23, 42, 0.13);
}

.event-media {
    position: relative;
    aspect-ratio: 16 / 10;
    background:
        linear-gradient(135deg, rgba(255,77,141,0.85), rgba(124,92,255,0.85)),
        linear-gradient(135deg, #1b2450, #0b1020);
    overflow: hidden;
}

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

.event-tag {
    position: absolute;
    left: 14px;
    top: 14px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(11, 16, 32, 0.78);
    color: white;
    font-size: 0.8rem;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.favorite-action {
    position: absolute;
    z-index: 2;
}

.favorite-action-inline {
    top: 14px;
    right: 14px;
}

.favorite-form {
    margin: 0;
}

.favorite-toggle {
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(11, 16, 32, 0.68);
    color: #ffffff;
    cursor: pointer;
    box-shadow: 0 16px 38px rgba(11, 16, 32, 0.26);
    backdrop-filter: blur(10px);
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.favorite-toggle:hover {
    transform: translateY(-1px);
    background: rgba(23, 30, 54, 0.82);
}

.favorite-toggle.is-active {
    background: linear-gradient(135deg, rgba(255, 77, 141, 0.94), rgba(124, 92, 255, 0.94));
    border-color: rgba(255, 255, 255, 0.22);
}

.favorite-toggle:disabled {
    opacity: 0.7;
    cursor: wait;
}

.favorite-toggle-icon {
    font-size: 1.08rem;
    line-height: 1;
}

.favorite-toggle.is-animating {
    animation: favorite-bounce 0.32s ease;
}

.favorite-toggle-icon.is-popping {
    animation: favorite-pop 0.28s ease;
}

.event-body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: 100%;
}

.event-date {
    font-size: 0.92rem;
    color: var(--muted-dark);
    font-weight: 700;
}

.event-title {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.2;
}

.event-desc {
    margin: 0;
    color: #475467;
    font-size: 0.97rem;
}

.event-meta {
    display: grid;
    gap: 10px;
    margin-top: auto;
}

.meta-row {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #344054;
    font-size: 0.95rem;
}

.meta-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #f5f7fb;
    display: grid;
    place-items: center;
    font-size: 0.95rem;
}

.event-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
}

.btn-favorite {
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.btn-favorite-active {
    background: rgba(255, 95, 143, 0.18);
    color: #ffd1df;
    border: 1px solid rgba(255, 95, 143, 0.4);
    box-shadow: none;
}

.event-link {
    color: var(--primary-dark);
    font-weight: 800;
}

.event-state {
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
}

.event-state-attivo,
.event-state-badge.event-state-attivo {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid #abefc6;
}

.event-state-annullato,
.event-state-badge.event-state-annullato {
    background: linear-gradient(135deg, #fff1f3, #ffe4e8);
    color: #b42318;
    border: 1px solid #fda29b;
    box-shadow: inset 0 0 0 1px rgba(180, 35, 24, 0.05);
}

.event-state-concluso,
.event-state-badge.event-state-concluso {
    background: #f2f4f7;
    color: #344054;
    border: 1px solid #d0d5dd;
}

.event-state-scaduto,
.event-state-badge.event-state-scaduto {
    background: #fff7e8;
    color: #b54708;
    border: 1px solid #f7b27a;
}

.page-archive-events .event-media {
    aspect-ratio: 16 / 7.4;
}

.page-archive-events .event-tag {
    left: 12px;
    top: 12px;
    padding: 7px 11px;
    font-size: 0.76rem;
}

.page-archive-events .favorite-action-inline {
    top: 12px;
    right: 12px;
}

.page-archive-events .favorite-toggle {
    width: 40px;
    height: 40px;
}

.page-archive-events .event-body {
    padding: 14px;
    gap: 8px;
}

.page-archive-events .event-date {
    font-size: 0.82rem;
}

.page-archive-events .event-title {
    font-size: 1.05rem;
    line-height: 1.18;
}

.page-archive-events .event-title a {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.page-archive-events .event-type-line {
    font-size: 0.8rem;
}

.page-archive-events .event-desc {
    font-size: 0.89rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.page-archive-events .event-meta {
    gap: 7px;
}

.page-archive-events .meta-row {
    gap: 8px;
    font-size: 0.86rem;
    align-items: flex-start;
}

.page-archive-events .meta-icon {
    width: 26px;
    height: 26px;
    border-radius: 9px;
    font-size: 0.74rem;
    flex: 0 0 auto;
}

.page-archive-events .event-meta .meta-row span:last-child {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page-archive-events .event-meta .meta-row:nth-child(1) span:last-child,
.page-archive-events .event-meta .meta-row:nth-child(3) span:last-child {
    -webkit-line-clamp: 1;
}

.page-archive-events .event-meta .meta-row:nth-child(2) span:last-child {
    -webkit-line-clamp: 1;
}

.page-archive-events .event-footer {
    padding-top: 2px;
}

.page-archive-events .event-state {
    padding: 6px 10px;
    font-size: 0.75rem;
}

.empty-box {
    padding: 34px;
    border-radius: 22px;
    background: white;
    border: 1px solid #eef1f7;
    text-align: center;
    box-shadow: 0 12px 35px rgba(15, 23, 42, 0.06);
}

.cta {
    position: relative;
    overflow: hidden;
    padding: 76px 0;
    background: url('../img/footer-banner.jpg') center top / cover no-repeat;
    color: white;
}

.cta .container,
.cta .cta-box {
    position: relative;
    z-index: 1;
}

.cta-box {
    background: #0d0a0d94;
    border: 1px solid #a26ba6;
    border-radius: 28px;
    padding: 34px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    box-shadow: 0px 0px 15px 0px #937996;
    backdrop-filter: none;
}

.cta-box h2 {
    margin: 0 0 10px;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -1px;
}

.cta-box p {
    margin: 0;
    color: #fff;
    max-width: 700px;
}

.site-footer {
    background:
        linear-gradient(90deg, rgba(7, 12, 31, 0.34), rgba(10, 13, 34, 0.16)),
        linear-gradient(180deg, rgba(7, 12, 31, 0.06), rgba(7, 12, 31, 0.55)),
        url('../img/footer-banner.webp') center / cover no-repeat;
    color: rgba(255,255,255,0.82);
    padding: 28px 0;
}

.ad-slot {
    padding: 18px 0;
}

.ad-slot-inline {
    padding-top: 22px;
}

.ad-slot-home-search {
    padding-top: 72px;
    padding-bottom: 18px;
}

.ad-slot-home-search .container {
    gap: 22px;
}

.ad-slot-footer {
    padding-bottom: 0;
}

.ad-card {
    width: 100%;
    max-width: var(--ad-width-desktop, 100%);
    margin: 0 auto;
    padding: 18px;
    border-radius: 22px;
    background: var(--ad-bg, #ffffff);
    border: 1px solid var(--ad-border, #e9edf5);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
}

.ad-slot-home-search .ad-card {
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
}

.ad-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.ad-card-minimal .ad-card-head {
    margin-bottom: 10px;
}

.ad-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff1f6;
    color: #c11574;
    font-size: 0.8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ad-card-head strong {
    color: #111827;
    font-size: 1rem;
}

.ad-media-link,
.ad-media {
    display: block;
}

.ad-media {
    width: 100%;
    height: var(--ad-height-desktop, auto);
    border-radius: 18px;
    object-fit: contain;
    background: transparent;
}

.ad-note {
    margin: 12px 0 0;
    color: #667085;
    font-size: 0.93rem;
    line-height: 1.6;
}

.ad-embed {
    width: 100%;
    min-height: var(--ad-height-desktop, auto);
    border-radius: 18px;
    overflow: hidden;
}

.ad-slot .container {
    display: grid;
    gap: 18px;
}

.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-brand {
    font-weight: 800;
    color: white;
}

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.footer-links a {
    color: rgba(255,255,255,0.78);
}

.scroll-top-button {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 54px;
    height: 54px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    box-shadow: 0 18px 38px rgba(124, 92, 255, 0.32);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    z-index: 90;
}

.scroll-top-button.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (max-width: 980px) {
    .hero-inner,
    .cta-box,
    .event-grid,
    .support-shell {
        grid-template-columns: 1fr;
    }

    .hero-inner {
        padding-top: 58px;
    }

    .section-head {
        align-items: start;
        flex-direction: column;
    }

    .profile-hero-main {
        grid-template-columns: 1fr;
    }

    .profile-meta-grid,
    .profile-stats {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .hero-stats {
        grid-template-columns: 1fr;
    }

    .archive-summary-grid {
        grid-template-columns: 1fr;
    }

    .stats-strip {
        padding: 18px 0 28px;
    }
}

@media (max-width: 980px) {
    .nav-toggle {
        display: inline-flex;
    }

    .header-inner {
        position: relative;
    }

    .nav {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 10px 16px 16px;
        background: rgba(11, 16, 32, 0.98);
        border-top: 1px solid rgba(255, 255, 255, 0.06);
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 22px 50px rgba(3, 7, 18, 0.28);
    }

    .nav.is-open {
        display: flex;
    }

    .nav a {
        display: block;
        width: 100%;
        padding: 12px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .nav a.btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 0 20px;
        border-bottom: 0;
    }

    .nav > a:last-of-type {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .nav-user-actions {
        display: grid;
        gap: 12px;
        margin-left: 0;
        padding-top: 14px;
    }

    .nav-user-actions .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .nav-favorites {
        width: 46px;
        height: 46px;
        align-self: center;
    }

    .nav-user-link {
        white-space: normal;
        text-align: center;
    }

    .page-auth-redesign .nav {
        background: rgba(255, 255, 255, 0.98);
        border-color: #e9edf5;
    }

    .page-auth-redesign .nav a {
        color: #151936;
        border-bottom-color: #edf1f7;
        white-space: normal;
    }

}

@media (max-width: 760px) {

    .header-inner {
        min-height: 72px;
    }

    .brand-with-image {
        max-width: calc(100vw - 96px);
        gap: 0;
    }

    .brand-mark {
        width: calc(var(--site-header-logo-height-mobile, 46px) * 3.45);
        height: var(--site-header-logo-height-mobile, 46px);
    }

    .brand-logo-image {
        height: var(--site-header-logo-height-mobile, 46px);
    }

    .brand-wordmark {
        position: absolute;
    }

    .page-auth-redesign .brand-mark,
    .page-auth-redesign .brand-logo-image {
        width: calc(var(--site-header-logo-height-mobile, 46px) * 3.3);
        height: var(--site-header-logo-height-mobile, 46px);
    }

    .hero h1 {
        letter-spacing: -1.2px;
    }

    .hero-actions {
    flex-direction: column;
    align-items: stretch;
}

    .archive-hero-shell {
        padding: 24px;
    }

    .profile-hero-card {
        padding: 22px;
    }

    .profile-avatar {
        width: 72px;
        height: 72px;
        border-radius: 22px;
        font-size: 1.5rem;
    }

    .ad-card {
        max-width: var(--ad-width-mobile, 100%);
    }

    .ad-media {
        height: var(--ad-height-mobile, auto);
    }

    .ad-embed {
        min-height: var(--ad-height-mobile, auto);
    }

    /* .hero-actions,
    .hero-stats {
        flex-direction: column;
        align-items: stretch;
    }

    .stat {
        min-width: auto;
    } */

    .section,
    .cta {
        padding: 58px 0;
    }

    .cta-box,
    .hero-card {
        padding: 22px;
    }
}

/* Evento page styles */
.event-page {
    background: #f6f8fc;
}

.event-hero {
    padding: 46px 0 38px;
    background:
        radial-gradient(circle at top left, rgba(255, 77, 141, 0.14), transparent 30%),
        radial-gradient(circle at top right, rgba(124, 92, 255, 0.14), transparent 30%),
        linear-gradient(135deg, #0b1020 0%, #141c39 100%);
    color: white;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
    color: rgba(255,255,255,0.78);
    font-size: 0.95rem;
}

.breadcrumb a {
    color: white;
    font-weight: 700;
}

.event-hero-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 28px;
    align-items: start;
}

.event-cover {
    aspect-ratio: 16 / 10;
    min-height: 360px;
    border-radius: 26px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.72);
    background:
        linear-gradient(135deg, rgba(255,77,141,0.85), rgba(124,92,255,0.85)),
        linear-gradient(135deg, #1b2450, #0b1020);
    box-shadow: 0 22px 55px rgba(0,0,0,0.24);
}

.event-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.event-cover-placeholder {
    height: 100%;
    min-height: 380px;
    display: grid;
    place-items: center;
    font-size: 2rem;
    font-weight: 800;
    text-align: center;
    padding: 24px;
}

.event-cover-placeholder span {
    padding: 16px 24px;
    border-radius: 20px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.14);
}

.event-summary-card {
    background: rgba(16, 19, 32, 0.58);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 26px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    box-shadow: 0 18px 45px rgba(0,0,0,0.2);
}

.event-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 16px;
}

.event-pill,
.event-state-badge {
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 800;
}

.event-pill {
    background: rgba(255,255,255,0.12);
    color: white;
    border: 1px solid rgba(255,255,255,0.14);
}

.event-state-badge {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.event-main-title {
    margin: 0 0 16px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.02;
    letter-spacing: -1.4px;
    text-shadow: 0 10px 30px rgba(7, 10, 28, 0.34);
}

.event-main-desc {
    margin: 0 0 24px;
    color: #d7def8;
    font-size: 1.03rem;
}

.event-summary-location {
    color: #e7ecff;
    font-size: 1rem;
    font-weight: 700;
    margin: -4px 0 2px;
}

.event-main-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.event-hero-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.event-hero-quicklinks a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #f5f7ff;
    font-size: 0.92rem;
    font-weight: 700;
    transition: transform 0.2s ease, background 0.2s ease;
}

.event-hero-quicklinks a:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.14);
}

.event-hero-support-note {
    margin: 14px 0 0;
    color: #d7def8;
    font-size: 0.95rem;
    line-height: 1.65;
}

.btn-secondary-dark {
    background: rgba(255,255,255,0.1);
    color: white;
    border: 1px solid rgba(255,255,255,0.16);
}

.event-content-section {
    padding-top: 40px;
}

.event-content-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 28px;
    align-items: start;
}

.event-content-main {
    display: grid;
    gap: 24px;
}

.event-layout-shell {
    display: grid;
    gap: 26px;
}

.detail-card,
.sidebar-card {
    background: white;
    border-radius: 22px;
    border: 1px solid #eef1f7;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
}

.detail-card {
    padding: 26px;
    overflow: hidden;
}

.detail-card-featured {
    padding: 28px;
}

.detail-card-sectioned {
    display: grid;
    gap: 22px;
}

.sidebar-card {
    padding: 22px;
}

.detail-card-head {
    margin-bottom: 18px;
}

.detail-card-head h2,
.sidebar-card h3 {
    margin: 0;
    font-size: 1.45rem;
}

.detail-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.detail-item {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 16px;
    border: 1px solid #eef1f7;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfcff 0%, #f8faff 100%);
}

.detail-item:last-child {
    padding-bottom: 16px;
}

.detail-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: #f5f7fb;
    color: #111827;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.06);
}

.detail-icon svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.detail-item strong {
    display: block;
    margin-bottom: 5px;
    font-size: 1rem;
}

.detail-item p,
.detail-text,
.sidebar-muted,
.quick-list {
    margin: 0;
    color: #475467;
}

.detail-text {
    line-height: 1.7;
    font-size: 1rem;
}

.detail-text-rich {
    font-size: 1.04rem;
    line-height: 1.95;
    color: #344054;
}

.detail-text-rich p {
    margin: 0 0 18px;
}

.detail-text-rich p:last-child {
    margin-bottom: 0;
}

.detail-text-rich ul {
    margin: 0;
    padding-left: 24px;
    display: grid;
    gap: 12px;
}

.event-sidebar {
    display: grid;
    gap: 20px;
    position: sticky;
    top: 98px;
}

.event-sidebar-short {
    align-self: start;
}

.sidebar-big {
    margin: 0 0 8px;
    font-size: 1.12rem;
    font-weight: 800;
}

.sidebar-muted {
    font-size: 0.95rem;
}

.quick-list {
    padding-left: 18px;
    margin: 0 0 20px;
    display: grid;
    gap: 10px;
}

.btn-full {
    width: 100%;
}

@media (max-width: 980px) {
    .event-hero-grid,
    .event-content-grid {
        grid-template-columns: 1fr;
    }

    .detail-list {
        grid-template-columns: 1fr;
    }

    .event-sidebar {
        position: static;
    }
}

@media (max-width: 760px) {
    .event-hero {
        padding: 34px 0 28px;
    }

    .event-summary-card,
    .detail-card,
    .sidebar-card {
        padding: 20px;
    }

    .event-cover,
    .event-cover-placeholder {
        min-height: 260px;
    }

    .event-map-frame {
        height: 300px;
    }
}

/* Auth pages */
.auth-page {
    background:
        radial-gradient(circle at top left, rgba(255, 77, 141, 0.08), transparent 22%),
        radial-gradient(circle at top right, rgba(124, 92, 255, 0.08), transparent 22%),
        #f6f8fc;
}

.auth-container {
    display: flex;
    justify-content: center;
}

.auth-card {
    width: 100%;
    max-width: 820px;
    background: white;
    border: 1px solid #eef1f7;
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
    padding: 32px;
}

.auth-card-small {
    max-width: 560px;
}

.auth-card h1 {
    margin: 0 0 10px;
    font-size: clamp(2rem, 3vw, 2.7rem);
    line-height: 1.05;
    letter-spacing: -1px;
}

.auth-intro {
    margin: 0 0 24px;
    color: #667085;
}

.auth-form {
    display: grid;
    gap: 18px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.auth-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
    color: #344054;
}

.auth-form input,
.auth-form select {
    width: 100%;
    min-height: 48px;
    border: 1px solid #d0d5dd;
    border-radius: 14px;
    padding: 0 14px;
    font-size: 1rem;
    background: white;
    color: #111827;
}

.auth-form input:focus,
.auth-form select:focus {
    outline: none;
    border-color: #7c5cff;
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}

.form-message {
    padding: 14px 16px;
    border-radius: 14px;
    font-weight: 600;
    margin-bottom: 18px;
}

.form-message.error {
    background: #fef3f2;
    color: #b42318;
    border: 1px solid #fecdca;
}

.form-message.success {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid #abefc6;
}

@keyframes favorite-bounce {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.12);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes favorite-pop {
    0% {
        transform: scale(1);
    }

    45% {
        transform: scale(1.24);
    }

    100% {
        transform: scale(1);
    }
}

.auth-bottom-text {
    margin: 0;
    text-align: center;
    color: #667085;
}

.auth-bottom-text a {
    color: #d92f6f;
    font-weight: 700;
}
.auth-form textarea {
    width: 100%;
    border: 1px solid #d0d5dd;
    border-radius: 14px;
    padding: 12px 14px;
    font-size: 1rem;
    background: white;
    color: #111827;
    font-family: inherit;
    resize: vertical;
}

.auth-form textarea:focus {
    outline: none;
    border-color: #7c5cff;
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}

@media (max-width: 760px) {
    .auth-card {
        padding: 22px;
    }

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

.btn-attending {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid #abefc6;
    box-shadow: none;
}

.btn-attending:hover {
    transform: translateY(-1px);
    background: #ddf7e7;
}

/* Comment section */
.comment-form {
    display: grid;
    gap: 18px;
    margin-bottom: 28px;
}

.comment-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
    color: #344054;
}

.comment-form textarea,
.comment-form select {
    width: 100%;
    border: 1px solid #d0d5dd;
    border-radius: 14px;
    padding: 12px 14px;
    font-size: 1rem;
    background: white;
    color: #111827;
    font-family: inherit;
}

.comment-form textarea:focus,
.comment-form select:focus {
    outline: none;
    border-color: #7c5cff;
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}

.comment-login-box {
    padding: 18px;
    border-radius: 18px;
    background: #f8f9fc;
    border: 1px solid #eef1f7;
    margin-bottom: 24px;
}

.comment-login-box p {
    margin: 0 0 14px;
    color: #475467;
}

.comment-list {
    display: grid;
    gap: 18px;
}

.comment-card {
    padding: 20px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.comment-head {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 16px;
    margin-bottom: 12px;
}

.comment-date {
    margin-top: 4px;
    font-size: 0.92rem;
    color: #667085;
}

.comment-rating {
    font-size: 1.1rem;
    color: #f59e0b;
    font-weight: 800;
    white-space: nowrap;
}

.comment-text {
    color: #344054;
    line-height: 1.7;
}

/* organizzatore i miei eventi */
.page-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.page-title {
    margin: 0 0 8px;
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.page-subtitle {
    margin: 0;
    color: #667085;
    max-width: 720px;
    line-height: 1.7;
}

.page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.btn-light {
    background: #f2f4f7;
    color: #111827;
    border: 1px solid #e4e7ec;
}

.btn-danger-outline {
    background: #fff;
    color: #b42318;
    border: 1px solid #fecdca;
}

.btn-danger-outline:hover {
    background: #fef3f2;
}

.profile-page {
    background:
        radial-gradient(circle at top left, rgba(255, 77, 141, 0.06), transparent 24%),
        radial-gradient(circle at top right, rgba(124, 92, 255, 0.06), transparent 24%),
        #f6f8fc;
}

.profile-shell {
    display: grid;
    gap: 26px;
}

.profile-hero-card {
    background:
        linear-gradient(120deg, rgba(9, 16, 31, 0.96) 0%, rgba(15, 22, 49, 0.9) 42%, rgba(24, 26, 59, 0.76) 100%),
        url('../uploads/hero/hero-salentomusic.png') center right / cover no-repeat;
    color: white;
    border-radius: 30px;
    padding: 30px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.14);
    overflow: hidden;
    position: relative;
}

.profile-hero-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 16% 20%, rgba(255, 77, 141, 0.18), transparent 26%),
        radial-gradient(circle at 82% 36%, rgba(124, 92, 255, 0.18), transparent 24%);
    pointer-events: none;
}

.profile-hero-main,
.profile-stats,
.profile-actions {
    position: relative;
    z-index: 1;
}

.profile-hero-main {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 22px;
    align-items: start;
}

.profile-avatar {
    width: 88px;
    height: 88px;
    border-radius: 28px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 1.8rem;
    font-weight: 800;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.profile-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #f5f7ff;
    font-size: 0.84rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.profile-title {
    margin: 14px 0 10px;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.profile-summary {
    margin: 0;
    max-width: 58ch;
    color: #d7def8;
    line-height: 1.7;
}

.profile-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.profile-meta-card {
    min-width: 0;
    padding: 16px 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
}

.profile-meta-card strong,
.profile-stat-card strong {
    display: block;
    margin-bottom: 8px;
}

.profile-meta-card strong {
    color: #fff;
    font-size: 0.98rem;
}

.profile-meta-card span {
    color: #d7def8;
    font-size: 0.95rem;
    word-break: break-word;
}

.profile-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.profile-stat-card {
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.profile-stat-card strong {
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
}

.profile-stat-card span {
    color: #d7def8;
    font-size: 0.94rem;
}

.profile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.profile-card {
    max-width: 1120px;
    margin: 0 auto;
}

.profile-events-head {
    margin-bottom: 22px;
}

.manage-grid {
    display: grid;
    gap: 24px;
}

.manage-card {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 0;
    background: white;
    border: 1px solid #eef1f7;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.07);
}

.manage-media {
    position: relative;
    min-height: 240px;
    background:
        linear-gradient(135deg, rgba(255,77,141,0.85), rgba(124,92,255,0.85)),
        linear-gradient(135deg, #1b2450, #0b1020);
}

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

.manage-placeholder {
    height: 100%;
    min-height: 240px;
    display: grid;
    place-items: center;
    padding: 20px;
    text-align: center;
}

.manage-placeholder span {
    padding: 14px 18px;
    border-radius: 18px;
    background: rgba(255,255,255,0.12);
    color: white;
    font-size: 1.2rem;
    font-weight: 800;
    border: 1px solid rgba(255,255,255,0.16);
}

.manage-state {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
}

.state-attivo {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid #abefc6;
}

.state-annullato {
    background: linear-gradient(135deg, #fff1f3, #ffe4e8);
    color: #b42318;
    border: 1px solid #fda29b;
}

.state-concluso {
    background: #f2f4f7;
    color: #344054;
    border: 1px solid #d0d5dd;
}

.state-scaduto {
    background: #fff7e8;
    color: #b54708;
    border: 1px solid #f7b27a;
}

.manage-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.manage-date {
    color: #667085;
    font-size: 0.95rem;
    font-weight: 700;
}

.manage-title {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.manage-meta {
    display: grid;
    gap: 10px;
    color: #344054;
}

.manage-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: auto;
}

.favorites-intro-card,
.favorites-shell-card {
    max-width: 1120px;
    margin: 0 auto 28px;
}

.favorites-shell-card {
    margin-bottom: 0;
}

.favorites-summary {
    margin-top: 10px;
    font-weight: 700;
}

.favorite-page-card {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.favorite-page-card.is-removing {
    opacity: 0;
    transform: scale(0.98);
}

.favorites-empty-state.is-hidden {
    display: none;
}

.favorite-remove-form {
    margin: 0;
}

.favorite-remove-button:disabled {
    opacity: 0.65;
    cursor: default;
}

@media (max-width: 900px) {
    .manage-card {
        grid-template-columns: 1fr;
    }

    .manage-media,
    .manage-placeholder {
        min-height: 220px;
    }

    .organizer-stats {
        grid-template-columns: 1fr;
    }
}

/* organizzatore modifica evento */
.edit-image-box {
    border: 1px solid #e4e7ec;
    border-radius: 18px;
    padding: 14px;
    background: #fafbff;
}

.edit-image-box img {
    width: 100%;
    max-width: 280px;
    border-radius: 14px;
    display: block;
    margin-bottom: 12px;
    object-fit: cover;
}

.edit-image-empty {
    min-height: 120px;
    border: 1px dashed #d0d5dd;
    border-radius: 18px;
    display: grid;
    place-items: center;
    padding: 16px;
    background: #fafbff;
    color: #667085;
}

.checkbox-inline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    color: #344054;
}

.checkbox-inline input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

/* organizzatore elimina evento */
.delete-summary {
    display: grid;
    gap: 12px;
    padding: 18px;
    border: 1px solid #fecdca;
    background: #fff7f6;
    border-radius: 18px;
    margin-bottom: 22px;
    color: #344054;
}

.delete-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.btn-danger {
    background: #d92d20;
    color: white;
    border: 1px solid #d92d20;
}

.btn-danger:hover {
    background: #b42318;
}

/* Search section */
.search-bar-wrap {
    position: relative;
    margin-top: -24px;
    z-index: 5;
}

.search-bar-card {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid #eceff5;
    border-radius: 30px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.14);
    padding: 26px 28px;
    backdrop-filter: blur(8px);
    max-width: 1180px;
    margin: 0 auto;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.search-bar-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 28px 70px rgba(15, 23, 42, 0.16);
    border-color: #e3e8f3;
}

.results-count {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    margin-top: 12px;
    padding: 0 12px;
    border-radius: 999px;
    background: #f5f7ff;
    border: 1px solid #e3e8fb;
    color: #475467;
    font-size: 0.9rem;
    font-weight: 700;
}

.results-count strong {
    color: #111827;
}

.pagination-summary {
    margin-left: 10px;
    color: #667085;
}

.archive-hero {
    padding: 44px 0 20px;
}

.page-archive-events .archive-hero {
    padding-top: 0;
}

.archive-hero-shell {
    position: relative;
    overflow: hidden;
    border-radius: 34px;
    background:
        linear-gradient(120deg, rgba(9, 16, 31, 0.96) 0%, rgba(15, 22, 49, 0.9) 40%, rgba(24, 26, 59, 0.7) 100%),
        url('../uploads/hero/hero-salentomusic.png') center right / cover no-repeat;
    color: #fff;
    padding: 34px;
    box-shadow: 0 22px 50px rgba(8, 15, 40, 0.18);
}

.page-archive-events .archive-hero-shell {
    padding-top: 118px;
}

.archive-hero-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 20%, rgba(255, 77, 141, 0.22), transparent 28%),
        radial-gradient(circle at 84% 38%, rgba(124, 92, 255, 0.18), transparent 24%);
    pointer-events: none;
}

.archive-hero-content,
.archive-summary-grid {
    position: relative;
    z-index: 1;
}

.archive-hero-content {
    max-width: 760px;
}

.archive-hero h1 {
    margin: 0 0 12px;
    font-size: clamp(2.1rem, 4vw, 3.8rem);
    line-height: 1.02;
    letter-spacing: -1.4px;
}

.archive-hero p {
    margin: 0;
    color: #d5dcf4;
    max-width: 58ch;
}

.archive-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
}

.archive-summary-card {
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
}

.archive-summary-card strong {
    display: block;
    margin-bottom: 8px;
    font-size: 1.3rem;
    color: #fff;
}

.archive-summary-card span {
    color: #d5dcf4;
    font-size: 0.94rem;
}

.archive-search-layout {
    display: grid;
    gap: 22px;
}

.archive-search-card .search-box-title {
    margin-bottom: 18px;
}

.filter-active-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0 0;
}

.filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff1f6;
    color: #c11574;
    font-size: 0.9rem;
    font-weight: 700;
}

.search-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 18px;
    align-items: end;
}

.search-grid-extended {
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
}

.search-field {
    display: grid;
    gap: 10px;
}

.search-field label {
    font-size: 0.95rem;
    font-weight: 800;
    color: #344054;
}

.search-field input,
.search-field select {
    width: 100%;
    min-height: 56px;
    border: 1px solid #cfd6e4;
    border-radius: 18px;
    padding: 0 18px;
    font-size: 1rem;
    background: #fff;
    color: #111827;
}

.search-field input:focus,
.search-field select:focus {
    outline: none;
    border-color: #7c5cff;
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}

.search-actions {
    display: flex;
    gap: 14px;
    margin-top: 22px;
    justify-content: flex-end;
    align-items: center;
}


.search-box-title {
    margin-bottom: 20px;
}

.search-box-title h2 {
    margin: 0 0 6px;
    font-size: 1.4rem;
    line-height: 1.1;
    color: #111827;
}

.search-box-title p {
    margin: 0;
    color: #667085;
    font-size: 0.98rem;
}

.multi-select {
    min-height: 168px !important;
    padding: 10px 12px !important;
}

.field-hint {
    margin: 8px 0 0;
    color: #667085;
    font-size: 0.9rem;
}

.event-type-line {
    color: #7c5cff;
    font-weight: 800;
    font-size: 0.92rem;
}

.detail-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.detail-pill {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 0.86rem;
    font-weight: 700;
}

.detail-extra-note {
    margin-top: 8px !important;
    color: #667085 !important;
    font-size: 0.95rem;
}

.map-card {
    display: grid;
    gap: 16px;
}

.event-map-wrap {
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
}

.event-map-frame {
    display: block;
    width: 100%;
    height: 360px;
    border: 0;
}

.map-note {
    margin: 14px 0 0;
    color: #667085;
    font-size: 0.95rem;
    line-height: 1.65;
}

.map-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}

.map-query {
    padding: 14px 16px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e4e7ec;
    color: #344054;
    font-size: 0.95rem;
}

.organizer-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 30px;
}

.organizer-stat-card {
    background: white;
    border: 1px solid #eef1f7;
    border-radius: 20px;
    padding: 20px 22px;
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.05);
}

.organizer-stat-card strong {
    display: block;
    margin-bottom: 8px;
    font-size: 1.8rem;
    color: #111827;
}

.organizer-stat-card span {
    color: #667085;
    font-weight: 600;
}

.genre-pill-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 16px;
}

.genre-pill-card {
    background: white;
    border: 1px solid #eef1f7;
    border-radius: 18px;
    padding: 18px 16px;
    text-align: center;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    font-weight: 800;
}

.genre-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.genre-link {
    min-width: 184px;
    min-height: 82px;
    padding: 18px 20px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #eef1f7;
    box-shadow: 0 12px 35px rgba(15, 23, 42, 0.06);
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    color: #0f172a;
    font-weight: 800;
    font-size: 1rem;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.genre-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.09);
    border-color: #e4d7fb;
}

.genre-link-icon {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #ff4d8d, #8b5cf6);
    color: #ffffff;
    font-size: 1.1rem;
    line-height: 1;
    box-shadow: 0 10px 24px rgba(124, 92, 255, 0.24);
}

/* Compact event page refinement */
.event-summary-card-compact {
    gap: 18px;
    justify-content: flex-start;
}

.event-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.event-hero-meta-item {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #e7ecff;
    font-size: 0.9rem;
    font-weight: 700;
}

.event-summary-pills {
    margin-bottom: 0;
    gap: 8px;
}

.event-inline-notice {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(236, 253, 243, 0.12);
    border: 1px solid rgba(171, 239, 198, 0.35);
    color: #d9ffe9;
    font-weight: 700;
    font-size: 0.92rem;
}

.event-notice-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.detail-card-subtitle {
    margin: 10px 0 0;
    color: #667085;
    max-width: 720px;
}

.editor-content {
    color: #243041;
    line-height: 1.8;
    font-size: 1rem;
    max-width: 860px;
}

.editor-content > *:first-child {
    margin-top: 0;
}

.editor-content > *:last-child {
    margin-bottom: 0;
}

.editor-content h2,
.editor-content h3 {
    color: #101828;
    line-height: 1.2;
    letter-spacing: -0.03em;
}

.editor-content h2 {
    margin-top: 34px;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
}

.editor-content h3 {
    margin-top: 26px;
    font-size: clamp(1.2rem, 2vw, 1.45rem);
}

.editor-content a {
    color: #1247d6;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
}

.editor-content p + p {
    margin-top: 14px;
}

.editor-content ul,
.editor-content ol {
    padding-left: 22px;
}

.editor-content blockquote {
    margin: 24px 0;
    padding: 18px 20px;
    border-left: 4px solid #7c5cff;
    border-radius: 0 18px 18px 0;
    background: #f7f8ff;
    color: #344054;
}

.detail-fact-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}

.detail-fact-strip-essentials {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 0;
}

.detail-fact-chip {
    padding: 16px 18px;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfbff, #f6f8ff);
    border: 1px solid #ebeefd;
}

.detail-fact-chip-essentials {
    min-height: 128px;
    /* display: flex; */
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    gap: 0;
    position: relative;
    padding-top: 20px;
}

.detail-fact-icon {
    width: 42px;
    height: 42px;
    margin-bottom: 16px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #ffffff, #f2f5ff);
    border: 1px solid #e4e9fb;
    color: #7c5cff;
    box-shadow: 0 8px 16px rgba(124, 92, 255, 0.08);
}

.detail-fact-icon svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.detail-fact-label {
    display: inline;
    margin-bottom: 10px;
    color: #7c5cff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.detail-fact-chip strong {
    display: block;
    color: #111827;
    font-size: 1rem;
    margin-bottom: 0;
}

.detail-fact-chip small {
    display: block;
    margin-top: 6px;
    color: #667085;
    font-size: 0.9rem;
}

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

.detail-group-card {
    padding: 20px;
    border-radius: 20px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.detail-group-card h3 {
    margin: 0 0 14px;
    font-size: 1.05rem;
}

.detail-group-list {
    display: grid;
    gap: 12px;
}

.detail-group-row {
    padding-bottom: 12px;
    border-bottom: 1px solid #edf0f6;
}

.detail-group-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.detail-group-row span {
    display: block;
    margin-bottom: 6px;
    color: #667085;
    font-size: 0.9rem;
    font-weight: 700;
}

.detail-group-row strong {
    color: #111827;
    font-size: 0.98rem;
}

.detail-group-copy {
    color: #344054;
    line-height: 1.7;
}

.detail-group-subcopy {
    margin: -4px 0 14px;
    color: #667085;
}

.detail-group-note {
    margin-top: 4px;
    color: #667085;
    line-height: 1.6;
}

.detail-group-card-empty {
    background: linear-gradient(180deg, #fbfbff, #f7f9ff);
}

.detail-highlight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.detail-highlight-card {
    padding: 18px 18px 16px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.detail-highlight-card strong {
    display: block;
    font-size: 1.05rem;
    color: #111827;
}

.detail-highlight-card p {
    margin: 6px 0 0;
    color: #667085;
}

.detail-highlight-label {
    display: inline-block;
    margin-bottom: 8px;
    color: #7c5cff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.detail-grid-compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
}

.detail-compact-item {
    padding: 16px 0;
    border-bottom: 1px solid #eef1f7;
}

.detail-compact-item-full {
    grid-column: 1 / -1;
}

.detail-compact-label {
    display: block;
    margin-bottom: 8px;
    color: #111827;
    font-size: 0.95rem;
    font-weight: 800;
}

.detail-compact-item p {
    margin: 0;
    color: #475467;
}

.detail-section-block {
    margin-top: 26px;
    padding-top: 24px;
    border-top: 1px solid #eef1f7;
}

.detail-section-block-last {
    padding-bottom: 4px;
}

.detail-section-head {
    margin-bottom: 14px;
}

.detail-section-head-spacious {
    margin-bottom: 4px;
}

.detail-section-head h3 {
    margin: 0 0 6px;
    font-size: 1.6rem;
    letter-spacing: -0.03em;
}

.detail-section-head p {
    margin: 0;
    color: #667085;
}

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

.detail-support-card {
    padding: 16px 18px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.detail-support-card p {
    margin: 0;
    color: #475467;
}

.detail-support-card-full {
    grid-column: 1 / -1;
}

.map-card-inline {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 18px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.map-card-event {
    padding: 16px;
}

.map-card-copy strong {
    display: block;
    margin-bottom: 6px;
    font-size: 1rem;
    color: #111827;
}

.sidebar-card-compact {
    padding: 20px;
}

.sidebar-card-sectioned {
    gap: 0;
}

.sidebar-section h3 {
    margin-bottom: 10px;
}

.sidebar-person {
    display: flex;
    align-items: center;
    gap: 14px;
}

.sidebar-avatar,
.artist-avatar {
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: white;
    font-weight: 800;
    letter-spacing: 0.04em;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.28);
}

.sidebar-avatar {
    width: 58px;
    height: 58px;
    font-size: 1rem;
    flex-shrink: 0;
}

.sidebar-link:hover {
    color: #7c5cff;
}

.sidebar-map-card {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.sidebar-map-surface {
    position: relative;
    min-height: 170px;
    border-radius: 20px;
    border: 1px solid #eef1f7;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.86), rgba(255,255,255,0.7)),
        radial-gradient(circle at 25% 25%, rgba(124, 92, 255, 0.12), transparent 25%),
        radial-gradient(circle at 72% 60%, rgba(255, 77, 141, 0.14), transparent 22%),
        linear-gradient(140deg, #eef5ff 0%, #f7f9ff 100%);
    overflow: hidden;
}

.sidebar-map-surface::before,
.sidebar-map-surface::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.55;
}

.sidebar-map-surface::before {
    background:
        linear-gradient(90deg, transparent 0 18%, rgba(151, 160, 183, 0.18) 18% 20%, transparent 20% 42%, rgba(151, 160, 183, 0.16) 42% 44%, transparent 44% 100%),
        linear-gradient(0deg, transparent 0 24%, rgba(151, 160, 183, 0.16) 24% 26%, transparent 26% 60%, rgba(151, 160, 183, 0.14) 60% 62%, transparent 62% 100%);
}

.sidebar-map-surface::after {
    background:
        radial-gradient(circle at 78% 28%, rgba(128, 208, 199, 0.2), transparent 18%),
        radial-gradient(circle at 30% 74%, rgba(124, 92, 255, 0.1), transparent 20%);
}

.sidebar-map-pin {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    box-shadow: 0 0 0 8px rgba(255, 77, 141, 0.15);
}

.sidebar-map-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.participation-stat {
    display: inline-grid;
    gap: 4px;
    margin-bottom: 12px;
}

.participation-stat strong {
    font-size: 2rem;
    line-height: 1;
    color: #111827;
}

.participation-stat span {
    color: #667085;
    font-size: 0.95rem;
    font-weight: 700;
}

.sidebar-actions-stack {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.sidebar-action-form {
    margin: 0;
}

.share-menu {
    position: relative;
}

.share-menu summary {
    list-style: none;
}

.share-menu summary::-webkit-details-marker {
    display: none;
}

.share-menu-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 10px);
    z-index: 10;
    width: min(100%, 260px);
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid #eef1f7;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    display: grid;
    gap: 8px;
}

.share-menu-panel a,
.share-menu-panel button {
    width: 100%;
    padding: 11px 12px;
    border-radius: 12px;
    border: 1px solid #eef1f7;
    background: #fafbff;
    color: #111827;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.share-menu-panel a:hover,
.share-menu-panel button:hover {
    background: #f3f5ff;
}

.share-feedback {
    min-height: 18px;
    margin: 2px 2px 0;
    color: #667085;
    font-size: 0.85rem;
}

.artist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.artist-card {
    padding: 22px;
    border-radius: 22px;
    border: 1px solid #eef1f7;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.05);
    display: grid;
    gap: 18px;
}

.artist-card-top {
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 16px;
    align-items: center;
    padding-bottom: 18px;
    border-bottom: 1px solid #eef1f7;
}

.artist-avatar {
    width: 74px;
    height: 74px;
    font-size: 1.8rem;
}

.artist-card-intro h4 {
    margin: 0 0 6px;
    font-size: 1.5rem;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.artist-card-genre {
    margin: 0;
    color: #667085;
    font-size: 1rem;
}

.artist-card-copy {
    margin: 0;
    color: #344054;
    line-height: 1.8;
}

.artist-card-copy-muted {
    color: #667085;
}

.avatar-tone-a {
    background: linear-gradient(135deg, #49b6c3, #7fd8c3);
}

.avatar-tone-b {
    background: linear-gradient(135deg, #8f68d8, #be8fe8);
}

.avatar-tone-c {
    background: linear-gradient(135deg, #ff7c87, #ffb36b);
}

.avatar-tone-d {
    background: linear-gradient(135deg, #4d7cff, #6db7ff);
}

.avatar-tone-e {
    background: linear-gradient(135deg, #4c9b74, #82c785);
}

.sidebar-divider {
    height: 1px;
    margin: 18px 0;
    background: #eef1f7;
}

.comment-form-compact {
    padding: 18px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px solid #eef1f7;
}

.comment-form-top {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 18px;
}

.comment-form-top > div {
    width: 220px;
}

.comments-empty {
    padding: 18px 20px;
    border-radius: 18px;
    background: #fafbff;
    border: 1px dashed #d0d5dd;
    text-align: center;
}

.comments-empty strong {
    display: block;
    margin-bottom: 6px;
    color: #111827;
}

.comments-empty p {
    margin: 0;
    color: #667085;
}

.comments-card {
    max-width: 100%;
}

@media (max-width: 980px) {
    .detail-fact-strip,
    .detail-groups-grid,
    .detail-highlight-grid,
    .detail-grid-compact,
    .artist-grid,
    .detail-support-grid {
        grid-template-columns: 1fr;
    }

    .map-card-inline {
        grid-template-columns: 1fr;
    }

    .sidebar-map-actions {
        grid-template-columns: 1fr;
    }

    .share-menu-panel {
        position: static;
        width: 100%;
        margin-top: 10px;
    }
}

@media (max-width: 760px) {
    .event-hero-meta {
        gap: 8px;
    }

    .event-hero-meta-item,
    .event-inline-notice {
        width: 100%;
        justify-content: center;
    }

    .event-summary-location {
        font-size: 0.95rem;
    }

    .event-main-desc {
        margin-bottom: 18px;
        font-size: 0.98rem;
    }

    .event-summary-card-compact {
        gap: 14px;
    }

    .event-cover,
    .event-cover-placeholder {
        min-height: 220px;
    }

    .detail-card-subtitle {
        font-size: 0.94rem;
    }

    .detail-card-featured {
        padding: 22px;
    }

    .detail-fact-chip,
    .detail-group-card {
        padding: 18px;
    }

    .detail-fact-chip-essentials {
        min-height: auto;
    }

    .detail-fact-icon {
        width: 38px;
        height: 38px;
        margin-bottom: 14px;
    }

    .artist-card {
        padding: 18px;
    }

    .artist-card-top {
        grid-template-columns: 64px 1fr;
        gap: 14px;
    }

    .artist-avatar {
        width: 64px;
        height: 64px;
        font-size: 1.45rem;
    }

    .comment-form-top {
        flex-direction: column;
        align-items: stretch;
    }

    .comment-form-top > div {
        width: 100%;
    }
}

@media (max-width: 980px) {
    .search-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .search-grid-extended {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .search-bar-card {
        border-radius: 24px;
        padding: 22px 18px;
    }

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

    .search-grid-extended {
        grid-template-columns: 1fr;
    }

    .search-actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* 404 page */
.error-page {
    background:
        radial-gradient(circle at top left, rgba(255, 77, 141, 0.12), transparent 28%),
        radial-gradient(circle at top right, rgba(124, 92, 255, 0.12), transparent 28%),
        linear-gradient(180deg, #f7f8fc 0%, #eef2fb 100%);
}

.error-hero {
    padding: 72px 0 88px;
}

.error-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
    gap: 24px;
    align-items: stretch;
}

.error-main,
.error-help,
.error-tip {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid #e7ecf5;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.10);
}

.error-main {
    padding: 42px;
    border-radius: 32px;
}

.error-side {
    display: grid;
    gap: 20px;
}

.error-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin: 0 0 18px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff1f6;
    color: var(--primary-dark);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.error-main h1 {
    margin: 0 0 16px;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: -0.04em;
    color: #111827;
}

.error-lead {
    max-width: 680px;
    margin: 0 auto 12px;
    color: #344054;
    font-size: 1.08rem;
}

.error-copy {
    max-width: 620px;
    margin: 0;
    color: #667085;
    font-size: 1rem;
}

.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 32px 0 28px;
}

.btn-outline,
.btn-soft {
    min-height: 46px;
    padding: 0 20px;
    border-radius: 999px;
    font-weight: 700;
}

.btn-outline {
    background: white;
    color: #111827;
    border: 1px solid #d0d5dd;
}

.btn-outline:hover {
    background: #f9fafb;
}

.btn-soft {
    background: #f5f3ff;
    color: #5b3cc4;
    border: 1px solid #ddd6fe;
}

.btn-soft:hover {
    background: #ede9fe;
}

.error-search {
    padding-top: 24px;
    border-top: 1px solid #edf0f6;
}

.error-search-label {
    display: block;
    margin-bottom: 12px;
    color: #344054;
    font-size: 0.96rem;
    font-weight: 800;
}

.error-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

.error-search-input {
    width: 100%;
    min-height: 56px;
    padding: 0 18px;
    border-radius: 18px;
    border: 1px solid #cfd6e4;
    background: #fff;
    color: #111827;
    font: inherit;
}

.error-search-input:focus {
    outline: none;
    border-color: #7c5cff;
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}

.error-help {
    padding: 24px;
    border-radius: 22px;
    background: linear-gradient(180deg, #fbfcff 0%, #f7f9ff 100%);
    text-align: left;
}

.error-help h2,
.error-tip h2 {
    margin: 0 0 14px;
    font-size: 1.2rem;
    color: #111827;
}

.error-help-list {
    margin: 0;
    padding-left: 20px;
    color: #475467;
    display: grid;
    gap: 10px;
}

.error-help-list a {
    color: #344054;
    font-weight: 600;
}

.error-tip {
    padding: 24px;
    border-radius: 22px;
}

.error-tip p {
    margin: 0;
    color: #475467;
    line-height: 1.7;
}

.error-help-list a:hover,
.error-help-list a:focus-visible {
    color: var(--primary-dark);
}

.btn-outline:focus-visible,
.btn-soft:focus-visible,
.error-help-list a:focus-visible,
.error-search-input:focus-visible {
    outline: 3px solid rgba(124, 92, 255, 0.22);
    outline-offset: 3px;
}

@media (max-width: 980px) {
    .error-shell {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .error-hero {
        padding: 52px 0 64px;
    }

    .error-main,
    .error-help,
    .error-tip {
        padding: 28px 20px;
        border-radius: 24px;
    }

    .error-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .error-actions .btn {
        width: 100%;
    }

    .error-search-row {
        grid-template-columns: 1fr;
    }
}

/* SalentoMusic home redesign */
.page-home-redesign {
    --sm-ink: #10142f;
    --sm-muted: #66708a;
    --sm-line: #e8ecf5;
    --sm-pink: #f3368b;
    --sm-orange: #ff8b3d;
    --sm-purple: #7a48df;
    background: #ffffff;
    color: var(--sm-ink);
}

.page-home-redesign .site-header {
    position: sticky;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid #e9edf5;
    box-shadow: 0 8px 28px rgba(16, 20, 47, 0.06);
}

.page-home-redesign .header-inner {
    min-height: 68px;
}

.page-home-redesign .brand {
    color: var(--sm-ink);
    gap: 0;
}

.page-home-redesign .brand-mark {
    width: calc(var(--site-header-logo-height, 54px) * 3.3);
    height: var(--site-header-logo-height, 54px);
    filter: none;
}

.page-home-redesign .brand-logo-image {
    height: var(--site-header-logo-height, 54px);
    width: calc(var(--site-header-logo-height, 54px) * 3.3);
    object-fit: contain;
    object-position: left center;
}

.page-home-redesign .brand-wordmark {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.page-home-redesign .nav {
    gap: 28px;
}

.page-home-redesign .nav a {
    color: #151936;
    font-size: 0.88rem;
    font-weight: 800;
}

.page-home-redesign .nav a.is-active {
    position: relative;
    color: var(--sm-purple);
}

.page-home-redesign .nav a.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -22px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--sm-pink), var(--sm-purple));
}

.page-home-redesign .nav > a[href$="login.php"]:not(.btn) {
    color: #151936;
}

.page-home-redesign .nav .btn-primary {
    min-height: 38px;
    padding: 0 18px;
}

.page-home-redesign .nav-toggle {
    border-color: #e2e6f0;
    background: #fff;
}

.page-home-redesign .nav-toggle-line {
    background: #151936;
}

.sm-hero {
    position: relative;
    min-height: 480px;
    color: #fff;
    overflow: hidden;
    background:
        radial-gradient(circle at 57% 20%, rgba(143, 83, 214, 0.35), transparent 29%),
        linear-gradient(90deg, rgba(8, 13, 38, 0.94) 0%, rgba(17, 17, 47, 0.84) 44%, rgba(19, 19, 52, 0.48) 70%, rgba(19, 19, 52, 0.62) 100%),
        url('../uploads/hero/hero-salentomusic.png') center right / cover no-repeat;
}

.sm-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 44%;
    background: linear-gradient(180deg, transparent, rgba(8, 13, 38, 0.76));
    pointer-events: none;
}

.sm-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 420px);
    gap: 54px;
    align-items: center;
    padding: 42px 0 62px;
}

.sm-hero-copy {
    max-width: 650px;
}

.sm-eyebrow {
    display: inline-flex;
    margin-bottom: 20px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(11, 16, 38, 0.58);
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 0.86rem;
    font-weight: 800;
}

.sm-hero h1 {
    max-width: 650px;
    margin: 0 0 16px;
    font-size: clamp(2.8rem, 5vw, 4.45rem);
    line-height: 0.98;
    letter-spacing: 0;
}

.sm-hero p {
    max-width: 520px;
    margin: 0 0 28px;
    color: #edf1ff;
    font-size: 1.16rem;
}

.sm-hero-actions,
.sm-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.page-home-redesign .btn-primary {
    background: linear-gradient(135deg, var(--sm-pink), var(--sm-orange));
    box-shadow: 0 16px 35px rgba(243, 54, 139, 0.24);
}

.sm-btn-outline {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.42);
    color: #fff;
    box-shadow: none;
}

.sm-btn-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sm-btn-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sm-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    max-width: 560px;
    margin-top: 28px;
}

.sm-stat {
    min-height: 86px;
    padding: 18px 22px;
    display: grid;
    grid-template-columns: 32px 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    align-items: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.13);
    backdrop-filter: blur(12px);
}

.sm-stat:first-child {
    border-radius: 14px 0 0 14px;
}

.sm-stat:last-child {
    border-radius: 0 14px 14px 0;
}

.sm-stat-icon {
    grid-row: 1 / 3;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ff5a9f;
}

.sm-stat-icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sm-stat strong {
    display: block;
    color: #fff;
    font-size: 1.45rem;
    line-height: 1;
}

.sm-stat small {
    color: #d9e0f5;
    font-size: 0.78rem;
    line-height: 1.25;
}

.sm-feature-card {
    max-width: 420px;
    overflow: hidden;
    border-radius: 20px;
    background: rgba(32, 28, 53, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.34);
    box-shadow: 0 26px 60px rgba(0, 0, 0, 0.32);
    backdrop-filter: blur(14px);
}

.sm-feature-media {
    position: relative;
    aspect-ratio: 16 / 8.4;
    overflow: hidden;
}

.sm-feature-media img,
.sm-event-media img,
.sm-place-card img,
.sm-genre-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

img.genre-fallback-image {
    filter: blur(1.2px) brightness(0.86) saturate(0.92);
    transform: scale(1.025);
}

img.brand-fallback-image {
    object-position: center;
}

.sm-feature-badge {
    position: absolute;
    left: 16px;
    top: 16px;
    padding: 8px 11px;
    border-radius: 4px;
    background: linear-gradient(135deg, var(--sm-pink), #ff5e65);
    color: #fff;
    font-size: 0.76rem;
    font-weight: 900;
    text-transform: uppercase;
}

.sm-heart,
.sm-card-heart,
.sm-card-heart button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    background: rgba(255, 255, 255, 0.78);
    color: #6d7286;
    font-size: 1.08rem;
    line-height: 1;
    cursor: pointer;
}

.sm-heart {
    position: absolute;
    top: 14px;
    right: 14px;
}

.sm-feature-body {
    padding: 20px;
}

.sm-feature-date,
.sm-event-date {
    color: #e2e7f8;
    font-size: 0.82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.sm-feature-body h2 {
    margin: 8px 0 3px;
    font-size: 1.95rem;
    line-height: 1.06;
}

.sm-feature-body p {
    margin: 0 0 14px;
    color: #e8edfb;
    font-size: 0.92rem;
}

.sm-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.sm-chip-row span {
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.sm-feature-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.46);
    color: #fff;
    font-weight: 800;
}

.sm-search-wrap {
    position: relative;
    z-index: 5;
    margin-top: -44px;
}

.sm-search-card {
    padding: 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid #e8edf6;
    box-shadow: 0 24px 62px rgba(21, 25, 54, 0.16);
}

.sm-search-main {
    display: grid;
    grid-template-columns: 26px 1fr;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 18px;
    margin-bottom: 14px;
    border: 1px solid #dfe5f0;
    border-radius: 12px;
    color: #75809a;
}

.sm-search-icon,
.sm-search-icon svg {
    width: 20px;
    height: 20px;
}

.sm-search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #6b7891;
}

.sm-search-icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sm-search-main input,
.sm-search-filters input,
.sm-search-filters select,
.sm-newsletter input,
.site-footer input {
    width: 100%;
    border: 0;
    background: transparent;
    color: #172033;
    font: inherit;
}

.sm-search-main input:focus,
.sm-search-filters input:focus,
.sm-search-filters select:focus,
.sm-newsletter input:focus,
.site-footer input:focus {
    outline: none;
}

.sm-search-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto auto;
    gap: 12px;
    align-items: stretch;
}

.sm-search-filters label {
    min-height: 54px;
    padding: 9px 14px;
    display: grid;
    gap: 2px;
    border: 1px solid #e2e7f0;
    border-radius: 12px;
    color: var(--sm-ink);
}

.sm-search-filters label > span {
    color: #222945;
    font-size: 0.78rem;
    font-weight: 900;
}

.sm-search-filters input,
.sm-search-filters select {
    min-height: 22px;
    color: #7a849a;
    font-size: 0.86rem;
}

.sm-free-toggle {
    display: flex !important;
    grid-template-columns: unset !important;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}

.sm-free-toggle input {
    width: 34px;
    height: 18px;
    min-height: 18px;
}

.sm-search-filters .btn {
    min-height: 54px;
    padding-inline: 34px;
    border-radius: 12px;
}

.sm-section {
    padding: 32px 0 10px;
}

.sm-section-tight {
    padding-top: 26px;
}

.sm-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 22px;
    margin-bottom: 18px;
}

.sm-section-head h2 {
    margin: 0 0 2px;
    color: var(--sm-ink);
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.sm-section-head p {
    margin: 0;
    color: var(--sm-muted);
    font-size: 0.95rem;
}

.sm-section-head a,
.sm-pink-link {
    color: var(--sm-pink);
    font-weight: 900;
    font-size: 0.9rem;
}

.sm-event-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.sm-event-card {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e6ebf3;
    box-shadow: 0 10px 24px rgba(16, 20, 47, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-event-card:hover,
.sm-place-card:hover,
.sm-genre-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px rgba(16, 20, 47, 0.12);
}

.sm-event-media {
    position: relative;
    display: block;
    aspect-ratio: 1.45 / 1;
    overflow: hidden;
}

.sm-event-media::after,
.sm-place-card::after,
.sm-genre-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 14, 34, 0.03), rgba(10, 14, 34, 0.45));
    pointer-events: none;
}

.sm-event-media span {
    position: absolute;
    z-index: 1;
    left: 10px;
    top: 10px;
    max-width: calc(100% - 56px);
    padding: 5px 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--sm-pink), var(--sm-purple));
    color: #fff;
    font-size: 0.68rem;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sm-card-heart {
    position: absolute;
    top: 9px;
    right: 9px;
    z-index: 2;
    text-decoration: none;
}

.sm-card-heart button {
    border: 0;
}

.sm-card-heart .is-active,
.sm-card-heart button.is-active {
    background: linear-gradient(135deg, var(--sm-pink), var(--sm-purple));
    color: #fff;
}

.sm-event-body {
    padding: 12px 12px 14px;
}

.sm-event-body .sm-event-date {
    color: #52607a;
    font-size: 0.72rem;
}

.sm-event-body h3 {
    margin: 7px 0 4px;
    color: #141832;
    font-size: 1rem;
    line-height: 1.15;
}

.sm-event-place,
.sm-event-desc {
    margin: 0;
    color: #69758d;
    font-size: 0.78rem;
    line-height: 1.38;
}

.sm-event-desc {
    min-height: 42px;
    margin-top: 8px;
}

.sm-event-body strong {
    display: block;
    margin: 12px 0 6px;
    color: #141832;
    font-size: 0.9rem;
}

.sm-place-grid,
.sm-genre-strip {
    display: grid;
    gap: 14px;
}

.sm-place-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.sm-place-card {
    position: relative;
    overflow: hidden;
    min-height: 138px;
    border-radius: 8px;
    border: 1px solid #e6ebf3;
    background: #fff;
    box-shadow: 0 10px 24px rgba(16, 20, 47, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-place-card img {
    height: 82px;
}

.sm-place-card strong,
.sm-place-card span {
    display: block;
    position: relative;
    z-index: 1;
    padding-inline: 12px;
}

.sm-place-card strong {
    margin-top: 9px;
    color: #141832;
    font-size: 0.94rem;
}

.sm-place-card span {
    margin-top: 3px;
    color: #68758e;
    font-size: 0.76rem;
}

.sm-place-card .sm-place-meta {
    display: flex;
    align-items: center;
    gap: 5px;
}

.sm-place-meta svg {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sm-genre-strip {
    grid-template-columns: repeat(8, minmax(0, 1fr));
}

.sm-genre-card {
    position: relative;
    overflow: hidden;
    min-height: 112px;
    border-radius: 8px;
    color: #fff;
    background: #10142f;
    box-shadow: 0 10px 24px rgba(16, 20, 47, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sm-genre-card img {
    position: absolute;
    inset: 0;
    opacity: 0.82;
    transition: transform 0.24s ease, opacity 0.24s ease;
}

.sm-genre-card-icon {
    isolation: isolate;
    background:
        radial-gradient(circle at 74% 20%, rgba(141, 68, 221, 0.34), transparent 52%),
        linear-gradient(145deg, #11152f 0%, #211142 100%);
}

.sm-genre-card-icon img {
    inset: -8% auto auto 20%;
    width: 86%;
    height: 86%;
    object-fit: contain;
    opacity: 0.94;
    transform: rotate(-4deg) scale(0.94);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.28));
}

.sm-genre-card-icon:hover img {
    opacity: 1;
    transform: rotate(-2deg) scale(1) translateY(-2px);
}

.sm-genre-card-icon::after {
    background: linear-gradient(180deg, rgba(9, 12, 31, 0.02) 14%, rgba(9, 12, 31, 0.88) 100%);
}

.sm-genre-card strong,
.sm-genre-card span {
    position: absolute;
    z-index: 1;
    left: 12px;
}

.sm-genre-card strong {
    bottom: 28px;
    font-size: 1rem;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.sm-genre-card span {
    bottom: 12px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.76rem;
}

@media (prefers-reduced-motion: reduce) {
    .sm-genre-card,
    .sm-genre-card img {
        transition: none;
    }
}

.sm-organizer-cta {
    margin-top: 36px;
    padding: 48px 0;
    background:
        radial-gradient(circle at 82% 40%, rgba(255, 139, 61, 0.36), transparent 18%),
        linear-gradient(135deg, #0b1430 0%, #111b43 58%, #111732 100%);
    color: #fff;
    overflow: hidden;
}

.sm-organizer-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 40px;
    align-items: center;
}

.sm-organizer-cta h2 {
    margin: 0 0 10px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.sm-organizer-cta p {
    max-width: 640px;
    margin: 0 0 26px;
    color: #dce5fb;
}

.sm-organizer-inner img {
    width: 320px;
    opacity: 0.48;
    filter: saturate(1.2);
    transform: scale(1.45) rotate(-3deg);
}

.sm-newsletter {
    padding: 24px 0 28px;
    background: #fff;
}

.sm-newsletter-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 380px) auto;
    gap: 18px;
    align-items: center;
    padding: 26px;
    border: 1px solid #e6ebf3;
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(16, 20, 47, 0.06);
}

.sm-newsletter h2 {
    margin: 0 0 4px;
    font-size: 1.45rem;
}

.sm-newsletter p {
    margin: 0;
    color: var(--sm-muted);
}

.sm-newsletter label {
    min-height: 48px;
    display: flex;
    align-items: center;
    padding: 0 18px;
    border: 1px solid #dfe5ef;
    border-radius: 8px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.page-home-redesign .site-footer {
    padding: 54px 0 28px;
    background:
        linear-gradient(90deg, rgba(7, 12, 31, 0.34), rgba(10, 13, 34, 0.16)),
        linear-gradient(180deg, rgba(7, 12, 31, 0.06), rgba(7, 12, 31, 0.55)),
        url('../img/footer-banner.webp') center / cover no-repeat;
    color: #c8d2ea;
}

.page-home-redesign .footer-inner {
    display: grid;
    grid-template-columns: minmax(230px, 1.1fr) repeat(3, minmax(120px, 0.7fr)) minmax(220px, 1fr);
    align-items: start;
    gap: 42px;
}

.page-home-redesign .footer-brand {
    display: grid;
    gap: 14px;
    color: #fff;
}

.page-home-redesign .footer-brand img {
    width: 190px;
    height: auto;
}

.page-home-redesign .footer-brand p,
.page-home-redesign .footer-newsletter p {
    margin: 0;
    color: #c8d2ea;
    line-height: 1.55;
}

.page-home-redesign .footer-socials {
    display: flex;
    gap: 10px;
}

.page-home-redesign .footer-socials span {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
}

.page-home-redesign .footer-column,
.page-home-redesign .footer-newsletter {
    display: grid;
    gap: 11px;
}

.page-home-redesign .footer-column h2,
.page-home-redesign .footer-newsletter h2 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 1rem;
}

.page-home-redesign .footer-column a {
    color: #dce4f7;
    font-size: 0.92rem;
}

.page-home-redesign .footer-newsletter label {
    display: grid;
    grid-template-columns: 1fr 52px;
    min-height: 52px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 10px;
}

.page-home-redesign .footer-newsletter input {
    padding: 0 16px;
    color: #fff;
}

.page-home-redesign .footer-newsletter input::placeholder {
    color: #c8d2ea;
}

.page-home-redesign .footer-newsletter button {
    border: 0;
    background: linear-gradient(135deg, var(--sm-pink), var(--sm-orange));
    color: #fff;
    font-size: 1.35rem;
    cursor: pointer;
}

.page-home-redesign .footer-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #b9c4dd;
    font-size: 0.84rem;
}

.page-home-redesign .footer-bottom span:first-child {
    margin-right: auto;
}

.page-home-redesign .scroll-top-button {
    background: rgba(255, 255, 255, 0.2);
    box-shadow: none;
}

@media (max-width: 1120px) {
    .sm-event-grid,
    .sm-place-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sm-genre-strip {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .sm-search-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .sm-hero-inner,
    .sm-organizer-inner,
    .sm-newsletter-card,
    .page-home-redesign .footer-inner {
        grid-template-columns: 1fr;
    }

    .sm-hero-inner {
        gap: 32px;
        padding: 46px 0 72px;
    }

    .sm-feature-card {
        max-width: 520px;
    }
}

@media (max-width: 980px) {
    .page-home-redesign .nav {
        background: rgba(255, 255, 255, 0.98);
        border-color: #e9edf5;
    }

    .page-home-redesign .nav a {
        color: #151936;
        border-bottom-color: #edf1f7;
    }

}

@media (max-width: 760px) {
    .page-home-redesign .brand-mark,
    .page-home-redesign .brand-logo-image {
        width: calc(var(--site-header-logo-height-mobile, 46px) * 3.3);
        height: var(--site-header-logo-height-mobile, 46px);
    }

    .sm-hero {
        min-height: auto;
        background-position: 62% center;
    }

    .sm-hero-inner {
        padding: 36px 0 64px;
    }

    .sm-feature-card {
        display: none;
    }

    .sm-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.3rem);
    }

    .sm-hero p {
        font-size: 1rem;
    }

    .sm-hero-actions,
    .sm-cta-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .sm-hero-stats,
    .sm-event-grid,
    .sm-place-grid,
    .sm-genre-strip,
    .sm-search-filters {
        grid-template-columns: 1fr;
    }

    .sm-stat,
    .sm-stat:first-child,
    .sm-stat:last-child {
        border-radius: 14px;
    }

    .sm-search-wrap {
        margin-top: -30px;
    }

    .sm-search-card {
        padding: 16px;
    }

    .sm-section-head {
        align-items: start;
        flex-direction: column;
        gap: 8px;
    }

    .sm-event-media {
        aspect-ratio: 16 / 9;
    }

    .sm-organizer-inner img {
        display: none;
    }

    .sm-newsletter-card .btn {
        width: 100%;
    }
}

/* SalentoMusic events archive redesign */
.page-events-redesign {
    --events-ink: #10142f;
    --events-muted: #66708a;
    --events-line: #e4eaf4;
    --events-pink: #f33791;
    --events-purple: #7a4ce8;
    --events-orange: #ff7d4b;
    background:
        radial-gradient(circle at 22% 30%, rgba(123, 76, 232, 0.08), transparent 22%),
        radial-gradient(circle at 82% 46%, rgba(243, 55, 145, 0.08), transparent 24%),
        #f6f8fc;
    color: var(--events-ink);
}

.page-events-redesign .site-header {
    position: sticky;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(226, 232, 244, 0.85);
    box-shadow: 0 12px 36px rgba(16, 20, 47, 0.06);
}

.page-events-redesign .header-inner {
    min-height: 70px;
}

.page-events-redesign .brand {
    color: var(--events-ink);
    gap: 0;
}

.page-events-redesign .brand-mark {
    width: calc(var(--site-header-logo-height, 58px) * 3.48);
    height: var(--site-header-logo-height, 58px);
    filter: none;
}

.page-events-redesign .brand-logo-image {
    width: calc(var(--site-header-logo-height, 58px) * 3.48);
    height: var(--site-header-logo-height, 58px);
    object-fit: contain;
    object-position: left center;
}

.page-events-redesign .brand-wordmark {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.page-events-redesign .nav {
    gap: 24px;
}

.page-events-redesign .nav a {
    color: #11162f;
    font-size: 0.9rem;
    font-weight: 800;
}

.page-events-redesign .nav a.is-active {
    position: relative;
    color: var(--events-purple);
}

.page-events-redesign .nav a.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -22px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--events-pink), var(--events-purple));
}

.page-events-redesign .nav a[href$="login.php"]:not(.btn) {
    color: #11162f;
}

.page-events-redesign .nav .btn-primary {
    min-height: 42px;
    padding: 0 22px;
    background: linear-gradient(135deg, var(--events-pink), var(--events-purple));
    box-shadow: 0 14px 30px rgba(123, 76, 232, 0.25);
}

.page-events-redesign .nav-toggle {
    border-color: #e1e7f2;
    background: #fff;
}

.page-events-redesign .nav-toggle-line {
    background: #11162f;
}

.page-events-redesign .archive-hero {
    padding: 24px 0 24px;
}

.page-events-redesign .archive-hero-shell {
    --archive-hero-image: url('../uploads/hero/hero-salentomusic.png');
    min-height: 470px;
    padding: 54px 44px 28px;
    border-radius: 32px;
    background:
        linear-gradient(90deg, rgba(6, 12, 35, 0.95) 0%, rgba(10, 15, 38, 0.84) 42%, rgba(16, 14, 45, 0.44) 78%, rgba(16, 14, 45, 0.66) 100%),
        var(--archive-hero-image) center / cover no-repeat;
    box-shadow: 0 28px 60px rgba(17, 24, 53, 0.18);
}

.page-events-redesign .archive-hero-shell::after {
    background:
        radial-gradient(circle at 74% 34%, rgba(243, 55, 145, 0.24), transparent 24%),
        linear-gradient(180deg, transparent 30%, rgba(7, 12, 32, 0.5));
}

.page-events-redesign .archive-hero-content {
    max-width: 650px;
}

.page-events-redesign .archive-hero .eyebrow {
    margin-bottom: 20px;
    padding: 11px 16px;
    background: rgba(255, 255, 255, 0.13);
    border-color: rgba(255, 255, 255, 0.18);
    font-size: 0.88rem;
}

.page-events-redesign .archive-hero h1 {
    max-width: 660px;
    margin-bottom: 14px;
    font-size: clamp(2.65rem, 4.7vw, 4.1rem);
    line-height: 1.04;
    letter-spacing: 0;
}

.page-events-redesign .archive-hero p {
    max-width: 530px;
    color: #e4eaf9;
    font-size: 1.12rem;
    line-height: 1.62;
}

.page-events-redesign .archive-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}

.page-events-redesign .archive-summary-card {
    min-height: 112px;
    padding: 20px;
    display: grid;
    grid-template-columns: 66px 1fr;
    gap: 18px;
    align-items: center;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.page-events-redesign .archive-summary-card::before {
    content: "";
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--events-pink), var(--events-purple));
    -webkit-mask: var(--summary-icon) center / 28px 28px no-repeat;
    mask: var(--summary-icon) center / 28px 28px no-repeat;
}

.page-events-redesign .archive-summary-card:nth-child(1)::before {
    --summary-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='3'/%3E%3Cpath d='M8 3.5v4M16 3.5v4M3.5 10h17'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .archive-summary-card:nth-child(2)::before {
    --summary-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 18V6l9-2v12'/%3E%3Ccircle cx='7' cy='18' r='3'/%3E%3Ccircle cx='16' cy='16' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .archive-summary-card:nth-child(3)::before {
    --summary-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s6.5-5.7 6.5-12A6.5 6.5 0 0 0 5.5 9c0 6.3 6.5 12 6.5 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.4'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .archive-summary-card strong {
    grid-column: 2;
    margin-bottom: 4px;
    font-size: 1.55rem;
}

.page-events-redesign .archive-summary-card span {
    grid-column: 2;
    color: #dfe6f8;
    line-height: 1.55;
}

.page-events-redesign main.section {
    padding: 4px 0 80px;
}

.page-events-redesign .archive-search-layout {
    display: block;
}

.page-events-redesign .ad-slot-inline {
    display: none;
}

.page-events-redesign .search-bar-card {
    padding: 32px;
    border: 1px solid rgba(226, 232, 244, 0.95);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 26px 70px rgba(16, 20, 47, 0.11);
}

.page-events-redesign .search-box-title {
    margin-bottom: 24px;
}

.page-events-redesign .search-box-title h2 {
    margin-bottom: 5px;
    color: var(--events-ink);
    font-size: 1.75rem;
    letter-spacing: 0;
}

.page-events-redesign .search-box-title p {
    color: #61708c;
}

.page-events-redesign .search-grid-extended {
    grid-template-columns: minmax(220px, 1.7fr) minmax(150px, 0.95fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(130px, 0.75fr);
    gap: 20px;
}

.page-events-redesign .search-field label {
    color: #17203b;
    font-size: 0.92rem;
}

.page-events-redesign .search-field input,
.page-events-redesign .search-field select {
    min-height: 58px;
    border-color: #d9e1ee;
    border-radius: 14px;
    color: #4e5a74;
    box-shadow: inset 0 1px 0 rgba(16, 20, 47, 0.02);
}

.page-events-redesign .search-actions {
    margin-top: 26px;
}

.page-events-redesign .search-actions .btn {
    min-height: 52px;
    padding: 0 28px;
    border-radius: 999px;
}

.page-events-redesign .search-actions .btn-primary {
    background: linear-gradient(135deg, var(--events-pink), var(--events-purple));
}

.page-events-redesign .btn-light {
    background: #eef1f6;
    color: #1d263d;
}

.page-events-redesign .results-count {
    min-height: 42px;
    padding: 0 18px;
    background: rgba(255, 255, 255, 0.75);
    border-color: #e0e7f3;
    color: #24304b;
    box-shadow: 0 10px 30px rgba(16, 20, 47, 0.05);
}

.page-events-redesign .event-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.page-events-redesign .event-card {
    border-radius: 18px;
    border-color: #e5ebf5;
    box-shadow: 0 18px 42px rgba(16, 20, 47, 0.09);
}

.page-events-redesign .event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 26px 56px rgba(16, 20, 47, 0.14);
}

.page-events-redesign .event-media {
    aspect-ratio: 16 / 6.9;
    background:
        radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.16), transparent 28%),
        linear-gradient(135deg, var(--events-pink), var(--events-purple));
}

.page-events-redesign .event-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-events-redesign .event-tag {
    left: 14px;
    top: 14px;
    max-width: calc(100% - 70px);
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(17, 22, 47, 0.9);
    font-size: 0.76rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-events-redesign .favorite-toggle {
    width: 42px;
    height: 42px;
    background: rgba(21, 24, 49, 0.78);
    border-color: rgba(255, 255, 255, 0.22);
}

.page-events-redesign .event-body {
    padding: 20px 20px 18px;
    gap: 10px;
}

.page-events-redesign .event-date {
    color: #596780;
    font-size: 0.88rem;
    font-weight: 600;
}

.page-events-redesign .event-title {
    font-size: 1.28rem;
    letter-spacing: 0;
}

.page-events-redesign .event-type-line {
    color: #5447ef;
    font-weight: 900;
}

.page-events-redesign .event-desc {
    min-height: 64px;
    color: #58657c;
    line-height: 1.55;
}

.page-events-redesign .event-meta {
    margin-top: 8px;
    gap: 9px;
}

.page-events-redesign .meta-row {
    color: #56637c;
    font-size: 0.88rem;
}

.page-events-redesign .meta-icon {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #f0f3fb;
    color: #6a6fd6;
    font-size: 0;
    flex: 0 0 auto;
    position: relative;
}

.page-events-redesign .meta-icon::before {
    content: "";
    position: absolute;
    inset: 5px;
    background: currentColor;
    -webkit-mask: var(--meta-icon) center / contain no-repeat;
    mask: var(--meta-icon) center / contain no-repeat;
}

.page-events-redesign .meta-row:nth-child(1) .meta-icon::before {
    --meta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s6.5-5.7 6.5-12A6.5 6.5 0 0 0 5.5 9c0 6.3 6.5 12 6.5 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.4'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .meta-row:nth-child(2) .meta-icon::before {
    --meta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 14a4 4 0 0 0 4-4V8a4 4 0 0 0-8 0v2a4 4 0 0 0 4 4Z'/%3E%3Cpath d='M5 11a7 7 0 0 0 14 0M12 18v3M9 21h6'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .meta-row:nth-child(3) .meta-icon::before {
    --meta-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M15.5 8.8a4.6 4.6 0 1 0 0 6.4M7.5 10.5h6.2M7.5 13.5h6.2'/%3E%3C/g%3E%3C/svg%3E");
}

.page-events-redesign .event-footer {
    padding-top: 14px;
}

.page-events-redesign .event-link {
    color: var(--events-pink);
    font-size: 1rem;
    font-weight: 900;
}

.page-events-redesign .event-state {
    padding: 8px 14px;
    font-size: 0.84rem;
}

.archive-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin: 48px 0 0;
}

.pagination-step,
.pagination-current {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-weight: 900;
}

.pagination-step {
    background: #fff;
    border: 1px solid #dfe6f2;
    color: #33415f;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.pagination-step:hover {
    border-color: rgba(209, 46, 171, 0.38);
    box-shadow: 0 12px 26px rgba(18, 31, 61, 0.1);
    transform: translateY(-1px);
}

.pagination-step.is-disabled {
    cursor: not-allowed;
    opacity: 0.45;
    transform: none;
    box-shadow: none;
}

.pagination-current {
    color: #fff;
    background: linear-gradient(135deg, var(--events-pink), var(--events-purple));
    box-shadow: 0 14px 30px rgba(123, 76, 232, 0.22);
}

.archive-pagination .pagination-summary {
    margin-left: 18px;
    padding-left: 26px;
    border-left: 1px solid #e0e6f0;
    color: #56637c;
}

.pagination-ellipsis {
    color: #75829a;
    font-weight: 900;
}

.page-events-redesign .site-footer {
    padding: 34px 0;
    background: linear-gradient(135deg, #07112c 0%, #0a1533 100%);
}

.page-events-redesign .footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
}

.page-events-redesign .footer-brand img,
.page-events-redesign .footer-brand p,
.page-events-redesign .footer-socials,
.page-events-redesign .footer-newsletter,
.page-events-redesign .footer-bottom,
.page-events-redesign .footer-column h2 {
    display: none;
}

.page-events-redesign .footer-brand {
    display: block;
    color: #fff;
    font-size: 1.25rem;
}

.page-events-redesign .footer-brand::before {
    content: "SalentoMusic";
    font-weight: 900;
}

.page-events-redesign .footer-column {
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
}

.page-events-redesign .footer-column a {
    color: #dce4f7;
    font-size: 0.94rem;
}

@media (max-width: 1120px) {
    .page-events-redesign .archive-summary-grid,
    .page-events-redesign .event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-events-redesign .search-grid-extended {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .page-events-redesign .nav {
        background: rgba(255, 255, 255, 0.98);
        border-color: #e9edf5;
    }

    .page-events-redesign .nav a {
        color: #151936;
        border-bottom-color: #edf1f7;
    }

}

@media (max-width: 760px) {
    .page-events-redesign .brand-mark,
    .page-events-redesign .brand-logo-image {
        width: calc(var(--site-header-logo-height-mobile, 48px) * 3.2);
        height: var(--site-header-logo-height-mobile, 48px);
    }

    .page-events-redesign .archive-hero {
        padding-top: 14px;
    }

    .page-events-redesign .archive-hero-shell {
        min-height: auto;
        padding: 40px 22px 24px;
        border-radius: 24px;
    }

    .page-events-redesign .archive-hero h1 {
        font-size: clamp(2.25rem, 11vw, 3.1rem);
    }

    .page-events-redesign .archive-hero p {
        font-size: 1rem;
    }

    .page-events-redesign .archive-summary-grid,
    .page-events-redesign .event-grid,
    .page-events-redesign .search-grid-extended {
        grid-template-columns: 1fr;
    }

    .page-events-redesign .archive-summary-grid {
        display: none;
    }

    .page-events-redesign .archive-summary-card {
        min-height: 104px;
        padding: 18px;
    }

    .page-events-redesign .search-bar-card {
        padding: 22px 18px;
        border-radius: 24px;
    }

    .page-events-redesign .search-actions {
        align-items: stretch;
    }

    .page-events-redesign .search-actions .btn {
        width: 100%;
    }

    .page-events-redesign .event-media {
        aspect-ratio: 16 / 8.4;
    }

    .archive-pagination {
        gap: 10px;
        flex-wrap: wrap;
    }

    .archive-pagination .pagination-summary {
        width: 100%;
        margin: 8px 0 0;
        padding: 0;
        border-left: 0;
        text-align: center;
    }

    .page-events-redesign .footer-inner,
    .page-events-redesign .footer-column {
        justify-content: center;
        text-align: center;
    }
}

.page-events-redesign .site-footer {
    padding: 54px 0 28px;
    background:
        linear-gradient(90deg, rgba(7, 12, 31, 0.34), rgba(10, 13, 34, 0.16)),
        linear-gradient(180deg, rgba(7, 12, 31, 0.06), rgba(7, 12, 31, 0.55)),
        url('../img/footer-banner.webp') center / cover no-repeat;
    color: #c8d2ea;
}

.page-events-redesign .footer-inner {
    display: grid;
    grid-template-columns: minmax(230px, 1.1fr) repeat(3, minmax(120px, 0.7fr)) minmax(220px, 1fr);
    align-items: start;
    justify-content: initial;
    gap: 42px;
    text-align: left;
}

.page-events-redesign .footer-brand {
    display: grid;
    gap: 14px;
    color: #fff;
    font-size: 1rem;
}

.page-events-redesign .footer-brand::before {
    content: none;
}

.page-events-redesign .footer-brand img {
    display: block;
    width: 190px;
    height: auto;
}

.page-events-redesign .footer-brand p,
.page-events-redesign .footer-newsletter p {
    display: block;
    margin: 0;
    color: #c8d2ea;
    line-height: 1.55;
}

.page-events-redesign .footer-socials {
    display: flex;
    gap: 10px;
}

.page-events-redesign .footer-socials span {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
}

.page-events-redesign .footer-column,
.page-events-redesign .footer-newsletter {
    display: grid;
    gap: 11px;
}

.page-events-redesign .footer-column h2,
.page-events-redesign .footer-newsletter h2 {
    display: block;
    margin: 0 0 4px;
    color: #fff;
    font-size: 1rem;
}

.page-events-redesign .footer-column a {
    color: #dce4f7;
    font-size: 0.92rem;
}

.page-events-redesign .footer-newsletter label {
    display: grid;
    grid-template-columns: 1fr 52px;
    min-height: 52px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 10px;
}

.page-events-redesign .footer-newsletter input {
    padding: 0 16px;
    color: #fff;
}

.page-events-redesign .footer-newsletter input::placeholder {
    color: #c8d2ea;
}

.page-events-redesign .footer-newsletter button {
    border: 0;
    background: linear-gradient(135deg, var(--events-pink), var(--events-orange));
    color: #fff;
    font-size: 1.35rem;
    cursor: pointer;
}

.page-events-redesign .footer-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #b9c4dd;
    font-size: 0.84rem;
}

.page-events-redesign .footer-bottom span:first-child {
    margin-right: auto;
}

@media (max-width: 980px) {
    .page-events-redesign .footer-inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-events-redesign .footer-inner,
    .page-events-redesign .footer-column,
    .page-events-redesign .footer-socials,
    .page-events-redesign .footer-bottom {
        justify-content: center;
        text-align: center;
    }

    .page-events-redesign .footer-brand,
    .page-events-redesign .footer-newsletter {
        justify-items: center;
    }

    .page-events-redesign .footer-bottom span:first-child {
        width: 100%;
        margin-right: 0;
    }
}

/* Single event redesign */
.page-event-redesign {
    --event-ink: #10142f;
    --event-muted: #66708a;
    --event-line: #e5ebf5;
    --event-pink: #f33791;
    --event-purple: #7a4ce8;
    --event-orange: #ff7d4b;
    background:
        radial-gradient(circle at 18% 26%, rgba(123, 76, 232, 0.08), transparent 23%),
        radial-gradient(circle at 82% 42%, rgba(243, 55, 145, 0.08), transparent 24%),
        #f6f8fc;
    color: var(--event-ink);
}

.page-event-redesign .event-page {
    background: transparent;
}

.page-event-redesign .event-hero {
    padding: 30px 0 80px;
    background:
        linear-gradient(180deg, rgba(6, 12, 34, 0.92), rgba(10, 14, 34, 0.82)),
        radial-gradient(circle at 10% 72%, rgba(243, 55, 145, 0.26), transparent 20%),
        radial-gradient(circle at 86% 32%, rgba(123, 76, 232, 0.28), transparent 26%),
        url('../uploads/hero/hero-salentomusic.png') center top / cover no-repeat;
}

.page-event-redesign .breadcrumb {
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.9rem;
}

.page-event-redesign .breadcrumb a {
    color: #fff;
}

.page-event-redesign .event-hero-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    gap: 0;
    align-items: stretch;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 18px;
    overflow: hidden;
    background: rgba(6, 12, 30, 0.62);
    box-shadow: 0 28px 70px rgba(2, 8, 28, 0.32);
}

.page-event-redesign .event-cover {
    position: relative;
    min-height: 360px;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.page-event-redesign .event-cover::before {
    content: "";
    position: absolute;
}

.page-event-redesign .event-cover img {
    filter: saturate(1.06) contrast(1.02);
    transition: transform 0.35s ease;
}

.page-event-redesign .event-hero-grid:hover .event-cover > img {
    transform: scale(1.018);
}

.page-event-redesign .event-cover-placeholder-genre {
    position: relative;
    isolation: isolate;
}

.page-event-redesign .event-cover-placeholder-genre::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(5, 9, 26, 0.08), rgba(5, 9, 26, 0.36));
}

.page-event-redesign .event-cover-placeholder-genre span {
    position: relative;
    z-index: 1;
    background: rgba(20, 17, 48, 0.58);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 16px 40px rgba(3, 8, 24, 0.24);
    backdrop-filter: blur(8px);
}

.page-event-redesign .event-summary-card {
    min-height: 360px;
    padding: 36px;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 0;
    background: rgba(7, 14, 31, 0.86);
    box-shadow: none;
    backdrop-filter: blur(12px);
}

.page-event-redesign .event-pill-row {
    margin-bottom: 22px;
}

.page-event-redesign .event-pill,
.page-event-redesign .event-state-badge {
    padding: 8px 13px;
    font-size: 0.82rem;
}

.page-event-redesign .event-pill {
    background: rgba(255, 255, 255, 0.1);
}

.page-event-redesign .event-state-badge {
    background: #dcfce7;
    color: #047857;
}

.page-event-redesign .event-main-title {
    margin-bottom: 16px;
    font-size: clamp(2.5rem, 4.5vw, 4rem);
    letter-spacing: 0;
}

.page-event-redesign .event-main-desc {
    max-width: 620px;
    color: #e2e8f8;
    line-height: 1.75;
}

.page-event-redesign .event-main-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 470px;
}

.page-event-redesign .event-main-actions > a[href="#info-evento"] {
    grid-column: auto;
}

.page-event-redesign .event-main-actions .btn {
    min-height: 50px;
    border-radius: 10px;
}

.page-event-redesign .btn-primary,
.page-event-redesign .event-main-actions .btn-primary {
    background: linear-gradient(135deg, var(--event-pink), var(--event-purple));
    box-shadow: 0 15px 34px rgba(123, 76, 232, 0.28);
}

.page-event-redesign .btn-favorite,
.page-event-redesign .btn-secondary-dark {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}

.page-event-redesign .event-content-section {
    padding: 0 0 80px;
    margin-top: -52px;
}

.page-event-redesign .event-content-grid {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 22px;
}

.page-event-redesign .event-content-main {
    gap: 14px;
}

.page-event-redesign .event-layout-shell {
    gap: 14px;
}

.page-event-redesign .detail-card,
.page-event-redesign .sidebar-card {
    border: 1px solid var(--event-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 44px rgba(16, 20, 47, 0.08);
}

.page-event-redesign .detail-card {
    padding: 24px;
}

.page-event-redesign .detail-card-head {
    margin-bottom: 18px;
}

.page-event-redesign .detail-card-head h2,
.page-event-redesign .detail-section-head h3,
.page-event-redesign .sidebar-card h3 {
    color: var(--event-ink);
    font-size: 1.35rem;
    letter-spacing: 0;
}

.page-event-redesign .detail-list {
    gap: 14px;
}

.page-event-redesign .detail-item {
    min-height: 78px;
    grid-template-columns: 38px 1fr;
    gap: 12px;
    padding: 14px;
    border-radius: 12px;
    border-color: #e7edf6;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.page-event-redesign .detail-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #fff2fa;
    color: var(--event-pink);
}

.page-event-redesign .detail-icon svg {
    width: 19px;
    height: 19px;
}

.page-event-redesign .detail-item strong {
    font-size: 0.9rem;
}

.page-event-redesign .detail-item p,
.page-event-redesign .detail-card-subtitle,
.page-event-redesign .detail-section-head p,
.page-event-redesign .detail-text,
.page-event-redesign .sidebar-muted {
    color: #5d6981;
}

.page-event-redesign .detail-text-rich {
    font-size: 0.96rem;
    line-height: 1.75;
}

.page-event-redesign .detail-support-card {
    border-radius: 10px;
    background: #fbf7ff;
}

.page-event-redesign .event-map-wrap {
    border-radius: 10px;
    overflow: hidden;
}

.page-event-redesign .event-map-frame {
    height: 170px;
}

.page-event-redesign .map-actions {
    display: none;
}

.page-event-redesign .artist-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.page-event-redesign .artist-card {
    padding: 16px;
    border-radius: 10px;
    box-shadow: none;
}

.page-event-redesign .artist-card-top {
    grid-template-columns: 52px 1fr;
    gap: 12px;
    padding-bottom: 12px;
}

.page-event-redesign .artist-avatar {
    width: 52px;
    height: 52px;
    font-size: 1rem;
}

.page-event-redesign .artist-card-intro h4 {
    font-size: 1rem;
}

.page-event-redesign .artist-card-genre,
.page-event-redesign .artist-card-copy {
    font-size: 0.84rem;
    line-height: 1.55;
}

.page-event-redesign .event-sidebar {
    top: 92px;
    gap: 14px;
}

.page-event-redesign .sidebar-card {
    padding: 22px;
}

.page-event-redesign .sidebar-person {
    gap: 16px;
}

.page-event-redesign .sidebar-avatar {
    width: 68px;
    height: 68px;
}

.page-event-redesign .participation-stat {
    grid-template-columns: 46px 1fr;
    align-items: center;
    gap: 12px;
}

.page-event-redesign .participation-stat::before {
    content: "\1F465";
    grid-row: 1 / 3;
    color: #111827;
    font-size: 2rem;
}

.page-event-redesign .participation-stat strong {
    font-size: 1.8rem;
}

.page-event-redesign .sidebar-actions-stack .btn,
.page-event-redesign .share-menu summary {
    min-height: 42px;
    border-radius: 999px;
}

.page-event-redesign .btn-light {
    background: #fff;
    color: #18213a;
    border: 1px solid #cfd7e6;
}

.quick-detail-list {
    display: grid;
    gap: 16px;
}

.quick-detail-item {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 12px;
    align-items: center;
}

.quick-detail-item > span {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f2f5fb;
    color: #33415f;
    font-weight: 900;
}

.quick-detail-item strong {
    display: block;
    color: var(--event-ink);
    font-size: 0.9rem;
}

.quick-detail-item p {
    margin: 2px 0 0;
    color: #66708a;
    font-size: 0.86rem;
}

.social-share-row {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

.social-share-row a,
.social-share-row button {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 900;
    cursor: pointer;
}

.social-share-row a:nth-child(1) {
    background: #2674e8;
}

.social-share-row a:nth-child(2) {
    background: #35d07f;
}

.social-share-row a:nth-child(3) {
    background: #49a4e8;
}

.social-share-row button {
    background: #eef2f8;
    color: #344054;
}

.page-event-redesign .comments-card {
    max-width: calc(100% - 382px);
}

.page-event-redesign .comment-form-compact {
    background: #fff;
    border-color: #e7edf6;
}

.page-event-redesign .comment-form textarea,
.page-event-redesign .comment-form select {
    border-radius: 10px;
}

.related-events-card {
    max-width: calc(100% - 382px);
}

.related-events-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.related-events-head a {
    color: var(--event-pink);
    font-weight: 900;
    font-size: 0.9rem;
}

.related-events-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.related-event-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #e7edf6;
    border-radius: 10px;
    background: #fff;
}

.related-event-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 7.8;
    overflow: hidden;
}

.related-event-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.related-event-media span {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(17, 22, 47, 0.78);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
}

.related-event-body {
    padding: 10px 12px 12px;
}

.related-event-body h3 {
    margin: 0 0 4px;
    font-size: 0.95rem;
    line-height: 1.2;
}

.related-event-body p,
.related-event-body small {
    display: block;
    margin: 0;
    color: #66708a;
    font-size: 0.78rem;
}

.related-heart {
    position: absolute;
    right: 10px;
    bottom: 12px;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #dfe6f2;
    color: #77839b;
}

@media (max-width: 980px) {
    .page-event-redesign .event-hero-grid,
    .page-event-redesign .event-content-grid {
        grid-template-columns: 1fr;
    }

    .page-event-redesign .event-summary-card {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.22);
    }

    .page-event-redesign .comments-card,
    .related-events-card {
        max-width: 100%;
    }

    .page-event-redesign .artist-grid,
    .related-events-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-event-redesign .event-hero {
        padding: 24px 0 58px;
    }

    .page-event-redesign .event-hero-grid {
        border-radius: 16px;
    }

    .page-event-redesign .event-cover {
        min-height: 230px;
    }

    .page-event-redesign .event-summary-card {
        min-height: auto;
        padding: 22px;
    }

    .page-event-redesign .event-main-actions,
    .page-event-redesign .detail-list {
        grid-template-columns: 1fr;
    }

    .page-event-redesign .event-main-actions > a[href="#info-evento"] {
        grid-column: auto;
    }

    .page-event-redesign .detail-card,
    .page-event-redesign .sidebar-card {
        padding: 18px;
        border-radius: 14px;
    }

    .page-event-redesign .event-content-section {
        margin-top: -34px;
    }
}

.page-about-redesign .nav > a:nth-of-type(2) {
    color: #151936;
}

.page-about-redesign .nav > a:nth-of-type(2)::after {
    content: none;
}

.page-about-redesign .nav a[href$="chisiamo"],
.page-about-redesign .nav a[href$="chi-siamo"] {
    color: #1b1235;
    position: relative;
}

.page-about-redesign .nav a[href$="chisiamo"]::after,
.page-about-redesign .nav a[href$="chi-siamo"]::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -18px;
    width: 52px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ef3f93, #ff7c35);
    transform: translateX(-50%);
}

.page-about-redesign .about-page {
    background:
        radial-gradient(circle at 14% 12%, rgba(151, 76, 255, 0.11), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f8fbff 54%, #ffffff 100%);
    color: #11162f;
    overflow: hidden;
}

.page-about-redesign .about-hero {
    min-height: 430px;
    padding: 92px 0 150px;
    background:
        linear-gradient(90deg, rgba(7, 10, 40, 0.92) 0%, rgba(34, 18, 74, 0.72) 42%, rgba(8, 12, 35, 0.36) 100%),
        url("../img/about-hero-salentomusic.png") center / cover no-repeat;
    position: relative;
}

.page-about-redesign .about-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 6% 78%, rgba(239, 63, 147, 0.22), transparent 20%),
        linear-gradient(180deg, transparent 72%, rgba(2, 7, 25, 0.45) 100%);
    pointer-events: none;
}

.page-about-redesign .about-hero-inner {
    position: relative;
    z-index: 1;
}

.page-about-redesign .about-breadcrumb {
    align-items: center;
    color: rgba(255, 255, 255, 0.78);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.98rem;
    gap: 11px;
    margin-bottom: 28px;
}

.page-about-redesign .about-breadcrumb a {
    color: #ffffff;
    font-weight: 700;
}

.page-about-redesign .about-breadcrumb span:last-child {
    color: #ff7a5e;
    font-weight: 800;
}

.page-about-redesign .about-hero h1 {
    color: #ffffff;
    font-size: clamp(3rem, 6vw, 5.25rem);
    letter-spacing: 0;
    line-height: 0.96;
    margin: 0;
    max-width: 720px;
}

.page-about-redesign .about-title-rule {
    background: linear-gradient(90deg, #ff7c35, #ef3f93, #8f42ff);
    border-radius: 999px;
    display: block;
    height: 5px;
    margin: 28px 0 24px;
    width: 124px;
}

.page-about-redesign .about-hero p {
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.2rem;
    line-height: 1.65;
    margin: 0;
    max-width: 620px;
}

.page-about-redesign .about-overlap {
    margin-top: -82px;
    position: relative;
    z-index: 3;
}

.page-about-redesign .about-mission-card {
    align-items: stretch;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(216, 223, 239, 0.88);
    border-radius: 24px;
    box-shadow: 0 24px 58px rgba(20, 31, 63, 0.13);
    display: grid;
    gap: 34px;
    grid-template-columns: minmax(0, 1.25fr) minmax(440px, 1fr);
    padding: 44px 50px;
}

.page-about-redesign .about-mission-copy {
    display: grid;
    gap: 28px;
    grid-template-columns: 72px 1fr;
}

.page-about-redesign .about-mission-copy h2,
.page-about-redesign .about-work-copy h2 {
    color: #11162f;
    font-size: clamp(1.75rem, 2.4vw, 2.2rem);
    line-height: 1.12;
    margin: 0 0 20px;
}

.page-about-redesign .about-mission-copy p,
.page-about-redesign .about-work-copy p,
.page-about-redesign .about-value p {
    color: #33405d;
    font-size: 1rem;
    line-height: 1.65;
    margin: 0;
}

.page-about-redesign .about-mission-copy p + p {
    margin-top: 22px;
}

.page-about-redesign .about-values {
    border-left: 1px solid rgba(214, 220, 235, 0.95);
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-left: 36px;
}

.page-about-redesign .about-value h3 {
    color: #11162f;
    font-size: 1.08rem;
    line-height: 1.2;
    margin: 18px 0 8px;
}

.page-about-redesign .about-icon {
    align-items: center;
    border: 2px solid rgba(239, 63, 147, 0.52);
    border-radius: 999px;
    color: #ef3f93;
    display: inline-flex;
    flex: 0 0 auto;
    height: 64px;
    justify-content: center;
    position: relative;
    width: 64px;
}

.page-about-redesign .about-icon::before {
    display: block;
    font-size: 2rem;
    line-height: 1;
}

.page-about-redesign .about-icon-sun {
    border-color: rgba(255, 124, 53, 0.74);
    color: #ff7c35;
}

.page-about-redesign .about-icon-sun::before {
    content: "\2600";
}

.page-about-redesign .about-icon-community::before {
    content: "\263A";
}

.page-about-redesign .about-icon-calendar::before {
    content: "\25A3";
}

.page-about-redesign .about-icon-music::before {
    content: "\266A";
}

.page-about-redesign .about-work-section {
    padding: 32px 0 28px;
}

.page-about-redesign .about-work-grid {
    align-items: center;
    display: grid;
    gap: 58px;
    grid-template-columns: minmax(0, 0.85fr) minmax(460px, 1.15fr);
}

.page-about-redesign .about-work-copy {
    padding-left: 10px;
}

.page-about-redesign .about-check-list {
    display: grid;
    gap: 14px;
    list-style: none;
    margin: 26px 0 0;
    padding: 0;
}

.page-about-redesign .about-check-list li {
    align-items: center;
    color: #24304f;
    display: flex;
    font-weight: 800;
    gap: 13px;
    line-height: 1.35;
}

.page-about-redesign .about-check-list li::before {
    align-items: center;
    border: 2px solid #8d44ff;
    border-radius: 50%;
    color: #8d44ff;
    content: "\2713";
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 900;
    height: 20px;
    justify-content: center;
    width: 20px;
}

.page-about-redesign .about-work-image {
    border-radius: 16px;
    box-shadow: 0 22px 46px rgba(23, 30, 61, 0.13);
    margin: 0;
    overflow: hidden;
}

.page-about-redesign .about-work-image img {
    aspect-ratio: 2.75 / 1;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

@media (max-width: 1100px) {
    .page-about-redesign .about-mission-card,
    .page-about-redesign .about-work-grid {
        grid-template-columns: 1fr;
    }

    .page-about-redesign .about-values {
        border-left: 0;
        border-top: 1px solid rgba(214, 220, 235, 0.95);
        padding-left: 0;
        padding-top: 30px;
    }
}

@media (max-width: 760px) {
    .page-about-redesign .about-hero {
        min-height: 0;
        padding: 72px 0 128px;
    }

    .page-about-redesign .about-hero h1 {
        font-size: 3.1rem;
    }

    .page-about-redesign .about-overlap {
        margin-top: -64px;
    }

    .page-about-redesign .about-mission-card {
        border-radius: 20px;
        padding: 28px 22px;
    }

    .page-about-redesign .about-mission-copy {
        grid-template-columns: 1fr;
    }

    .page-about-redesign .about-values {
        grid-template-columns: 1fr;
    }

    .page-about-redesign .about-work-grid {
        gap: 28px;
    }

    .page-about-redesign .about-work-copy {
        padding-left: 0;
    }

    .page-about-redesign .about-work-image img {
        aspect-ratio: 1.55 / 1;
    }

}

.page-contact-redesign .nav > a:nth-of-type(2) {
    color: #151936;
}

.page-contact-redesign .nav > a:nth-of-type(2)::after {
    content: none;
}

.page-contact-redesign .nav a[href$="contatti"] {
    color: #1b1235;
    position: relative;
}

.page-contact-redesign .nav a[href$="contatti"]::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -18px;
    width: 52px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #ef3f93, #ff7c35);
    transform: translateX(-50%);
}

.page-contact-redesign .contact-page {
    background:
        radial-gradient(circle at 88% 15%, rgba(124, 92, 255, 0.08), transparent 20%),
        radial-gradient(circle at 9% 35%, rgba(239, 63, 147, 0.06), transparent 22%),
        linear-gradient(180deg, #fbfcff 0%, #f8fbff 72%, #ffffff 100%);
    color: #10162f;
    min-height: 72vh;
    overflow: hidden;
    position: relative;
}

.page-contact-redesign .contact-page::before {
    content: "";
    position: absolute;
    top: 64px;
    right: 7vw;
    width: 310px;
    height: 310px;
    border-radius: 50%;
    background: url("../img/logo-salentomusic.png") center / contain no-repeat;
    opacity: 0.045;
    pointer-events: none;
}

.page-contact-redesign .contact-hero {
    padding: 38px 0 18px;
    position: relative;
    z-index: 1;
}

.page-contact-redesign .contact-breadcrumb {
    align-items: center;
    color: #5f6b84;
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
}

.page-contact-redesign .contact-breadcrumb a {
    color: #17213d;
    font-weight: 800;
}

.page-contact-redesign .contact-breadcrumb span:last-child {
    color: #ef3f93;
    font-weight: 800;
}

.page-contact-redesign .contact-hero h1 {
    color: #10162f;
    font-size: clamp(3rem, 5vw, 4.55rem);
    letter-spacing: 0;
    line-height: 0.96;
    margin: 0 0 14px;
}

.page-contact-redesign .contact-hero p {
    color: #68748a;
    font-size: 1.06rem;
    line-height: 1.55;
    margin: 0;
    max-width: 840px;
}

.page-contact-redesign .contact-content {
    padding: 4px 0 20px;
    position: relative;
    z-index: 1;
}

.page-contact-redesign .contact-grid {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 420px;
}

.page-contact-redesign .contact-form-card,
.page-contact-redesign .contact-info-card,
.page-contact-redesign .contact-mini-card {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(222, 228, 240, 0.9);
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(17, 24, 47, 0.1);
}

.page-contact-redesign .contact-form-card {
    padding: 34px 38px;
}

.page-contact-redesign .contact-card-head {
    margin-bottom: 24px;
}

.page-contact-redesign .contact-card-head h2,
.page-contact-redesign .contact-info-card h2,
.page-contact-redesign .contact-mini-card h2 {
    color: #10162f;
    font-size: 1.6rem;
    line-height: 1.15;
    margin: 0 0 10px;
}

.page-contact-redesign .contact-card-head p,
.page-contact-redesign .contact-mini-card p {
    color: #657086;
    line-height: 1.58;
    margin: 0;
}

.page-contact-redesign .contact-form {
    display: grid;
    gap: 18px;
}

.page-contact-redesign .contact-form-grid {
    display: grid;
    gap: 18px 22px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-contact-redesign .contact-field {
    display: grid;
    gap: 8px;
}

.page-contact-redesign .contact-field label {
    color: #17213d;
    font-size: 0.92rem;
    font-weight: 900;
}

.page-contact-redesign .contact-field input,
.page-contact-redesign .contact-field textarea,
.page-contact-redesign .contact-newsletter-form input {
    background: #ffffff;
    border: 1px solid #d9e1ee;
    border-radius: 10px;
    color: #17213d;
    font: inherit;
    min-height: 46px;
    outline: none;
    padding: 0 16px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    width: 100%;
}

.page-contact-redesign .contact-field textarea {
    min-height: 108px;
    padding: 14px 16px;
    resize: vertical;
}

.page-contact-redesign .contact-field input:focus,
.page-contact-redesign .contact-field textarea:focus,
.page-contact-redesign .contact-newsletter-form input:focus {
    border-color: rgba(124, 92, 255, 0.72);
    box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
    transform: translateY(-1px);
}

.page-contact-redesign .contact-hidden-field {
    display: none;
}

.page-contact-redesign .contact-privacy {
    align-items: flex-start;
    color: #27324c;
    display: flex;
    font-size: 0.92rem;
    font-weight: 700;
    gap: 10px;
    line-height: 1.45;
}

.page-contact-redesign .contact-privacy input {
    accent-color: #8f42ff;
    margin-top: 2px;
}

.page-contact-redesign .contact-privacy a {
    color: #ef3f93;
    font-weight: 900;
}

.page-contact-redesign .contact-submit {
    border-radius: 999px;
    justify-content: center;
    min-height: 50px;
    width: 100%;
}

.page-contact-redesign .contact-side {
    display: grid;
    gap: 16px;
}

.page-contact-redesign .contact-info-card {
    display: grid;
    gap: 22px;
    grid-template-columns: 54px 1fr;
    padding: 28px;
}

.page-contact-redesign .contact-info-card-large {
    min-height: 156px;
}

.page-contact-redesign .contact-side-icon {
    color: #ef3f93;
    display: inline-flex;
    font-size: 2rem;
    justify-content: center;
    line-height: 1;
    padding-top: 4px;
}

.page-contact-redesign .contact-info-list,
.page-contact-redesign .contact-check-list {
    display: grid;
    gap: 12px;
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}

.page-contact-redesign .contact-info-list li,
.page-contact-redesign .contact-check-list li {
    align-items: center;
    color: #27324c;
    display: flex;
    font-weight: 700;
    gap: 10px;
    line-height: 1.35;
}

.page-contact-redesign .contact-info-list span {
    color: #59647d;
    font-size: 1rem;
    width: 18px;
}

.page-contact-redesign .contact-info-list a {
    color: #8f42ff;
    font-weight: 900;
}

.page-contact-redesign .contact-check-list li::before {
    align-items: center;
    border: 2px solid #8f42ff;
    border-radius: 50%;
    color: #8f42ff;
    content: "\2713";
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 900;
    height: 18px;
    justify-content: center;
    width: 18px;
}

.page-contact-redesign .contact-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 18px;
}

.page-contact-redesign .contact-socials a {
    align-items: center;
    border: 2px solid rgba(143, 66, 255, 0.66);
    border-radius: 50%;
    color: #17213d;
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    transition: transform 0.18s ease, color 0.18s ease, border-color 0.18s ease;
    width: 42px;
}

.page-contact-redesign .contact-socials a:hover {
    border-color: #ef3f93;
    color: #ef3f93;
    transform: translateY(-2px);
}

.page-contact-redesign .contact-bottom-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr 1fr;
    margin-top: 22px;
}

.page-contact-redesign .contact-mini-card {
    align-items: center;
    display: grid;
    gap: 24px;
    grid-template-columns: 76px 1fr;
    padding: 26px 30px;
}

.page-contact-redesign .contact-gradient-icon {
    align-items: center;
    background: linear-gradient(135deg, #ef3f93, #8f42ff);
    border-radius: 50%;
    box-shadow: 0 18px 36px rgba(143, 66, 255, 0.24);
    color: #ffffff;
    display: inline-flex;
    font-size: 2rem;
    height: 70px;
    justify-content: center;
    width: 70px;
}

.page-contact-redesign .contact-mini-card a {
    align-items: center;
    border: 2px solid #ef3f93;
    border-radius: 999px;
    color: #8f42ff;
    display: inline-flex;
    font-weight: 900;
    justify-content: center;
    margin-top: 14px;
    min-height: 38px;
    padding: 0 34px;
}

.page-contact-redesign .contact-newsletter-form {
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) 130px;
    margin-top: 16px;
}

.page-contact-redesign .contact-newsletter-form button {
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #ef3f93, #7a4ce8);
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-weight: 900;
    min-height: 42px;
    padding: 0 22px;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.page-contact-redesign .contact-submit:hover,
.page-contact-redesign .contact-newsletter-form button:hover,
.page-contact-redesign .contact-mini-card a:hover {
    box-shadow: 0 16px 34px rgba(143, 66, 255, 0.22);
    transform: translateY(-1px);
}

@media (max-width: 1080px) {
    .page-contact-redesign .contact-grid,
    .page-contact-redesign .contact-bottom-grid {
        grid-template-columns: 1fr;
    }

    .page-contact-redesign .contact-side {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-contact-redesign .contact-info-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-contact-redesign .contact-hero {
        padding-top: 28px;
    }

    .page-contact-redesign .contact-hero h1 {
        font-size: 3rem;
    }

    .page-contact-redesign .contact-form-card,
    .page-contact-redesign .contact-info-card,
    .page-contact-redesign .contact-mini-card {
        border-radius: 16px;
    }

    .page-contact-redesign .contact-form-card {
        padding: 24px 20px;
    }

    .page-contact-redesign .contact-form-grid,
    .page-contact-redesign .contact-side,
    .page-contact-redesign .contact-newsletter-form,
    .page-contact-redesign .contact-mini-card {
        grid-template-columns: 1fr;
    }

    .page-contact-redesign .contact-mini-card {
        padding: 24px;
    }

}
