/*
 * Cammino Celone: il disegno del sito.
 * Colori, marchio e caratteri del sito attuale (regola di Stefano 10/10): ocra, bronzo, blu notte, crema;
 * Playfair Display per i titoli, Inter per il testo. Cambia l'impaginazione.
 * Il segno del sito e' il SENTIERO: una linea ocra tratteggiata che scende lungo la home e tocca le tappe,
 * con segnali a rombo. La credenziale usa sigilli QUADRATI. Le schede sono pagine di guida, i prodotti
 * cartellini con l'occhiello. Niente segni degli altri portali (vedi README).
 * Veste anche i componenti del plugin gaw-cammino-vetrina (classi .gcv-*), senza toccarne il codice.
 * Movimento: solo transizioni brevi su colore e posizione, spente con prefers-reduced-motion.
 */

:root {
	--cc-crema: var(--wp--preset--color--base);
	--cc-carta: var(--wp--preset--color--surface);
	--cc-inchiostro: var(--wp--preset--color--contrast);
	--cc-notte: var(--wp--preset--color--notte);
	--cc-ocra: var(--wp--preset--color--primary);
	--cc-ocra-chiaro: var(--wp--preset--color--accent);
	--cc-bronzo: var(--wp--preset--color--bronzo);
	--cc-bronzo-chiaro: var(--wp--preset--color--bronzo-chiaro);
	--cc-terra: var(--wp--preset--color--muted);
	--cc-filetto: var(--wp--preset--color--line);
	--cc-display: var(--wp--preset--font-family--display);
	--cc-margine: clamp(1rem, 4vw, 2rem);
	/* il sentiero: dove corre la linea rispetto al bordo sinistro del contenuto, e quanto spazio le si lascia */
	--cc-linea-x: 1.25rem;
	--cc-linea-spazio: 4.25rem;
	--cc-tratteggio: repeating-linear-gradient(to bottom, var(--cc-ocra) 0 11px, transparent 11px 21px);
	--cc-tratteggio-orizz: repeating-linear-gradient(to right, var(--cc-ocra) 0 11px, transparent 11px 21px);
	--cc-ombra: 0 1px 0 rgba(11, 26, 40, .05), 0 14px 34px -22px rgba(11, 26, 40, .45);
}
@media (max-width: 781px) {
	:root { --cc-linea-x: .55rem; --cc-linea-spazio: 2.6rem; }
}

body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { background: var(--cc-ocra-chiaro); color: var(--cc-notte); }
:focus-visible { outline: 3px solid var(--cc-ocra); outline-offset: 3px; }
.wp-site-blocks { overflow-x: clip; }
img { height: auto; }
main.cc-main { padding-bottom: var(--wp--preset--spacing--60); }
main.cc-main--home { padding-bottom: 0; }

/* ---------- elementi comuni ---------- */
.cc-occhiello {
	display: flex; align-items: center; gap: .6rem;
	font-size: .78rem; font-weight: 650; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cc-terra); margin: 0 0 .6rem;
}
.cc-occhiello::before {
	content: ""; width: .55rem; height: .55rem; flex-shrink: 0;
	background: var(--cc-ocra); transform: rotate(45deg);
}
.cc-attacco { font-family: var(--cc-display); font-size: clamp(1.3rem, 2.3vw, 1.65rem); line-height: 1.45; color: var(--cc-notte); }
.cc-elenco { padding-left: 0; list-style: none; }
.cc-elenco > li { position: relative; padding-left: 1.6rem; margin-bottom: .55rem; }
.cc-elenco > li::before {
	content: ""; position: absolute; left: .2rem; top: .62em; width: .5rem; height: .5rem;
	background: var(--cc-ocra); transform: rotate(45deg);
}
.cc-elenco--voci > li { margin-bottom: 1rem; }
.cc-passi { counter-reset: passo; list-style: none; padding-left: 0; }
.cc-passi > li { counter-increment: passo; position: relative; padding: .35rem 0 .9rem 3.4rem; border-left: 3px dashed var(--cc-ocra); margin-left: 1rem; }
.cc-passi > li:last-child { border-left-color: transparent; }
.cc-passi > li::before {
	content: counter(passo); position: absolute; left: -1.15rem; top: 0;
	width: 2.1rem; height: 2.1rem; display: grid; place-items: center;
	font-family: var(--cc-display); font-style: italic; font-weight: 700; color: var(--cc-notte);
	background: var(--cc-ocra-chiaro); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
.cc-foto-larga { margin: 2.5rem 0; }
.cc-foto-larga img { display: block; width: 100%; border-radius: 4px; box-shadow: 12px 12px 0 var(--cc-ocra-chiaro); }
.cc-foto-larga figcaption { font-size: .78rem; color: var(--cc-terra); margin-top: 1.1rem; }

/* bottoni */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--cc-notte); border: 2px solid currentColor;
	padding-top: calc(.85rem - 2px); padding-bottom: calc(.85rem - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cc-notte); color: var(--cc-crema); border-color: var(--cc-notte); }
