/*
|--------------------------------------------------------------------------
| STUDIO FINDER — MOBILE PORTAL V1
| Build: SF_MOBILE_PORTAL_V48_MODE_SPLIT
|--------------------------------------------------------------------------
| Layer responsive condiviso per:
| - area artista;
| - area studio;
| - Hub;
| - News;
| - pagine pubbliche;
| - modali, tabelle, form e safe-area.
|
| Non modifica logica, dati o permessi.
|--------------------------------------------------------------------------
*/

:root{
    --sf-mobile-page-x:12px;
    --sf-mobile-card-radius:16px;
    --sf-mobile-line:#DDE2E4;
    --sf-mobile-bg:#F6F6F6;
    --sf-mobile-blue:#056384;
    --sf-mobile-safe-top:env(safe-area-inset-top,0px);
    --sf-mobile-safe-right:env(safe-area-inset-right,0px);
    --sf-mobile-safe-bottom:env(safe-area-inset-bottom,0px);
    --sf-mobile-safe-left:env(safe-area-inset-left,0px);
}

html{
    max-width:100%;
    overflow-x:hidden;
    -webkit-text-size-adjust:100%;
}

body{
    max-width:100%;
    overflow-x:hidden;
}

img,
video,
canvas,
iframe{
    max-width:100%;
}

input,
select,
textarea,
button{
    max-width:100%;
}

