/*
Theme Name: Chiesa Carismatica
Theme URI: https://www.chiesacattolicacarismatica.it
Author: Chiesa Cattolica Carismatica Italiana
Description: Tema ecclesiastico su misura per la Diocesi di Italia della Chiesa Cattolica Carismatica. Palette azzurro mariano e bianco, tipografia classica, SEO integrato (meta, Open Graph, dati strutturati JSON-LD, breadcrumb), accessibile e responsive.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: chiesa-carismatica
Tags: blog, custom-menu, custom-logo, featured-images, translation-ready, accessibility-ready, two-columns
*/

/* ==========================================================================
   Font (self-hosted)
   ========================================================================== */
@font-face {
	font-family: "Cormorant Garamond";
	src: url("assets/fonts/cormorant-garamond.woff2") format("woff2");
	font-weight: 500 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Cormorant Garamond";
	src: url("assets/fonts/cormorant-garamond-italic.woff2") format("woff2");
	font-weight: 500 700;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Source Sans 3";
	src: url("assets/fonts/source-sans-3.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Source Sans 3";
	src: url("assets/fonts/source-sans-3-italic.woff2") format("woff2");
	font-weight: 400 700;
	font-style: italic;
	font-display: swap;
}

/* ==========================================================================
   Variabili
   ========================================================================== */
:root {
	--cc-navy: #0e2a4f;
	--cc-navy-2: #143a6b;
	--cc-blue: #1d5fa8;
	--cc-azzurro: #4f9bd9;
	--cc-sky: #cfe5f7;
	--cc-mist: #eef5fc;
	--cc-white: #ffffff;
	--cc-gold: #c49a3c;
	--cc-gold-light: #e7cf8f;
	--cc-text: #1d2733;
	--cc-muted: #5a6b80;
	--cc-border: #d8e4f0;

	--cc-font-serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
	--cc-font-sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;

	--cc-radius: 10px;
	--cc-radius-lg: 18px;
	--cc-shadow: 0 6px 24px rgba(14, 42, 79, .08);
	--cc-shadow-lg: 0 18px 48px rgba(14, 42, 79, .16);
	--cc-container: 1200px;
	--cc-content: 760px;
	--cc-gutter: clamp(16px, 4vw, 32px);
	--cc-header-h: 84px;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--cc-font-sans);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--cc-text);
	background: var(--cc-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, video, iframe { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--cc-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s; }
a:hover, a:focus { color: var(--cc-navy); }
:focus-visible { outline: 3px solid var(--cc-azzurro); outline-offset: 2px; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--cc-font-serif);
	font-weight: 700;
	line-height: 1.15;
	color: var(--cc-navy);
	margin: 1.6em 0 .55em;
	letter-spacing: .005em;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.75rem, 3.4vw, 2.4rem); }
h3 { font-size: clamp(1.4rem, 2.4vw, 1.75rem); }
h4 { font-size: 1.3rem; }
h5, h6 { font-size: 1.1rem; font-family: var(--cc-font-sans); text-transform: uppercase; letter-spacing: .08em; }
p { margin: 0 0 1.15em; }
ul, ol { padding-left: 1.4em; margin: 0 0 1.2em; }
li { margin-bottom: .35em; }
hr { border: 0; height: 1px; background: var(--cc-border); margin: 2.5rem 0; }
blockquote {
	margin: 2rem 0;
	padding: 1.25rem 1.5rem 1.25rem 1.75rem;
	border-left: 4px solid var(--cc-gold);
	background: var(--cc-mist);
	border-radius: 0 var(--cc-radius) var(--cc-radius) 0;
	font-family: var(--cc-font-serif);
	font-size: 1.35rem;
	font-style: italic;
	color: var(--cc-navy);
}
blockquote p:last-child { margin-bottom: 0; }
blockquote cite { display: block; margin-top: .5rem; font-family: var(--cc-font-sans); font-size: .95rem; font-style: normal; color: var(--cc-muted); }
table { width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; }
th, td { padding: .65rem .8rem; border-bottom: 1px solid var(--cc-border); text-align: left; }
th { background: var(--cc-mist); color: var(--cc-navy); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto;
	display: block; left: 8px; top: 8px; z-index: 100000;
	padding: 12px 20px; background: var(--cc-white); color: var(--cc-navy);
	box-shadow: var(--cc-shadow-lg); border-radius: var(--cc-radius);
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.cc-container { width: 100%; max-width: var(--cc-container); margin: 0 auto; padding: 0 var(--cc-gutter); }
.cc-narrow { max-width: calc(var(--cc-content) + 2 * var(--cc-gutter)); }
.cc-section { padding: clamp(56px, 8vw, 104px) 0; }
.cc-section--mist { background: var(--cc-mist); }
.cc-section--navy { background: var(--cc-navy); color: #dce8f6; }
.cc-section--navy h2, .cc-section--navy h3 { color: var(--cc-white); }
.cc-grid { display: grid; gap: clamp(20px, 3vw, 32px); }
.cc-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.cc-grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.cc-grid--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }

.cc-eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	font-family: var(--cc-font-sans); font-size: .82rem; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase; color: var(--cc-blue);
	margin-bottom: .75rem;
}
.cc-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--cc-gold); }
.cc-section-head { max-width: 720px; margin: 0 auto clamp(32px, 5vw, 56px); text-align: center; }
.cc-section-head h2 { margin-top: 0; }
.cc-section-head .cc-eyebrow::after { content: ""; width: 28px; height: 2px; background: var(--cc-gold); }
.cc-section-head p { color: var(--cc-muted); font-size: 1.1rem; }
.cc-section--navy .cc-section-head p { color: #b9cde6; }

/* Ornamento: croce */
.cc-ornament { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--cc-gold); margin: 0 auto 1rem; }
.cc-ornament::before, .cc-ornament::after { content: ""; height: 1px; width: 60px; background: currentColor; opacity: .6; }
.cc-ornament svg { width: 18px; height: 18px; fill: currentColor; }