.cc-btn-chiaro.is-style-outline > .wp-block-button__link { color: var(--cc-crema); }
.cc-btn-chiaro.is-style-outline > .wp-block-button__link:hover { background: var(--cc-crema); color: var(--cc-notte); border-color: var(--cc-crema); }
.cc-btn-app > .wp-block-button__link { background: var(--cc-notte); color: var(--cc-crema); }
.cc-btn-app > .wp-block-button__link:hover { background: var(--cc-ocra); color: var(--cc-notte); }

/* ---------- testata ---------- */
.cc-sopra { position: sticky; top: 0; z-index: 50; }
.admin-bar .cc-sopra { top: 32px; }
@media (max-width: 782px) { .admin-bar .cc-sopra { top: 46px; } }
.cc-testata {
	position: relative;
	/* fondo pieno: un backdrop-filter qui farebbe da contenitore al menu a cassetto (position: fixed) e lo taglierebbe */
	background: var(--cc-crema);
	padding-top: .55rem !important; padding-bottom: .65rem !important;
}
.cc-testata::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: var(--cc-tratteggio-orizz);
}
.cc-testata__riga { gap: 1.25rem; }
.cc-marchio { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--cc-notte); flex-shrink: 0; }
.cc-marchio img { width: 50px; height: auto; display: block; }
.cc-marchio__nome { font-family: var(--cc-display); font-weight: 700; font-size: 1.22rem; line-height: 1; }
.cc-marchio__nome em {
	display: block; font-family: var(--wp--preset--font-family--body); font-style: normal; font-weight: 600;
	font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--cc-terra); margin-top: .3rem;
}
.cc-marchio:hover { color: var(--cc-notte); }
.cc-nav { margin-left: auto; }
.cc-nav .wp-block-navigation__container { gap: 1.5rem; }
.cc-nav .wp-block-navigation-item__content { color: var(--cc-notte); text-decoration: none; padding: .35rem 0; position: relative; }
.cc-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
	background: var(--cc-tratteggio-orizz); background-size: 21px 2px;
	transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.cc-nav .wp-block-navigation-item__content:hover::after,
.cc-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.cc-testata__azione .wp-block-button__link { padding: .6rem 1.15rem; font-size: .88rem; white-space: nowrap; }
@media (max-width: 1100px) { .cc-nav .wp-block-navigation__container { gap: 1.05rem; } .cc-marchio__nome em { display: none; } }
@media (max-width: 600px) { .cc-testata .cc-testata__azione { display: none !important; } .cc-marchio img { width: 42px; } .cc-marchio__nome { font-size: 1.08rem; } }

/* menu a cassetto sul telefono: pannello crema col sentiero sul bordo */
.cc-nav .wp-block-navigation__responsive-container-open,
.cc-nav .wp-block-navigation__responsive-container-close { color: var(--cc-notte); }
.cc-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--cc-crema) !important; padding: 0; }
.cc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 5.5rem 2rem 2rem 3.25rem; align-items: flex-start; position: relative; min-height: 100vh;
}
.cc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
	content: ""; position: absolute; left: 1.4rem; top: 5.5rem; bottom: 2rem; width: 3px; background: var(--cc-tratteggio);
}
.cc-nav .is-menu-open .wp-block-navigation__container { gap: 1.2rem; align-items: flex-start; }
.cc-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--cc-display); font-size: 1.6rem; font-weight: 600; }

/* ---------- apertura della home ---------- */
.cc-apertura {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: min(88vh, 860px); display: flex; flex-direction: column; justify-content: flex-end;
	padding-top: 6rem; padding-bottom: 2.25rem; color: var(--cc-crema);
	margin-top: 0 !important;
}
.cc-apertura__foto { position: absolute; inset: 0; margin: 0; z-index: -1; max-width: none !important; }
.cc-apertura__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; display: block; }
.cc-apertura__foto::after {
	content: ""; position: absolute; inset: 0;
	background:
		linear-gradient(to top, rgba(11, 26, 40, .94) 0%, rgba(11, 26, 40, .72) 38%, rgba(11, 26, 40, .2) 72%, rgba(11, 26, 40, .35) 100%),
		linear-gradient(to right, rgba(11, 26, 40, .55), transparent 60%);
}
.cc-apertura__foto figcaption { position: absolute; right: .75rem; bottom: .5rem; z-index: 1; font-size: .68rem; color: rgba(247, 238, 228, .75); }
.cc-apertura__testo { max-width: min(1200px, 780px) !important; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-right: auto !important; }
.cc-apertura .cc-occhiello { color: rgba(247, 238, 228, .85); }
.cc-apertura .cc-occhiello::before { background: var(--cc-ocra-chiaro); }
.cc-apertura__titolo { color: var(--cc-crema); font-weight: 700; line-height: 1.02; margin: .2rem 0 .6rem; text-wrap: balance; }
.cc-apertura__titolo em { font-style: italic; font-weight: 500; color: var(--cc-ocra-chiaro); }
.cc-apertura__motto { font-family: var(--cc-display); font-style: italic; font-size: clamp(1.35rem, 2.6vw, 1.9rem); color: var(--cc-crema); margin: 0 0 .4rem; }
.cc-apertura__sotto { max-width: 560px; color: rgba(247, 238, 228, .88); margin: 0 0 1.6rem; }
.cc-apertura__azioni { gap: .75rem; }

