/*
 * =====================================================================
 *  Template : GardaLakeRace
 *  Author   : DrSoftware (Roberto Dolci)
 *  File     : css/template.css
 *  Purpose  : Stili principali - layout, header, menu, footer, mobile
 * =====================================================================
 *  Versioning
 *    Major : 1
 *    Base  : 1
 *    Bug   : 10
 *    Version string: 1.1.10
 * =====================================================================
 *  Note v1.1.10: i partial core (default_url.php, default_component.php)
 *  non applicano nessuna classe al tag <a> a meno che non sia impostata
 *  nel campo "Link Class" della voce di menu: i selettori .glr-menu__link
 *  non trovavano mai corrispondenza (testo senza padding). Sostituiti
 *  con selettori strutturali (.glr-menu__item > a / .glr-menu .glr-menu__submenu a).
 *  Aggiunta anche la rotazione della freccia in hover/focus, non solo al click.
 * =====================================================================
 *  Note v1.1.9: fix specificita CSS - .header-nav ul (generica, sul
 *  menu di primo livello) vinceva su .glr-menu__submenu {display:none},
 *  lasciando il sottomenu sempre visibile.
 * =====================================================================
 *  Note v1.1.8: regole per il menu a tendina (dropdown), coerenti con
 *  il nuovo override html/mod_menu/default.php (classi glr-menu*).
 * =====================================================================
 *
 *  Le variabili colore (--glr-*) sono iniettate inline da index.php
 *  a partire dai parametri del template. Qui si definiscono solo i
 *  fallback, nel caso il template venga usato senza parametri.
 */

:root {
	--glr-primary: #E8730C;
	--glr-accent: #5A9E3F;
	--glr-header-bg: #1A1A1A;
	--glr-footer-bg: #1A1A1A;
	--glr-text: #212121;
	--glr-content-bg: #FFFFFF;
	--glr-link: #E8730C;
	--glr-link-hover: #C25F09;
	--glr-container-max: 1200px;

	--glr-header-text: #FFFFFF;
	--glr-footer-text: #CCCCCC;
	--glr-border: #E0E0E0;
	--glr-radius: 4px;
	--glr-gap: 1.5rem;
}

/* ------------------------------------------------------------------ */
/*  Reset leggero                                                      */
/* ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
}

body.tpl-glr {
	margin: 0;
	padding: 0;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.6;
	color: var(--glr-text);
	background: var(--glr-content-bg);
}

/* Sticky footer: il body riempie almeno l'altezza della finestra e il
   contenuto principale si espande, spingendo il footer in fondo (v1.1.7).
   Escluso .error-page, che ha un layout flex centrato proprio. */
body.tpl-glr.site:not(.error-page):not(.component-view) {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body.tpl-glr.site:not(.error-page):not(.component-view) .glr-main {
	flex: 1 0 auto;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--glr-link);
	text-decoration: none;
}

a:hover,
a:focus {
	color: var(--glr-link-hover);
	text-decoration: underline;
}

/* ------------------------------------------------------------------ */
/*  Container                                                          */
/* ------------------------------------------------------------------ */
.glr-container {
	width: 100%;
	max-width: var(--glr-container-max);
	margin-inline: auto;
	padding-inline: 1rem;
}

body.is-fluid .glr-container {
	max-width: 100%;
}

/* ------------------------------------------------------------------ */
/*  Accessibilità                                                      */
/* ------------------------------------------------------------------ */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--glr-primary);
	color: #fff;
	padding: 0.6rem 1rem;
	z-index: 1000;
}

.skip-link:focus {
	left: 0;
}

:focus-visible {
	outline: 3px solid var(--glr-primary);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ */
/*  Header                                                             */
/* ------------------------------------------------------------------ */
.glr-header {
	background: var(--glr-header-bg);
	color: var(--glr-header-text);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--glr-gap);
	min-height: 72px;
	position: relative;
}

.header-logo .logo-link {
	display: inline-flex;
	align-items: center;
	color: var(--glr-header-text);
	text-decoration: none;
}

.header-logo img {
	max-height: 52px;
	width: auto;
	display: block;
}

.header-logo .logo-text {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--glr-header-text);
}