@media(max-width:900px){
    :root{
        --sf-mobile-page-x:12px;
    }

    html,
    body{
        width:100%;
        min-width:0;
        overscroll-behavior-x:none;
    }

    body{
        background:var(--sf-mobile-bg);
    }

    .app-layout,
    .app,
    .dashboard-scale,
    .profile-management-shell,
    .sf-marketing-page,
    .sf-marketing-content,
    .content,
    main.content,
    .main-content,
    .hub-main,
    .sf-news-main{
        min-width:0!important;
        max-width:100%;
    }

    .content > *,
    main.content > *,
    .main-content > *,
    .hub-main > *,
    .sf-news-main > *{
        min-width:0;
        max-width:100%;
    }

    /*
    |--------------------------------------------------------------------------
    | PORTALE AUTENTICATO — SPAZI E SAFE AREA
    |--------------------------------------------------------------------------
    | pwa-shell continua a gestire la tab bar. Questa sezione sistema
    | esclusivamente il contenuto, evitando vecchi padding da sidebar.
    |--------------------------------------------------------------------------
    */
    html.sf-mode-mobile-web .app-layout > main.content,
    html.sf-mode-mobile-web .app > main.content,
    html.sf-mode-mobile-web main.content{
        margin-left:0!important;
        width:100%!important;
        padding:
            calc(72px + var(--sf-mobile-safe-top))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-right))
            calc(24px + var(--sf-mobile-safe-bottom))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-left))
            !important;
    }

    /*
    |--------------------------------------------------------------------------
    | TESTATE E AZIONI
    |--------------------------------------------------------------------------
    | I pulsanti secondari diventano una toolbar orizzontale compatta invece
    | di grandi CTA impilate una sopra l'altra.
    |--------------------------------------------------------------------------
    */
    html.sf-mode-mobile-web .topbar,
    html.sf-mode-mobile-web .page-header,
    html.sf-mode-mobile-web .home-topbar{
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:8px!important;
        margin-bottom:12px!important;
    }

    html.sf-mode-mobile-web .welcome,
    html.sf-mode-mobile-web .page-header > div:first-child{
        min-width:0;
        width:100%;
    }

    html.sf-mode-mobile-web .welcome h1,
    html.sf-mode-mobile-web .page-header h1{
        margin-top:0!important;
        margin-bottom:4px!important;
        font-size:24px!important;
        line-height:1.06!important;
        letter-spacing:-.035em!important;
    }

    html.sf-mode-mobile-web .welcome p,
    html.sf-mode-mobile-web .page-header p{
        margin-top:0!important;
        font-size:12px!important;
        line-height:1.4!important;
    }

    html.sf-mode-mobile-web .top-actions,
    html.sf-mode-mobile-web .page-actions,
    html.sf-mode-mobile-web .home-top-actions{
        display:flex!important;
        width:100%!important;
        max-width:100%!important;
        flex-wrap:wrap!important;
        gap:7px!important;
        padding:0 0 2px!important;
        overflow:visible!important;
    }

    html.sf-mode-mobile-web .top-actions > *,
    html.sf-mode-mobile-web .page-actions > *,
    html.sf-mode-mobile-web .home-top-actions > *{
        flex:0 0 auto!important;
        width:auto!important;
        min-width:max-content;
        min-height:40px!important;
        padding:9px 12px!important;
        border-radius:11px!important;
        font-size:12px!important;
        white-space:nowrap;
    }

    /*
    |--------------------------------------------------------------------------
    | TOUCH / FORM
    |--------------------------------------------------------------------------
    */
    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea{
        min-height:44px;
        font-size:16px!important;
    }

    textarea{
        min-height:96px;
    }

    button,
    .btn,
    .btn-main,
    .btn-secondary-soft,
    .btn-danger-soft,
    .btn-success-soft,
    .button,
    .submit-btn{
        touch-action:manipulation;
        -webkit-tap-highlight-color:transparent;
    }

    .form-grid,
    .forms-grid,
    .settings-grid,
    .layout-grid,
    .profile-layout,
    .calendar-layout,
    .services-layout,
    .instrument-grid,
    .match-form-grid{
        grid-template-columns:minmax(0,1fr)!important;
    }

    /*
    |--------------------------------------------------------------------------
    | CARD / CONTENITORI
    |--------------------------------------------------------------------------
    */
    .card-box,
    .card,
    .panel,
    .profile-strip,
    .booking-row,
    .booking-card,
    .track-card,
    .notification-card,
    .notification-row{
        max-width:100%;
        border-radius:var(--sf-mobile-card-radius)!important;
    }

    .card-head{
        gap:8px!important;
    }

    .card-head h2,
    .card-title{
        line-height:1.18!important;
    }

    /*
    |--------------------------------------------------------------------------
    | TABELLE E CONTENUTI LARGHI
    |--------------------------------------------------------------------------
    */
    .table-wrap,
    .table-scroll,
    .table-responsive,
    .sessions-scroll-box,
    .plan-comparison-wrap,
    .calendar-table-wrap{
        width:100%!important;
        max-width:100%!important;
        overflow-x:auto!important;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:thin;
    }

    .table-wrap table,
    .table-scroll table,
    .table-responsive table,
    .sessions-scroll-box table,
    .plan-comparison-wrap table{
        min-width:560px;
    }

    pre,
    code{
        max-width:100%;
        overflow-wrap:anywhere;
    }

    .row-title,
    .studio-title,
    .profile-email,
    .booking-title,
    .track-title,
    td,
    th{
        overflow-wrap:anywhere;
    }

    /*
    |--------------------------------------------------------------------------
    | MODALI
    |--------------------------------------------------------------------------
    */
    .modal-card,
    .audio-modal-card,
    .sf-upload-modal-card,
    .booking-details-modal-card,
    .sf-news-modal-dialog,
    .match-modal-content,
    .modal-content{
        max-width:calc(100vw - 16px)!important;
        max-height:calc(100dvh - var(--sf-mobile-safe-top) - 12px)!important;
        border-radius:20px!important;
    }

    .modal-body,
    .booking-details-modal-body,
    .sf-upload-modal-body{
        max-height:calc(100dvh - 122px - var(--sf-mobile-safe-top) - var(--sf-mobile-safe-bottom))!important;
        overflow-y:auto!important;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }

    /*
    |--------------------------------------------------------------------------
    | HOME ARTISTA
    |--------------------------------------------------------------------------
    */
    .artist-hero-efficient{
        min-height:0!important;
        padding:14px!important;
        border-radius:17px!important;
    }

    .artist-hero-efficient .hero-copy h2{
        margin-top:6px!important;
        font-size:23px!important;
        line-height:1.05!important;
    }

    .artist-hero-efficient .hero-copy p{
        font-size:12px!important;
        line-height:1.4!important;
    }

    .artist-hero-efficient .hero-focus-compact{
        min-height:0!important;
        padding:13px!important;
    }

    .artist-hero-efficient .hero-actions{
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:7px!important;
    }

    .artist-hero-efficient .hero-actions a{
        width:100%!important;
        min-height:40px!important;
        justify-content:center!important;
        text-align:center;
    }

    .activity-columns,
    .discover-columns{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .activity-column,
    .discover-column{
        min-height:0!important;
        padding:14px!important;
    }

    .activity-column + .activity-column,
    .discover-column + .discover-column{
        border-left:0!important;
        border-top:1px solid #e2e8f0!important;
    }

    .activity-column-head,
    .discover-column-head{
        gap:9px!important;
        margin-bottom:11px!important;
    }

    .activity-column-icon,
    .discover-column-icon{
        width:36px!important;
        height:36px!important;
        flex-basis:36px!important;
        border-radius:11px!important;
    }

    .activity-column-title,
    .discover-column-title{
        font-size:16px!important;
    }

    .activity-column-copy,
    .discover-column-copy{
        font-size:11px!important;
    }

    .activity-column .sessions-scroll-compact{
        max-height:none!important;
    }

    .discover-news-row,
    .discover-opportunity-row{
        grid-template-columns:54px minmax(0,1fr) auto!important;
        gap:9px!important;
        padding:8px!important;
    }

    .discover-thumb{
        width:54px!important;
        height:54px!important;
        border-radius:11px!important;
    }

    .discover-row-title{
        font-size:12px!important;
        line-height:1.25!important;
    }

    /*
    |--------------------------------------------------------------------------
    | CERCA STUDIO ARTISTA
    |--------------------------------------------------------------------------
    */
    .sf-minimal-search-shell{
        width:100%!important;
        padding:7px!important;
        border-radius:16px!important;
    }

    .sf-minimal-search-form{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto auto auto!important;
        align-items:center!important;
        justify-content:stretch!important;
        gap:6px!important;
        width:100%!important;
        max-width:100%!important;
        overflow:visible!important;
    }

    .sf-minimal-search-field{
        width:100%!important;
        min-width:0!important;
        max-width:none!important;
        height:42px!important;
    }

    /* Su smartphone i riepiloghi Servizi/Distanza non diventano chip da scorrere.
       Tutti i filtri vivono nel popup dedicato. */
    .sf-minimal-summary-chip{
        display:none!important;
    }

    .sf-minimal-filter-button,
    .sf-minimal-match-button,
    .sf-minimal-map-button{
        width:auto!important;
        min-width:0!important;
        min-height:40px!important;
        padding-right:10px!important;
        padding-left:10px!important;
    }

    .sf-minimal-filter-button.is-active{
        border-color:#01ABAF!important;
        background:rgba(1,171,175,.12)!important;
        color:#000000!important;
    }

    /*
    |--------------------------------------------------------------------------
    | FILTRI MOBILE DENTRO LA STESSA SCHEDA
    |--------------------------------------------------------------------------
    */
    .sf-minimal-search-shell{
        overflow:visible!important;
    }

    .sf-filter-drawer.sf-inline-filters{
        position:static!important;
        inset:auto!important;
        display:none!important;
        width:100%!important;
        max-width:none!important;
        height:auto!important;
        max-height:none!important;
        margin:8px 0 0!important;
        overflow:hidden!important;
        border:0!important;
        border-top:1px solid #e7edf5!important;
        border-radius:0!important;
        background:#fff!important;
        box-shadow:none!important;
        opacity:1!important;
        pointer-events:auto!important;
        transform:none!important;
        transition:none!important;
    }

    .sf-filter-drawer.sf-inline-filters.is-open{
        display:block!important;
        transform:none!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-head{
        display:none!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-form{
        display:flex!important;
        flex-direction:column!important;
        width:100%!important;
        height:auto!important;
        max-height:none!important;
        overflow:hidden!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-drawer-field-city{
        display:none!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-content{
        flex:0 1 auto!important;
        width:100%!important;
        max-height:min(50dvh,430px)!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        padding:14px 2px 10px!important;
        scroll-behavior:auto!important;
        overscroll-behavior:contain!important;
        -webkit-overflow-scrolling:touch;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-actions{
        position:sticky!important;
        bottom:0!important;
        z-index:2!important;
        grid-template-columns:auto minmax(0,1fr)!important;
        width:100%!important;
        margin:0!important;
        padding:10px 0 2px!important;
        border-top:1px solid #edf1f5!important;
        background:#fff!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-two-col{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-drawer-field input,
    .sf-filter-drawer.sf-inline-filters .sf-drawer-field select{
        min-height:42px!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-drawer-service-grid{
        gap:6px!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-drawer-service-chip span{
        min-height:34px!important;
    }

    /*
    |--------------------------------------------------------------------------
    | MATCH NELLA STESSA SCHEDA
    |--------------------------------------------------------------------------
    */
    .match-modal-backdrop.sf-inline-match{
        position:static!important;
        inset:auto!important;
        display:none!important;
        width:100%!important;
        height:auto!important;
        margin:8px 0 0!important;
        padding:0!important;
        background:transparent!important;
        backdrop-filter:none!important;
        -webkit-backdrop-filter:none!important;
        opacity:1!important;
        pointer-events:auto!important;
        z-index:auto!important;
    }

    .match-modal-backdrop.sf-inline-match.open{
        display:block!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal{
        width:100%!important;
        max-width:none!important;
        max-height:none!important;
        margin:0!important;
        overflow:hidden!important;
        border:0!important;
        border-top:1px solid #e7edf5!important;
        border-radius:0!important;
        background:#fff!important;
        box-shadow:none!important;
        transform:none!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-head{
        padding:14px 2px 8px!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-head h2{
        font-size:17px!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-head p{
        margin-top:4px!important;
        font-size:11px!important;
        line-height:1.4!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-close{
        display:none!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-body{
        width:100%!important;
        max-height:min(46dvh,390px)!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        padding:8px 2px 2px!important;
        overscroll-behavior:contain!important;
        -webkit-overflow-scrolling:touch;
    }

    .match-modal-backdrop.sf-inline-match .match-prompt-textarea{
        min-height:126px!important;
        max-height:220px!important;
        resize:vertical!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-actions{
        position:sticky!important;
        bottom:0!important;
        z-index:2!important;
        padding:10px 0 2px!important;
        background:#fff!important;
    }

    .match-inline-section.sf-inline-match-results{
        width:100%!important;
        max-width:none!important;
        max-height:min(54dvh,500px)!important;
        margin:8px 0 0!important;
        padding:14px 2px 4px!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        border:0!important;
        border-top:1px solid #e7edf5!important;
        border-radius:0!important;
        background:#fff!important;
        box-shadow:none!important;
        overscroll-behavior:contain!important;
        -webkit-overflow-scrolling:touch;
    }

    .match-inline-section.sf-inline-match-results .match-inline-header{
        align-items:flex-start!important;
        gap:8px!important;
    }

    .match-inline-section.sf-inline-match-results .match-inline-header h2{
        font-size:17px!important;
    }

    .match-inline-section.sf-inline-match-results .match-inline-results{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .sf-minimal-match-button.is-active{
        border-color:#01ABAF!important;
        background:rgba(1,171,175,.12)!important;
        color:#000000!important;
    }

    /*
    |--------------------------------------------------------------------------
    | MAPPA NELLA STESSA SCHEDA
    |--------------------------------------------------------------------------
    */
    #mapModal.sf-inline-map{
        position:static!important;
        inset:auto!important;
        display:none!important;
        width:100%!important;
        height:auto!important;
        margin:8px 0 0!important;
        padding:0!important;
        overflow:hidden!important;
        background:transparent!important;
        opacity:1!important;
        pointer-events:auto!important;
        z-index:auto!important;
    }

    #mapModal.sf-inline-map.show{
        display:block!important;
    }

    #mapModal.sf-inline-map .modal-card{
        width:100%!important;
        max-width:none!important;
        max-height:none!important;
        margin:0!important;
        overflow:hidden!important;
        border:0!important;
        border-top:1px solid #e7edf5!important;
        border-radius:0!important;
        background:#fff!important;
        box-shadow:none!important;
        transform:none!important;
    }

    #mapModal.sf-inline-map .modal-head{
        display:none!important;
    }

    #mapModal.sf-inline-map .modal-body{
        width:100%!important;
        height:auto!important;
        max-height:none!important;
        overflow:hidden!important;
        padding:12px 0 0!important;
    }

    #mapModal.sf-inline-map #map{
        width:100%!important;
        height:min(52dvh,430px)!important;
        min-height:280px!important;
        border-radius:14px!important;
        overflow:hidden!important;
    }

    .sf-minimal-map-button.is-active{
        border-color:#01ABAF!important;
        background:rgba(1,171,175,.12)!important;
        color:#000000!important;
    }

    /* Desktop continua a usare drawer/modal esistenti. */
    /* Il vecchio drawer laterale diventa un popup centrale vero e proprio. */
    .sf-filter-drawer{
        top:50%!important;
        right:auto!important;
        bottom:auto!important;
        left:50%!important;
        width:min(430px,calc(100vw - 20px))!important;
        height:auto!important;
        max-width:calc(100vw - 20px)!important;
        max-height:calc(100dvh - 20px)!important;
        overflow:hidden!important;
        border:1px solid rgba(148,163,184,.28)!important;
        border-radius:22px!important;
        box-shadow:0 22px 54px rgba(15,23,42,.22)!important;
        opacity:0!important;
        pointer-events:none!important;
        transform:translate(-50%,-46%) scale(.985)!important;
        transition:opacity .13s ease,transform .13s ease!important;
    }

    .sf-filter-drawer.is-open{
        opacity:1!important;
        pointer-events:auto!important;
        transform:translate(-50%,-50%) scale(1)!important;
    }

    .sf-filter-drawer-form{
        max-height:calc(100dvh - 20px)!important;
        overflow:hidden!important;
    }


    .sf-filter-drawer-content{
        min-height:0!important;
        overflow-y:auto!important;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
    }

    .sf-filter-drawer-backdrop{
        z-index:1390!important;
        background:rgba(15,23,42,.46)!important;
        backdrop-filter:none!important;
        -webkit-backdrop-filter:none!important;
    }

    .sf-filter-drawer{
        z-index:1400!important;
    }

    #mapModal.modal-overlay.show,
    #matchModalBackdrop.match-modal-backdrop.open{
        z-index:1500!important;
    }

    .sf-horizontal-track,
    .featured-slider,
    .studio-grid-results{
        gap:10px!important;
        scroll-padding-left:2px;
    }

    .sf-horizontal-track .studio-card,
    .featured-slider .studio-card,
    .studio-grid-results .studio-card{
        flex-basis:min(76vw,260px)!important;
        width:min(76vw,260px)!important;
        min-width:min(76vw,260px)!important;
        max-width:min(76vw,260px)!important;
    }

    .sf-horizontal-track .studio-image,
    .featured-slider .studio-image,
    .studio-grid-results .studio-image{
        height:150px!important;
        max-height:150px!important;
    }

    /*
    |--------------------------------------------------------------------------
    | SESSIONI / PRENOTAZIONI
    |--------------------------------------------------------------------------
    */
    .booking-main,
    .booking-row-main,
    .booking-primary-meta,
    .booking-details-grid{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .booking-summary,
    .summary-strip{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:7px!important;
    }

    .booking-row-actions,
    .booking-status-column{
        justify-content:flex-start!important;
    }

    /*
    |--------------------------------------------------------------------------
    | PROFILI
    |--------------------------------------------------------------------------
    */
    .profile-strip{
        grid-template-columns:64px minmax(0,1fr)!important;
        gap:10px!important;
        padding:13px!important;
    }

    .profile-strip .profile-avatar,
    .profile-avatar{
        max-width:100%;
    }

    .completion-box{
        grid-column:1/-1!important;
    }

    .recap-column{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    .profile-tabs,
    .marketing-nav{
        max-width:100%;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }

    .profile-tabs::-webkit-scrollbar,
    .marketing-nav::-webkit-scrollbar{
        display:none;
    }

    /*
    |--------------------------------------------------------------------------
    | FILE AUDIO
    |--------------------------------------------------------------------------
    */
    .folder-row{
        min-width:0;
    }

    .folder-actions{
        max-width:100%;
    }

    audio{
        max-width:100%;
    }

    /*
    |--------------------------------------------------------------------------
    | HUB AUTENTICATO
    |--------------------------------------------------------------------------
    */
    html.sf-mode-mobile-web .hub-main:not(.public){
        margin-left:0!important;
        padding:
            calc(72px + var(--sf-mobile-safe-top))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-right))
            calc(24px + var(--sf-mobile-safe-bottom))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-left))
            !important;
    }

    html.sf-mode-pwa:not(.sf-iphone-app-v2) .hub-main:not(.public){
        margin-left:0!important;
        padding:
            14px
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-right))
            calc(96px + var(--sf-mobile-safe-bottom))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-left))
            !important;
    }

    .hub-main:not(.public) .hero{
        padding:20px 16px!important;
        border-radius:20px!important;
    }

    .hub-main:not(.public) .hero h1{
        font-size:28px!important;
        line-height:1.03!important;
    }

    .hub-main .rail{
        scroll-padding-left:2px;
    }

    /*
    |--------------------------------------------------------------------------
    | NEWS
    |--------------------------------------------------------------------------
    */
    html.sf-mode-mobile-web .sf-news-main{
        margin-left:0!important;
        padding:
            calc(72px + var(--sf-mobile-safe-top))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-right))
            calc(24px + var(--sf-mobile-safe-bottom))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-left))
            !important;
    }

    html.sf-mode-pwa:not(.sf-iphone-app-v2) .sf-news-main{
        margin-left:0!important;
        padding:
            14px
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-right))
            calc(96px + var(--sf-mobile-safe-bottom))
            max(var(--sf-mobile-page-x),var(--sf-mobile-safe-left))
            !important;
    }

    .sf-news-head{
        gap:8px!important;
        margin-bottom:14px!important;
    }

    .sf-news-head h1{
        font-size:25px!important;
    }

    .sf-featured{
        border-radius:18px!important;
    }

    .sf-featured-media,
    .sf-featured-placeholder{
        min-height:180px!important;
    }

    .sf-featured-body{
        padding:17px!important;
    }

    .sf-featured h2{
        font-size:21px!important;
    }

    .sf-card{
        border-radius:15px!important;
    }

    /*
    |--------------------------------------------------------------------------
    | PAGINE PUBBLICHE
    |--------------------------------------------------------------------------
    */
    .sfph-topbar{
        padding-top:var(--sf-mobile-safe-top);
    }

    .sfph-shell{
        max-width:100%;
    }

    .shell,
    .home-shell,
    main.sf-shell,
    .container-main{
        max-width:100%;
    }

    .intro h1{
        font-size:clamp(28px,8.6vw,38px)!important;
        line-height:1!important;
    }

    #publicMap,
    #map{
        max-width:100%;
    }

    .map-only-actions,
    .mode-buttons,
    .auth-nav,
    .main-nav{
        max-width:100%;
    }

    /*
    |--------------------------------------------------------------------------
    | ACCESSO / ISCRIZIONE
    |--------------------------------------------------------------------------
    */
    .auth-area,
    .forms-shell{
        max-width:100%!important;
    }

    .forms-grid{
        grid-template-columns:minmax(0,1fr)!important;
        gap:12px!important;
    }

    .auth-card{
        max-width:100%!important;
    }

    .sf-recaptcha-wrap{
        max-width:100%;
        overflow:hidden;
    }
}