/* striscia delle tre tappe: rombi numerati uniti dal sentiero */
.cc-percorso {
	list-style: none; margin: 2.75rem auto 0 !important; padding: 1.4rem 0 0; max-width: 1200px;
	display: flex; justify-content: space-between; gap: 1rem; position: relative;
	border-top: 1px solid rgba(247, 238, 228, .18);
}
.cc-percorso::before {
	content: ""; position: absolute; left: 1.1rem; right: 1.1rem; top: calc(1.4rem + 1.1rem - 1.5px); height: 3px;
	background: repeating-linear-gradient(to right, var(--cc-ocra-chiaro) 0 11px, transparent 11px 21px);
}
.cc-percorso li {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .55rem;
	font-family: var(--cc-display); font-size: 1.05rem; color: var(--cc-crema);
}
.cc-percorso li:nth-child(2) { align-items: center; text-align: center; }
.cc-percorso li:last-child { align-items: flex-end; text-align: right; }
.cc-percorso__n {
	width: 2.2rem; height: 2.2rem; display: grid; place-items: center;
	font-style: italic; font-weight: 700; color: var(--cc-notte); background: var(--cc-ocra-chiaro);
	clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
@media (max-width: 600px) {
	.cc-apertura { min-height: 82svh; padding-top: 5rem; }
	.cc-apertura__foto img { object-position: 45% 60%; }
	.cc-percorso { font-size: .9rem; }
	.cc-percorso li { font-size: .92rem; }
}

/* ---------- il sentiero lungo la home ---------- */
.cc-tratto {
	position: relative; margin-top: 0 !important;
	padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60);
	--cc-bordo-contenuto: max(var(--cc-margine), calc((100% - 1200px) / 2));
}
.cc-tratto::before {
	content: ""; position: absolute; top: 0; bottom: 0; width: 3px;
	left: calc(var(--cc-bordo-contenuto) + var(--cc-linea-x) - 1.5px);
	background: var(--cc-tratteggio);
}
/* segnale a rombo all'altezza dell'occhiello */
.cc-tratto::after {
	content: ""; position: absolute; width: 1.1rem; height: 1.1rem;
	left: calc(var(--cc-bordo-contenuto) + var(--cc-linea-x) - .55rem);
	top: calc(var(--wp--preset--spacing--60) + .1rem);
	background: var(--cc-ocra); transform: rotate(45deg); box-shadow: 0 0 0 5px var(--cc-crema);
}
/* tutto il contenuto si sposta a destra del sentiero: piu stretto di uno spazio e traslato (i margini del layout
   vincolato sono !important, il padding lo azzererebbero i componenti del plugin) */
.cc-tratto.cc-tratto > * {
	box-sizing: border-box; position: relative; left: calc(var(--cc-linea-spazio) / 2);
	max-width: calc(min(1200px, 100%) - var(--cc-linea-spazio)) !important;
}
.cc-tratto .cc-occhiello::before { display: none; }
.cc-tratto__titolo { margin-top: .2rem; }
/* righe corte: la larghezza resta quella della colonna, il testo si ferma a 660px */
.cc-tratto.cc-tratto > .cc-tratto__intro {
	padding-right: max(0px, calc(min(1200px, 100%) - var(--cc-linea-spazio) - 660px));
	color: var(--cc-terra); font-size: 1.08rem;
}
.cc-tratto > .cc-tratto__titolo { text-wrap: balance; }
.cc-tratto__link a { font-weight: 650; }

