:root {
    --n-navy: #002D5B; --n-cyan: #00A8E8; --n-gold: #b48b3c; 
    --white: #ffffff; --n-bg: #F8FAFC; --n-slate: #475569;
}
html, body { font-family: 'Plus Jakarta Sans', sans-serif; background: var(--n-bg); margin: 0; color: #1e293b; font-display: swap; overflow-x: hidden; }

/* --- BREADCRUMB (stesso DNA dell’header: navy, oro, cyan — niente striscia grigia) --- */
.ir-breadcrumbs {
    background: linear-gradient(180deg, #002a52 0%, #001a33 100%);
    padding: 9px 5%;
    font-size: clamp(11px, 2.6vw, 12px);
    border-bottom: 1px solid rgba(0, 168, 232, 0.22);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    box-sizing: border-box;
    position: relative;
    z-index: 20;
}
.ir-breadcrumbs-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    font-weight: 600;
    color: rgba(226, 232, 240, 0.88);
    line-height: 1.45;
    word-wrap: break-word;
    overflow-wrap: anywhere;
    hyphens: auto;
    padding-right: clamp(12px, 5vw, 88px);
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
}
.ir-breadcrumbs-inner a.ir-bc-link {
    color: rgba(255, 255, 255, 0.95);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.ir-breadcrumbs-inner a.ir-bc-link:hover {
    color: var(--n-gold, #e6b17a);
    border-bottom-color: rgba(230, 177, 122, 0.5);
}
.ir-breadcrumbs-inner .ir-bc-current {
    color: rgba(186, 205, 224, 0.95);
    font-weight: 600;
}
.ir-breadcrumbs-inner .ir-bc-sep {
    font-size: 8px;
    margin: 0 6px;
    color: rgba(255, 255, 255, 0.28);
    vertical-align: middle;
}
@media (max-width: 480px) {
    .ir-breadcrumbs {
        padding-top: 8px;
        padding-bottom: 8px;
    }
    .ir-breadcrumbs-inner .ir-bc-sep {
        margin: 0 5px;
    }
}

/* --- HERO --- */
.hero-main { 
    min-height: 52vh;
    padding: 86px 20px 74px; text-align: center; color: white;
    border-radius: 0 0 28px 28px;
    overflow: hidden;
}
.hero-main h1 { font-size: clamp(2.1rem, 5.6vw, 4.1rem); font-weight: 900; letter-spacing: -1.2px; margin: 0; line-height: 1.04; text-shadow: 0 12px 28px rgba(0,0,0,0.34); max-width: 900px; margin-inline: auto; }
.hero-main h1 span { color: var(--n-gold); }
.hero-main p { font-size: clamp(.95rem, 2vw, 1.15rem) !important; max-width: 620px !important; margin-left: auto !important; margin-right: auto !important; opacity: .96 !important; text-shadow: 0 8px 20px rgba(0,0,0,.28); }
.hero-main .btn-gold { border-radius: 999px !important; padding: 14px 26px !important; font-size: 14px !important; font-weight: 900 !important; letter-spacing: .3px; box-shadow: 0 12px 30px rgba(197,160,89,.36) !important; border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(2px); }
.hero-main .btn-gold:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(197,160,89,.44) !important; }

/* --- MARKET MONITOR --- */
.monitor-top { 
    max-width: 1120px; margin: -42px auto 34px; padding: 0 15px; position: relative; z-index: 110; 
}

/* --- STATS BAR --- */
.stats-bar-main { 
    max-width: 1120px; margin: 58px auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); 
    gap: 12px; padding: 0 15px; text-align: center;
}
.stat-main-item { background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); padding: 18px 14px; border-radius: 14px; border: 1px solid #dfe9f5; box-shadow: 0 8px 16px rgba(2, 32, 71, 0.08); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 108px; }
.stat-main-icon { color: var(--n-gold); font-size: 17px; margin-bottom: 8px; opacity: .95; }
.stat-main-num { display: block; font-size: clamp(28px, 3.4vw, 36px); font-weight: 900; color: var(--n-navy); margin-bottom: 2px; line-height: 1; letter-spacing: -0.6px; }
.stat-main-label { font-size: 9px; font-weight: 800; color: #5b6b80; text-transform: uppercase; letter-spacing: 0.7px; line-height: 1.25; }

/* --- BOOKING CARD --- */
.booking-wrapper { max-width: 1100px; margin: 0 auto 80px; padding: 0 15px; }
.booking-glass-card { 
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%); border-radius: 30px; padding: 36px 30px; 
    box-shadow: 0 24px 50px rgba(0, 51, 102, 0.12); border: 1px solid #e2e8f0;
}

/* --- LOCALITY GRID (SEO) --- */
.locality-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin-top: 30px; }
.locality-grid--home { margin-top: 14px; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); }
.ir-typology-shortcuts { margin-top: 14px; padding-top: 14px; border-top: 1px solid #eee; }
.ir-typology-shortcuts-label { display: block; font-size: 10px; font-weight: 800; color: var(--n-slate); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 12px; }
.locality-card { background: #f5f8fc; padding: 14px; border-radius: 12px; text-decoration: none; color: var(--n-navy); font-weight: 800; font-size: 11px; transition: 0.25s; border: 1px solid #e6edf5; }
.locality-card:hover { border-color: var(--n-gold); background: white; transform: translateY(-2px); box-shadow: 0 8px 16px rgba(0,0,0,0.06); }

.section-title { text-align: center; margin-bottom: 40px; }
.section-title h2, .section-title h3 { font-size: clamp(1.8rem, 3.8vw, 2.5rem); font-weight: 900; color: var(--n-navy); letter-spacing: -1px; line-height: 1.08; }

/* --- TRUST ELEMENTS --- */
.trust-bar { display: flex; justify-content: center; gap: 30px; padding: 26px 18px; flex-wrap: wrap; background: white; border-bottom: 1px solid #edf2f7; }
.trust-item { display: flex; align-items: center; gap: 8px; font-weight: 800; color: var(--n-navy); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }
.trust-item i { color: var(--n-gold); font-size: 1.2rem; }
.trust-item { background: #ffffff; border: 1px solid #e8eff7; border-radius: 999px; padding: 10px 14px; box-shadow: 0 4px 10px rgba(2,32,71,.05); }

/* --- FAQ & FEEDBACK --- */
.faq-section { padding: 80px 20px; max-width: 900px; margin: 0 auto; }
.faq-item { background: white; margin-bottom: 12px; border-radius: 14px; border: 1px solid #e2e8f0; box-shadow: 0 6px 14px rgba(2,32,71,.04); }
.faq-q { padding: 16px 18px; cursor: pointer; font-weight: 800; display: flex; justify-content: space-between; align-items: center; color: var(--n-navy); }
.faq-a { padding: 0 25px 20px; color: var(--n-slate); display: none; font-size: 0.95rem; }

.legal-disclaimer { background: #f1f5f9; padding: 40px 20px; text-align: center; font-size: 12px; color: #94a3b8; line-height: 1.6; }

/* --- BOLD CONVERSION POLISH --- */
.btn-gold { background: linear-gradient(135deg, #f0c57d 0%, #e2a74f 100%) !important; color: #001f3d !important; border: 1px solid rgba(0,31,61,.12) !important; box-shadow: 0 14px 28px rgba(226,167,79,.36) !important; }
.btn-gold:hover { filter: saturate(1.06); transform: translateY(-2px); }
.booking-glass-card { position: relative; }
.booking-glass-card::before { content: ""; position: absolute; inset: 0; border-radius: 30px; pointer-events: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
.stat-main-item:last-child { background: linear-gradient(180deg, #fff 0%, #fff8ec 100%); border-color: #edcf98; box-shadow: 0 10px 18px rgba(226,167,79,.16); }

@media (max-width: 768px) {
    .hero-main { min-height: 40vh; padding: 52px 15px 42px; border-radius: 0 0 18px 18px; }
    .stats-bar-main { grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 40px auto; }
    .stat-main-item { min-height: 104px; padding: 14px 10px; border-radius: 14px; }
    .stat-main-icon { font-size: 15px; margin-bottom: 6px; }
    .stat-main-num { font-size: clamp(24px, 8vw, 30px); }
    .stat-main-label { font-size: 8px; letter-spacing: 0.6px; }
    .booking-glass-card { padding: 24px 14px; border-radius: 20px; }
    .trust-bar { gap: 15px; padding: 25px 10px; }
    .monitor-top { margin-top: -30px; }
    .locality-grid { grid-template-columns: repeat(2, 1fr); }
    .locality-grid--home { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* --- MOBILE HARDENING (<360px) --- */
@media (max-width: 360px) {
    .hero-main h1 { font-size: 1.8rem !important; }
    .hero-main p { font-size: 1rem !important; }
    .btn-gold { font-size: 0.9rem !important; padding: 16px 20px !important; }
    .segment-btn { padding: 20px 15px !important; }
}

/* --- ACCESSIBILITY FOCUS STYLES --- */
input:focus, select:focus, textarea:focus, button:focus, a:focus {
    outline: 2px solid var(--n-gold) !important;
    outline-offset: 2px !important;
}

.locality-card:focus {
    outline: 2px solid var(--n-gold) !important;
    outline-offset: 2px !important;
}

.btn-contact-wa:focus {
    outline: 2px solid var(--n-gold) !important;
    outline-offset: 2px !important;
}

/* --- ACCESSIBILITY CONTRAST HOTFIX (Lighthouse) --- */
#ir-cookie .ir-btn-r {
    background: #e2e8f0 !important;
    color: #1f2937 !important;
}
.nav-mobile a:focus-visible,
#ir-cookie button:focus-visible {
    outline: 3px solid #00A8E8 !important;
    outline-offset: 2px !important;
}
.booking-glass-card a[style*="var(--n-gold)"] {
    color: #7a551f !important;
}
.booking-glass-card .btn-gold,
.booking-glass-card .btn-outline {
    color: #1f2937 !important;
}
.legal-disclaimer {
    color: #475569 !important;
}

/* --- PERFORMANCE OPTIMIZATIONS --- */
.ir-elite-badge::after {
    will-change: transform;
    transform: translateZ(0);
}

.ir-shimmer {
    will-change: opacity;
    transform: translateZ(0);
}

/* --- COMPOSITE ANIMATIONS FIX --- */
.filter-btn, .segment-btn, .v-btn, .btn-submit-booking, .f-social-link {
    transition: background-color 0.3s ease, color 0.3s ease !important;
    will-change: auto !important;
}

/* Pulsanti form lead (popup scheda/vetrina + coerenza sito) */
.ir-btn-primary-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 16px 18px;
    background: var(--navy, #003366);
    color: var(--gold, #c5a059);
    border: 2px solid var(--gold, #c5a059);
    border-radius: 16px;
    font-weight: 800;
    font-size: 15px;
    line-height: 1.35;
    cursor: pointer;
    text-align: center;
    font-family: inherit;
    white-space: normal;
}

.ir-form-privacy-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 20px;
}

.ir-form-privacy-row input[type="checkbox"] {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px;
}

.ir-form-privacy-row label {
    font-size: 12px;
    color: #64748b;
    line-height: 1.45;
}

/* --- REDUCE MOTION --- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* --- WCAG 2.2 FOCUS MANAGEMENT v.2026 --- */
:focus-visible {
    outline: 3px solid var(--n-cyan, #00A8E8);
    outline-offset: 2px;
}

/* Maintain :focus per compatibilità browser */
:focus {
    outline: 3px solid var(--n-cyan, #00A8E8);
    outline-offset: 2px;
}

/* Focus specific per elementi interattivi */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid var(--n-cyan, #00A8E8);
    outline-offset: 2px;
}

/* Rimuovi outline per mouse click (preserva keyboard navigation) */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible) {
    outline: none;
}
