/* ==========================================================
   STEP 1 - Layout generale
========================================================== */

:root{
    --gv-primary:#005fae;
    --gv-primary-dark:#004b8d;
    --gv-light:#f5f7fa;
    --gv-border:#dfe5eb;
    --gv-text:#333;
}

/* Sfondo pagina */
body{
    background:#eef2f5;
    color:var(--gv-text);
    font-family:Arial, Helvetica, sans-serif;
    line-height:1.7;
}

/* Contenitore principale */
.site-grid{
    max-width:1400px;
    margin:30px auto;
    gap:30px;
}

/* Area contenuti */
.container-component{
    background:#fff;
    padding:30px;
    border:1px solid var(--gv-border);
    border-radius:6px;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
}

/* Sidebar */
.container-sidebar-left,
.container-sidebar-right{
    background:#fff;
    padding:20px;
    border:1px solid var(--gv-border);
    border-radius:6px;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
}

/* Link */
a{
    color:var(--gv-primary);
    transition:.25s;
}

a:hover{
    color:var(--gv-primary-dark);
    text-decoration:none;
}
/* ==========================================================
   STEP 2 - Header e menu
========================================================== */

/* Header generale */
.header{
    background:#ffffff;
    border-bottom:1px solid #dfe5eb;
    box-shadow:0 2px 8px rgba(0,0,0,.05);
}

/* Area interna header */
.container-header{
    background:#ffffff;
    padding:20px 0;
}

/* Logo */
.container-header .navbar-brand img{
    max-height:90px;
    width:auto;
}

/* Nome sito se non c'è immagine logo */
.container-header .site-title{
    color:#005fae;
    font-size:2rem;
    font-weight:700;
}


/* Menu principale */
.container-header .mod-menu{
    display:flex;
    align-items:center;
    gap:5px;
}

/* Voci menu */
.container-header .mod-menu > li > a{
    color:#333;
    font-size:1rem;
    font-weight:600;
    padding:12px 16px;
    border-radius:4px;
    transition:.25s;
}

/* Hover */
.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li.active > a{
    background:#005fae;
    color:#fff;
}


/* Dropdown */
.container-header .dropdown-menu{
    border:1px solid #dfe5eb;
    box-shadow:0 5px 15px rgba(0,0,0,.1);
}

.container-header .dropdown-menu a{
    padding:10px 15px;
}


/* Pulsante hamburger mobile */
.container-header .navbar-toggler{
    border-color:#005fae;
}

.container-header .navbar-toggler-icon{
    filter:invert(25%) sepia(90%) saturate(1500%);
}
/* ==========================================================
   FIX STEP 2 - Titolo e sottotitolo sito
========================================================== */

/* Titolo sito */
.container-header .site-title{
    display:block;
    color:#005fae;
    font-size:2rem;
    font-weight:700;
    line-height:1.2;
    margin:0;
}

/* Sottotitolo */
.container-header .site-description{
    display:block;
    color:#666;
    font-size:1rem;
    font-weight:400;
    margin-top:5px;
}

/* Blocco logo + testo */
.container-header .navbar-brand{
    display:flex;
    align-items:center;
    gap:20px;
}
/* TEST VISIBILITA' TITOLO CASSIOPEIA */

.container-header .site-title,
.container-header .site-description,
.site-title,
.site-description {
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
}
/* ==========================================================
   FIX HEADER - ripristino titolo Cassiopeia
========================================================== */

/* Mantiene visibile il blocco branding */
.container-header .navbar-brand,
.container-header .navbar-brand:hover {
    display:flex !important;
    align-items:center;
    color:#005fae !important;
    text-decoration:none;
}

/* Titolo */
.container-header .site-title,
.container-header .site-title a {
    display:block !important;
    visibility:visible !important;
    color:#005fae !important;
    font-size:2rem;
    font-weight:700;
    line-height:1.2;
}

/* Sottotitolo */
.container-header .site-description {
    display:block !important;
    visibility:visible !important;
    color:#666 !important;
    font-size:1rem;
    margin-top:5px;
}

/* Evita che il contenitore del branding venga schiacciato */
.container-header .navbar-brand > div {
    display:block !important;
}
/* ==========================================================
   FIX BRAND CASSIOPEIA
========================================================== */

/* Ripristino completo area brand */
.container-header .navbar-brand {
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
}

/* Titolo del sito */
.container-header .navbar-brand .site-title,
.container-header .navbar-brand .site-title a,
.container-header .site-title {
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    height:auto !important;
    color:#005fae !important;
    font-size:2rem !important;
    font-weight:700 !important;
    line-height:1.2 !important;
}

/* Tagline */
.container-header .site-description {
    display:block !important;
    color:#666 !important;
    margin-top:4px;
}
/* ==========================================================
   TEST COLORE TITOLO HEADER
========================================================== */