/* Navigazione */
.header-nav {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
}

.header-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.75rem;
	align-items: center;
}

.header-nav a {
	color: var(--glr-header-text);
	text-decoration: none;
	font-weight: 500;
	padding: 0.4rem 0;
	display: inline-block;
}

.header-nav a:hover,
.header-nav a:focus,
.header-nav .glr-menu__item--current > a,
.header-nav .glr-menu__item--trail > a {
	color: var(--glr-primary);
	text-decoration: none;
}

.header-search {
	flex: 0 0 auto;
}

/* Social nell'header (da parametri template) - v1.1.0 */
.header-social {
	flex: 0 0 auto;
}

.header-social .social-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0.85rem;
}

.header-social .social-item {
	display: inline-flex;
}

.header-social .social-item a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: var(--glr-header-text);
	border-radius: 50%;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.header-social .social-item a:hover,
.header-social .social-item a:focus {
	color: var(--glr-primary);
	text-decoration: none;
}

.header-social .social-item svg {
	display: block;
}

/* Breadcrumbs (posizione breadcrumbs) - v1.1.0 */
.glr-breadcrumbs {
	background: rgba(0, 0, 0, 0.03);
	border-bottom: 1px solid var(--glr-border);
}

.glr-breadcrumbs .glr-container {
	padding-block: 0.25rem;
}

/* Azzera i margini interni del modulo breadcrumbs di Joomla (v1.1.5).
   Il modulo emette un <ul.breadcrumb> con margini di default del browser
   che creano spazio sotto il path. */
.glr-breadcrumbs .breadcrumb,
.glr-breadcrumbs ul,
.glr-breadcrumbs p {
	margin: 0;
	padding: 0;
}

/* Toggle mobile */
.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
}

.nav-toggle-bar {
	display: block;
	width: 26px;
	height: 3px;
	background: var(--glr-header-text);
	transition: transform 0.25s ease, opacity 0.25s ease;
	margin-inline: auto;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

/* ------------------------------------------------------------------ */
/*  Menu a tendina (dropdown) - v1.1.8                                 */
/*  Sottomenu nascosto di default; si apre su hover/focus (desktop     */
/*  con puntatore fine) oppure tramite classe "is-open" applicata da   */
/*  js/template.js al click/tap sul bottone .glr-menu__toggle.         */
/*  Limitato a 2 livelli (voce + sottomenu), coerente con              */
/*  html/mod_menu/default.php.                                         */
/* ------------------------------------------------------------------ */
.glr-menu__item {
	position: relative;
	display: flex;
	align-items: center;
}

.glr-menu__item > a {
	white-space: nowrap;
}

.glr-menu .glr-menu__submenu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: var(--glr-header-bg);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
	z-index: 950;
}

.glr-menu__submenu .glr-menu__item {
	width: 100%;
}

.glr-menu .glr-menu__submenu a {
	display: block;
	width: 100%;
	padding: 0.65rem 1.1rem;
}

.glr-menu__item.is-open > .glr-menu__submenu {
	display: block;
}

@media (hover: hover) and (pointer: fine) {
	.glr-menu__item--parent:hover > .glr-menu__submenu,
	.glr-menu__item--parent:focus-within > .glr-menu__submenu {
		display: block;
	}

	.glr-menu__item--parent:hover > .glr-menu__toggle .glr-menu__caret,
	.glr-menu__item--parent:focus-within > .glr-menu__toggle .glr-menu__caret {
		transform: rotate(180deg);
	}
}

.glr-menu__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	margin-left: 0.1rem;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: inherit;
}

.glr-menu__caret {
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid currentColor;
	transition: transform 0.2s ease;
}

.glr-menu__toggle[aria-expanded="true"] .glr-menu__caret {
	transform: rotate(180deg);
}

/* Nasconde visivamente il testo per screen reader del bottone toggle
   (chiave lingua core MOD_MENU_TOGGLE_SUBMENU_LABEL), senza dipendere
   da un framework che fornisca .visually-hidden. */
.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------ */
/*  Banner / Top                                                       */
/* ------------------------------------------------------------------ */
.glr-banner {
	width: 100%;
}

.glr-top {
	padding-block: 2rem;
}