.cc-tratto--notte { background: var(--cc-notte); color: var(--cc-crema); }
.cc-tratto--notte::before { background: repeating-linear-gradient(to bottom, var(--cc-ocra-chiaro) 0 11px, transparent 11px 21px); }
.cc-tratto--notte::after { background: var(--cc-ocra-chiaro); box-shadow: 0 0 0 5px var(--cc-notte); }
.cc-tratto--notte h2, .cc-tratto--notte .cc-tratto__titolo { color: var(--cc-crema); }
.cc-tratto--notte .cc-occhiello { color: var(--cc-ocra-chiaro); }
.cc-tratto--notte .cc-tratto__intro { color: rgba(247, 238, 228, .82); }
.cc-tratto--notte a:where(:not(.wp-element-button):not(.gcv-card):not(.gcv-bottone)) { color: var(--cc-ocra-chiaro); }
.cc-tratto--sapori { background: var(--cc-carta); }
.cc-tratto--sapori::after { box-shadow: 0 0 0 5px var(--cc-carta); }
/* l'ultima tappa: il sentiero arriva al segnale e si ferma */
.cc-tratto--fine::before { bottom: auto; height: calc(var(--wp--preset--spacing--60) + .6rem); }
.cc-tratto--fine::after { width: 1.5rem; height: 1.5rem; left: calc(var(--cc-bordo-contenuto) + var(--cc-linea-x) - .75rem); }

/* ---------- le tre tappe (shortcode [gaw_cammino sezione="tappe"]) ---------- */
.gcv-tappe { list-style: none; margin: 2.75rem 0 0; padding: 0; display: grid; gap: clamp(3rem, 7vw, 5.5rem); counter-reset: none; }
.gcv-tappa {
	position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center;
}
.gcv-tappa__num {
	position: absolute; top: 0; z-index: 1;
	left: calc(var(--cc-linea-x) - var(--cc-linea-spazio) - 1.45rem);
	width: 2.9rem; height: 2.9rem; display: grid; place-items: center;
	font-family: var(--cc-display); font-style: italic; font-weight: 700; font-size: 1.35rem; color: var(--cc-notte);
	background: var(--cc-ocra); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}
.gcv-tappa__foto { margin: 0; position: relative; }
.gcv-tappa__foto img {
	display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px;
	box-shadow: 14px 14px 0 var(--cc-ocra-chiaro);
}
.gcv-tappa:nth-child(even) .gcv-tappa__foto { order: 2; }
.gcv-tappa:not(:has(.gcv-tappa__foto)) { grid-template-columns: minmax(0, 1fr); }
.gcv-tappa:nth-child(even) .gcv-tappa__foto img { box-shadow: -14px 14px 0 var(--cc-bronzo-chiaro); }
.gcv-tappa__borgo { display: block; font-size: .78rem; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; color: var(--cc-terra); }
.gcv-tappa__titolo { font-family: var(--cc-display); font-size: clamp(1.7rem, 3vw, 2.4rem); margin: .35rem 0 .7rem; line-height: 1.1; }
.gcv-tappa__titolo a { color: var(--cc-notte); text-decoration: none; }
.gcv-tappa__titolo a:hover { color: var(--cc-bronzo); }
.gcv-tappa__testo { margin: 0 0 1rem; color: var(--cc-inchiostro); }
.gcv-tappa__luoghi { list-style: none; padding: 0; margin: 0 0 1.4rem; display: flex; flex-wrap: wrap; gap: .45rem .5rem; }
.gcv-tappa__luoghi li a {
	display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem;
	border: 1px solid var(--cc-filetto); background: var(--cc-carta); border-radius: 4px;
	font-size: .88rem; color: var(--cc-notte); text-decoration: none;
}
.gcv-tappa__luoghi li a::before { content: ""; width: .4rem; height: .4rem; background: var(--cc-ocra); transform: rotate(45deg); }
.gcv-tappa__luoghi li a:hover { border-color: var(--cc-ocra); }
@media (max-width: 781px) {
	.gcv-tappa { grid-template-columns: 1fr; }
	.gcv-tappa:nth-child(even) .gcv-tappa__foto { order: 0; }
	.gcv-tappa__num { width: 2.3rem; height: 2.3rem; font-size: 1.1rem; left: calc(var(--cc-linea-x) - var(--cc-linea-spazio) - 1.15rem); }
	.gcv-tappa__foto img, .gcv-tappa:nth-child(even) .gcv-tappa__foto img { box-shadow: 8px 8px 0 var(--cc-ocra-chiaro); }
}