.container-header .navbar-brand,
.container-header .navbar-brand a,
.container-header .navbar-brand .site-title,
.container-header .navbar-brand .site-title a {
    color:#005fae !important;
    -webkit-text-fill-color:#005fae !important;
}
/* ==========================================================
   STEP 3 - Articoli e contenuti
========================================================== */

/* Area articolo */
.com-content-article,
.blog-item,
.item-page {
    background:#fff;
    padding:30px;
    border:1px solid var(--gv-border);
    border-radius:6px;
    margin-bottom:30px;
    box-shadow:0 2px 10px rgba(0,0,0,.04);
}


/* Titolo articolo */
.page-header h1,
.page-header h2,
.item-title,
.article-title,
.blog-item h2 {
    color:#005fae;
    font-size:2rem;
    font-weight:700;
    line-height:1.25;
    margin-bottom:20px;
}


/* Titoli link negli articoli */
.blog-item h2 a,
.article-title a {
    color:#005fae;
    text-decoration:none;
}

.blog-item h2 a:hover,
.article-title a:hover {
    color:#004b8d;
}


/* Immagini articoli */
.item-image img,
.blog-item img,
.com-content-article img {
    max-width:100%;
    height:auto;
    border-radius:6px;
}


/* Immagini introduttive del blog */
.blog-item .item-image {
    margin-bottom:20px;
}


/* Testo */
.com-content-article p,
.blog-item p {
    font-size:1.05rem;
    color:#444;
}


/* Leggi tutto */
.readmore a,
.btn-primary {
    background:#005fae;
    color:#fff !important;
    border:none;
    border-radius:4px;
    padding:10px 20px;
    display:inline-block;
    font-weight:600;
    transition:.25s;
}

.readmore a:hover,
.btn-primary:hover {
    background:#004b8d;
}


/* Informazioni articolo */
.article-info,
.blog-item .small {
    color:#777;
    font-size:.9rem;
}


/* Separatore articoli blog */
.blog-items .blog-item + .blog-item {
    border-top:1px solid #e5e5e5;
}
/* ==========================================================
   FIX - Tag articoli Joomla
========================================================== */

/* Contenitore tag */
.tags,
.tagspopular,
.com-tags {
    display:block;
    margin-top:20px;
}

/* Singoli tag */
.tags .badge,
.tagspopular .badge,
.tags a,
.tagspopular a,
.com-tags a {
    display:inline-block !important;
    background:#005fae !important;
    color:#ffffff !important;
    padding:6px 12px;
    margin:3px;
    border-radius:20px;
    font-size:.85rem;
    text-decoration:none;
}

/* Hover */
.tags a:hover,
.tagspopular a:hover,
.com-tags a:hover {
    background:#004b8d !important;
    color:#fff !important;
}
/* ==========================================================
   STEP 4 - Sidebar e moduli
========================================================== */

/* Moduli sidebar */
.container-sidebar-right .moduletable,
.container-sidebar-left .moduletable,
.container-sidebar-right .module,
.container-sidebar-left .module {

    background:#fff;
    border:1px solid var(--gv-border);
    border-radius:6px;
    padding:20px;
    margin-bottom:25px;
    box-shadow:0 2px 10px rgba(0,0,0,.04);
}


/* Titoli moduli */
.container-sidebar-right .moduletable h2,
.container-sidebar-right .moduletable h3,
.container-sidebar-right .module h2,
.container-sidebar-right .module h3,
.container-sidebar-left .moduletable h2,
.container-sidebar-left .moduletable h3 {

    color:#005fae;
    font-size:1.15rem;
    text-transform:uppercase;
    font-weight:700;
    padding-bottom:10px;
    margin-bottom:15px;
    border-bottom:3px solid #005fae;
}


/* Liste menu sidebar */
.container-sidebar-right ul,
.container-sidebar-left ul {
    padding-left:0;
    list-style:none;
}


.container-sidebar-right li,
.container-sidebar-left li {
    border-bottom:1px solid #eee;
    padding:8px 0;
}


/* Link sidebar */
.container-sidebar-right a,
.container-sidebar-left a {
    color:#444;
    text-decoration:none;
}


.container-sidebar-right a:hover,
.container-sidebar-left a:hover {
    color:#005fae;
}
/* ==========================================================
   STEP 4B - Moduli Cassiopeia reali
========================================================== */

/* Tutti i moduli nelle colonne laterali */
.container-sidebar-right > *,
.container-sidebar-left > * {
    background:#fff;
    border:1px solid var(--gv-border);
    border-radius:6px;
    padding:20px;
    margin-bottom:25px;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
}


