/*
 * Pagine scritte con l'editor (privacy, cookie, blog, articoli, 404), dentro il guscio del design.
 * Valori presi dal design Claude Design: fondo #FAFAFF, inchiostro #131122, testo #6B6B6B,
 * accento #7B5A3C, verde CTA #2D6D40, titoli Fraunces 400, testo Outfit.
 */
.cr-hero { background: #131122; color: #FAFAFF; padding: clamp(72px, 9vw, 128px) clamp(20px, 5vw, 96px) clamp(56px, 7vw, 96px); text-align: center; }
.cr-hero__in { max-width: 70ch; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cr-hero h1 { margin: 0; font-family: Fraunces, serif; font-weight: 400; font-size: clamp(32px, 3.9vw, 54px); line-height: 1.1; letter-spacing: -0.5px; color: #FAFAFF; text-wrap: balance; }
.cr-hero p { margin: 0; color: rgba(250, 250, 255, 0.88); font-size: clamp(16px, 1.6vw, 19px); line-height: 1.5; max-width: 46ch; }
.cr-hero .cr-occhiello { color: #B08D57; }
.cr-occhiello { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #7B5A3C; }

.cr-corpo { background: #FAFAFF; padding: clamp(56px, 7vw, 104px) clamp(20px, 5vw, 96px); }
.cr-testo { max-width: 72ch; margin: 0 auto; font-family: Outfit, -apple-system, sans-serif; font-size: 17px; line-height: 1.7; color: #6B6B6B; }
.cr-testo > :first-child { margin-top: 0; }
.cr-testo p, .cr-testo ul, .cr-testo ol, .cr-testo table { margin: 0 0 1.1em; }
.cr-testo ul, .cr-testo ol { padding-left: 1.3em; }
.cr-testo li { margin-bottom: 0.4em; }
.cr-testo h2 { margin: 2em 0 0.6em; font-family: Fraunces, serif; font-weight: 400; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; color: #131122; }
.cr-testo h3 { margin: 1.6em 0 0.5em; font-size: 18px; font-weight: 600; line-height: 1.4; color: #131122; }
.cr-testo strong { color: #131122; font-weight: 600; }
.cr-testo a { color: #7B5A3C; text-decoration: underline; text-underline-offset: 3px; }
.cr-testo a:hover { color: #131122; }
.cr-testo img { max-width: 100%; height: auto; border-radius: 4px; display: block; }
.cr-testo table { width: 100%; border-collapse: collapse; font-size: 15px; }
.cr-testo th, .cr-testo td { border-bottom: 1px solid #D7D7D7; padding: 10px 8px; text-align: left; vertical-align: top; }
.cr-indietro { margin-top: 3em !important; }
.cr-centro { text-align: center; }
.cr-bottone, .cr-testo a.cr-bottone { display: inline-flex; align-items: center; justify-content: center; background: #2D6D40; color: #FFFFFF; font-size: 15px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; padding: 16px 30px; border-radius: 999px; text-decoration: none; transition: background 0.2s ease; }
.cr-bottone:hover, .cr-testo a.cr-bottone:hover { background: #0D2818; color: #FFFFFF; }

.cr-card { list-style: none; margin: 0 auto; padding: 0; max-width: 1248px; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 32px; }
.cr-card a { display: flex; flex-direction: column; gap: 10px; color: #131122; height: 100%; }
.cr-card__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; background: #EBECF2; margin-bottom: 8px; }
.cr-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.cr-card a:hover .cr-card__img img { transform: scale(1.04); }
.cr-card__titolo { font-family: Fraunces, serif; font-weight: 400; font-size: 24px; line-height: 1.2; }
.cr-card__testo { font-size: 15px; line-height: 1.6; color: #6B6B6B; }
.cr-card__leggi { margin-top: auto; padding-top: 6px; font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #7B5A3C; }
.nav-links { max-width: 1248px; margin: 48px auto 0; display: flex; gap: 12px; justify-content: center; font-family: Outfit, sans-serif; }
.nav-links .page-numbers { padding: 8px 14px; border: 1px solid #D7D7D7; border-radius: 999px; color: #131122; }
.nav-links .current { background: #131122; color: #FAFAFF; border-color: #131122; }

/* Banner e documenti Complianz dentro la tipografia del design. */
.cr-testo #cmplz-document, .cr-testo .cmplz-document { max-width: none; font-size: inherit; color: inherit; }

/* ---------- Pagine a sezioni (template sezioni.php): servizi, regolamenti, dicono di noi, commenti, gallery ---------- */
.cr-hero--foto { position: relative; background: #131122 var(--cr-sfondo) center / cover no-repeat; padding-top: clamp(96px, 12vw, 176px); padding-bottom: clamp(80px, 10vw, 144px); }
.cr-hero--foto::before { content: ""; position: absolute; inset: 0; background: rgba(19, 17, 34, 0.62); }
.cr-hero--foto .cr-hero__in { position: relative; }

.cr-sezioni { font-family: Outfit, -apple-system, sans-serif; }
.cr-sez { background: #FAFAFF; color: #6B6B6B; padding: clamp(56px, 7vw, 104px) clamp(20px, 5vw, 96px); }
.cr-sez--chiara { background: #F1F1F6; }
.cr-sez--scura { background: #131122; color: rgba(250, 250, 255, 0.8); }
.cr-sez__in { max-width: 1248px; margin: 0 auto; }
.cr-sez h2 { margin: 0; font-family: Fraunces, serif; font-weight: 400; font-size: clamp(28px, 3vw, 40px); line-height: 1.15; color: #131122; text-wrap: balance; }
.cr-sez--scura h2 { color: #FAFAFF; }
.cr-sez h3 { margin: 0; font-family: Fraunces, serif; font-weight: 400; font-size: 24px; line-height: 1.2; color: #131122; }
.cr-sez p { margin: 0; font-size: 16px; line-height: 1.7; }
.cr-sez ul { list-style: none; margin: 0; padding: 0; }
.cr-sez img { max-width: 100%; height: auto; display: block; }
.cr-sez__testa { max-width: 62ch; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cr-sez__testa p { font-size: 17px; }
.cr-sez--scura .cr-occhiello { color: #B08D57; }

/* Schede servizio */
.cr-schede { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 48px 32px; }
.cr-scheda { display: flex; flex-direction: column; gap: 12px; }
.cr-scheda__img { aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; background: #EBECF2; margin-bottom: 8px; }
.cr-scheda__img img { width: 100%; height: 100%; object-fit: cover; }
.cr-scheda__link, .cr-doc__scarica { align-self: flex-start; margin-top: 4px; font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #7B5A3C; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.cr-scheda__link:hover, .cr-doc__scarica:hover { color: #131122; }
.cr-marchio { display: flex; align-items: center; gap: 12px; font-size: 14px !important; font-weight: 600; color: #131122; }
.cr-marchio img { width: 64px; height: auto; }

/* Documenti da scaricare */
.cr-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.cr-doc { display: flex; flex-direction: column; gap: 12px; padding: 32px 28px; background: #FFFFFF; border: 1px solid #E2E2EA; border-radius: 4px; }
.cr-doc__scarica { margin-top: auto; padding-top: 12px; border-bottom: 0; }
.cr-doc__scarica::after { content: " ↓"; }

/* Racconto con foto a coppie */
.cr-racconto { max-width: 72ch; margin: 0 auto; display: flex; flex-direction: column; gap: 1.2em; }
.cr-racconto p { font-size: 17px; }
.cr-foto-coppia { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1em 0; }
.cr-foto-coppia img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.cr-foto-coppia img:only-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }

/* Ritagli di stampa */
.cr-stampa { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 320px)); justify-content: center; gap: 40px; }
.cr-stampa a { display: flex; flex-direction: column; align-items: center; gap: 16px; text-decoration: none; }
.cr-stampa img { box-shadow: 0 20px 40px -20px rgba(19, 17, 34, 0.45); transition: transform 0.4s ease; }
.cr-stampa a:hover img { transform: translateY(-4px); }

/* Recensioni */
.cr-recensioni { columns: 3 300px; column-gap: 24px; }
.cr-rec { break-inside: avoid; margin-bottom: 24px; padding: 28px; background: #FFFFFF; border: 1px solid #E2E2EA; border-radius: 4px; display: flex; flex-direction: column; gap: 14px; }
.cr-rec__stelle { color: #B08D57; letter-spacing: 3px; font-size: 16px; }
.cr-rec blockquote { margin: 0; font-family: Fraunces, serif; font-size: 20px; line-height: 1.4; color: #131122; }
.cr-rec__chi { font-size: 14px !important; }
.cr-rec__chi strong { color: #131122; font-weight: 600; text-transform: capitalize; }

/* Gallery */
.cr-galleria { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.cr-galleria a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; background: #EBECF2; }
.cr-galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.cr-galleria a:hover img { transform: scale(1.05); }
@media (max-width: 720px) { .cr-galleria { grid-template-columns: repeat(2, 1fr); gap: 8px; } .cr-foto-coppia { grid-template-columns: 1fr; } }

/* Lightbox della gallery (galleria.js) */
.cr-lb { position: fixed; inset: 0; z-index: 9999; background: rgba(19, 17, 34, 0.94); display: flex; align-items: center; justify-content: center; padding: 56px 64px; }
.cr-lb[hidden] { display: none; }
.cr-lb img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 2px; }
.cr-lb button { position: absolute; background: none; border: 0; color: #FAFAFF; font-size: 34px; line-height: 1; cursor: pointer; padding: 12px; }
.cr-lb__chiudi { top: 8px; right: 12px; }
.cr-lb__prec { left: 8px; top: 50%; transform: translateY(-50%); }
.cr-lb__succ { right: 8px; top: 50%; transform: translateY(-50%); }
.cr-lb__conta { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: rgba(250, 250, 255, 0.7); font: 14px Outfit, sans-serif; }

/* Fascia finale con invito all'azione */
.cr-cta { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cr-cta .cr-sez__testa { margin-bottom: 32px; }