.row-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--glr-gap);
}

/* ------------------------------------------------------------------ */
/*  Main                                                               */
/* ------------------------------------------------------------------ */
.glr-main {
	padding-block: 2rem;
	background: var(--glr-content-bg);
}

.main-top,
.main-bottom {
	margin-block: 1rem;
}

.main-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--glr-gap);
}

.main-grid:has(.sidebar-left):not(:has(.sidebar-right)) {
	grid-template-columns: 280px 1fr;
}

.main-grid:has(.sidebar-right):not(:has(.sidebar-left)) {
	grid-template-columns: 1fr 280px;
}

.main-grid:has(.sidebar-left):has(.sidebar-right) {
	grid-template-columns: 260px 1fr 260px;
}

.main-grid .sidebar-left {
	order: -1;
}

/* ------------------------------------------------------------------ */
/*  Footer                                                             */
/* ------------------------------------------------------------------ */
.glr-footer {
	background: var(--glr-footer-bg);
	color: var(--glr-footer-text);
	padding-block: 2.5rem 1.5rem;
}

.glr-footer a {
	color: var(--glr-footer-text);
}

.glr-footer a:hover,
.glr-footer a:focus {
	color: var(--glr-primary);
}

.glr-footer h1,
.glr-footer h2,
.glr-footer h3 {
	color: var(--glr-primary);
}

.footer-cols {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1fr;
}

/* Colonne footer dinamiche a piena larghezza (v1.1.2) */
.footer-cols.cols-1 {
	grid-template-columns: 1fr;
}

.footer-cols.cols-2 {
	grid-template-columns: repeat(2, 1fr);
}

.footer-cols.cols-3 {
	grid-template-columns: repeat(3, 1fr);
}

.footer-cols.cols-4 {
	grid-template-columns: repeat(4, 1fr);
}

.footer-bottom {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	text-align: center;
	font-size: 0.9rem;
}

/* Riga copyright sempre visibile (da parametri) - v1.1.1 */
.footer-copyright {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	text-align: center;
	font-size: 0.85rem;
	color: var(--glr-footer-text);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	align-items: center;
}

/* Se non ci sono colonne footer sopra, la riga non ha bordo doppio */
.footer-cols + .footer-copyright,
.footer-bottom + .footer-copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.glr-footer:not(:has(.footer-cols)):not(:has(.footer-bottom)) .footer-copyright {
	border-top: 0;
	margin-top: 0;
	padding-top: 0;
}

.footer-copyright .copyright-author {
	opacity: 0.75;
	font-size: 0.8rem;
}

/* ------------------------------------------------------------------ */
/*  Pagina errore                                                      */
/* ------------------------------------------------------------------ */
.error-page {
	display: flex;
	min-height: 100vh;
	align-items: center;
	justify-content: center;
	background: var(--glr-header-bg);
}

.error-wrap {
	padding: 2rem;
	width: 100%;
	max-width: 640px;
}