/* Titoli modulo */
.container-sidebar-right h1,
.container-sidebar-right h2,
.container-sidebar-right h3,
.container-sidebar-right .card-header,
.container-sidebar-left h1,
.container-sidebar-left h2,
.container-sidebar-left h3,
.container-sidebar-left .card-header {

    color:#005fae;
    font-size:1.15rem;
    font-weight:700;
    text-transform:uppercase;
    border-bottom:3px solid #005fae;
    padding-bottom:10px;
    margin-bottom:15px;
}


/* Menu nei moduli */
.container-sidebar-right ul,
.container-sidebar-left ul {
    padding-left:0;
    margin:0;
    list-style:none;
}


.container-sidebar-right li,
.container-sidebar-left li {
    padding:8px 0;
    border-bottom:1px solid #eee;
}


/* Link */
.container-sidebar-right a,
.container-sidebar-left a {
    color:#444;
}


.container-sidebar-right a:hover,
.container-sidebar-left a:hover {
    color:#005fae;
}
/* ==========================================================
   STEP 5 - Footer stile Giroviaggiare
========================================================== */

/* Footer generale */
.footer {
    background:#1f2933;
    color:#ffffff;
    margin-top:50px;
    padding:40px 0 20px;
    border-top:5px solid #005fae;
}


/* Contenuto footer */
.footer .grid-child {
    max-width:1400px;
}


/* Titoli nel footer */
.footer h2,
.footer h3,
.footer h4 {
    color:#ffffff;
    font-size:1.1rem;
    font-weight:700;
    text-transform:uppercase;
    margin-bottom:15px;
}


/* Testo */
.footer p,
.footer li {
    color:#d9e1e8;
}


/* Link footer */
.footer a {
    color:#ffffff;
    text-decoration:none;
    transition:.25s;
}


.footer a:hover {
    color:#4da3ff;
}


/* Liste footer */
.footer ul {
    list-style:none;
    padding:0;
}


.footer li {
    margin-bottom:8px;
}


/* Linea finale copyright */
.footer .mod-footer {
    border-top:1px solid rgba(255,255,255,.2);
    margin-top:25px;
    padding-top:15px;
    font-size:.9rem;
    color:#cfd8dc;
}


/* Eventuali moduli footer */
.footer .module {
    margin-bottom:25px;
}
/* ==========================================================
   STEP 5B - Footer Cassiopeia reale
========================================================== */

/* Contenitore footer */
.container-footer {
    background:#1f2933 !important;
    color:#ffffff !important;
    margin-top:50px;
    padding:40px 0 20px;
    border-top:5px solid #005fae;
}


/* Area interna */
.container-footer .grid-child {
    max-width:1400px;
}


/* Testi */
.container-footer p,
.container-footer li {
    color:#d9e1e8 !important;
}


/* Link */
.container-footer a {
    color:#ffffff !important;
    text-decoration:none;
}


.container-footer a:hover {
    color:#4da3ff !important;
}


/* Titoli */
.container-footer h1,
.container-footer h2,
.container-footer h3,
.container-footer h4 {
    color:#ffffff !important;
}


/* Liste */
.container-footer ul {
    list-style:none;
    padding-left:0;
}


.container-footer li {
    margin-bottom:8px;
}


/* Modulo copyright */
.container-footer .mod-footer {
    border-top:1px solid rgba(255,255,255,.25);
    margin-top:25px;
    padding-top:15px;
}
/* ==========================================================
   STEP 6 - Rifinitura grafica generale
========================================================== */

/* Tipografia generale */
body {
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    color:#333;
}


/* Migliora leggibilità testo */
p {
    line-height:1.75;
}


/* Titoli globali */
h1,
h2,
h3,
h4 {
    font-family:"Segoe UI", Arial, Helvetica, sans-serif;
    font-weight:700;
    color:#005fae;
}


/* Breadcrumb */
.breadcrumb {
    background:#fff;
    border:1px solid #dfe5eb;
    border-radius:5px;
    padding:10px 15px;
    margin-bottom:25px;
}


/* Separazione articoli */
.blog-items {
    gap:25px;
}


/* Articoli in evidenza */
.blog-item {
    transition:.25s ease;
}


/* Effetto leggero al passaggio */
.blog-item:hover {
    box-shadow:0 8px 20px rgba(0,0,0,.10);
    transform:none;
}

/* Immagini articoli */
.blog-item img,
.item-image img {
    transition:.3s;
}


.blog-item img:hover,
.item-image img:hover {
    transform:scale(1.02);
}


/* Pulsanti Joomla */
.btn,
button,
input[type="submit"] {
    border-radius:5px;
    font-weight:600;
}


/* Tabelle */
table {
    border-collapse:collapse;
    width:100%;
}


table th {
    background:#005fae;
    color:#fff;
}


