/* ==========================================================================
   Casa Gaia — PAGINE SPECIALI (agente tema 5)
   Caricato su is_page() && ! is_front_page() (inc/risorse.php).
   1. In memoria   2. Contatti   3. Mappa con consenso   4. Pagine legali   5. Gusci elenchi
   Solo variabili di base.css; classi nuove col prefisso .pagina-
   ========================================================================== */

/* 1. In memoria ----------------------------------------------------------- */
.pagina-memoria__intro { padding-bottom: 0; }
.pagina-memoria__segnaposto { margin: var(--spazio-m) 0 0; }
.pagina-memoria__ritratti { padding-top: var(--spazio-l); }
.pagina-memoria__conteggio {
	font: 600 .68rem/1 var(--sans);
	letter-spacing: .24em;
	text-transform: uppercase;
	margin: 0 0 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--linea);
}
.pagina-memoria__griglia {
	list-style: none;
	margin: 0;
	padding: 0;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: 12px;
}
.pagina-memoria__voce { min-width: 0; }
.pagina-memoria__voce figure { height: 100%; background: var(--antracite); }
.pagina-memoria__griglia img { aspect-ratio: 4 / 5; }
.pagina-memoria__senza-foto { display: block; aspect-ratio: 4 / 5; background: radial-gradient(ellipse at 50% 40%, var(--antracite-2), var(--nero) 75%); }
.pagina-memoria__griglia figcaption { right: 14px; bottom: 14px; display: flex; flex-direction: column; gap: 6px; }
.pagina-memoria__nome { font: 400 italic clamp(1.3rem, 1.8vw, 1.6rem)/1 var(--serif); color: var(--avorio); }
.pagina-memoria__anni { font: 600 .62rem/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--grigio); font-style: normal; }
.pagina-memoria__vai {
	font: 600 .62rem/1 var(--sans);
	letter-spacing: .2em;
	text-transform: uppercase;
	font-style: normal;
	color: var(--bronzo-chiaro);
	opacity: .75;
	transition: opacity .3s;
}
.pagina-memoria__link { display: block; height: 100%; text-decoration: none; color: inherit; }
.pagina-memoria__link:hover .pagina-memoria__vai,
.pagina-memoria__link:focus-visible .pagina-memoria__vai { opacity: 1; }
.pagina-memoria__link:focus-visible { outline-offset: 2px; }
.pagina-memoria__link:focus-visible img { filter: grayscale(1) brightness(1); }
@media (max-width: 600px) {
	.pagina-memoria__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.pagina-memoria__griglia figcaption { left: 10px; right: 10px; bottom: 10px; }
	.pagina-memoria__nome { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
	.pagina-memoria__griglia img, .pagina-memoria__vai { transition: none; }
}

/* 2. Contatti -------------------------------------------------------------- */
.pagina-contatti__intro { padding-bottom: 0; }
.pagina-contatti__griglia { display: grid; grid-template-columns: 6fr 5fr; gap: clamp(48px, 7vw, 120px); align-items: start; }
.pagina-contatti__griglia > * { min-width: 0; }
.pagina-contatti__recapiti .telefono { overflow-wrap: anywhere; }
.pagina-contatti__titolare { margin: 0; }
.pagina-contatti .recapiti address { font-style: normal; }
.pagina-contatti .recapiti dd { overflow-wrap: anywhere; }
.pagina-contatti__social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.pagina-contatti__social a { display: inline-flex; align-items: center; gap: 8px; }
.pagina-contatti__social .icona { width: 18px; height: 18px; fill: var(--bronzo); flex: none; }
.pagina-contatti__titoletto { margin-top: var(--spazio-l); margin-bottom: 0; }
.pagina-contatti__recapiti > .segnaposto { display: block; margin-top: 20px; }

.pagina-contatti__scrivici { position: sticky; top: calc(var(--sopra-testata) + var(--altezza-testata) + 24px); }
.pagina-contatti__titolo-scrivici { font-size: var(--corpo-h3); }
.pagina-contatti__scrivici > p.muto { margin: 12px 0 0; font-size: .95rem; }
.pagina-contatti__argomenti { list-style: none; margin: 26px 0 0; padding: 0; border-top: 1px solid var(--linea); }
.pagina-contatti__argomento {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--linea);
	text-decoration: none;
	font: 500 clamp(1.25rem, 1.8vw, 1.5rem)/1.2 var(--serif);
	color: var(--avorio);
	transition: color .25s, padding-left .35s var(--ease);
}
.pagina-contatti__argomento .icona { width: 20px; height: 20px; fill: var(--bronzo); flex: none; }
.pagina-contatti__argomento:hover { color: var(--bronzo-chiaro); padding-left: 8px; }
.pagina-contatti__indirizzo-mail { margin: 22px 0 0; font-size: .92rem; color: var(--grigio); overflow-wrap: anywhere; }
.pagina-contatti__indirizzo-mail a { color: var(--bronzo-chiaro); }
.pagina-contatti__scrivici .azioni { margin-top: 28px; }
.pagina-contatti__scrivici .btn .icona { width: 18px; height: 18px; fill: currentColor; }
.pagina-contatti__privacy { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var(--linea); font-size: .82rem; color: var(--grigio); }
.pagina-contatti__privacy a { color: var(--bronzo-chiaro); }
.pagina-contatti__scrivici > .segnaposto { display: block; margin-top: 18px; font-size: .95rem; }
@media (max-width: 900px) {
	.pagina-contatti__griglia { grid-template-columns: 1fr; }
	.pagina-contatti__scrivici { position: static; }
}
@media (prefers-reduced-motion: reduce) { .pagina-contatti__argomento { transition: none; } }

