/*
 * BresciaPC Child Theme — core.css
 *
 * Layout utility e componenti riutilizzabili su più pagine.
 */

/*
 * global.css
 *
 * Consolidated global styles.
 * Phase 0: merged from legacy theme assets/css/global/base.css + assets/css/modules/shell.css + print.css
 */

/*
 * BresciaPC — Global Base
 * Tokens, reset, typography, generic layout.
 * NOTE: style.css now contains ONLY theme metadata.
 */

/*
 * ==========================================================================
 * STANDARD DI SVILUPPO TEMPLATE (v4.0)
 * ==========================================================================
 * 1. Tutti i Custom Page Templates devono risiedere nella cartella /pages/.
 * 2. I file CSS specifici devono essere in /pages/<slug>/<slug>.css.
 * 3. I file JS specifici devono essere in /pages/<slug>/<slug>.js.
 * 4. Il sistema caricherà automaticamente gli asset se i nomi file coincidono.
 */

/* ------------------------------------------------------------------
   [Performance Engineer] Utilities condivise (SSOT)
   Spostate qui da vari /pages/* per ridurre duplicazione CSS e migliorare cache.
------------------------------------------------------------------ */

/*
 * [Theme Architect] SSOT layout
 * .container è usato nei template legacy (index.php), .container-xl nei template più nuovi.
 */
.container,
.container-xl { max-width: 1100px; margin: 0 auto; padding: 0 20px; position: relative; z-index: 2; }

@keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }

.fade-in-up { opacity: 0; transform: translateY(20px); animation: fadeInUp 0.8s forwards; }

.reveal { opacity: 0; transform: translateY(20px); animation: fadeInUp 0.6s forwards; }

/* ------------------------------------------------------------------
   [Theme Architect / Performance Engineer] Delay animazioni (SSOT)
   Usare in combinazione con .fade-in-up / .reveal per evitare collisioni.
------------------------------------------------------------------ */

.fade-in-up.delay-1, .reveal.delay-1 { animation-delay: 0.1s; }
.fade-in-up.delay-2, .reveal.delay-2 { animation-delay: 0.2s; }
.fade-in-up.delay-3, .reveal.delay-3 { animation-delay: 0.3s; }
.fade-in-up.delay-4, .reveal.delay-4 { animation-delay: 0.4s; }


/* ------------------------------------------------------------------
   [Theme Architect / Performance Engineer] Utility "Apple" condivise
   Usate in più template (FAQ/Contatti) per evitare duplicazioni.
------------------------------------------------------------------ */

.bpc-container { max-width: 1140px; margin: 0 auto; padding: 0 20px; position: relative; z-index: 2; box-sizing: border-box; }

.ambient-orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.6; z-index: 0; pointer-events: none; }

.ambient-orb.orb-1 { top: -10%; left: -10%; width: 50vw; height: 50vw; background: rgba(0, 113, 227, 0.15); }

.ambient-orb.orb-2 { bottom: 10%; right: -10%; width: 40vw; height: 40vw; background: rgba(52, 199, 89, 0.1); }

/*
╔══════════════════════════════════════════════════════════════════════════╗
║ Section: PADDING GLOBALE PER HEADER FISSO                                 ║
╚══════════════════════════════════════════════════════════════════════════╝
*/
/*
 * Aggiunge un padding-top al contenitore principale della pagina per compensare
 * l'altezza dell'header fisso, evitando che i contenuti vengano nascosti.
 * Le variabili --header-height-* sono definite in assets/css/common.css.
 */
/*
 * Adatta il padding per il nuovo contenitore principale (#main-content)
 */
/* Rimossa la regola di padding desktop per l'header fisso: non è più necessaria */

@media (max-width: 980px) {
    body #primary {
        padding-top: var(--header-height-mobile);
    }
}

/* ==========================================================================
   Stili Finali e Robusti per Archivi WooCommerce (v3.0)
   ========================================================================== */

/* --- Variabili CSS Globali (se non già definite) --- */
/*
 * Le variabili CSS di base sono ora definite unicamente in
 * assets/css/common.css per evitare duplicazioni e conflitti.
 * Eventuali ridefinizioni qui sono state rimosse. Se è necessario
 * personalizzare un valore, farlo in common.css.
 */

/*
 * =====================================================================
 * Fix overflow e miglioramenti generali
 *
 * Le seguenti regole risolvono problemi di scrollbar orizzontale
 * osservati su varie pagine e nascondono elementi inutili come il
 * pulsante verticale "scroll to top" del tema precedente. Inoltre rendono più
 * armoniosa la barra di ricerca dell'header.
 */

/* Evita la comparsa della barra di scorrimento orizzontale su tutto il sito */

/* Rimozione dell'elemento scroll-to-top non più necessario */

/* Migliora l'allineamento della barra di ricerca nel header desktop */