table td,
table th {
    padding:10px;
    border:1px solid #ddd;
}
/* ==========================================================
   STEP 8 - Menu moduli Joomla
========================================================== */

.container-sidebar-left .mod-menu,
.container-sidebar-right .mod-menu {
    margin:0;
    padding:0;
    list-style:none;
}


.container-sidebar-left .mod-menu .nav-item,
.container-sidebar-right .mod-menu .nav-item {
    border-bottom:1px solid #e5e5e5;
}


.container-sidebar-left .mod-menu .nav-item > a,
.container-sidebar-right .mod-menu .nav-item > a {
    display:block;
    padding:10px 12px;
    color:#444;
    font-weight:600;
    text-decoration:none;
}


.container-sidebar-left .mod-menu .nav-item > a:hover,
.container-sidebar-right .mod-menu .nav-item > a:hover {
    background:#005fae;
    color:#fff;
}
/* ==========================================================
   STEP 9 - Immagini articoli (versione sicura)
========================================================== */


/* Solo immagini Joomla degli articoli */
.item-image img,
.blog-item .item-image img {
    max-width:100%;
    height:auto;
    border-radius:8px;
    transition:transform .3s ease;
}


/* Contenitore immagine introduttiva */
.item-image {
    overflow:hidden;
    border-radius:8px;
}


/* Effetto leggero */
.item-image img:hover {
    transform:scale(1.03);
}


/* Immagini dentro il testo articolo
   (esclude iframe/video) */
.com-content-article .article-body img,
.com-content-article .item-page img {
    max-width:100%;
    height:auto;
    border-radius:6px;
}

/* ==========================================================
   STEP 11 - Nasconde titolo home blog
========================================================== */

.blog-featured > .page-header {
    display:none !important;
}
/* ==========================================================
   STEP 12 - Allineamento header e barra ricerca sulla stessa riga
========================================================== */

/* L'header è il contenitore diretto dei due grid-child */
.header.container-header {
    display:flex !important;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

/* I due blocchi (logo/menu e ricerca) non si allargano oltre il necessario */
.header.container-header > .grid-child {
    flex:0 0 auto;
}

/* Il blocco ricerca resta a destra, allineato verticalmente */
.header .grid-child.container-nav {
    display:flex;
    align-items:center;
    margin-left:auto;
}

.container-search,
.container-search .search,
.container-search .search form {
    display:flex;
    align-items:center;
}
/* ==========================================================
   STEP 12B - Contiene la larghezza della barra di ricerca
========================================================== */

.header .grid-child.container-nav {
    max-width:320px;
    width:auto;
}

.container-search {
    width:100%;
    max-width:320px;
}

.container-search .search,
.container-search .search form.mod-finder {
    width:100%;
    max-width:320px;
    display:flex;
    align-items:center;
}

/* L'input di ricerca non deve sforare */
.container-search input[type="text"],
.container-search input[type="search"] {
    width:100%;
    max-width:220px;
}
/* ==========================================================
   STEP 13 - Header responsive mobile
========================================================== */

@media (max-width: 767px) {

    /* Su mobile l'header torna in colonna */
    .header.container-header {
        flex-direction:column;
        align-items:stretch;
        gap:10px;
    }

    .header.container-header > .grid-child {
        flex:1 1 auto;
        width:100%;
    }

    /* La ricerca torna a larghezza piena */
    .header .grid-child.container-nav {
        max-width:100%;
        margin-left:0;
    }

    .container-search,
    .container-search .search,
    .container-search .search form.mod-finder {
        max-width:100%;
    }

    .container-search input[type="text"],
    .container-search input[type="search"] {
        max-width:100%;
    }
}

/* ==========================================================
   STEP 14 - Fix mobile: contenuto edge-to-edge e titoli ridotti
========================================================== */

@media (max-width: 767px) {

    /* Contenuto a tutta larghezza, niente striscia grigia ai lati */
    .site-grid {
        padding:0 !important;
        margin:10px 0 !important;
        gap:10px !important;
    }

    /* Card senza bordi arrotondati/ombra, più aderente allo schermo */
    .container-component,
    .com-content-article,
    .blog-item,
    .item-page {
        padding:15px !important;
        border-radius:0 !important;
        border-left:none !important;
        border-right:none !important;
        box-shadow:none !important;
        margin-bottom:15px !important;
    }

    /* Titolo articolo più piccolo su mobile */
    .page-header h1,
    .page-header h2,
    .item-title,
    .article-title {
        font-size:1.4rem !important;
        line-height:1.3 !important;
    }

    /* Site title header più piccolo su mobile */
    .container-header .site-title {
        font-size:1.4rem !important;
    }

    .container-header .site-description {
        font-size:.85rem !important;
    }
}