/* ==========================================================================
   Bottoni
   ========================================================================== */
.cc-btn, .wp-block-button__link, button[type="submit"], input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .8rem 1.6rem; border: 2px solid var(--cc-blue); border-radius: 999px;
	background: var(--cc-blue); color: var(--cc-white);
	font-family: var(--cc-font-sans); font-size: 1rem; font-weight: 700; letter-spacing: .02em;
	text-decoration: none; cursor: pointer; line-height: 1.2;
	transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.cc-btn:hover, .cc-btn:focus, .wp-block-button__link:hover, button[type="submit"]:hover, input[type="submit"]:hover {
	background: var(--cc-navy); border-color: var(--cc-navy); color: var(--cc-white); transform: translateY(-1px); box-shadow: var(--cc-shadow);
}
.cc-btn--outline { background: transparent; color: var(--cc-blue); }
.cc-btn--light { background: var(--cc-white); border-color: var(--cc-white); color: var(--cc-navy); }
.cc-btn--light:hover, .cc-btn--light:focus { background: var(--cc-sky); border-color: var(--cc-sky); color: var(--cc-navy); }
.cc-btn--ghost { background: transparent; border-color: rgba(255,255,255,.7); color: var(--cc-white); }
.cc-btn--ghost:hover, .cc-btn--ghost:focus { background: var(--cc-white); color: var(--cc-navy); border-color: var(--cc-white); }
.cc-btn--gold { background: var(--cc-gold); border-color: var(--cc-gold); color: var(--cc-navy); }
.cc-btn--gold:hover, .cc-btn--gold:focus { background: var(--cc-gold-light); border-color: var(--cc-gold-light); color: var(--cc-navy); }
.cc-btn svg { width: 18px; height: 18px; fill: currentColor; }
.cc-link-arrow { font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; }
.cc-link-arrow::after { content: "→"; transition: transform .2s; }
.cc-link-arrow:hover::after { transform: translateX(4px); }

/* ==========================================================================
   Top bar & header
   ========================================================================== */
.cc-topbar { background: var(--cc-navy); color: #c9d9ee; font-size: .9rem; }
.cc-topbar .cc-container { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; justify-content: space-between; align-items: center; padding-top: .45rem; padding-bottom: .45rem; }
.cc-topbar a { color: #e3eefb; text-decoration: none; }
.cc-topbar a:hover { color: var(--cc-gold-light); }
.cc-topbar__list { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; list-style: none; margin: 0; padding: 0; }
.cc-topbar__list li { margin: 0; display: inline-flex; align-items: center; gap: .4rem; }
.cc-topbar svg { width: 14px; height: 14px; fill: var(--cc-gold-light); flex: none; }
.cc-topbar__motto { font-family: var(--cc-font-serif); font-style: italic; font-size: 1.05rem; color: var(--cc-gold-light); }

.cc-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255,255,255,.97);
	backdrop-filter: saturate(160%) blur(8px);
	border-bottom: 1px solid var(--cc-border);
	transition: box-shadow .25s;
}
.admin-bar .cc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cc-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cc-header { top: 0; } }
.cc-header.is-scrolled { box-shadow: 0 4px 20px rgba(14,42,79,.1); }
.cc-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--cc-header-h); }