/* ---------- componenti del plugin vetrina: schede come pagine di guida ---------- */
.gcv {
	--gcv-oro: var(--cc-ocra); --gcv-oro-scuro: var(--cc-bronzo); --gcv-verde: var(--cc-notte);
	--gcv-testo: var(--cc-inchiostro); --gcv-tenue: var(--cc-terra); --gcv-fondo: var(--cc-crema); --gcv-bordo: var(--cc-filetto);
	font-family: inherit;
}
.cc-tratto--notte .gcv { color: var(--cc-crema); }
.gcv-griglia { gap: 1.5rem; }
.gcv-card {
	background: var(--cc-carta); border: 1px solid var(--cc-filetto); border-radius: 4px; box-shadow: none;
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.gcv-card:hover, .gcv-card:focus-visible { transform: translateY(-3px); border-color: var(--cc-ocra); box-shadow: var(--cc-ombra); }
.gcv-card__img { aspect-ratio: 3 / 2; border-bottom: 3px solid var(--cc-ocra); }
.gcv-card__corpo { padding: 1.05rem 1.15rem 1.3rem; gap: .4rem; color: var(--cc-inchiostro); }
.gcv-card__titolo { font-family: var(--cc-display); font-weight: 650; font-size: 1.25rem; line-height: 1.2; color: var(--cc-notte); }
.gcv-card__meta { color: var(--cc-terra); font-weight: 600; font-size: .84rem; }
.gcv-card__testo { color: var(--cc-terra); }
.gcv-tag {
	background: none; border-radius: 0; padding: 0 0 0 .7rem; border-left: 3px solid var(--cc-ocra);
	color: var(--cc-terra); letter-spacing: .12em;
}
.gcv-mese {
	top: 0; left: 0; border-radius: 0; padding: .45rem .7rem; background: var(--cc-notte); color: var(--cc-ocra-chiaro);
	font-family: var(--cc-display); font-style: italic; text-transform: none; font-size: 1rem; letter-spacing: 0;
}
.gcv-dati span { border-radius: 2px; background: var(--cc-crema); border-color: var(--cc-filetto); color: var(--cc-notte); }
.gcv .gcv-bottone, .gcv-bottone {
	background: var(--cc-ocra); color: var(--cc-notte); border-radius: 4px; padding: .75rem 1.25rem; font-weight: 650;
}
.gcv .gcv-bottone:hover, .gcv-bottone:hover { background: var(--cc-ocra-chiaro); color: var(--cc-notte); }
.gcv .gcv-bottone--chiaro, .gcv-bottone--chiaro { background: transparent; color: var(--cc-notte); border: 2px solid var(--cc-notte); }
.gcv .gcv-bottone--chiaro:hover, .gcv-bottone--chiaro:hover { background: var(--cc-notte); color: var(--cc-crema); }
.cc-tratto--notte .gcv .gcv-bottone--chiaro { color: var(--cc-crema); border-color: var(--cc-crema); }
.cc-tratto--notte .gcv .gcv-bottone--chiaro:hover { background: var(--cc-crema); color: var(--cc-notte); }
.gcv-tutti { margin-top: 1.75rem; }
.gcv-vuoto { background: var(--cc-carta); border: 2px dashed var(--cc-ocra); border-radius: 4px; }
.gcv-vuoto p { color: var(--cc-terra); }
.cc-tratto--notte .gcv-vuoto { background: rgba(247, 238, 228, .06); }
.cc-tratto--notte .gcv-vuoto p, .cc-tratto--notte .gcv-nota { color: rgba(247, 238, 228, .82); }
.gcv-nota { color: var(--cc-terra); }

/* filtri e mappa (Luoghi) */
.gcv-luoghi, .gcv-percorsi, .gcv-scheda { padding-top: 0; padding-left: 0; padding-right: 0; }
.gcv-intestazione { padding: clamp(2.5rem, 6vw, 4.5rem) 0 1.5rem; margin-bottom: 1.75rem; position: relative; }
.gcv-intestazione::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--cc-tratteggio-orizz); }
.gcv-intestazione h1 {
	font-family: var(--cc-display); font-style: normal; font-weight: 700; color: var(--cc-notte);
	font-size: var(--wp--preset--font-size--xx-large); line-height: 1.05; margin: 0 0 .75rem;
}
.gcv-intestazione p { color: var(--cc-terra); font-size: 1.08rem; }
.gcv .gcv-chip { border-radius: 4px; border-color: var(--cc-filetto); background: var(--cc-carta); color: var(--cc-notte); font-weight: 550; }
.gcv .gcv-chip:hover, .gcv .gcv-chip:focus { border-color: var(--cc-ocra); background: var(--cc-carta); color: var(--cc-notte); }
.gcv .gcv-chip.is-attivo, .gcv .gcv-chip.is-attivo:hover { background: var(--cc-notte); border-color: var(--cc-notte); color: var(--cc-crema); }
.gcv-select select { border-radius: 4px; border-color: var(--cc-filetto); background: var(--cc-carta); color: var(--cc-notte); font: inherit; padding: .5rem .8rem; }
.gcv-mappa { border-radius: 4px; border-color: var(--cc-filetto); }
.gcv-mappa .leaflet-popup-content a { color: var(--cc-notte); }

