.hero-opening-box{display:inline-block;box-sizing:border-box;margin:25px auto 30px;padding:28px 45px 30px;background:rgba(255,255,255,.96);border:4px solid #198754;border-radius:16px;box-shadow:0 6px 22px rgba(0,0,0,.25);text-align:center}
.hero-opening-status{display:flex;align-items:center;justify-content:center;margin:0 0 20px;padding:0;color:#198754!important;font-size:48px!important;line-height:1.1!important;font-weight:900!important;letter-spacing:1px}
.hero-opening-dot{display:inline-block;width:22px;height:22px;min-width:22px;margin-right:14px;background:#20b15a;border-radius:50%;animation:heroOpeningPulse 1.5s ease-in-out infinite}
@keyframes heroOpeningPulse{0%{opacity:1;box-shadow:0 0 0 0 rgba(32,177,90,.75);transform:scale(1)}50%{opacity:.55;box-shadow:0 0 0 10px rgba(32,177,90,0);transform:scale(.85)}100%{opacity:1;box-shadow:0 0 0 0 rgba(32,177,90,0);transform:scale(1)}}
.hero-opening-hours{margin:0;color:#353535!important;line-height:1.35;text-shadow:none!important}
.hero-opening-hours span{display:block;margin-bottom:8px;color:#555!important;font-size:22px!important;font-weight:700!important;letter-spacing:1px}
.hero-opening-hours strong{display:block;color:#353535!important;font-size:31px!important;line-height:1.35!important;font-weight:900!important}
.hero-booking-actions{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin:0 auto 8px}
.hero-booking-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:15px 24px;border-radius:8px;font-size:16px;line-height:1.2;font-weight:900;letter-spacing:.5px;text-decoration:none!important;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.hero-booking-call{background:#198754;color:#fff!important;border:2px solid #198754}
.hero-booking-whatsapp{background:#fff;color:#198754!important;border:2px solid #198754}
@media screen and (max-width:767px){.hero-opening-box{display:block;width:96%;max-width:520px;margin:20px auto 25px;padding:22px 18px 24px;border-width:3px}.hero-opening-status{font-size:36px!important}.hero-opening-hours span{font-size:19px!important}.hero-opening-hours strong{font-size:25px!important}}
@media screen and (max-width:480px){.hero-opening-box{width:100%;padding:20px 12px 22px}.hero-opening-status{font-size:31px!important}.hero-opening-dot{width:16px;height:16px;min-width:16px}.hero-opening-hours span{font-size:17px!important}.hero-opening-hours strong{font-size:22px!important}.hero-booking-actions{display:block;width:100%}.hero-booking-btn{display:flex;width:100%;box-sizing:border-box;margin:0 auto 10px}}

/* ===== consolidated from index.html ===== */

@media screen and (max-width:767px){
    .contact-details{
        display:block !important;
    }
    .contact-details > div{
        display:block !important;
        width:100% !important;
    }
    .contact-details .light-box{
        height:auto !important;
        min-height:0 !important;
        margin-bottom:0 !important;
    }
}

/* ===== consolidated from index.html ===== */

@media screen and (max-width: 767px) {
    .hero {
        padding: 28px 0 65px !important;
        min-height: 0 !important;
        background-position: center center !important;
    }

    .hero .inner {
        padding-top: 105px !important;
    }

    .hero h1 {
        margin: 0 0 14px !important;
        font-size: 35px !important;
        line-height: 1.15 !important;
        letter-spacing: 8px !important;
    }

    .hero h2 {
        margin: 0 0 26px !important;
        font-size: 16px !important;
        letter-spacing: 1px !important;
    }

    .hero-contact {
        margin: 0 auto 22px !important;
        max-width: 330px;
        font-size: 16px !important;
        line-height: 1.55 !important;
    }

    .hero-opening-box {
        width: calc(100% - 28px) !important;
        max-width: 430px !important;
        margin: 12px auto 22px !important;
        padding: 22px 16px 24px !important;
        border: 3px solid #198754 !important;
        border-radius: 18px !important;
        box-shadow: 0 7px 24px rgba(0,0,0,.20) !important;
    }

    .hero-opening-status {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        margin: 0 0 17px !important;
        font-size: 30px !important;
        line-height: 1.05 !important;
        letter-spacing: 2px !important;
        white-space: nowrap;
    }

    .hero-opening-dot {
        width: 13px !important;
        height: 13px !important;
        min-width: 13px !important;
        margin: 0 !important;
    }

    .hero-opening-hours span {
        margin-bottom: 8px !important;
        font-size: 15px !important;
        letter-spacing: 1.5px !important;
    }

    .hero-opening-hours strong {
        font-size: 20px !important;
        line-height: 1.45 !important;
        letter-spacing: .4px !important;
    }

    .hero-opening-hours strong br {
        display: none;
    }

    .hero-booking-actions {
        width: calc(100% - 28px) !important;
        max-width: 430px !important;
        margin: 0 auto !important;
    }

    .hero-booking-btn {
        min-height: 0 !important;
        padding: 14px 12px !important;
        margin: 0 auto 10px !important;
        border-radius: 10px !important;
        font-size: 15px !important;
        line-height: 1.2 !important;
        letter-spacing: .6px !important;
        box-shadow: 0 4px 12px rgba(0,0,0,.14) !important;
    }

    .hero .learn-more-btn {
        margin-top: 24px !important;
        padding: 13px 24px !important;
        font-size: 13px !important;
    }
}

@media screen and (max-width: 380px) {
    .hero .inner {
        padding-top: 92px !important;
    }

    .hero h1 {
        font-size: 31px !important;
        letter-spacing: 6px !important;
    }

    .hero-opening-status {
        font-size: 26px !important;
    }

    .hero-opening-hours strong {
        font-size: 18px !important;
    }
}

/* ===== consolidated from index.html ===== */

@media screen and (max-width:767px){
    .hero-contact{
        display:inline-block !important;
        max-width:360px !important;
        margin:0 auto 24px !important;
        padding:11px 16px 12px !important;
        background:rgba(255,255,255,.82) !important;
        border-radius:10px !important;
        box-shadow:0 3px 12px rgba(0,0,0,.12) !important;
        font-size:17px !important;
        line-height:1.55 !important;
        font-weight:700 !important;
        text-shadow:none !important;
    }
    .hero-contact a{
        color:#242830 !important;
        font-weight:700 !important;
        text-shadow:none !important;
    }
}
@media screen and (max-width:380px){
    .hero-contact{
        max-width:320px !important;
        padding:10px 12px 11px !important;
        font-size:16px !important;
    }
}

/* ===== consolidated from index.html ===== */

@media screen and (min-width:768px){
    .hero-contact{
        display:inline-block !important;
        max-width:620px !important;
        margin:8px auto 25px !important;
        padding:12px 22px 13px !important;
        background:rgba(255,255,255,.82) !important;
        border-radius:10px !important;
        box-shadow:0 3px 12px rgba(0,0,0,.12) !important;
        font-size:18px !important;
        line-height:1.6 !important;
        font-weight:700 !important;
        text-shadow:none !important;
    }
    .hero-contact a{
        color:#242830 !important;
        font-weight:700 !important;
        text-shadow:none !important;
    }
}

/* ===== consolidated from index.html ===== */

.hero-contact{
    display:block !important;
    box-sizing:border-box !important;
    width:100% !important;
    max-width:560px !important;
    margin:0 auto 24px !important;
    padding:20px 26px !important;
    background:rgba(255,255,255,.96) !important;
    border:2px solid #198754 !important;
    border-radius:14px !important;
    box-shadow:0 5px 18px rgba(0,0,0,.18) !important;
    text-align:center !important;
    font-size:18px !important;
    line-height:1.55 !important;
    text-shadow:none !important;
}
.hero-contact a{
    color:#353535 !important;
    font-weight:800 !important;
    text-shadow:none !important;
    text-decoration:none !important;
}
.hero-contact a:first-child{
    color:#198754 !important;
    font-size:19px !important;
}
.hero-contact a[href^="tel:"]{
    display:inline-block !important;
    margin-top:5px !important;
    color:#353535 !important;
    font-size:19px !important;
}
@media screen and (max-width:767px){
    .hero-contact{
        width:calc(100% - 28px) !important;
        max-width:430px !important;
        margin:0 auto 20px !important;
        padding:17px 14px !important;
        border-radius:14px !important;
        font-size:16px !important;
    }
    .hero-contact a:first-child,
    .hero-contact a[href^="tel:"]{
        font-size:16px !important;
    }
}

/* ===== consolidated from index.html ===== */

/* Coerenza desktop */
@media screen and (min-width:768px){
    .hero-opening-box,
    .hero-contact,
    .hero-booking-actions{
        width:calc(100% - 40px) !important;
        max-width:760px !important;
        box-sizing:border-box !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .hero-opening-box{
        border:3px solid #198754 !important;
        border-radius:16px !important;
        padding:28px 34px 30px !important;
        margin-bottom:22px !important;
    }

    .hero-contact{
        border:3px solid #198754 !important;
        border-radius:16px !important;
        padding:22px 28px !important;
        margin-bottom:22px !important;
        background:rgba(255,255,255,.96) !important;
    }

    .hero-contact a:first-child{
        display:block !important;
        color:#198754 !important;
        font-size:20px !important;
        line-height:1.35 !important;
        font-weight:900 !important;
        margin-bottom:6px !important;
    }

    .hero-contact a[href^="tel:"]{
        display:block !important;
        margin-top:2px !important;
        color:#353535 !important;
        font-size:20px !important;
        line-height:1.35 !important;
        font-weight:900 !important;
    }

    .hero-booking-actions{
        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        gap:16px !important;
        align-items:stretch !important;
        margin-bottom:0 !important;
    }

    .hero-booking-btn{
        width:100% !important;
        min-height:58px !important;
        box-sizing:border-box !important;
        margin:0 !important;
        border-radius:12px !important;
        padding:16px 18px !important;
        font-size:16px !important;
    }
}

/* Coerenza mobile */
@media screen and (max-width:767px){
    .hero-opening-box,
    .hero-contact,
    .hero-booking-actions{
        width:calc(100% - 28px) !important;
        max-width:430px !important;
        box-sizing:border-box !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .hero-opening-box,
    .hero-contact{
        border-radius:16px !important;
    }

    .hero-contact{
        border:3px solid #198754 !important;
        padding:18px 16px !important;
        background:rgba(255,255,255,.96) !important;
    }

    .hero-contact a:first-child{
        display:block !important;
        margin-bottom:5px !important;
        color:#198754 !important;
        font-size:17px !important;
        line-height:1.35 !important;
        font-weight:900 !important;
    }

    .hero-contact a[href^="tel:"]{
        display:block !important;
        margin-top:2px !important;
        color:#353535 !important;
        font-size:17px !important;
        line-height:1.35 !important;
        font-weight:900 !important;
    }

    .hero-booking-actions{
        display:block !important;
    }

    .hero-booking-btn{
        width:100% !important;
        border-radius:12px !important;
    }
}

/* ===== consolidated from index.html ===== */

.hero-contact{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:34px !important;
}
.hero-contact-item{
    flex:1 1 0;
    text-align:center;
}
.hero-contact-label{
    margin-bottom:9px;
    color:#198754;
    font-size:14px;
    line-height:1.2;
    font-weight:900;
    letter-spacing:1.4px;
}
.hero-contact-label i{
    margin-right:6px;
}
.hero-contact-item a{
    display:block !important;
    margin:0 !important;
    color:#353535 !important;
    font-size:18px !important;
    line-height:1.45 !important;
    font-weight:700 !important;
}
.hero-contact-divider{
    width:1px;
    height:58px;
    flex:0 0 1px;
    background:rgba(25,135,84,.28);
}
@media screen and (max-width:767px){
    .hero-contact{
        display:block !important;
        padding:17px 15px !important;
    }
    .hero-contact-item{
        width:100%;
    }
    .hero-contact-label{
        margin-bottom:7px;
        font-size:13px;
    }
    .hero-contact-item a{
        font-size:16px !important;
    }
    .hero-contact-divider{
        width:58px;
        height:1px;
        margin:14px auto;
    }
}

/* ===== consolidated from index.html ===== */

@media screen and (max-width:767px){

    .hero {
        padding: 26px 0 58px !important;
    }

    .hero .inner {
        padding-top: 92px !important;
    }

    .hero h1 {
        font-size: 34px !important;
        letter-spacing: 7px !important;
        margin-bottom: 10px !important;
    }

    .hero h2 {
        font-size: 15px !important;
        letter-spacing: 1.5px !important;
        margin-bottom: 24px !important;
    }

    .hero-opening-box {
        width: calc(100% - 24px) !important;
        max-width: 430px !important;
        margin: 8px auto 18px !important;
        padding: 22px 16px 24px !important;
        background: rgba(255,255,255,.97) !important;
        border: 3px solid #198754 !important;
        border-radius: 18px !important;
        box-shadow: 0 7px 22px rgba(0,0,0,.18) !important;
    }

    .hero-opening-status {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:10px !important;
        margin:0 0 18px !important;
        font-size:28px !important;
        line-height:1.05 !important;
        letter-spacing:1px !important;
        white-space:nowrap !important;
    }

    .hero-opening-dot {
        width:13px !important;
        height:13px !important;
        min-width:13px !important;
        margin:0 !important;
    }

    .hero-opening-hours-label {
        display:block !important;
        margin:0 0 6px !important;
        color:#444 !important;
        font-size:15px !important;
        font-weight:700 !important;
        letter-spacing:1.4px !important;
    }

    .hero-opening-clock {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:12px !important;
        margin:4px 0 12px !important;
        color:#198754 !important;
    }

    .hero-opening-clock span {
        display:block !important;
        width:72px !important;
        height:1px !important;
        background:rgba(53,53,53,.22) !important;
    }

    .hero-opening-clock i {
        font-size:16px !important;
    }

    .hero-opening-days {
        display:block !important;
        margin:0 !important;
        color:#242830 !important;
        font-size:22px !important;
        line-height:1.25 !important;
        font-weight:900 !important;
        letter-spacing:.2px !important;
        text-align:center !important;
    }

    .hero-opening-time {
        display:block !important;
        margin:8px 0 0 !important;
        color:#198754 !important;
        font-size:24px !important;
        line-height:1.2 !important;
        font-weight:900 !important;
        letter-spacing:.4px !important;
        text-align:center !important;
    }

    .hero-contact {
        width: calc(100% - 24px) !important;
        max-width:430px !important;
        margin:0 auto 16px !important;
        padding:16px 14px !important;
        background:rgba(255,255,255,.97) !important;
        border:3px solid #198754 !important;
        border-radius:18px !important;
        box-shadow:0 5px 16px rgba(0,0,0,.12) !important;
    }

    .hero-contact-label {
        color:#198754 !important;
        font-size:12px !important;
        letter-spacing:1px !important;
    }

    .hero-contact-item a {
        font-size:15px !important;
        line-height:1.35 !important;
    }

    .hero-booking-actions {
        width: calc(100% - 24px) !important;
        max-width:430px !important;
        margin:0 auto !important;
    }

    .hero-booking-btn {
        min-height:52px !important;
        padding:14px 12px !important;
        border-radius:12px !important;
        font-size:14px !important;
        letter-spacing:.5px !important;
        margin-bottom:10px !important;
    }
}

@media screen and (max-width:380px){
    .hero-opening-status {
        font-size:25px !important;
    }

    .hero-opening-days {
        font-size:20px !important;
    }

    .hero-opening-time {
        font-size:22px !important;
    }
}

/* ===== consolidated from index.html ===== */

@media screen and (max-width:767px){
    .hero-opening-days{
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#242830 !important;
        text-align:center !important;
        font-weight:900 !important;
    }

    .hero-opening-days span{
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        font-size:22px !important;
        line-height:1.22 !important;
        letter-spacing:.2px !important;
        white-space:nowrap !important;
    }

    .hero-opening-time{
        display:block !important;
        margin:10px 0 0 !important;
        color:#198754 !important;
        font-size:24px !important;
        line-height:1.15 !important;
        font-weight:900 !important;
        letter-spacing:.4px !important;
        text-align:center !important;
        white-space:nowrap !important;
    }

    .hero .inner{
        padding-top:105px !important;
    }
}

@media screen and (max-width:380px){
    .hero-opening-days span{
        font-size:20px !important;
    }

    .hero-opening-time{
        font-size:22px !important;
    }
}

/* ===== consolidated from index.html ===== */

/* Separatore con orologio: visibile anche su desktop */
.hero-opening-clock{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
    margin:10px auto 18px !important;
    color:#198754 !important;
}

.hero-opening-clock span{
    display:block !important;
    width:95px !important;
    height:2px !important;
    background:#d7ddda !important;
    border-radius:2px !important;
}

.hero-opening-clock i{
    display:block !important;
    color:#198754 !important;
    font-size:18px !important;
    line-height:1 !important;
}

@media screen and (max-width:767px){
    .hero-opening-clock{
        gap:12px !important;
        margin:5px auto 13px !important;
    }

    .hero-opening-clock span{
        width:72px !important;
        height:1px !important;
    }

    .hero-opening-clock i{
        font-size:16px !important;
    }
}

/* =========================================================
   PRIVACY: GOOGLE MAPS PLACEHOLDER
   ========================================================= */
.map-consent-placeholder{
    width:350px;
    max-width:100%;
    min-height:350px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:28px;
    box-sizing:border-box;
    background:#f3f5f8;
    border:2px solid #198754;
    border-radius:14px;
    color:#353535;
    text-align:center;
}
.map-consent-placeholder p{
    margin:0;
    color:#697176;
    line-height:1.6;
}
.map-consent-placeholder button{
    border:0;
    border-radius:9px;
    padding:13px 18px;
    background:#198754;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}
.map-consent-placeholder a{
    color:#198754;
    font-weight:800;
}
.cookie-manage-link{
    color:#a1a9b0 !important;
    text-decoration:underline;
    cursor:pointer;
}


/* =========================================================
   GALLERIA FOTO - MINIATURE UNIFORMI
   ========================================================= */
#portfolio .gallery-item{
    margin-bottom:32px;
}
#portfolio .gallery-thumb{
    width:100%;
    height:300px;
    overflow:hidden;
    background:#f3f5f8;
}
#portfolio .gallery-photo{
    display:block;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover;
    object-position:center center;
}
/* Foto staff verticale: inquadra meglio i volti nella miniatura */
#portfolio .gallery-photo.photo-09{
    object-position:center 38%;
}
#portfolio .gallery-item h2{
    min-height:42px;
    margin-top:18px;
}
@media screen and (max-width:767px){
    #portfolio .gallery-thumb{
        height:260px;
    }
    #portfolio .gallery-item h2{
        min-height:0;
    }
}