.cc-brand { display: flex; align-items: center; gap: .85rem; text-decoration: none; color: var(--cc-navy); min-width: 0; }
.cc-brand:hover { color: var(--cc-navy); }
.cc-brand__mark {
	width: 50px; height: 50px; flex: none; border-radius: 50%;
	display: grid; place-items: center;
	background: radial-gradient(circle at 30% 30%, var(--cc-azzurro), var(--cc-blue) 60%, var(--cc-navy));
	box-shadow: inset 0 0 0 2px rgba(255,255,255,.35), 0 0 0 2px var(--cc-gold-light);
}
.cc-brand__mark svg { width: 24px; height: 24px; fill: var(--cc-white); }
.cc-brand .custom-logo { max-height: 60px; width: auto; }
.cc-brand__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.cc-brand__name { font-family: var(--cc-font-serif); font-weight: 700; font-size: 1.45rem; }
.cc-brand__tagline { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cc-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Navigazione */
.cc-nav { display: flex; align-items: center; gap: 1rem; }
.cc-menu, .cc-menu ul { list-style: none; margin: 0; padding: 0; }
.cc-menu { display: flex; align-items: center; gap: .15rem; }
.cc-menu li { position: relative; margin: 0; }
.cc-menu a {
	display: flex; align-items: center; gap: .3rem;
	padding: .6rem .75rem; border-radius: 8px;
	color: var(--cc-navy); font-weight: 600; font-size: 1rem; text-decoration: none; white-space: nowrap;
}
.cc-menu > li > a:hover, .cc-menu > li:focus-within > a,
.cc-menu > .current-menu-item > a, .cc-menu > .current-menu-ancestor > a, .cc-menu > .current_page_parent > a { color: var(--cc-blue); background: var(--cc-mist); }
.cc-submenu-toggle { display: none; }
.cc-menu .menu-item-has-children > a::after {
	content: ""; width: 7px; height: 7px; margin-left: .2rem; margin-top: -3px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .6;
}
.cc-menu .sub-menu {
	position: absolute; top: calc(100% + 8px); left: 0; min-width: 260px;
	background: var(--cc-white); border: 1px solid var(--cc-border); border-top: 3px solid var(--cc-gold);
	border-radius: 0 0 var(--cc-radius) var(--cc-radius); box-shadow: var(--cc-shadow-lg);
	padding: .5rem; opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity .2s, transform .2s, visibility .2s; z-index: 60;
}
.cc-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.cc-menu li:hover > .sub-menu, .cc-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.cc-menu .sub-menu a { padding: .55rem .8rem; font-weight: 500; white-space: normal; }
.cc-menu .sub-menu a:hover, .cc-menu .sub-menu .current-menu-item > a { background: var(--cc-mist); color: var(--cc-blue); }
.cc-menu .sub-menu .menu-item-has-children > a::after { transform: rotate(-45deg); margin-left: auto; }
.cc-menu .sub-menu .sub-menu { top: -8px; left: 100%; }

.cc-header__donate { flex: none; }
.cc-burger {
	display: none; width: 46px; height: 46px; border: 1px solid var(--cc-border); border-radius: 10px;
	background: var(--cc-white); cursor: pointer; padding: 0; align-items: center; justify-content: center;
}
.cc-burger span, .cc-burger span::before, .cc-burger span::after {
	display: block; width: 22px; height: 2px; background: var(--cc-navy); border-radius: 2px; position: relative; transition: transform .25s, background .25s;
}
.cc-burger span::before, .cc-burger span::after { content: ""; position: absolute; left: 0; }
.cc-burger span::before { top: -7px; }
.cc-burger span::after { top: 7px; }
.cc-burger[aria-expanded="true"] span { background: transparent; }
.cc-burger[aria-expanded="true"] span::before { transform: translateY(7px) rotate(45deg); }
.cc-burger[aria-expanded="true"] span::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1180px) {
	.cc-burger { display: inline-flex; }
	.cc-nav {
		position: fixed; inset: 0 0 0 auto; width: min(380px, 88vw);
		background: var(--cc-white); box-shadow: var(--cc-shadow-lg);
		flex-direction: column; align-items: stretch; gap: 1rem;
		padding: calc(var(--cc-header-h) + 8px) 20px 32px; overflow-y: auto;
		transform: translateX(105%); transition: transform .3s ease; z-index: 55;
	}
	.cc-nav.is-open { transform: translateX(0); }
	.cc-burger { position: relative; z-index: 56; }
	.cc-menu { flex-direction: column; align-items: stretch; }
	.cc-menu a { white-space: normal; padding: .75rem .5rem; border-bottom: 1px solid var(--cc-mist); border-radius: 0; }
	.cc-menu .menu-item-has-children > a::after { display: none; }
	.cc-menu .menu-item-has-children { display: flex; flex-wrap: wrap; }
	.cc-menu .menu-item-has-children > a { flex: 1; }
	.cc-submenu-toggle {
		display: inline-flex; width: 44px; align-items: center; justify-content: center;
		background: none; border: 0; border-bottom: 1px solid var(--cc-mist); cursor: pointer; color: var(--cc-navy);
	}
	.cc-submenu-toggle::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
	.cc-submenu-toggle[aria-expanded="true"]::before { transform: rotate(-135deg); }
	.cc-menu .sub-menu, .cc-menu .sub-menu .sub-menu {
		position: static; width: 100%; min-width: 0; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; border-left: 2px solid var(--cc-gold-light); border-radius: 0;
		margin: 0 0 .5rem .75rem; padding: 0; display: none;
	}
	.cc-menu .sub-menu.is-open { display: block; }
	.cc-header__donate { align-self: stretch; }
	.cc-header__donate .cc-btn { width: 100%; }
	body.cc-nav-open { overflow: hidden; }
	.cc-nav-backdrop { position: fixed; inset: 0; background: rgba(14,42,79,.45); z-index: 54; }
}
@media (max-width: 560px) {
	.cc-brand__tagline { display: none; }
	.cc-brand__name { font-size: 1.2rem; }
	.cc-brand__mark { width: 42px; height: 42px; }
	.cc-topbar__motto { display: none; }
}

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.cc-hero {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: clamp(520px, 78vh, 760px);
	display: flex; align-items: center;
	color: var(--cc-white);
	background: var(--cc-navy);
}
.cc-hero__bg { position: absolute; inset: 0; z-index: -2; }
.cc-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.cc-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(ellipse at 75% 20%, rgba(79,155,217,.35), transparent 55%),
		linear-gradient(105deg, rgba(14,42,79,.95) 0%, rgba(20,58,107,.85) 45%, rgba(29,95,168,.45) 100%);
}
.cc-hero::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 70px; z-index: -1;
	background: var(--cc-white);
	clip-path: ellipse(75% 100% at 50% 100%);
}
.cc-hero__content { max-width: 760px; padding: 80px 0 120px; }
.cc-hero__motto { font-family: var(--cc-font-serif); font-style: italic; font-size: clamp(1.2rem, 2.4vw, 1.6rem); color: var(--cc-gold-light); margin-bottom: 1rem; display: flex; align-items: center; gap: .8rem; }
.cc-hero__motto::before { content: "✠"; font-style: normal; }
.cc-hero h1 { color: var(--cc-white); margin: 0 0 1.25rem; font-size: clamp(2.5rem, 6vw, 4.4rem); }
.cc-hero__lead { font-size: clamp(1.1rem, 2vw, 1.3rem); color: #dbe8f7; max-width: 620px; margin-bottom: 2rem; }
.cc-hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; }