/* scheda di un luogo o di un itinerario */
.gcv-scheda__foto img { border-radius: 4px; box-shadow: 14px 14px 0 var(--cc-ocra-chiaro); }
.gcv-scheda__foto { margin-bottom: 2.5rem; }
.gcv-scheda__info { background: var(--cc-carta); border: 1px solid var(--cc-filetto); border-top: 4px solid var(--cc-ocra); border-radius: 4px; }
.gcv-scheda__info dt { color: var(--cc-terra); font-weight: 650; }
.gcv-scheda__info dd { color: var(--cc-notte); }
.gcv-titoletto { font-style: normal; color: var(--cc-notte); }
.gcv .gcv-indietro a { color: var(--cc-notte); }
.gcv-scheda__testo p { margin: 0 0 1em; }

/* ---------- credenziale: sigilli quadrati in griglia ---------- */
.gcv-credenziale {
	margin-top: 2rem; padding: clamp(1.25rem, 3vw, 2.25rem);
	background-color: var(--cc-carta);
	background-image:
		linear-gradient(rgba(168, 115, 47, .09) 1px, transparent 1px),
		linear-gradient(90deg, rgba(168, 115, 47, .09) 1px, transparent 1px);
	background-size: 22px 22px;
	border: 1px solid var(--cc-filetto); outline: 1px solid var(--cc-bronzo-chiaro); outline-offset: -8px;
	border-radius: 2px; color: var(--cc-inchiostro);
}
.gcv-sigilli { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(142px, 1fr)); gap: 1.1rem; }
.gcv-sigillo {
	aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	gap: .2rem; padding: .7rem; background: var(--cc-carta);
	border: 2px solid var(--cc-ocra); outline: 1px solid var(--cc-ocra); outline-offset: -7px;
	transform: rotate(-1.5deg); color: var(--cc-bronzo);
}
.gcv-sigillo:nth-child(3n+2) { transform: rotate(1.2deg); border-color: var(--cc-notte); outline-color: var(--cc-notte); color: var(--cc-notte); }
.gcv-sigillo:nth-child(3n+3) { transform: rotate(-.6deg); border-color: var(--cc-bronzo-chiaro); outline-color: var(--cc-bronzo-chiaro); }
.gcv-sigillo > a { display: flex; flex-direction: column; align-items: center; gap: .3rem; color: inherit; text-decoration: none; width: 100%; }
.gcv-sigillo > a:hover .gcv-sigillo__nome, .gcv-sigillo > a:focus-visible .gcv-sigillo__nome { text-decoration: underline; }
.gcv-sigillo__segno { font-family: var(--cc-display); font-style: italic; font-weight: 800; font-size: 2rem; line-height: 1; }
.gcv-sigillo__nome { font-weight: 650; font-size: .8rem; line-height: 1.25; color: var(--cc-notte); }
.gcv-sigillo__borgo { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cc-terra); }
.gcv-credenziale__nota { color: var(--cc-terra); max-width: 640px; }
.cc-tratto--notte .gcv-credenziale { color: var(--cc-inchiostro); }

/* ---------- testa delle pagine interne ---------- */
.cc-testa-pagina { padding-top: clamp(2.5rem, 6vw, 4.5rem); padding-bottom: 1.5rem; margin-bottom: 2.25rem; position: relative; }
.cc-testa-pagina::after {
	content: ""; position: absolute; height: 3px; bottom: 0;
	left: max(var(--cc-margine), calc((100% - 1200px) / 2)); right: max(var(--cc-margine), calc((100% - 1200px) / 2));
	background: var(--cc-tratteggio-orizz);
}
.cc-testa-pagina__titolo { font-weight: 700; line-height: 1.05; margin-top: 0; margin-bottom: 0; max-width: min(1200px, 20ch) !important; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-right: auto !important; text-wrap: balance; }
.cc-testa-pagina__sommario { font-family: var(--cc-display); font-style: italic; font-size: 1.25rem; color: var(--cc-terra); max-width: 720px !important; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-right: auto !important; margin-top: .9rem; }
.cc-testa-pagina__sommario p { margin: 0; }
.cc-contenuto h2 { margin-top: 2.5rem; }
.cc-sezione { margin-top: 2.5rem; }
.cc-main--vetrina .cc-contenuto > .cc-sezione:first-child { margin-top: 0; }