.error-box {
	background: #fff;
	border-radius: var(--glr-radius);
	padding: 3rem 2rem;
	text-align: center;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

.error-code {
	font-size: 5rem;
	font-weight: 800;
	line-height: 1;
	color: var(--glr-primary);
}

.error-title {
	margin: 0.5rem 0 1rem;
	color: var(--glr-text);
}

.error-message {
	color: #555;
	margin-bottom: 1.5rem;
}

.btn-home {
	display: inline-block;
	background: var(--glr-primary);
	color: #fff;
	padding: 0.7rem 1.6rem;
	border-radius: var(--glr-radius);
	text-decoration: none;
	font-weight: 600;
}

.btn-home:hover,
.btn-home:focus {
	background: var(--glr-link-hover);
	color: #fff;
	text-decoration: none;
}

.error-debug {
	margin-top: 2rem;
	text-align: left;
	font-size: 0.85rem;
	overflow: auto;
}

/* ------------------------------------------------------------------ */
/*  Vista component                                                    */
/* ------------------------------------------------------------------ */
.component-view {
	background: #fff;
}

.component-wrap {
	padding-block: 1.5rem;
}

/* ------------------------------------------------------------------ */
/*  Responsive - Tablet                                                */
/* ------------------------------------------------------------------ */
@media (max-width: 992px) {

	.main-grid,
	.main-grid:has(.sidebar-left):not(:has(.sidebar-right)),
	.main-grid:has(.sidebar-right):not(:has(.sidebar-left)),
	.main-grid:has(.sidebar-left):has(.sidebar-right) {
		grid-template-columns: 1fr;
	}

	/* Tablet: max 2 colonne per riga (v1.1.2) */
	.footer-cols.cols-3,
	.footer-cols.cols-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ------------------------------------------------------------------ */
/*  Responsive - Mobile                                                */
/* ------------------------------------------------------------------ */
@media (max-width: 768px) {

	.nav-toggle {
		display: flex;
		order: 3;
	}

	.header-nav {
		order: 4;
		flex-basis: 100%;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--glr-header-bg);
		display: none;
		z-index: 900;
		box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
	}

	.header-nav.is-open {
		display: block;
	}

	.header-nav ul {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0.5rem 0;
	}

	.header-nav li {
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}

	.header-nav a {
		display: block;
		padding: 0.9rem 1.25rem;
	}

	/* Dropdown -> sottomenu statico e indentato, niente hover (v1.1.8) */
	.glr-menu__item {
		flex-wrap: wrap;
	}

	.glr-menu__submenu {
		position: static;
		width: 100%;
		box-shadow: none;
		background: rgba(0, 0, 0, 0.15);
	}

	.glr-menu .glr-menu__submenu a {
		padding: 0.75rem 1.25rem 0.75rem 2rem;
	}

	.glr-menu__toggle {
		width: 44px;
		height: 44px;
	}

	.header-search {
		display: none;
	}

	/* Social restano visibili nell'header mobile, accanto all'hamburger */
	.header-social {
		order: 2;
		margin-left: auto;
		margin-right: 0.5rem;
	}

	.header-social .social-list {
		gap: 0.35rem;
	}

	.header-social .social-item a {
		width: 38px;
		height: 38px;
	}

	.row-2 {
		grid-template-columns: 1fr;
	}

	/* Mobile: una colonna per riga, sovrascrive cols-N (v1.1.2) */
	.footer-cols.cols-1,
	.footer-cols.cols-2,
	.footer-cols.cols-3,
	.footer-cols.cols-4 {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.header-inner {
		flex-wrap: wrap;
	}
}

/* ------------------------------------------------------------------ */
/*  Riduzione movimento                                                */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		animation: none !important;
	}
}

/* ================================================================== */
/*  ARTICOLI (com_content)                                            */
/*  Aggiunto in v1.0.1                                                 */
/* ================================================================== */

/* --- Titolo articolo --- */
.glr-main .page-header h1,
.glr-main .page-header h2,
.glr-main .item-page > h2,
.glr-main .blog-item h2 {
	color: var(--glr-text);
	margin-block: 0 1rem;
	line-height: 1.2;
}

.glr-main .page-header h1 a,
.glr-main .item-page h2 a,
.glr-main .blog-item h2 a {
	color: inherit;
}

.glr-main .page-header h1 a:hover,
.glr-main .item-page h2 a:hover,
.glr-main .blog-item h2 a:hover {
	color: var(--glr-primary);
	text-decoration: none;
}

/* --- Blocco info (autore, data, categoria) --- */
.item-page .article-info,
.blog-item .article-info {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--glr-border);
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.25rem;
	font-size: 0.85rem;
	color: #666;
}