/* Fascia orari Messe */
.cc-mass {
	position: relative; z-index: 2; margin-top: -70px;
}
.cc-mass__card {
	background: var(--cc-white); border-radius: var(--cc-radius-lg); box-shadow: var(--cc-shadow-lg);
	display: grid; grid-template-columns: auto 1fr auto; gap: 1.5rem 2.5rem; align-items: center;
	padding: 1.75rem clamp(1.25rem, 3vw, 2.5rem); border-top: 4px solid var(--cc-gold);
}
.cc-mass__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--cc-mist); display: grid; place-items: center; }
.cc-mass__icon svg { width: 30px; height: 30px; fill: var(--cc-blue); }
.cc-mass h2 { font-size: 1.6rem; margin: 0 0 .25rem; }
.cc-mass__times { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin: 0; padding: 0; list-style: none; }
.cc-mass__times li { margin: 0; color: var(--cc-muted); }
.cc-mass__times strong { color: var(--cc-navy); font-size: 1.15rem; }
@media (max-width: 760px) {
	.cc-mass__card { grid-template-columns: 1fr; text-align: center; justify-items: center; }
	.cc-mass__times { justify-content: center; }
}

/* ==========================================================================
   Componenti home
   ========================================================================== */
.cc-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
@media (max-width: 900px) { .cc-split { grid-template-columns: 1fr; } }
.cc-split__media { position: relative; }
.cc-split__media img { width: 100%; border-radius: var(--cc-radius-lg); box-shadow: var(--cc-shadow-lg); aspect-ratio: 4/3; object-fit: cover; }
.cc-split__media::before {
	content: ""; position: absolute; inset: 22px -22px -22px 22px; z-index: -1;
	border: 2px solid var(--cc-gold-light); border-radius: var(--cc-radius-lg);
}
.cc-split__media .cc-badge {
	position: absolute; left: -16px; bottom: 28px; background: var(--cc-navy); color: var(--cc-white);
	border-radius: var(--cc-radius); padding: .9rem 1.2rem; box-shadow: var(--cc-shadow-lg); line-height: 1.2;
}
.cc-badge strong { display: block; font-family: var(--cc-font-serif); font-size: 2rem; color: var(--cc-gold-light); }
.cc-split h2 { margin-top: 0; }