/* ---------- negozio WooCommerce: cartellini con l'occhiello ---------- */
.wc-block-product, .wp-block-woocommerce-product-template > li, ul.products li.product {
	position: relative; background: var(--cc-carta); border: 1.5px dashed var(--cc-bronzo-chiaro); border-radius: 6px;
	padding: 1.6rem 1rem 1.25rem !important; text-align: left;
}
.wc-block-product::before, .wp-block-woocommerce-product-template > li::before, ul.products li.product::before {
	content: ""; position: absolute; top: .55rem; left: 50%; width: .7rem; height: .7rem; margin-left: -.35rem;
	border-radius: 50%; background: var(--cc-crema); border: 1.5px solid var(--cc-bronzo-chiaro);
}
.wc-block-product .wc-block-components-product-image img, .wc-block-product img { border-radius: 3px; }
.wc-block-product .wp-block-post-title, .wc-block-product h3, .wc-block-product h2 { font-family: var(--cc-display); font-size: 1.2rem; }
.wc-block-product .wp-block-post-title a { color: var(--cc-notte); text-decoration: none; }
.wc-block-components-product-price, .wc-block-product .price { color: var(--cc-bronzo); font-weight: 700; }
.wc-block-components-button:not(.is-link), .wp-block-button.wc-block-components-product-button > .wp-block-button__link {
	background: var(--cc-ocra); color: var(--cc-notte); border-radius: 4px; font-weight: 650;
}
.wc-block-components-button:not(.is-link):hover { background: var(--cc-ocra-chiaro); color: var(--cc-notte); }
.wc-block-cart, .wc-block-checkout { margin-top: 1.5rem; }
.wp-block-woocommerce-product-collection, .wp-block-woocommerce-product-template { gap: 1.5rem; }

/* ---------- PNRR e piede ---------- */
.cc-pnrr { background: var(--cc-carta); border-top: 1px solid var(--cc-filetto); padding-top: 2.5rem; padding-bottom: 2.5rem; text-align: center; }
.cc-pnrr__loghi { display: block; width: 100%; max-width: 760px; height: auto; margin: 0 auto 1.25rem; }
.cc-pnrr__testo { font-size: .82rem; line-height: 1.6; color: var(--cc-terra); max-width: 980px; margin: 0 auto; }
.cc-piede { background: var(--cc-notte); color: rgba(247, 238, 228, .82); padding-top: var(--wp--preset--spacing--60); padding-bottom: 2.5rem; position: relative; }
.cc-piede::before {
	content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: repeating-linear-gradient(to right, var(--cc-ocra-chiaro) 0 11px, transparent 11px 21px);
}
.cc-piede__colonne { gap: 2.5rem; }
.cc-piede__marchio { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; margin-bottom: 1rem; }
.cc-piede__marchio img { width: 72px; height: auto; display: block; }
.cc-piede__marchio span { font-family: var(--cc-display); font-weight: 700; font-size: 1.5rem; color: var(--cc-crema); }
.cc-piede__chi { font-size: .95rem; max-width: 380px; }
.cc-piede__titolo { font-family: var(--cc-display); font-style: italic; font-weight: 600; font-size: 1.15rem; color: var(--cc-ocra-chiaro); margin: 0 0 .8rem; }
.cc-piede__menu { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.cc-piede a { color: var(--cc-crema); text-decoration: none; }
.cc-piede a:hover { color: var(--cc-ocra-chiaro); text-decoration: underline; }
.cc-piede__app { font-size: .95rem; }
.cc-piede .cc-btn-app > .wp-block-button__link { background: var(--cc-ocra); color: var(--cc-notte); text-decoration: none; }
.cc-piede .cc-btn-app > .wp-block-button__link:hover { background: var(--cc-ocra-chiaro); color: var(--cc-notte); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; }
	.gcv-card:hover { transform: none; }
}

/* gaw-sections.css (stack) colora i paragrafi del contenuto: sulle fasce scure e sull'apertura vince il tema */
.wp-block-post-content .cc-apertura p.cc-apertura__motto { color: var(--cc-crema); }
.wp-block-post-content .cc-apertura p.cc-apertura__sotto { color: rgba(247, 238, 228, .9); }
.wp-block-post-content .cc-apertura p.cc-occhiello { color: rgba(247, 238, 228, .88); }
.wp-block-post-content .cc-tratto p.cc-occhiello { color: var(--cc-terra); }
.wp-block-post-content .cc-tratto.cc-tratto--notte p { color: rgba(247, 238, 228, .85); }
.wp-block-post-content .cc-tratto.cc-tratto--notte p.cc-occhiello { color: var(--cc-ocra-chiaro); }
.wp-block-post-content .cc-tratto.cc-tratto--notte .gcv-credenziale p,
.wp-block-post-content .cc-tratto .gcv-card p { color: var(--cc-terra); }
.wp-block-post-content .cc-tratto.cc-tratto--notte .gcv-vuoto p { color: rgba(247, 238, 228, .85); }
.wp-block-post-content .cc-attacco { color: var(--cc-notte); }

/* menu a cassetto: voci allineate a sinistra, accanto al sentiero (la testata le vuole a destra sul computer) */
.cc-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; --navigation-layout-align: flex-start;
}
.cc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.cc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }
.cc-nav .wp-block-navigation__responsive-container-close { top: 1.1rem; right: 1.1rem; }