/* 3. Mappa con consenso ----------------------------------------------------- */
.pagina-mappa { margin-top: 24px; }
.pagina-mappa__riquadro { margin-top: 0; }
.pagina-mappa__riquadro .btn { padding: 14px 22px; }
@media (min-width: 601px) { .pagina-mappa__riquadro .btn { white-space: nowrap; } }
.pagina-mappa__riquadro.is-caricata { padding: 0; }
.pagina-mappa__riquadro.is-caricata > :not(iframe) { display: none; }
.pagina-mappa__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(.95); }
.pagina-mappa__avviso { margin: 14px 0 0; font-size: .8rem; color: var(--grigio); max-width: 62ch; }
.pagina-mappa__avviso a { color: var(--bronzo-chiaro); }
.pagina-mappa__link { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 32px; }
@media (max-width: 600px) {
	.pagina-mappa__riquadro { padding: 16px; }
	.pagina-mappa__riquadro .info { flex-direction: column; align-items: flex-start; }
}

/* 4. Pagine legali ------------------------------------------------------------ */
.pagina-legale__corpo { padding-top: var(--spazio-l); padding-bottom: var(--spazio-xl); }
.pagina-legale__corpo--indice { display: grid; grid-template-columns: minmax(200px, 3fr) 9fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.pagina-legale__corpo > * { min-width: 0; }
.pagina-legale__testo .contenuto { padding-top: 0; padding-bottom: 0; }
.pagina-legale__testo .contenuto > * { margin-left: 0; }
.pagina-legale__testo .contenuto > :where(h2) { font-size: clamp(1.7rem, 3vw, 2.4rem); scroll-margin-top: calc(var(--sopra-testata) + var(--altezza-testata) + 24px); }
.pagina-legale__testo .contenuto > :where(h3) { font-size: clamp(1.35rem, 2vw, 1.7rem); scroll-margin-top: calc(var(--sopra-testata) + var(--altezza-testata) + 24px); }
.pagina-legale__testo .contenuto p { text-align: left !important; }
.pagina-legale__testo .avviso { max-width: var(--larghezza-testo); margin-top: 0; }

.pagina-legale__indice { position: sticky; top: calc(var(--sopra-testata) + var(--altezza-testata) + 24px); max-height: calc(100vh - var(--altezza-testata) - 48px); overflow: auto; }
.pagina-legale__indice summary {
	font: 600 .68rem/1 var(--sans);
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--bronzo);
	cursor: pointer;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--linea);
	list-style: none;
}
.pagina-legale__indice summary::-webkit-details-marker { display: none; }
.pagina-legale__indice ol { list-style: none; margin: 0; padding: 0; counter-reset: voce; }
.pagina-legale__indice li { border-bottom: 1px solid var(--linea); }
.pagina-legale__indice a { display: block; padding: 11px 0; font-size: .88rem; line-height: 1.35; color: var(--grigio); text-decoration: none; transition: color .25s; }
.pagina-legale__indice a:hover { color: var(--avorio); }
.pagina-legale__voce--h3 a { padding-left: 16px; font-size: .82rem; }
@media (max-width: 900px) {
	.pagina-legale__corpo--indice { grid-template-columns: 1fr; }
	.pagina-legale__indice { position: static; max-height: none; border: 1px solid var(--linea); padding: 18px 20px; background: var(--antracite); }
	.pagina-legale__indice summary { border-bottom: 0; padding-bottom: 0; }
	.pagina-legale__indice summary::after { content: "+"; float: right; color: var(--bronzo); font-size: 1rem; letter-spacing: 0; }
	.pagina-legale__indice details[open] summary { padding-bottom: 14px; }
	.pagina-legale__indice details[open] summary::after { content: "–"; }
}

/* 5. Gusci Maschi / Femmine / Cucciolate (ripiego finché manca template-parts/cane/) */
.pagina-elenco-cani .griglia-cani, .pagina-elenco-cucciolate .elenco-voci { margin-top: 0; }
.pagina-contatti .gc-link-mappa { display: none; }