/*
|--------------------------------------------------------------------------
| MOBILE PERFORMANCE — V62.41
|--------------------------------------------------------------------------
| Su touch device eliminiamo blur molto pesanti e transizioni decorative
| sulla navigazione fissa. Sono tra le cause più comuni di scrolling/scatti
| su Safari iOS, soprattutto mentre cambia pagina.
|--------------------------------------------------------------------------
*/
@media(max-width:900px) and (pointer:coarse){
    .sf-iphone-topbar,
    .sf-iphone-tabbar,
    .sf-iphone-more-sheet,
    .sf-pwa-sheet,
    .sf-pwa-sheet-backdrop{
        backdrop-filter:none!important;
        -webkit-backdrop-filter:none!important;
    }

    .sf-iphone-topbar{
        background:#f8fafc!important;
        box-shadow:0 1px 8px rgba(15,23,42,.05)!important;
    }

    .sf-iphone-tabbar{
        background:#fff!important;
        box-shadow:0 -1px 8px rgba(15,23,42,.06)!important;
    }

    .sf-iphone-more-sheet{
        background:#fff!important;
        box-shadow:0 16px 42px rgba(15,23,42,.20)!important;
    }

    .sf-iphone-tab-item,
    .sf-iphone-topbar-button,
    .sf-iphone-avatar-button,
    .sf-minimal-search-field,
    .sf-minimal-filter-button,
    .sf-minimal-match-button,
    .sf-minimal-map-button,
    .studio-card,
    .discover-news-row,
    .discover-opportunity-row{
        transition:none!important;
    }

    .studio-card:hover,
    .discover-news-row:hover,
    .discover-opportunity-row:hover,
    .sf-minimal-search-field:focus-within{
        transform:none!important;
    }
}