.cc-card {
	background: var(--cc-white); border: 1px solid var(--cc-border); border-radius: var(--cc-radius-lg);
	overflow: hidden; display: flex; flex-direction: column; height: 100%; position: relative;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
.cc-card:hover { transform: translateY(-4px); box-shadow: var(--cc-shadow-lg); border-color: var(--cc-sky); }
.cc-card__media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: linear-gradient(135deg, var(--cc-blue), var(--cc-navy)); display: block; }
.cc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.cc-card:hover .cc-card__media img { transform: scale(1.05); }
.cc-card__media--placeholder { display: grid; place-items: center; }
.cc-card__media--placeholder svg { width: 56px; height: 56px; fill: rgba(255,255,255,.55); }
.cc-card__cat {
	position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,.95); color: var(--cc-blue);
	padding: .25rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
}
.cc-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; flex: 1; }
.cc-card__meta { font-size: .88rem; color: var(--cc-muted); margin-bottom: .4rem; display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.cc-card__title { font-size: 1.45rem; margin: 0 0 .6rem; }
.cc-card__title a { color: var(--cc-navy); text-decoration: none; }
.cc-card__title a:hover { color: var(--cc-blue); }
.cc-card__excerpt { color: var(--cc-muted); font-size: 1rem; margin-bottom: 1rem; }
.cc-card__excerpt p { margin: 0; }
.cc-card__more { margin-top: auto; }

/* Feature (credo, servizi) */
.cc-feature {
	padding: 1.8rem 1.6rem; background: var(--cc-white); border-radius: var(--cc-radius-lg);
	border: 1px solid var(--cc-border); height: 100%; position: relative; overflow: hidden;
	transition: transform .25s, box-shadow .25s;
}
.cc-feature:hover { transform: translateY(-3px); box-shadow: var(--cc-shadow); }
.cc-feature::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(var(--cc-azzurro), var(--cc-blue)); }
.cc-feature__icon { width: 52px; height: 52px; border-radius: 14px; background: var(--cc-mist); display: grid; place-items: center; margin-bottom: 1rem; }
.cc-feature__icon svg { width: 26px; height: 26px; fill: var(--cc-blue); }
.cc-feature h3 { font-size: 1.4rem; margin: 0 0 .5rem; }
.cc-feature p { color: var(--cc-muted); margin: 0; font-size: 1rem; }
.cc-section--navy .cc-feature { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.cc-section--navy .cc-feature p { color: #c2d4ea; }
.cc-section--navy .cc-feature__icon { background: rgba(255,255,255,.1); }
.cc-section--navy .cc-feature__icon svg { fill: var(--cc-gold-light); }

/* Citazione grande */
.cc-quote { text-align: center; max-width: 860px; margin: 0 auto; }
.cc-quote p { font-family: var(--cc-font-serif); font-size: clamp(1.6rem, 3.4vw, 2.4rem); font-style: italic; line-height: 1.3; color: var(--cc-white); margin-bottom: 1rem; }
.cc-quote cite { font-style: normal; color: var(--cc-gold-light); letter-spacing: .12em; text-transform: uppercase; font-size: .9rem; }

/* Profilo vescovo */
.cc-profile { display: grid; grid-template-columns: 280px 1fr; gap: clamp(24px, 5vw, 64px); align-items: center; }
.cc-profile__photo img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 200px 200px var(--cc-radius-lg) var(--cc-radius-lg); box-shadow: var(--cc-shadow-lg); border: 6px solid var(--cc-white); }
@media (max-width: 760px) { .cc-profile { grid-template-columns: 1fr; text-align: center; } .cc-profile__photo { max-width: 240px; margin: 0 auto; } }

/* CTA band */
.cc-cta {
	background: linear-gradient(120deg, var(--cc-blue), var(--cc-navy));
	color: var(--cc-white); border-radius: var(--cc-radius-lg);
	padding: clamp(32px, 5vw, 56px); display: flex; flex-wrap: wrap; gap: 1.5rem 2rem; align-items: center; justify-content: space-between;
	position: relative; overflow: hidden;
}
.cc-cta::after { content: "✠"; position: absolute; right: -10px; top: -60px; font-size: 220px; line-height: 1; color: rgba(255,255,255,.06); pointer-events: none; }
.cc-cta h2 { color: var(--cc-white); margin: 0 0 .4rem; }
.cc-cta p { margin: 0; color: #d3e3f5; max-width: 620px; }
.cc-cta__actions { display: flex; flex-wrap: wrap; gap: .8rem; position: relative; z-index: 1; }

/* ==========================================================================
   Page header (interne)
   ========================================================================== */
.cc-pagehead {
	position: relative; isolation: isolate; overflow: hidden;
	background: linear-gradient(120deg, var(--cc-navy) 0%, var(--cc-navy-2) 55%, var(--cc-blue) 100%);
	color: var(--cc-white); padding: clamp(48px, 8vw, 96px) 0 clamp(56px, 8vw, 104px); text-align: center;
}
.cc-pagehead__bg { position: absolute; inset: 0; z-index: -2; }
.cc-pagehead__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .28; filter: saturate(.7); }
.cc-pagehead::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: radial-gradient(ellipse at 50% -20%, rgba(79,155,217,.45), transparent 60%);
}
.cc-pagehead::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 36px; z-index: -1;
	background: var(--cc-white); clip-path: ellipse(70% 100% at 50% 100%);
}
.cc-pagehead h1 { color: var(--cc-white); margin: .3rem auto .6rem; max-width: 900px; }
.cc-pagehead__sub { color: #cfe0f4; max-width: 700px; margin: 0 auto; font-size: 1.12rem; }
.cc-pagehead .cc-eyebrow { color: var(--cc-gold-light); }
.cc-pagehead .cc-eyebrow::before, .cc-pagehead .cc-eyebrow::after { background: var(--cc-gold-light); }
.cc-pagehead .cc-eyebrow::after { content: ""; width: 28px; height: 2px; }
.cc-pagehead__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.2rem; color: #cfe0f4; font-size: .95rem; margin-top: .8rem; }
.cc-pagehead__meta a { color: var(--cc-white); }

/* Breadcrumb */
.cc-breadcrumb { font-size: .9rem; margin-bottom: .6rem; }
.cc-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .2rem .5rem; }
.cc-breadcrumb li { margin: 0; color: #b9cde6; }
.cc-breadcrumb li + li::before { content: "›"; margin-right: .5rem; color: var(--cc-gold-light); }
.cc-breadcrumb a { color: #e3eefb; text-decoration: none; }
.cc-breadcrumb a:hover { color: var(--cc-white); text-decoration: underline; }

/* ==========================================================================
   Contenuti (entry)
   ========================================================================== */
.cc-main { padding: clamp(40px, 6vw, 72px) 0 clamp(56px, 8vw, 96px); }
.cc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 5vw, 64px); align-items: start; }
@media (max-width: 1000px) { .cc-layout { grid-template-columns: 1fr; } }