/*
 * Eliminazione di pulsanti fluttuanti indesiderati
 *
 * Alcuni plugin inseriscono pulsanti fissi per lo scroll o per la gestione
 * del banner cookie che interferiscono con il design pulito
 * del sito. Le regole seguenti nascondono quei pulsanti. In caso di
 * ulteriori modifiche si consiglia di ispezionare l'HTML e regolare le
 * classi di conseguenza.
 */
#scroll-top,
 .scroll-top,
 .scrollToTop,
 .scroll-to-top {
    /* Nasconde pulsanti fluttuanti indesiderati senza usare !important */
    display: none;
}

/* Nasconde il pulsante "Carica di più" nelle griglie categoria quando non necessario.
   Se in futuro verrà implementata una logica dinamica per caricare altre pagine,
   rimuovere questa regola o applicarla condizionalmente via JS. */
.apple-load-more {
    display: none;
}

/* Stile base per la pagina Informazioni Statica */
.info-static-page .info-static-section {
    max-width: var(--bspc-content-width, 1120px);
    margin-left: auto;
    margin-right: auto;
    padding: clamp(25px, 4vw, 40px);
    border-bottom: 1px solid var(--bspc-border-light, #e0e0e0);
}
.info-static-page .info-static-section:last-of-type {
    border-bottom: none;
}
.info-static-page .info-static-section h2 {
    font-size: clamp(1.5rem, 4vw, 2rem);
    margin-top: 0;
    margin-bottom: 0.5em;
    color: var(--bspc-text-primary, #1d1d1f);
}
.info-static-page .info-static-section p,
.info-static-page .info-static-section li {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--bspc-text-secondary, #515154);
}
.info-static-page .info-static-section ul {
    list-style: disc;
    padding-left: 25px;
    margin-bottom: 1em;
}
.info-static-page .info-static-section li strong {
    font-weight: 600;
    color: var(--bspc-text-primary, #1d1d1f);
}
.info-static-page .cta-section {
    text-align: center;
    padding: clamp(40px, 5vw, 60px);
    background-color: var(--bspc-bg-light, #f5f5f7);
}
.info-static-page .cta-section h2 {
    font-size: clamp(1.6rem, 5vw, 2.2rem);
    margin-bottom: 0.5em;
}
.info-static-page .cta-section p {
    font-size: 1rem;
    margin-bottom: 1.2em;
    color: var(--bspc-text-secondary, #515154);
}
.info-static-page .cta-section .button {
    background-color: var(--bspc-blue-primary, #0071e3);
    color: #fff;
    padding: 12px 24px;
    border-radius: var(--bspc-radius-small, 8px);
    font-size: 1rem;
    text-decoration: none;
    transition: background-color 0.2s ease;
}
.info-static-page .cta-section .button:hover {
    background-color: var(--bspc-blue-hover, #0077ed);
}

/* [Theme Architect] Regole di validazione .bspc-form spostate in woo/appointments/appointments.css per modularità (SSOT). */

/* ------------------------------------------------------------------
   Classi layout utility
------------------------------------------------------------------ */

.bpc-section {
	max-width: var(--bspc-content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--bspc-desktop-padding);
	padding-right: var(--bspc-desktop-padding);
	box-sizing: border-box;
}

.bpc-section.bpc-section-wider {
	max-width: var(--bspc-content-width-wider);
}

@media (max-width: 1160px) {
	.bpc-section {
		padding-left: var(--bspc-mobile-padding);
		padding-right: var(--bspc-mobile-padding);
	}
}

/*
╔══════════════════════════════════════════════════════════════════════════╗


║ Section: COMPONENTI RIUTILIZZABILI – BOTTONI E CARD                       ║
╚══════════════════════════════════════════════════════════════════════════╝
*/
/*
 * Componente base per i bottoni (primary). Utilizzabile su link (<a>) o
 * elementi <button>. Viene fornita una variante secondaria e una variante
 * outline per coprire i casi d’uso più comuni. In questo modo gli stili
 * dei bottoni sono centralizzati, riducendo la duplicazione tra i vari
 * template (homepage, categorie, prodotto, contatti).
 */
/* [Theme Architect] SSOT bottoni: stile base in core + varianti per Woo/modali. */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.6em 1.2em;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    border: none;
    border-radius: var(--bspc-radius-medium);
    cursor: pointer;
    user-select: none;
    transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out, border-color 0.15s ease-in-out;
    background-color: var(--bspc-blue-primary);
    color: var(--bspc-bg-white);
}
.btn:hover,
.btn:focus {
    background-color: var(--bspc-blue-hover);
    color: var(--bspc-bg-white);
}
.btn:disabled,
.btn[aria-disabled="true"],
.btn:disabled:hover {
    opacity: 0.6;
    cursor: not-allowed;
    background-color: var(--bspc-blue-primary);
    color: var(--bspc-bg-white);
}

/* Alias semantico: usato nei template (.btn btn--primary). */
.btn--primary {
    border: 1px solid var(--bspc-blue-primary);
}
.btn--primary:hover,
.btn--primary:focus {
    border-color: var(--bspc-blue-hover);
}

/* Variante secondaria: per azioni meno importanti */
.btn--secondary {
    background-color: var(--bspc-green-primary);
    color: var(--bspc-bg-white);
}
.btn--secondary:hover,
.btn--secondary:focus {
    background-color: var(--bspc-green-hover);
    color: var(--bspc-bg-white);
}
/* Variante outline: bordo colorato su sfondo trasparente */
.btn--outline {
    background-color: transparent;
    color: var(--bspc-blue-primary);
    border: 2px solid var(--bspc-blue-primary);
}
.btn--outline:hover,
.btn--outline:focus {
    background-color: var(--bspc-blue-primary);
    color: var(--bspc-bg-white);
}

/*
 * Componente card riutilizzabile. Usato per listare prodotti, servizi
 * o elementi di categoria. Definisce un contenitore con ombra e bordo
 * arrotondato che supporta overflow nascosto per contenere immagini.
 */
.bpc-card {
    background-color: var(--bspc-bg-white);
    border: 1px solid var(--bspc-border-light);
    border-radius: var(--bspc-radius-large);
    box-shadow: var(--bspc-shadow-light);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.bpc-card__image {
    width: 100%;
    display: block;
    object-fit: cover;
}

/* Ensure that images inside the image wrapper scale correctly */
.bpc-card__image img {
    display: block;
    width: 100%;
    height: auto;
}
.bpc-card__body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.bpc-card__title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--bspc-text-primary);
    margin-bottom: 0.5rem;
}
.bpc-card__text {
    font-size: 0.9rem;
    color: var(--bspc-text-secondary);
    flex: 1;
}
.bpc-card__actions {
    margin-top: 1rem;
}

/*
 * ====================================================================
 * COMPONENTE CARD UNIFICATA (Apple Style)
 *
 * Questa classe fornisce una base coerente per i contenitori "card"
 * utilizzati in diverse sezioni della pagina prodotto (CTA, descrizione,
 * testo SEO ecc.). Invece di duplicare stili come sfondo glass, bordi,
 * raggio e ombra in ciascun blocco, definiamo qui un singolo punto
 * di verità (SSOT) che può essere riutilizzato ovunque mediante
 * l'aggiunta della classe `.bpc-card-unified` al contenitore. Le
 * dimensioni interne (padding) sono gestite in modo responsivo per
 * adattarsi sia al mobile che al desktop. Per eventuali personalizzazioni
 * specifiche (es. margini personalizzati o layout interno), i file
 * delle sezioni dovrebbero sovrascrivere soltanto ciò che è diverso.
 */
.bpc-card-unified {
    background-color: rgba(255, 255, 255, 0.78);
    /* Effetto vetro morbido: saturazione e blur leggeri, con fallback
       per browser che non supportano backdrop-filter */
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: var(--bspc-radius-large, 18px);
    box-shadow: 0 10px 40px -12px rgba(0, 113, 227, 0.1);
    padding: 22px 22px;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .bpc-card-unified {
        padding: 18px 16px;
        border-radius: var(--bspc-radius-medium, 16px);
        /* Ombra più leggera su mobile per ridurre il cost paint */
        box-shadow: 0 6px 20px -8px rgba(0, 0, 0, 0.08);
    }
}

/* -------------------------------------------------------------
 * Sezione FAQ e Call to Action nelle categorie WooCommerce
 * Uniforma il look della CTA e rende l’allineamento centrato.    
 * La sezione FAQ è già stilizzata in components/faq/faq.css.      
 */
.category-cta-section {
    text-align: center;
    margin: 4rem auto;
    padding: 0 var(--bspc-mobile-padding);
}

.category-cta-section .bspc-btn,
.category-cta-section .bspc-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1rem;
    padding: 0.75rem 1.5rem;
    border-radius: var(--bspc-radius-medium);
    background-color: var(--bspc-blue-primary);
    color: #fff;
    box-shadow: var(--bspc-shadow-light);
    transition: background-color .2s var(--easing-smooth);
}

.category-cta-section .bspc-btn:hover,
.category-cta-section .bspc-btn:focus-visible,
.category-cta-section .bspc-btn-primary:hover,
.category-cta-section .bspc-btn-primary:focus-visible {
    background-color: var(--bspc-blue-hover);
    color: #fff;
}

/* ------------------------------------------------------------------
   Transizioni dei pulsanti globali
   Applica animazioni morbide e scaling su tutti i pulsanti BSPC
------------------------------------------------------------------ */
.bspc-btn,
.bspc-btn-primary {
    transition: transform 0.2s var(--bspc-ease-apple), box-shadow 0.2s var(--bspc-ease-apple), background-color 0.2s var(--bspc-ease-apple);
}
.bspc-btn:active,
.bspc-btn-primary:active {
    transform: scale(0.98);
}