/*
|--------------------------------------------------------------------------
| IPHONE PWA V2 — PAGINE AGGIUNTE DI RECENTE
|--------------------------------------------------------------------------
*/
@media(max-width:900px){
    html.sf-iphone-app-v2 .sf-news-main,
    html.sf-iphone-app-v2 .hub-main:not(.public){
        margin-left:0!important;
        width:100%!important;
        padding:
            calc(var(--sf-iphone-topbar-height) + var(--sf-pwa-safe-top) + 10px)
            var(--sf-iphone-page-x)
            calc(var(--sf-iphone-tabbar-height) + var(--sf-pwa-safe-bottom) + 18px)
            !important;
    }

    html.sf-iphone-app-v2 .sf-news-back{
        display:none!important;
    }

    html.sf-iphone-app-v2 .sf-news-head{
        margin-top:0!important;
    }

    html.sf-iphone-app-v2 .sf-news-count{
        display:none!important;
    }

    html.sf-iphone-app-v2 .hub-main:not(.public) .hero{
        margin-top:0!important;
    }
}

@media(max-width:600px){
    :root{
        --sf-mobile-page-x:10px;
    }

    html.sf-mode-mobile-web .welcome h1,
    html.sf-mode-mobile-web .page-header h1{
        font-size:22px!important;
    }

    .artist-hero-efficient .hero-actions{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .discover-row-text{
        display:none!important;
    }

    .sf-minimal-search-form{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }

    .sf-minimal-search-field{
        grid-column:1/-1!important;
    }

    .sf-minimal-filter-button,
    .sf-minimal-match-button,
    .sf-minimal-map-button{
        width:100%!important;
        padding-right:6px!important;
        padding-left:6px!important;
        justify-content:center!important;
    }

    .sf-filter-drawer:not(.sf-inline-filters){
        width:calc(100vw - 16px)!important;
        max-width:calc(100vw - 16px)!important;
        max-height:calc(100dvh - 16px)!important;
        border-radius:20px!important;
    }

    .sf-filter-drawer:not(.sf-inline-filters) .sf-filter-drawer-head{
        padding-top:14px!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-two-col{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .sf-filter-drawer.sf-inline-filters .sf-filter-drawer-content{
        max-height:min(54dvh,460px)!important;
    }

    .match-modal-backdrop.sf-inline-match .match-modal-body{
        max-height:min(52dvh,430px)!important;
    }

    .match-inline-section.sf-inline-match-results{
        max-height:min(58dvh,520px)!important;
    }

    #mapModal.sf-inline-map #map{
        height:min(50dvh,390px)!important;
        min-height:250px!important;
    }

    .booking-summary,
    .summary-strip{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    .recap-column{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .sf-news-grid,
    .sf-grid{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .sf-featured{
        grid-template-columns:minmax(0,1fr)!important;
    }

    .sf-card{
        grid-template-columns:98px minmax(0,1fr)!important;
    }

    .sf-card-media{
        min-height:100px!important;
    }

    .hero h1{
        overflow-wrap:anywhere;
    }

    .sfph-shell{
        padding-right:10px!important;
        padding-left:10px!important;
    }

    .sfph-mobile-nav a{
        padding:8px 5px!important;
        font-size:11px!important;
    }

    .hero:not(.card) h1,
    .per-studi-hero h1{
        font-size:clamp(31px,10vw,42px)!important;
    }

    #publicMap{
        height:min(58dvh,460px)!important;
    }

    .auth-card{
        border-radius:16px!important;
    }
}

@media(max-width:360px){
    .sfph-brand > span:last-child{
        display:none;
    }

    .sfph-mobile-nav{
        gap:3px!important;
        padding:4px!important;
    }

    .sfph-mobile-nav a{
        padding:8px 3px!important;
        font-size:10px!important;
    }

    .discover-news-row,
    .discover-opportunity-row{
        grid-template-columns:48px minmax(0,1fr) auto!important;
    }

    .discover-thumb{
        width:48px!important;
        height:48px!important;
    }
}