.entry-content { font-size: 1.1rem; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { position: relative; padding-bottom: .4rem; }
.entry-content h2::after { content: ""; display: block; width: 56px; height: 2px; background: var(--cc-gold); margin-top: .5rem; }
.entry-content .has-text-align-center::after { margin-left: auto; margin-right: auto; }
.entry-content img { border-radius: var(--cc-radius); height: auto; }
.entry-content figure { margin: 2rem 0; }
.entry-content figcaption { font-size: .9rem; color: var(--cc-muted); text-align: center; margin-top: .5rem; }
.entry-content ul li::marker { color: var(--cc-blue); }
.entry-content ol li::marker { color: var(--cc-blue); font-weight: 700; }
.entry-content > p:first-of-type.cc-lead, .cc-lead { font-size: 1.25rem; color: var(--cc-navy); }
.entry-content .wp-block-image.alignright, .entry-content .alignright { float: right; margin: .3rem 0 1rem 1.5rem; max-width: 45%; }
.entry-content .wp-block-image.alignleft, .entry-content .alignleft { float: left; margin: .3rem 1.5rem 1rem 0; max-width: 45%; }
.entry-content .aligncenter { margin-left: auto; margin-right: auto; }
.entry-content .alignwide { margin-left: calc(-1 * min(120px, 8vw)); margin-right: calc(-1 * min(120px, 8vw)); max-width: none; }
@media (max-width: 1000px) { .entry-content .alignwide { margin-left: 0; margin-right: 0; } }
@media (max-width: 600px) { .entry-content .alignright, .entry-content .alignleft, .entry-content .wp-block-image.alignright, .entry-content .wp-block-image.alignleft { float: none; max-width: 100%; margin: 1.5rem 0; } }
.entry-content::after { content: ""; display: table; clear: both; }
.entry-content .wp-block-separator { border: 0; height: 1px; background: var(--cc-border); }
.entry-content .wp-block-columns { gap: 2rem; }

/* Gallery + lightbox */
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: var(--cc-radius); cursor: zoom-in; }
.cc-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(8,22,42,.94); display: none; align-items: center; justify-content: center; padding: 4vh 4vw; }
.cc-lightbox.is-open { display: flex; }
.cc-lightbox img { max-height: 92vh; max-width: 92vw; width: auto; border-radius: 8px; box-shadow: 0 10px 50px rgba(0,0,0,.5); }
.cc-lightbox button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 52px; height: 52px; border-radius: 50%; font-size: 1.6rem; cursor: pointer; }
.cc-lightbox button:hover { background: rgba(255,255,255,.25); }
.cc-lightbox__close { top: 20px; right: 20px; }
.cc-lightbox__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.cc-lightbox__next { right: 20px; top: 50%; transform: translateY(-50%); }

/* Box informativi riutilizzabili nei contenuti */
.cc-box { background: var(--cc-mist); border: 1px solid var(--cc-border); border-radius: var(--cc-radius-lg); padding: 1.5rem 1.6rem; margin: 2rem 0; }
.cc-box > :last-child { margin-bottom: 0; }
.cc-box h3, .cc-box h4 { margin-top: 0; }
.cc-box--gold { background: #fbf6ea; border-color: var(--cc-gold-light); }
.entry-content .cc-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 1.5rem 0 2.5rem; }
.cc-people li { margin: 0; padding: 1.1rem 1.2rem; background: var(--cc-white); border: 1px solid var(--cc-border); border-radius: var(--cc-radius); border-top: 3px solid var(--cc-azzurro); font-size: 1rem; line-height: 1.5; }
.cc-people li strong { display: block; font-family: var(--cc-font-serif); font-size: 1.25rem; color: var(--cc-navy); }
.cc-people .cc-role { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cc-blue); font-weight: 700; margin-bottom: .2rem; }
.cc-people .cc-place { display: block; color: var(--cc-muted); }
.cc-people a { word-break: break-word; }
.entry-content ol.cc-timeline { list-style: none; padding: 0 0 0 1.5rem; border-left: 2px solid var(--cc-sky); margin: 1.5rem 0 2.5rem; }
.cc-timeline li { position: relative; margin: 0 0 1.1rem; padding-left: .5rem; }
.cc-timeline li::before { content: ""; position: absolute; left: calc(-1.5rem - 7px); top: .5em; width: 12px; height: 12px; border-radius: 50%; background: var(--cc-white); border: 3px solid var(--cc-blue); }
.cc-timeline .cc-date { display: block; font-weight: 700; color: var(--cc-blue); font-size: .92rem; letter-spacing: .04em; }

/* Child pages / catechismo */
.cc-children { margin-top: 3rem; }
.cc-children__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0; counter-reset: cc; }
.cc-children__grid li { margin: 0; }
.cc-children__grid a {
	display: flex; gap: .9rem; align-items: center; height: 100%;
	padding: 1rem 1.1rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius);
	text-decoration: none; color: var(--cc-navy); font-weight: 600; background: var(--cc-white);
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.cc-children__grid a:hover { border-color: var(--cc-azzurro); box-shadow: var(--cc-shadow); transform: translateY(-2px); }
.cc-children__num { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--cc-mist); color: var(--cc-blue); font-family: var(--cc-font-serif); font-weight: 700; font-size: 1.15rem; }
.cc-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--cc-border); }
.cc-pager a { display: block; padding: 1rem 1.2rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); text-decoration: none; color: var(--cc-navy); font-weight: 600; transition: border-color .2s, background .2s; }
.cc-pager a:hover { border-color: var(--cc-azzurro); background: var(--cc-mist); }
.cc-pager small { display: block; font-weight: 400; color: var(--cc-muted); font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; }
.cc-pager__next { text-align: right; grid-column: 2; }
@media (max-width: 600px) { .cc-pager { grid-template-columns: 1fr; } .cc-pager__next { grid-column: auto; } }
.post-navigation.cc-pager { display: block; }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.post-navigation .nav-next { grid-column: 2; text-align: right; }
@media (max-width: 600px) { .post-navigation .nav-links { grid-template-columns: 1fr; } .post-navigation .nav-next { grid-column: auto; } }