.item-page .article-info dd,
.blog-item .article-info dd {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.item-page .article-info a,
.blog-item .article-info a {
	color: var(--glr-link);
}

.article-info-term {
	font-weight: 600;
}

/* --- Corpo articolo --- */
.item-page,
.blog-item {
	margin-bottom: 2.5rem;
}

.item-page p,
.blog-item p {
	margin-block: 0 1rem;
}

.item-page h2,
.item-page h3,
.item-page h4,
.blog-item h3,
.blog-item h4 {
	margin-block: 1.75rem 0.75rem;
	line-height: 1.3;
}

/* --- Immagini allineate (classi editor / JCE) --- */
.item-page img,
.blog-item img {
	max-width: 100%;
	height: auto;
	border-radius: var(--glr-radius);
}

.item-page figure,
.blog-item figure {
	margin: 0 0 1rem;
}

.item-page figcaption,
.blog-item figcaption {
	font-size: 0.85rem;
	color: #777;
	padding-top: 0.35rem;
	text-align: center;
}

/* Allineamenti immagini: spostati in user.css (v1.0.3) per esporli
   nel dropdown "Stili" di JCE. Le regole responsive che li annullano
   su mobile restano nel media query in fondo a questo file. */

/* Caption JCE (wrapper .caption / .wf-caption) */
.caption,
.wf-caption {
	display: inline-block;
	max-width: 100%;
}

.caption img,
.wf-caption img {
	display: block;
}

.caption-text,
.wf-caption-text {
	font-size: 0.85rem;
	color: #777;
	text-align: center;
	padding-top: 0.35rem;
}

/* --- Citazioni --- */
.item-page blockquote,
.blog-item blockquote,
.glr-main blockquote {
	margin: 1.5rem 0;
	padding: 0.75rem 1.25rem;
	border-left: 4px solid var(--glr-primary);
	background: rgba(0, 0, 0, 0.03);
	color: #444;
	font-style: italic;
}

.item-page blockquote p:last-child,
.blog-item blockquote p:last-child {
	margin-bottom: 0;
}

/* --- Liste --- */
.item-page ul,
.item-page ol,
.blog-item ul,
.blog-item ol {
	margin-block: 0 1rem;
	padding-left: 1.5rem;
}

.item-page li,
.blog-item li {
	margin-bottom: 0.35rem;
}

/* --- Tabelle --- */
.glr-main table,
.item-page table,
.blog-item table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.25rem 0;
	font-size: 0.95rem;
}

.glr-main table th,
.glr-main table td {
	padding: 0.6rem 0.85rem;
	border: 1px solid var(--glr-border);
	text-align: left;
	vertical-align: top;
}

.glr-main table th {
	background: var(--glr-header-bg);
	color: #fff;
	font-weight: 600;
}

.glr-main table tbody tr:nth-child(even) {
	background: rgba(0, 0, 0, 0.025);
}

/* Tabella responsive: scroll orizzontale su mobile */
.item-page table,
.blog-item table {
	display: block;
	overflow-x: auto;
}

/* --- Tag --- */
.tags {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.tags .tag-name,
.tags li a {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	background: rgba(0, 0, 0, 0.05);
	border-radius: 999px;
	font-size: 0.8rem;
	color: var(--glr-text);
	text-decoration: none;
}

.tags li a:hover {
	background: var(--glr-primary);
	color: #fff;
}

/* --- Pulsante "Leggi tutto" --- */
.readmore a,
.item-page .readmore a,
a.btn-readmore {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.45rem 1.1rem;
	background: var(--glr-primary);
	color: #fff;
	border-radius: var(--glr-radius);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.readmore a:hover,
a.btn-readmore:hover {
	background: var(--glr-link-hover);
	color: #fff;
	text-decoration: none;
}

/* --- Navigazione articolo prec/succ --- */
.pager,
.pagination {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	margin: 2rem 0 0;
	justify-content: center;
}

.pager .previous {
	margin-right: auto;
}

.pager .next {
	margin-left: auto;
}

.pagination a,
.pagination span,
.pager a {
	display: inline-block;
	padding: 0.4rem 0.8rem;
	border: 1px solid var(--glr-border);
	border-radius: var(--glr-radius);
	color: var(--glr-link);
	text-decoration: none;
}

.pagination a:hover,
.pager a:hover {
	background: var(--glr-primary);
	color: #fff;
	border-color: var(--glr-primary);
}

.pagination .active span {
	background: var(--glr-primary);
	color: #fff;
	border-color: var(--glr-primary);
}

/* --- Breadcrumbs --- */
.breadcrumb {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	padding: 0.75rem 0;
	margin: 0 0 1rem;
	font-size: 0.85rem;
	color: #777;
}

.breadcrumb li + li::before {
	content: "/";
	padding-right: 0.4rem;
	color: #bbb;
}

.breadcrumb a {
	color: var(--glr-link);
}

/* --- Contenuto multi-colonna blog (introtext) --- */
.blog .items-row {
	display: grid;
	gap: var(--glr-gap);
}

.blog .columns-2 {
	grid-template-columns: 1fr 1fr;
}

.blog .columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 768px) {

	.blog .columns-2,
	.blog .columns-3 {
		grid-template-columns: 1fr;
	}

	.float-start,
	.float-end {
		float: none;
		display: block;
		margin: 0 0 1rem;
	}
}

/* ================================================================== */
/*  CONTACT FORM (com_contact)                                        */
/*  Aggiunto in v1.0.2                                                 */
/* ================================================================== */

/* Contenitore contatto */
.contact {
	max-width: 700px;
}

.contact h1,
.contact h2,
.contact h3 {
	color: var(--glr-text);
}

/* Blocco "Informazioni" / dettagli contatto */
.contact .contact-miscinfo,
.contact .jicons-icons {
	margin-bottom: 1.5rem;
}

/* --- Il form vero e proprio --- */
.contact-form,
.com-contact-form {
	margin-top: 1rem;
}

.contact-form fieldset {
	border: 0;
	padding: 0;
	margin: 0;
}

.contact-form legend {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--glr-text);
	margin-bottom: 1rem;
	padding: 0;
}