/* Home: la tappa degli itinerari si mostra solo quando ce ne sono (la pagina Percorsi resta). */
.cc-tratto--itinerari:has(.gcv-vuoto) { display: none; }

/* Avviso «Vendita online in apertura» del plugin: alla larghezza del contenuto anche dove Woo lo stampa a tutta pagina. */
.gcc-collaudo { max-width: 1200px; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }

/* ---------- Carrello nella testata e cassetto da destra (blocco WooCommerce mini-cart) ---------- */
.cc-carrello { display: flex; align-items: center; }
.cc-carrello .wc-block-mini-cart__button { color: var(--cc-notte); padding: .45rem; border-radius: 999px; transition: background .2s ease; }
.cc-carrello .wc-block-mini-cart__button:hover, .cc-carrello .wc-block-mini-cart__button:focus-visible { background: rgba(201, 139, 58, .16); }
.cc-carrello .wc-block-mini-cart__icon { width: 26px; height: 26px; }
.cc-carrello .wc-block-mini-cart__badge { background: var(--cc-ocra); color: var(--cc-notte); border: 2px solid var(--cc-crema); font-weight: 700; font-family: var(--cc-testo, inherit); }
.wc-block-mini-cart__drawer .wc-block-components-drawer__content,
.wc-block-mini-cart__drawer .components-modal__content { background: var(--cc-crema); color: var(--cc-notte); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-family: var(--cc-display); font-weight: 700; font-size: 1.6rem; color: var(--cc-notte); border-bottom: 3px dashed var(--cc-ocra); padding-bottom: .9rem; margin-bottom: .4rem; }
.wc-block-mini-cart__drawer .wc-block-cart-item__product .wc-block-components-product-name { color: var(--cc-notte); font-weight: 600; text-decoration: none; }
.wc-block-mini-cart__drawer .wc-block-components-product-price, .wc-block-mini-cart__drawer .wc-block-cart-item__total { color: var(--cc-bronzo); font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { background: #fff; border-top: 1px solid rgba(11, 26, 40, .1); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-subtotal { color: var(--cc-notte); font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions { gap: .6rem; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart.wc-block-components-button { background: transparent; color: var(--cc-notte); border: 2px solid var(--cc-notte); border-radius: 6px; font-weight: 600; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-cart.wc-block-components-button:hover { background: var(--cc-notte); color: var(--cc-crema); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout.wc-block-components-button { background: var(--cc-ocra); color: var(--cc-notte); border: 2px solid var(--cc-ocra); border-radius: 6px; font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-checkout.wc-block-components-button:hover { background: var(--cc-notte); border-color: var(--cc-notte); color: var(--cc-crema); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__shopping-button { background: var(--cc-ocra); color: var(--cc-notte); border-radius: 6px; font-weight: 700; }
.wc-block-mini-cart__drawer .cc-carrello-vuoto { color: var(--cc-terra, #63574d); line-height: 1.5; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { border-color: rgba(11, 26, 40, .2); }
@media (max-width: 600px) {
	/* sul telefono il carrello sta accanto al menu a cassetto, prima di lui */
	.cc-carrello { order: 2; margin-left: auto; }
	.cc-testata__riga > .cc-nav { order: 3; margin-left: .25rem; }
}

/* ---------- Carrello e pagamento con testata e piede del tema ---------- */
.cc-negozio--cassa, .cc-negozio--carrello { padding-top: 2.25rem; padding-bottom: 3.5rem; }
.cc-cassa__titolo, .cc-carrello__titolo { font-family: var(--cc-display); font-size: clamp(2rem, 4vw, 2.8rem); color: var(--cc-notte); margin: 0 0 1.5rem; }

/* ---------- Banner PNRR: stessa misura su tutte le pagine ---------- */
.cc-pnrr .cc-pnrr__loghi { width: 100% !important; max-width: 900px !important; height: auto !important; margin: 0 auto 1.25rem !important; }
.cc-pnrr .cc-pnrr__testo { font-size: .86rem; max-width: 900px; }
@media (max-width: 600px) { .cc-pnrr { padding-left: 16px; padding-right: 16px; } .cc-pnrr .cc-pnrr__testo { font-size: .8rem; } }
/* testata: menu spinto a destra, poi carrello e bottone vicini (niente spazi uguali distribuiti fra i 4 elementi) */
.cc-testata__riga { justify-content: flex-start !important; }
.cc-carrello .wc-block-mini-cart__badge { background: var(--cc-ocra) !important; color: var(--cc-notte) !important; }
@media (min-width: 601px) { .cc-testata__riga > .cc-nav { margin-left: auto !important; } }