/* Single post */
.cc-single__thumb { margin: 0 0 2rem; }
.cc-single__thumb img { width: 100%; border-radius: var(--cc-radius-lg); box-shadow: var(--cc-shadow); max-height: 560px; object-fit: cover; }
.cc-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2rem 0; padding: 0; list-style: none; }
.cc-tags li { margin: 0; }
.cc-tags a { display: inline-block; padding: .3rem .85rem; border-radius: 999px; background: var(--cc-mist); color: var(--cc-blue); text-decoration: none; font-size: .9rem; font-weight: 600; }
.cc-tags a:hover { background: var(--cc-blue); color: var(--cc-white); }
.cc-share { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: 1.2rem 0; border-top: 1px solid var(--cc-border); border-bottom: 1px solid var(--cc-border); margin: 2rem 0; }
.cc-share__label { font-weight: 700; color: var(--cc-navy); margin-right: .4rem; }
.cc-share a { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--cc-mist); transition: background .2s; }
.cc-share a:hover { background: var(--cc-blue); }
.cc-share svg { width: 18px; height: 18px; fill: var(--cc-blue); }
.cc-share a:hover svg { fill: var(--cc-white); }
.cc-author { display: flex; gap: 1.2rem; align-items: center; padding: 1.5rem; background: var(--cc-mist); border-radius: var(--cc-radius-lg); margin: 2rem 0; }
.cc-author img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex: none; border: 3px solid var(--cc-white); }
.cc-author h2 { font-size: 1.35rem; margin: 0 0 .25rem; }
.cc-author h2::after { display: none; }
.cc-author p { margin: 0; color: var(--cc-muted); font-size: 1rem; }
.cc-related { margin-top: 3.5rem; }
.cc-related h2 { font-size: 1.8rem; }

/* Sidebar */
.cc-sidebar { position: sticky; top: calc(var(--cc-header-h) + 24px); display: grid; gap: 1.5rem; }
.cc-sidebar .widget { background: var(--cc-white); border: 1px solid var(--cc-border); border-radius: var(--cc-radius-lg); padding: 1.4rem 1.5rem; }
.cc-sidebar .widget-title, .cc-sidebar .wp-block-heading { font-size: 1.35rem; margin: 0 0 .9rem; padding-bottom: .6rem; border-bottom: 2px solid var(--cc-mist); }
.cc-sidebar ul { list-style: none; padding: 0; margin: 0; }
.cc-sidebar li { padding: .45rem 0; border-bottom: 1px dashed var(--cc-border); margin: 0; }
.cc-sidebar li:last-child { border-bottom: 0; }
.cc-sidebar li a { text-decoration: none; color: var(--cc-navy); }
.cc-sidebar li a:hover { color: var(--cc-blue); }
.cc-widget-cta { background: linear-gradient(135deg, var(--cc-blue), var(--cc-navy)) !important; color: var(--cc-white); border: 0 !important; }
.cc-widget-cta .widget-title { color: var(--cc-white); border-color: rgba(255,255,255,.2) !important; }
.cc-widget-cta p { color: #d3e3f5; font-size: 1rem; }

/* Form */
.cc-search-form { display: flex; gap: .5rem; }
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], textarea, select {
	width: 100%; padding: .75rem 1rem; border: 1px solid var(--cc-border); border-radius: 10px;
	font: inherit; font-size: 1rem; color: var(--cc-text); background: var(--cc-white); transition: border-color .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus { border-color: var(--cc-azzurro); box-shadow: 0 0 0 3px rgba(79,155,217,.2); outline: none; }
label { font-weight: 600; color: var(--cc-navy); display: block; margin-bottom: .35rem; }
.cc-search-form button { flex: none; padding: .75rem 1.1rem; }
.cc-form { display: grid; gap: 1rem; }
.cc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .cc-form__row { grid-template-columns: 1fr; } }
.cc-form__hp { position: absolute !important; left: -9999px !important; }
.cc-form__privacy { font-weight: 400; font-size: .95rem; display: flex; gap: .5rem; align-items: flex-start; color: var(--cc-text); }
.cc-form__privacy input { margin-top: .35rem; }
.cc-notice { padding: 1rem 1.2rem; border-radius: var(--cc-radius); margin-bottom: 1.5rem; }
.cc-notice--ok { background: #e8f6ee; color: #1d5b36; border: 1px solid #b8e0c7; }
.cc-notice--err { background: #fdecec; color: #8a1f1f; border: 1px solid #f3c1c1; }

/* Info cards (contatti, donazioni) */
.cc-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1rem; margin: 1.5rem 0 2.5rem; }
.cc-info__item { padding: 1.3rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-lg); background: var(--cc-white); }
.cc-info__item svg { width: 26px; height: 26px; fill: var(--cc-blue); margin-bottom: .6rem; }
.cc-info__item h3 { font-size: 1.25rem; margin: 0 0 .3rem; }
.cc-info__item p { margin: 0; font-size: 1rem; word-break: break-word; }
.cc-map { border: 0; width: 100%; height: 380px; border-radius: var(--cc-radius-lg); box-shadow: var(--cc-shadow); }
.cc-iban { font-family: ui-monospace, Consolas, monospace; font-size: 1.05rem; letter-spacing: .04em; background: var(--cc-white); padding: .5rem .8rem; border-radius: 8px; border: 1px dashed var(--cc-azzurro); display: inline-block; word-break: break-all; }