/* Riga campo: label + controllo.
   Joomla 6 usa .control-group > .control-label + .controls */
.contact-form .control-group {
	margin-bottom: 1.1rem;
}

.contact-form .control-label {
	display: block;
	font-weight: 600;
	font-size: 0.9rem;
	margin-bottom: 0.35rem;
	color: var(--glr-text);
}

.contact-form .control-label label {
	margin: 0;
}

/* Asterisco campo obbligatorio */
.contact-form .control-label .star,
.contact-form .required .star,
.contact-form label .star {
	color: var(--glr-primary);
	margin-left: 0.15rem;
}

/* Nota "campo obbligatorio" */
.contact-form .form-text,
.contact-form .required-info {
	font-size: 0.85rem;
	color: #777;
}

/* --- Campi input --- */
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form input[type="url"],
.contact-form input[type="number"],
.contact-form input[type="password"],
.contact-form select,
.contact-form textarea {
	width: 100%;
	padding: 0.65rem 0.85rem;
	font-size: 1rem;
	font-family: inherit;
	color: var(--glr-text);
	background: #fff;
	border: 1px solid var(--glr-border);
	border-radius: var(--glr-radius);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.contact-form textarea {
	min-height: 160px;
	resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
	border-color: var(--glr-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(232, 115, 12, 0.15);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: #999;
}

/* --- Pulsante invio --- */
.contact-form .btn,
.contact-form button[type="submit"],
.contact-form input[type="submit"] {
	display: inline-block;
	background: var(--glr-primary);
	color: #fff;
	border: 0;
	padding: 0.7rem 1.8rem;
	font-size: 1rem;
	font-weight: 600;
	border-radius: var(--glr-radius);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.contact-form .btn:hover,
.contact-form button[type="submit"]:hover,
.contact-form input[type="submit"]:hover {
	background: var(--glr-link-hover);
	color: #fff;
}

.contact-form .btn:focus-visible,
.contact-form button[type="submit"]:focus-visible {
	outline: 3px solid var(--glr-text);
	outline-offset: 2px;
}

/* --- Validazione --- */
.contact-form input.invalid,
.contact-form textarea.invalid,
.contact-form select.invalid {
	border-color: #c0392b;
	background: #fdf3f2;
}

.contact-form .form-control-feedback,
.contact-form label.invalid,
.contact-form .invalid-feedback {
	color: #c0392b;
	font-size: 0.85rem;
	margin-top: 0.25rem;
	display: block;
}

/* Checkbox / consenso privacy (se presente come campo) */
.contact-form .controls .form-check,
.contact-form .checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

.contact-form .form-check-input,
.contact-form input[type="checkbox"] {
	width: auto;
	margin-top: 0.25rem;
}

/* --- Responsive --- */
@media (max-width: 768px) {

	.contact {
		max-width: 100%;
	}

	.contact-form .btn,
	.contact-form button[type="submit"],
	.contact-form input[type="submit"] {
		width: 100%;
	}
}
