:root {
    --tt-navy: #173b57;
    --tt-navy-deep: #10294a;
    --tt-blue: #2979ff;
    --tt-turquoise: #16b8a6;
    --tt-coral: #ff6b6b;
    --tt-amber: #f5b942;
    --tt-violet: #7a6ff0;
    --tt-green: #42b883;
    --tt-ink: #15324a;
    --tt-muted: #647588;
    --tt-paper: #f5f7fc;
    --tt-line: #dfe7ef;
    --tt-white: #fff;
    --tt-shadow: 0 16px 42px rgba(23, 59, 87, .11);
}

body.com_trasporti {
    background:
        radial-gradient(circle at 88% 8%, rgba(122, 111, 240, .11), transparent 24rem),
        radial-gradient(circle at 8% 28%, rgba(22, 184, 166, .10), transparent 22rem),
        var(--tt-paper);
    color: var(--tt-ink);
    font-family: Inter, ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, -apple-system, sans-serif;
}

body.com_trasporti .container-header {
    background: linear-gradient(108deg, var(--tt-navy-deep), var(--tt-navy) 52%, #3446a8);
    border: 0;
    box-shadow: 0 8px 28px rgba(16, 41, 74, .16);
    min-height: 5rem;
    position: relative;
    z-index: 10;
}

body.com_trasporti .container-header::after {
    background: linear-gradient(90deg, var(--tt-turquoise), var(--tt-blue), var(--tt-violet), var(--tt-coral));
    bottom: 0;
    content: "";
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
}

body.com_trasporti .container-header .grid-child {
    margin: 0 auto;
    max-width: 1440px;
    padding: .72rem clamp(1rem, 3vw, 2rem);
    width: 100%;
}

body.com_trasporti .navbar-brand .brand-logo {
    align-items: center;
    color: var(--tt-white);
    display: inline-flex;
    gap: .8rem;
    text-decoration: none;
}

body.com_trasporti .navbar-brand .tt-brand-mark {
    background: var(--tt-white);
    border-radius: 1rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
    height: 58px;
    object-fit: contain;
    padding: .4rem;
    width: 58px;
}

body.com_trasporti .tt-brand-copy {
    display: grid;
    line-height: 1.05;
}

body.com_trasporti .tt-brand-copy strong {
    color: var(--tt-white);
    font-size: clamp(1.15rem, 2vw, 1.48rem);
    letter-spacing: -.025em;
}

body.com_trasporti .tt-brand-copy small {
    color: #bff7ef;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .09em;
    margin-top: .3rem;
    text-transform: uppercase;
}

body.com_trasporti .site-grid {
    display: grid;
    gap: clamp(1rem, 2.6vw, 2rem);
    grid-template-areas: "tt-sidebar tt-component";
    grid-template-columns: minmax(225px, 272px) minmax(0, 1fr);
    margin: 0 auto;
    max-width: 1440px;
    padding: clamp(1rem, 2.8vw, 2.2rem);
}

body.com_trasporti .container-component {
    grid-area: tt-component;
    min-width: 0;
}

body.com_trasporti .container-sidebar-right {
    align-self: start;
    background:
        radial-gradient(circle at 85% 12%, rgba(22, 184, 166, .75) 0 5px, transparent 6px),
        radial-gradient(circle at 68% 18%, rgba(255, 255, 255, .45) 0 3px, transparent 4px),
        linear-gradient(165deg, var(--tt-navy-deep) 4%, #163e83 50%, var(--tt-violet) 100%);
    border-radius: 1.35rem;
    box-shadow: var(--tt-shadow);
    color: var(--tt-white);
    grid-area: tt-sidebar;
    overflow: hidden;
    padding: 1rem;
    position: sticky;
    top: 1rem;
}

body.com_trasporti .container-sidebar-right::after {
    background:
        linear-gradient(155deg, transparent 45%, rgba(22, 184, 166, .72) 46% 58%, transparent 59%),
        linear-gradient(25deg, #173b57 38%, #2979ff 39% 50%, #7a6ff0 51% 61%, #ff8b72 62% 67%, transparent 68%);
    bottom: 0;
    clip-path: polygon(0 57%, 15% 46%, 31% 63%, 47% 38%, 64% 60%, 80% 49%, 100% 66%, 100% 100%, 0 100%);
    content: "";
    height: 145px;
    left: 0;
    opacity: .68;
    pointer-events: none;
    position: absolute;
    right: 0;
}

body.com_trasporti .container-sidebar-right .card {
    background: transparent;
    border: 0;
    color: inherit;
    margin: 0 0 1rem;
    position: relative;
    z-index: 1;
}

body.com_trasporti .container-sidebar-right .card-header {
    background: transparent;
    border: 0;
    color: #c9f9f2;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    padding: .75rem .65rem .45rem;
    text-transform: uppercase;
}

body.com_trasporti .container-sidebar-right .card-body {
    padding: .25rem;
}

body.com_trasporti .container-sidebar-right .mod-menu {
    display: grid;
    gap: .45rem;
}

body.com_trasporti .container-sidebar-right .mod-menu a {
    border: 1px solid transparent;
    border-radius: .85rem;
    color: var(--tt-white);
    display: block;
    font-weight: 750;
    min-height: 44px;
    padding: .7rem .82rem;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

body.com_trasporti .container-sidebar-right .mod-menu a:hover,
body.com_trasporti .container-sidebar-right .mod-menu a:focus-visible,
body.com_trasporti .container-sidebar-right .mod-menu .current > a,
body.com_trasporti .container-sidebar-right .mod-menu .active > a {
    background: linear-gradient(110deg, var(--tt-turquoise), #12a7d7);
    border-color: rgba(255, 255, 255, .32);
    box-shadow: 0 10px 24px rgba(2, 25, 59, .22);
    color: var(--tt-white);
    transform: translateY(-1px);
}

body.com_trasporti .container-sidebar-right .login-greeting {
    color: var(--tt-white);
    font-weight: 750;
    margin-bottom: .65rem;
}

body.com_trasporti .container-sidebar-right .logout-button .btn {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .38);
    color: var(--tt-white);
    min-height: 44px;
    width: 100%;
}

body.com_trasporti .mod-breadcrumbs__wrapper {
    display: none;
}

body.com_trasporti .transporti-shell {
    color: var(--tt-ink);
    margin: 0;
    max-width: none;
    padding: 0;
}

body.com_trasporti .transporti-hero,
body.com_trasporti .transporti-page-heading {
    background:
        radial-gradient(circle at 91% 22%, rgba(122, 111, 240, .2) 0 8px, transparent 9px),
        radial-gradient(circle at 84% 45%, rgba(22, 184, 166, .3) 0 6px, transparent 7px),
        linear-gradient(125deg, #effcfa 0%, #f4f1ff 52%, #fff2ed 100%);
    border: 0;
    border-radius: 1.35rem;
    box-shadow: var(--tt-shadow);
    isolation: isolate;
    overflow: hidden;
    padding: clamp(1.35rem, 4vw, 2.7rem);
    position: relative;
}

body.com_trasporti .transporti-hero::after,
body.com_trasporti .transporti-page-heading::after {
    border-top: 4px dotted var(--tt-turquoise);
    content: "";
    height: 35px;
    opacity: .7;
    position: absolute;
    right: 4%;
    top: 28%;
    transform: rotate(-8deg);
    width: min(24%, 210px);
    z-index: -1;
}

body.com_trasporti .transporti-hero h1,
body.com_trasporti .transporti-page-heading h1 {
    color: var(--tt-navy-deep);
    font-size: clamp(1.75rem, 4vw, 2.8rem);
    letter-spacing: -.04em;
}

body.com_trasporti .transporti-kicker {
    color: #5c51d5;
}

body.com_trasporti .transporti-grid {
    gap: 1.15rem;
}

body.com_trasporti .transporti-card,
body.com_trasporti .transporti-booking-card,
body.com_trasporti .transporti-empty,
body.com_trasporti .transporti-form,
body.com_trasporti .transporti-table-wrap,
body.com_trasporti .transporti-notification {
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(223, 231, 239, .85);
    border-radius: 1.15rem;
    box-shadow: 0 10px 28px rgba(23, 59, 87, .085);
}

body.com_trasporti .transporti-grid-actions > .transporti-card:nth-child(5n + 1) {
    background: linear-gradient(145deg, #dffaf7, #fff 74%);
    border-top: 5px solid var(--tt-turquoise);
}

body.com_trasporti .transporti-grid-actions > .transporti-card:nth-child(5n + 2) {
    background: linear-gradient(145deg, #eeebff, #fff 74%);
    border-top: 5px solid var(--tt-violet);
}

body.com_trasporti .transporti-grid-actions > .transporti-card:nth-child(5n + 3) {
    background: linear-gradient(145deg, #fff1ed, #fff 74%);
    border-top: 5px solid var(--tt-coral);
}

body.com_trasporti .transporti-grid-actions > .transporti-card:nth-child(5n + 4) {
    background: linear-gradient(145deg, #fff5da, #fff 74%);
    border-top: 5px solid var(--tt-amber);
}

body.com_trasporti .transporti-grid-actions > .transporti-card:nth-child(5n) {
    background: linear-gradient(145deg, #e7f2ff, #fff 74%);
    border-top: 5px solid var(--tt-blue);
}

body.com_trasporti .transporti-card-link {
    min-height: 180px;
}

body.com_trasporti .transporti-card-link:hover,
body.com_trasporti .transporti-card-link:focus-visible {
    border-color: rgba(41, 121, 255, .35);
    box-shadow: 0 18px 38px rgba(23, 59, 87, .15);
    color: var(--tt-navy-deep);
    transform: translateY(-4px);
}

body.com_trasporti .transporti-card-icon {
    align-items: center;
    background: linear-gradient(135deg, var(--tt-turquoise), var(--tt-blue));
    border-radius: 1rem;
    box-shadow: 0 8px 18px rgba(41, 121, 255, .2);
    color: var(--tt-white);
    display: inline-flex;
    font-size: 1.25rem;
    height: 48px;
    justify-content: center;
    margin-bottom: .25rem;
    min-width: 48px;
    padding: 0 .65rem;
}

body.com_trasporti .transporti-booking-list {
    gap: 1.05rem;
}

body.com_trasporti .transporti-booking-card {
    border-left: 5px solid var(--tt-turquoise);
    padding: clamp(1rem, 2.4vw, 1.45rem);
    transition: box-shadow .18s ease, transform .18s ease;
}

body.com_trasporti .transporti-booking-card:nth-child(3n + 2) {
    border-left-color: var(--tt-violet);
}

body.com_trasporti .transporti-booking-card:nth-child(3n) {
    border-left-color: var(--tt-coral);
}

body.com_trasporti .transporti-booking-card:hover {
    box-shadow: 0 17px 36px rgba(23, 59, 87, .13);
    transform: translateY(-2px);
}

body.com_trasporti .transporti-booking-card h2 {
    color: var(--tt-navy-deep);
    font-size: 1.34rem;
    letter-spacing: -.02em;
}

body.com_trasporti .transporti-route {
    background: linear-gradient(90deg, rgba(22, 184, 166, .09), rgba(41, 121, 255, .07));
    border-radius: .85rem;
    color: var(--tt-navy-deep);
    padding: .85rem 1rem;
}

body.com_trasporti .transporti-route span[aria-hidden="true"] {
    color: var(--tt-blue);
    font-size: 1.35rem;
}

body.com_trasporti .transporti-status {
    background: #dff4ff;
    border: 1px solid #bcdff5;
    color: #125b8c;
    padding: .38rem .75rem;
}

body.com_trasporti .transporti-status.tt-status-open {
    background: #dff4ff;
    border-color: #abd7f3;
    color: #0f639b;
}

body.com_trasporti .transporti-status.tt-status-quote {
    background: #e4fbf8;
    border-color: #9ce6dc;
    color: #08786c;
}

body.com_trasporti .transporti-status.tt-status-assigned,
body.com_trasporti .transporti-status.tt-status-completed {
    background: #dcf7e7;
    border-color: #9ddab5;
    color: #17673a;
}

body.com_trasporti .transporti-status.tt-status-progress {
    background: #eeeaff;
    border-color: #c6bef9;
    color: #5144c5;
}

body.com_trasporti .transporti-status.tt-status-muted {
    background: #edf0f3;
    border-color: #d4dce4;
    color: #586878;
}

body.com_trasporti .transporti-meta dt {
    color: var(--tt-muted);
}

body.com_trasporti .transporti-meta dd {
    color: var(--tt-navy-deep);
}

body.com_trasporti .transporti-countdown {
    background: #fff2de;
    border: 1px solid #ffd08b;
    color: #9a4d00;
}

body.com_trasporti .transporti-privacy-note,
body.com_trasporti .transporti-card-warning {
    background: linear-gradient(120deg, #fff6db, #fffaf0);
    border-color: #f2d37e;
}

body.com_trasporti .transporti-quote-receipt,
body.com_trasporti .transporti-winner-details,
body.com_trasporti .transporti-response-note {
    background: linear-gradient(110deg, #e7fbf8, #edf4ff);
    border-left-color: var(--tt-turquoise);
}

body.com_trasporti .transporti-form fieldset {
    border-bottom-color: var(--tt-line);
}

body.com_trasporti .transporti-form legend {
    color: var(--tt-navy-deep);
}

body.com_trasporti .transporti-field input,
body.com_trasporti .transporti-field select,
body.com_trasporti .transporti-field textarea,
body.com_trasporti .transporti-assignment-form select,
body.com_trasporti .transporti-decline-form input,
body.com_trasporti .transporti-driver-form select {
    background: var(--tt-white);
    border: 1px solid #b9c8d5;
    border-radius: .72rem;
    min-height: 46px;
}

body.com_trasporti .transporti-field input:focus,
body.com_trasporti .transporti-field select:focus,
body.com_trasporti .transporti-field textarea:focus,
body.com_trasporti .transporti-assignment-form select:focus,
body.com_trasporti .transporti-decline-form input:focus,
body.com_trasporti .transporti-driver-form select:focus {
    border-color: var(--tt-blue);
    box-shadow: 0 0 0 .25rem rgba(41, 121, 255, .17);
    outline: 0;
}

body.com_trasporti .btn {
    border-radius: .72rem;
    font-weight: 780;
    min-height: 44px;
    padding: .62rem 1rem;
}

body.com_trasporti .btn-primary {
    background: linear-gradient(110deg, var(--tt-turquoise), var(--tt-blue));
    border-color: transparent;
    box-shadow: 0 9px 20px rgba(41, 121, 255, .2);
    color: var(--tt-white);
}

body.com_trasporti .btn-primary:hover,
body.com_trasporti .btn-primary:focus-visible {
    background: linear-gradient(110deg, #0ca392, #1a66dd);
    border-color: transparent;
    color: var(--tt-white);
    transform: translateY(-1px);
}

body.com_trasporti .transporti-page-heading > .btn-primary,
body.com_trasporti .transporti-form-actions .btn-primary {
    background: linear-gradient(110deg, var(--tt-coral), #ff8b72);
    box-shadow: 0 9px 20px rgba(255, 107, 107, .23);
}

body.com_trasporti a:focus-visible,
body.com_trasporti button:focus-visible,
body.com_trasporti summary:focus-visible {
    outline: 3px solid var(--tt-amber);
    outline-offset: 3px;
}

body.com_trasporti .pagination .page-link {
    border-radius: .55rem;
    color: var(--tt-navy);
    margin: 0 .15rem;
}

body.com_trasporti .footer {
    background: var(--tt-navy-deep);
    color: var(--tt-white);
}

@media (max-width: 960px) {
    body.com_trasporti .site-grid {
        grid-template-areas:
            "tt-component"
            "tt-sidebar";
        grid-template-columns: minmax(0, 1fr);
    }

    body.com_trasporti .container-sidebar-right {
        display: grid;
        gap: .5rem;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        position: relative;
        top: auto;
    }

    body.com_trasporti .container-sidebar-right::after {
        height: 95px;
    }
}

@media (max-width: 680px) {
    body.com_trasporti .container-header {
        min-height: 4.4rem;
    }

    body.com_trasporti .container-header .grid-child {
        padding: .58rem .85rem;
    }

    body.com_trasporti .navbar-brand .tt-brand-mark {
        border-radius: .8rem;
        height: 48px;
        width: 48px;
    }

    body.com_trasporti .tt-brand-copy strong {
        font-size: 1.08rem;
    }

    body.com_trasporti .tt-brand-copy small {
        font-size: .62rem;
    }

    body.com_trasporti .site-grid {
        gap: 1rem;
        padding: .82rem;
    }

    body.com_trasporti .transporti-hero,
    body.com_trasporti .transporti-page-heading {
        border-radius: 1rem;
        padding: 1.15rem;
    }

    body.com_trasporti .transporti-hero::after,
    body.com_trasporti .transporti-page-heading::after {
        display: none;
    }

    body.com_trasporti .transporti-card,
    body.com_trasporti .transporti-booking-card,
    body.com_trasporti .transporti-empty,
    body.com_trasporti .transporti-form,
    body.com_trasporti .transporti-table-wrap,
    body.com_trasporti .transporti-notification {
        border-radius: 1rem;
    }

    body.com_trasporti .transporti-booking-card header time {
        background: #f0f5fa;
        border-radius: .65rem;
        padding: .55rem .7rem;
    }

    body.com_trasporti .transporti-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.com_trasporti .transporti-response-actions .btn,
    body.com_trasporti .transporti-form-actions .btn,
    body.com_trasporti .transporti-quote-form .btn {
        width: 100%;
    }

    body.com_trasporti .container-sidebar-right {
        border-radius: 1rem;
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.com_trasporti *,
    body.com_trasporti *::before,
    body.com_trasporti *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