/* Filtri categorie blog */
.cc-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0 0 2.5rem; padding: 0; list-style: none; }
.cc-filters li { margin: 0; }
.cc-filters a { display: inline-block; padding: .5rem 1.1rem; border-radius: 999px; border: 1px solid var(--cc-border); color: var(--cc-navy); text-decoration: none; font-weight: 600; }
.cc-filters a:hover { border-color: var(--cc-azzurro); color: var(--cc-blue); }
.cc-filters .is-active a { background: var(--cc-blue); border-color: var(--cc-blue); color: var(--cc-white); }

/* Paginazione */
.cc-pagination { margin-top: 3rem; }
.cc-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
.cc-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 .8rem; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--cc-border); text-decoration: none; color: var(--cc-navy); font-weight: 600; }
.cc-pagination .page-numbers.current, .cc-pagination a.page-numbers:hover { background: var(--cc-blue); border-color: var(--cc-blue); color: var(--cc-white); }

/* Commenti */
.comments-area { margin-top: 3rem; }
.comment-list { list-style: none; padding: 0; }
.comment-list .children { list-style: none; padding-left: 1.5rem; }
.comment-body { padding: 1.2rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); margin-bottom: 1rem; }
.comment-meta { font-size: .9rem; color: var(--cc-muted); margin-bottom: .5rem; }
.comment-author img { border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: .5rem; }
.comment-form p { margin-bottom: 1rem; }

/* ==========================================================================
   Footer
   ========================================================================== */
.cc-footer { background: var(--cc-navy); color: #b9cde6; font-size: 1rem; position: relative; }
.cc-footer::before { content: ""; display: block; height: 4px; background: linear-gradient(90deg, var(--cc-azzurro), var(--cc-gold), var(--cc-azzurro)); }
.cc-footer a { color: #e3eefb; text-decoration: none; }
.cc-footer a:hover { color: var(--cc-gold-light); }
.cc-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; padding: clamp(48px, 7vw, 80px) 0; }
@media (max-width: 1000px) { .cc-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .cc-footer__grid { grid-template-columns: 1fr; } }
.cc-footer h2 { color: var(--cc-white); font-size: 1.35rem; margin: 0 0 1rem; }
.cc-footer ul { list-style: none; padding: 0; margin: 0; }
.cc-footer li { margin-bottom: .55rem; }
.cc-footer__about .cc-brand { color: var(--cc-white); margin-bottom: 1rem; }
.cc-footer__about .cc-brand__tagline { color: #9fb6d3; }
.cc-footer__motto { font-family: var(--cc-font-serif); font-style: italic; font-size: 1.3rem; color: var(--cc-gold-light); margin-top: 1rem; }
.cc-contact-list li { display: flex; gap: .6rem; align-items: flex-start; }
.cc-contact-list svg { width: 16px; height: 16px; fill: var(--cc-gold-light); flex: none; margin-top: .35rem; }
.cc-social { display: flex; gap: .5rem; margin-top: 1.2rem; }
.cc-social a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.08); }
.cc-social a:hover { background: var(--cc-gold); }
.cc-social svg { width: 18px; height: 18px; fill: var(--cc-white); }
.cc-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.3rem 0; font-size: .9rem; }
.cc-footer__bottom .cc-container { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; }
.cc-footer__bottom ul { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.cc-footer__bottom li { margin: 0; }

.cc-totop {
	position: fixed; right: 18px; bottom: 18px; width: 46px; height: 46px; border-radius: 50%;
	background: var(--cc-blue); color: var(--cc-white); border: 0; cursor: pointer; box-shadow: var(--cc-shadow-lg);
	display: grid; place-items: center; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s, transform .25s, visibility .25s; z-index: 40;
}
.cc-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.cc-totop svg { width: 20px; height: 20px; fill: currentColor; }

/* 404 / vuoto */
.cc-empty { text-align: center; padding: 2rem 0; }
.cc-empty__num { font-family: var(--cc-font-serif); font-size: clamp(5rem, 15vw, 9rem); color: var(--cc-sky); line-height: 1; font-weight: 700; }

/* Animazioni rispettose */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.cc-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.cc-reveal.is-visible { opacity: 1; transform: none; }
.no-js .cc-reveal { opacity: 1; transform: none; }

/* Stampa */
@media print {
	.cc-topbar, .cc-header, .cc-footer, .cc-sidebar, .cc-share, .cc-related, .cc-totop, .comments-area { display: none !important; }
	.cc-pagehead { background: none; color: #000; padding: 0; }
	.cc-pagehead h1 { color: #000; }
	.cc-layout { display: block; }
}

/* Immagini centrate: evita foto verticali troppo alte */
.entry-content .wp-block-image.aligncenter img { max-height: 680px; width: auto; margin: 0 auto; }
.entry-content p.cc-question { background: var(--cc-mist); border-left: 4px solid var(--cc-azzurro); padding: .9rem 1.2rem; border-radius: 0 var(--cc-radius) var(--cc-radius) 0; color: var(--cc-navy); }
.cc-site-main { overflow-x: clip; }
@media (max-width: 600px) {
	.cc-split__media::before { inset: 12px -8px -12px 12px; }
	.cc-split__media .cc-badge { left: 8px; }
	.cc-hero__content { padding: 56px 0 100px; }
}
