/*
Theme Name: Viscri 32
Theme URI: https://viscri32.com
Author: Viscri 32
Description: Tema site-ului Viscri 32 — restaurant și pensiune în Viscri, Transilvania. Temă copil peste Ollie.
Template: ollie
Version: 0.35.3
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: viscri32
Domain Path: /languages
*/

/* Stilurile Ollie vin din tema părinte. Aici stă doar ce nu se poate exprima
   în theme.json. Înainte de a adăuga ceva, vezi kb/06-design.md. */

/*
 * Antet pe telefon: logo-ul la mijloc, butonul de meniu lipit în dreapta.
 *
 * Sub 600 px, pragul la care blocul de navigație devine buton. Butonul iese
 * din flux ca logo-ul să fie centrat pe tot rândul, nu pe ce rămâne lângă
 * buton. Fără transform pe navigație: ar închide în cutia ei meniul care se
 * deschide pe tot ecranul (position: fixed).
 *
 * Logo-ul are 240 px (kb/06-design.md). Pe telefoanele mai înguste se
 * micșorează cât să lase loc egal butonului, de ambele părți.
 */
@media (max-width: 599px) {
	.v32-antet {
		position: relative;
		justify-content: center !important;
	}

	.v32-antet > .wp-block-navigation {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		display: flex;
		align-items: center;
	}

	.v32-antet .wp-block-site-logo img {
		width: min(240px, 100vw - 2 * var(--wp--preset--spacing--medium) - 7rem);
		height: auto;
	}

	/* Comutatorul de limbă, în stânga, în oglindă cu butonul de meniu. */
	.v32-antet > :is(nav:has(> .v32-limbi), .v32-limbi) {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		display: flex;
		align-items: center;
	}
}

/*
 * Comutatorul de limbă: „RO EN", cu limba curentă subliniată.
 *
 * Blocul Polylang, în antet, după meniu (parts/header.html). Codurile, nu
 * numele, vin din display_names_as (functions.php). Pe desktop stă în colțul
 * din dreapta, la înălțimea logo-ului; pe telefon, la stânga logo-ului (mai sus).
 */
/*
 * Antet de la 600 px în sus: logo-ul sus, la mijloc; meniul pe rândul de
 * dedesubt, centrat; comutatorul de limbă în colțul din dreapta, la înălțimea
 * logo-ului. Ca pe site-ul vechi (kb/08-decizii.md, 2026-11-10).
 */
@media (min-width: 600px) {
	.v32-antet {
		position: relative;
		row-gap: var(--wp--preset--spacing--small) !important;
	}

	.v32-antet > .wp-block-site-logo {
		display: flex;
		flex-basis: 100%;
		justify-content: center;
	}

	.v32-antet > .wp-block-navigation {
		flex-basis: 100%;
		justify-content: center;
	}

	.v32-antet > .wp-block-navigation .wp-block-navigation__container {
		justify-content: center;
	}

	.v32-antet > :is(nav:has(> .v32-limbi), .v32-limbi) {
		position: absolute;
		top: 0;
		right: 0;
		display: flex;
		align-items: center;
		/* Logo-ul are 240 × 86 px (kb/06-design.md). */
		height: 86px;
	}
}

/* Polylang până la 3.8 punea clasa pe listă, într-un <nav>; de la 3.9, pe un
   <div role="navigation"> cu lista înăuntru, iar stilul lui îl întinde pe
   toată lățimea și, în așezarea verticală, pune limbile una sub alta. Stilul
   de aici le prinde pe amândouă și trece peste al lui. */
.v32-antet .v32-limbi,
.v32-antet .v32-limbi > ul {
	display: flex;
	flex-direction: row;
	gap: 0.35rem;
	width: auto;
	margin: 0;
	padding: 0;
	list-style: none;
}

.v32-limbi {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.v32-limbi a {
	display: block;
	padding: 0.25rem 0.15rem;
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
}

.v32-limbi a:hover,
.v32-limbi a:focus-visible {
	color: var(--wp--preset--color--main);
}

.v32-limbi a[aria-current] {
	color: var(--wp--preset--color--main);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.35em;
}

/*
 * Stilul de bloc „Casetă" (Grup): fond de var, bordură albastră în stânga.
 */
.wp-block-group.is-style-caseta,
.wp-block-group.is-style-caseta-inchidibila {
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--wp--preset--color--primary);
	border-radius: 0 5px 5px 0;
	background: var(--wp--preset--color--tertiary);
	font-size: var(--wp--preset--font-size--small);
}

.wp-block-group.is-style-caseta > *,
.wp-block-group.is-style-caseta-inchidibila > * {
	margin-block: 0;
}

.wp-block-group.is-style-caseta > * + *,
.wp-block-group.is-style-caseta-inchidibila > * + * {
	margin-top: 0.4rem;
}

.wp-block-group.is-style-caseta ul,
.wp-block-group.is-style-caseta-inchidibila ul {
	padding-left: 1.1rem;
}

.wp-block-group.is-style-caseta li + li,
.wp-block-group.is-style-caseta-inchidibila li + li {
	margin-top: 0.25rem;
}

/*
 * Stilul de bloc „Chenar cu îndemn" (Grup): chenar subțire, textul în
 * stânga, butonul în dreapta; pe telefon, butonul sub text. Ca promobox-ul
 * de sub galeria de pe prima pagină veche.
 */
.wp-block-group.is-style-promo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	padding: 1.25rem 1.75rem;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 5px;
	background: var(--wp--preset--color--base);
	box-shadow: 0 1px 6px rgb(0 0 0 / 6%);
	margin-block-end: var(--wp--preset--spacing--x-large);
}

.wp-block-group.is-style-promo > * {
	margin: 0 !important;
	max-width: none !important;
}

.wp-block-group.is-style-promo > p {
	flex: 1 1 22rem;
}

.wp-block-group.is-style-promo .wp-block-button__link {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.wp-block-group.is-style-promo .wp-block-button__link:hover,
.wp-block-group.is-style-promo .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--primary-alt-accent);
}

/*
 * Stilul de bloc „Două coloane" (Listă): două coloane de la 700 px în sus.
 */
@media (min-width: 700px) {
	.wp-block-list.is-style-doua-coloane {
		columns: 2;
		column-gap: 2.5rem;
	}

	.wp-block-list.is-style-doua-coloane > li {
		break-inside: avoid;
	}
}

.wp-block-list.is-style-doua-coloane > li + li {
	margin-top: 0.3rem;
}

/*
 * „Casetă cu ×": butonul de închidere, în colțul din dreapta sus.
 */
.wp-block-group.is-style-caseta-inchidibila {
	position: relative;
	padding-right: 2.75rem;
}

.wp-block-group.is-style-caseta-inchidibila[hidden] {
	display: none !important;
}

.wp-block-group.is-style-caseta-inchidibila > .v32-caseta__inchide {
	position: absolute;
	top: 0.4rem;
	right: 0.4rem;
	width: 2rem;
	height: 2rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--secondary);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

.wp-block-group.is-style-caseta-inchidibila > .v32-caseta__inchide[hidden] {
	display: none;
}

.wp-block-group.is-style-caseta-inchidibila > .v32-caseta__inchide:hover {
	background: var(--wp--preset--color--border-light);
	color: var(--wp--preset--color--main);
}

.wp-block-group.is-style-caseta-inchidibila > .v32-caseta__inchide:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
}

/*
 * Fondul de var nu acoperă secțiuni late (08-decizii.md, 2026-11-10): lângă
 * subsolul albastru făcea trei benzi una peste alta. Șabloanele lui Ollie
 * (blog, magazin, căutare, 404) îl pun pe grupuri pe toată lățimea; aici
 * devin albe, iar fișele albe din ele primesc o margine subțire, ca să nu se
 * piardă. Varul rămâne pe suprafețele mici: citate, casete, video.
 */
:is(.alignfull, .alignwide).has-tertiary-background-color {
	background-color: var(--wp--preset--color--base) !important;
}

:is(.alignfull, .alignwide).has-tertiary-background-color .has-base-background-color {
	border: 1px solid var(--wp--preset--color--border-light);
}

/*
 * Subsolul: loc deasupra lui, pe toate paginile (WordPress anulează marginea
 * de jos a ultimului bloc, deci ultima fotografie ajungea lipită de el).
 * Linia albastră subțire de deasupra lui a fost scoasă pe 2026-11-11, la
 * cererea lui Mile. O pagină care se termină cu o bandă pe toată lățimea rămâne lipită de
 * subsol, ca înainte.
 */
.wp-site-blocks > main {
	/* Spațiul stă în conținut, nu deasupra subsolului: WordPress pune
	   margin-top: 0 !important pe orice template part. */
	padding-bottom: var(--wp--preset--spacing--x-large);
}

.wp-site-blocks > main:has(.entry-content > .is-style-banda:last-child) {
	padding-bottom: 0;
}

/* Subsolul: meniurile de coloană, fără săgeți și fără spațiu în plus. */
.v32-subsol .wp-block-navigation__container {
	row-gap: var(--wp--preset--spacing--x-small);
}

.v32-subsol .wp-block-navigation-item__content {
	padding: 0;
}

.v32-subsol .wp-block-navigation a:hover {
	text-decoration: underline;
}

/* Subsolul e alb pe albastrul meniului: meniurile și etichetele rețelelor
   iau culoarea textului, iar conturul de focus e alb, ca să se vadă. */
.v32-subsol .wp-block-navigation a,
.v32-subsol .wp-block-social-link-label {
	color: inherit;
}

.v32-subsol a:focus-visible {
	outline: 2px solid var(--wp--preset--color--base);
	outline-offset: 2px;
}

/* Butonul de apel din subsol: conturat în alb, cu receptorul în față; plin
   la hover, ca butoanele din erou. Iconița e o mască, deci ia culoarea
   textului. */
.v32-subsol .v32-suna .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1.2em;
	background: transparent;
	color: var(--wp--preset--color--base);
	box-shadow: inset 0 0 0 1.5px currentColor;
	font-size: var(--wp--preset--font-size--small);
}

.v32-subsol .v32-suna .wp-block-button__link::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.v32-subsol .v32-suna .wp-block-button__link:hover,
.v32-subsol .v32-suna .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
}

/* Pe telefon, logo-ul și rețelele rămân pe același rând: doar iconițele,
   numele rămân pentru cititoarele de ecran. */
@media (max-width: 600px) {
	.v32-subsol__sus {
		flex-wrap: nowrap;
	}

	.v32-subsol__sus .wp-block-social-link-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}

/*
 * Meniul din antet: legăturile albastre, pagina curentă și cea de sub mouse
 * în negru, ca pe site-ul vechi.
 */
.v32-antet > .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
}

.v32-antet > .wp-block-navigation .wp-block-navigation-item__content:hover,
.v32-antet > .wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.v32-antet > .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--main);
}

/*
 * Un element de meniu ca buton: clasa „v32-buton", pusă pe element în
 * Aspect → Editor → Navigare (Avansat → Clasă CSS suplimentară). Pe
 * „Rezervă" / „Book" în antet. Ca pe site-ul vechi: chenar albastru, text
 * albastru; plin, cu text alb, sub mouse.
 */
.wp-block-navigation .wp-block-navigation-item.v32-buton > .wp-block-navigation-item__content {
	padding: 0.4em 0.9em;
	border: 2px solid var(--wp--preset--color--primary);
	border-radius: 5px;
	color: var(--wp--preset--color--primary);
	font-weight: 500;
}

.wp-block-navigation .wp-block-navigation-item.v32-buton > .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item.v32-buton > .wp-block-navigation-item__content:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

/* Meniul din antet se deschide fără alunecarea de intrare a WordPress: altfel
   butonul de închidere ar ajunge la locul lui (assets/js/meniu.js) abia după. */
.v32-antet .wp-block-navigation__responsive-container.is-menu-open {
	animation: none;
}

/* În meniul deschis pe telefon, butonul cât textul lui, nu cât ecranul. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.v32-buton > .wp-block-navigation-item__content {
	width: fit-content;
	margin-top: 0.5rem;
}

/*
 * Imaginea mare de sus (blocul Copertă cu clasa „v32-erou”, din
 * kb/pagini/acasa.md). Textul alb pe imaginea întunecată; primul buton plin,
 * alb, al doilea doar conturat, ca să nu concureze.
 */
.wp-block-cover.v32-erou :is(h1, h2, p) {
	color: var(--wp--preset--color--base);
}

/* Fără lățime maximă: blocul Copertă centrează orice e mai îngust decât
   coloana, iar titlul nu s-ar mai alinia cu butoanele și cu textul de dedesubt. */
.wp-block-cover.v32-erou h1 {
	text-wrap: balance;
}

.wp-block-cover.v32-erou .wp-block-button .wp-block-button__link {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
}

.wp-block-cover.v32-erou .wp-block-button + .wp-block-button .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	box-shadow: inset 0 0 0 1.5px currentColor;
}

/*
 * Caruselul din imaginea de sus (grupul „v32-carusel": coperta, apoi o
 * galerie ascunsă cu celelalte fotografii; assets/js/carusel.js). Ca pe
 * site-ul vechi: săgeți și puncte, fără derulare automată.
 */
.v32-carusel {
	position: relative;
}

.v32-carusel > .v32-carusel__diapozitive {
	display: none;
}

.v32-carusel .v32-carusel__diapozitiv {
	opacity: 0;
	transition: opacity 0.6s ease;
}

.v32-carusel .v32-carusel__diapozitiv.is-active {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.v32-carusel .v32-carusel__diapozitiv {
		transition: none;
	}
}

.v32-carusel__sageata {
	position: absolute;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 50%;
	background: rgb(0 0 0 / 0.25);
	color: var(--wp--preset--color--base);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.v32-carusel__sageata:hover,
.v32-carusel__sageata:focus-visible {
	background: rgb(0 0 0 / 0.5);
}

.v32-carusel__sageata--inapoi {
	left: 1rem;
}

.v32-carusel__sageata--inainte {
	right: 1rem;
}

.v32-carusel__puncte {
	position: absolute;
	bottom: 1rem;
	left: 50%;
	z-index: 2;
	display: flex;
	gap: 0.5rem;
	transform: translateX(-50%);
}

.v32-carusel__punct {
	width: 0.6rem;
	height: 0.6rem;
	padding: 0;
	border: 1.5px solid var(--wp--preset--color--base);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.v32-carusel__punct[aria-current="true"] {
	background: var(--wp--preset--color--base);
}

@media (max-width: 600px) {
	.v32-carusel__sageata {
		display: none;
	}
}

/*
 * Citatele oaspeților pe un rând („::: citate”, grupul v32-citate), pe
 * lățimea largă: trei fișe pe ecranul mare, a patra se vede pe margine, ca
 * să se înțeleagă că rândul continuă. Se derulează în lateral, cu oprire pe
 * fiecare fișă; săgețile de sub rând vin din assets/js/citate.js.
 */
.v32-citate {
	display: flex;
	gap: 1.5rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-block: 0.25rem;
}

.v32-citate::-webkit-scrollbar {
	display: none;
}

.v32-citate > .wp-block-quote {
	display: flex;
	flex: 0 0 min(85%, 23rem);
	flex-direction: column;
	margin: 0;
	padding: 1.5rem 1.5rem 1.25rem;
	/* Ca fișele de pe blog: albe, cu margine subțire și colțuri de 5px.
	   Stilul global al citatului pune border-width: 0 0 0 5px !important. */
	border: 1px solid var(--wp--preset--color--border-light);
	border-width: 1px !important;
	border-radius: 5px;
	background: var(--wp--preset--color--base);
	scroll-snap-align: start;
}

/* Ghilimeaua de deschidere, albastră, în fontul titlurilor. */
.v32-citate > .wp-block-quote::before {
	content: "\201C";
	height: 1.6rem;
	margin-bottom: 0.5rem;
	font-family: var(--wp--preset--font-family--secondary);
	font-size: 3.5rem;
	line-height: 1;
	color: var(--wp--preset--color--primary);
}

.v32-citate > .wp-block-quote p {
	margin: 0;
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.6;
}

.v32-citate > .wp-block-quote cite {
	margin-top: auto;
	padding-top: 1rem;
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	font-weight: 600;
}

/* Titlul de deasupra („Ce spun oaspeții?”) aliniat cu rândul, nu cu textul. */
.wp-block-heading:has(+ .v32-citate) {
	max-width: var(--wp--style--global--wide-size);
}

.v32-citate__sageti {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.v32-citate__sageti[hidden] {
	display: none;
}

.v32-citate__sageata {
	width: 2.5rem;
	height: 2.5rem;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
}

.v32-citate__sageata:hover:not(:disabled),
.v32-citate__sageata:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.v32-citate__sageata:disabled {
	opacity: 0.3;
	cursor: default;
}

/*
 * Rândul mic de deasupra titlului („#^” în kb/pagini/): clădirea, anul, câte
 * persoane. Ca în macheta lui Bogdan, pe paginile de cameră.
 */
.v32-supratitlu {
	margin-bottom: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.v32-supratitlu + h1 {
	margin-top: 0.25rem;
}

/* Pagina începe cu rândul mic, nu cu o imagine: îi dăm aer față de antet. */
.v32-lat:first-child > .v32-supratitlu:first-child {
	margin-top: 2.5rem;
}

/*
 * Galerie de carduri (fotografii-link, „::: galerie” cu legende-link): numele
 * sub fotografie, nu peste ea pe un gradient, ca în macheta lui Bogdan.
 */
.wp-block-gallery.v32-carduri figure.wp-block-image:not(#individual-image) :is(a, img) {
	flex: none;
}

.wp-block-gallery.v32-carduri figure.wp-block-image:not(#individual-image) img {
	aspect-ratio: 4 / 3;
	height: auto;
	border-radius: 5px;
}

.wp-block-gallery.v32-carduri figure.wp-block-image figcaption {
	/* WordPress pune o umbră pe text, pentru legenda albă peste fotografie;
	   pe fond alb, textul pare neclar. */
	text-shadow: none;
	position: static;
	max-height: none;
	margin: 0;
	padding: 0.5rem 0 0;
	/* WordPress lasă loc de bară de derulare de ambele părți (scrollbar-gutter),
	   și textul pare împins spre dreapta. Legenda noastră nu se derulează. */
	overflow: visible;
	scrollbar-gutter: auto;
	background: none;
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.4;
	text-align: left;
}

/* Numele camerei; dacă legenda are și o descriere, ea vine sub, mai mică. */
.wp-block-gallery.v32-carduri figure.wp-block-image figcaption a {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: 1.15rem;
	font-weight: 500;
	color: var(--wp--preset--color--main);
	text-decoration: none;
}

/* Butonul de după carduri („Vezi camerele”), centrat sub ele. */
.wp-block-gallery.v32-carduri + .wp-block-buttons {
	justify-content: center;
	/* Aer până la ce urmează: o bandă pe prima pagină, subsolul pe camere. */
	margin-bottom: var(--wp--preset--spacing--x-large);
}

/*
 * Patru sau cinci carduri (camerele, pe prima pagină și pe paginile de cameră): pe ecranele înguste nu se
 * strâng pe două coloane, cu a cincea întinsă, ci merg într-o bandă care se
 * derulează pe orizontală, câte un card odată.
 */
@media (max-width: 781px) {
	.wp-block-gallery.v32-carduri:is(.columns-4, .columns-5) {
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.5rem;
	}

	.wp-block-gallery.v32-carduri:is(.columns-4, .columns-5) figure.wp-block-image:not(#individual-image) {
		flex: 0 0 70%;
		width: auto;
		scroll-snap-align: start;
	}
}

.wp-block-gallery.v32-carduri figure.wp-block-image figcaption a:hover {
	text-decoration: underline;
}

/*
 * Stilul de bloc „Bandă de dovezi" (Grup): banda de sub imaginea mare, ca în
 * macheta lui Bogdan. Primul paragraf e eticheta; fiecare dovadă e un Grup
 * „v32-dovada” cu sigla (Imagine) și explicația (Paragraf, cu anul).
 *
 * Siglele sunt fișierele surselor, albite din CSS; la trecerea cu mouse-ul
 * își recapătă culorile, pe o plăcuță albă, și apare explicația dedesubt.
 * Pe ecranele fără mouse, explicația stă mereu sub siglă.
 */
.wp-block-group.is-style-banda {
	gap: 1rem 2.25rem;
	padding: 1.5rem var(--wp--style--root--padding-right, 1.5rem) 1.5rem var(--wp--style--root--padding-left, 1.5rem);
	background: var(--wp--preset--color--primary-alt-accent);
	color: var(--wp--preset--color--base);
	text-align: center;
}

.wp-block-group.is-style-banda > .v32-banda__eticheta {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--main-accent);
}

.is-style-banda .v32-dovada {
	position: relative;
}

.is-style-banda .v32-dovada > .wp-block-image {
	/* Centrată și când explicația de dedesubt e mai lată decât sigla. */
	width: fit-content;
	margin: 0 auto;
	padding: 0.5rem 0.75rem;
	border-radius: 6px;
	transition: background-color 0.2s;
}

/* O cutie comună, ca siglele late și cele înalte să cântărească la fel. */
.is-style-banda .v32-dovada img {
	display: block;
	width: 9.5rem;
	height: 2.75rem;
	object-fit: contain;
	filter: brightness(0) invert(1);
	transition: filter 0.2s;
}

.is-style-banda .v32-dovada > p {
	margin: 0.25rem auto 0;
	max-width: 11rem;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.35;
	color: var(--wp--preset--color--main-accent);
}

.is-style-banda .v32-dovada > p strong {
	color: var(--wp--preset--color--base);
}

@media (hover: hover) {
	.is-style-banda .v32-dovada:hover > .wp-block-image {
		background: var(--wp--preset--color--base);
	}

	.is-style-banda .v32-dovada:hover img {
		filter: none;
	}

	/* Explicația: o fișă sub siglă. Doar opacitate, nu visibility: rămâne
	   citită de cititoarele de ecran. */
	.is-style-banda:not(.v32-banda-note) .v32-dovada > p {
		position: absolute;
		top: calc(100% + 0.5rem);
		left: 50%;
		z-index: 5;
		width: max-content;
		max-width: 16rem;
		margin: 0;
		padding: 0.55rem 0.8rem;
		border-radius: 5px;
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--main);
		box-shadow: 0 6px 20px rgb(0 0 0 / 0.18);
		opacity: 0;
		transform: translate(-50%, -4px);
		transition: opacity 0.2s, transform 0.2s;
		pointer-events: none;
	}

	.is-style-banda:not(.v32-banda-note) .v32-dovada > p strong {
		color: var(--wp--preset--color--primary);
	}

	.is-style-banda:not(.v32-banda-note) .v32-dovada:hover > p {
		opacity: 1;
		transform: translate(-50%, 0);
	}
}

/*
 * Banda cu notele din recenzii („::: note”, clasa v32-banda-note), deasupra
 * subsolului: aceleași sigle, dar nota stă la vedere, mare, cu scara ei.
 */
.is-style-banda.v32-banda-note {
	gap: 1.25rem 3.5rem;
	padding-top: 2.25rem;
	padding-bottom: 2rem;
	margin-bottom: 0;
}

.is-style-banda.v32-banda-note > .v32-banda__eticheta,
.is-style-banda.v32-banda-note > .v32-banda__nota {
	flex-basis: 100%;
}

.is-style-banda.v32-banda-note .v32-dovada > p {
	max-width: none;
	font-size: var(--wp--preset--font-size--small);
}

.is-style-banda.v32-banda-note .v32-dovada > p strong {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 500;
}

.is-style-banda > .v32-banda__nota {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--main-accent);
}

/*
 * Banda cu profilurile („::: social”, clasa v32-banda-social): blocul
 * Iconițe sociale din WordPress, cu eticheta la vedere. Albe pe albastru; la
 * trecerea cu mouse-ul, pe o plăcuță albă, în culorile lor (aceleași pe care
 * le folosește WordPress la stilul „Doar logo-uri”).
 */
.is-style-banda.v32-banda-social {
	gap: 1rem 3rem;
	padding-top: 2.25rem;
	padding-bottom: 2rem;
}

.is-style-banda.v32-banda-social > .v32-banda__eticheta,
.is-style-banda.v32-banda-social > .v32-banda__nota {
	flex-basis: 100%;
}

.is-style-banda.v32-banda-social .wp-block-social-links {
	gap: 1rem 2.5rem;
	margin: 0;
}

.is-style-banda.v32-banda-social .wp-social-link {
	padding: 0.4rem 0.8rem;
	border-radius: 6px;
	color: var(--wp--preset--color--base);
	transition: background-color 0.2s, color 0.2s;
}

/* WordPress pune line-height: 0 pe link: o etichetă care s-ar rupe pe două
   rânduri s-ar suprapune. Stă pe un rând, mai mică pe telefon. */
.is-style-banda.v32-banda-social .wp-block-social-link-label {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	white-space: nowrap;
}

/* Pe telefon eticheta se poate rupe (înălțimea rândului e reparată mai sus):
   „Instagram · 38,9 mii de urmăritori” e mai lată decât un ecran de 390 px. */
@media (max-width: 599px) {
	.is-style-banda.v32-banda-social .wp-social-link {
		max-width: 100%;
	}

	.is-style-banda.v32-banda-social .wp-block-social-link-label {
		font-size: var(--wp--preset--font-size--medium);
		white-space: normal;
		text-align: left;
	}
}

.is-style-banda.v32-banda-social .wp-social-link:is(:hover, :focus-within) {
	background: var(--wp--preset--color--base);
}

.is-style-banda.v32-banda-social .wp-social-link-instagram:is(:hover, :focus-within) {
	color: #f00075;
}

.is-style-banda.v32-banda-social .wp-social-link-facebook:is(:hover, :focus-within) {
	color: #0866ff;
}

/* Două benzi una după alta (notele, apoi Instagram și Facebook): lipite, cu
   o linie subțire între ele. Ultima stă lipită de subsol. */
.wp-block-group.is-style-banda + .wp-block-group.is-style-banda {
	margin-block-start: 0;
	border-top: 1px solid rgb(255 255 255 / 0.12);
}

.is-style-banda.v32-banda-social {
	margin-bottom: 0;
}

/* Lipită de imaginea mare, fără spațiul dintre blocuri. */
.v32-erou + .wp-block-group.is-style-banda {
	margin-block-start: 0;
}

/*
 * Cardurile camerelor pe pagina „Camere" (blocul Media și text, „::: media”):
 * fotografia cu colțuri rotunjite, decupată la fel la toate, și aer între ele.
 */
.wp-block-media-text.alignwide {
	margin-block: 2.5rem;
}

.wp-block-media-text > .wp-block-media-text__media img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
}

.wp-block-media-text > .wp-block-media-text__content > .wp-block-heading {
	margin-top: 0.25rem;
}

.wp-block-media-text > .wp-block-media-text__content > .wp-block-heading a {
	text-decoration: none;
}

/*
 * Întrebările (blocul Detalii, „::: intrebare”): o linie subțire între ele,
 * întrebarea îngroșată, cu „+” care devine „−” când e deschisă.
 */
.wp-block-details {
	margin: 0;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border-light);
}

.wp-block-details > summary {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details > summary::after {
	content: "+";
	color: var(--wp--preset--color--primary);
}

.wp-block-details[open] > summary::after {
	content: "−";
}

.wp-block-details > summary + * {
	margin-top: 0.6rem;
}

/*
 * Un cadru din video care duce la video („::: video”, clasa v32-video): nu
 * încărcăm playerul platformei, doar fotografia, cu semnul de redare peste.
 * Reel-urile sunt verticale; decupate 4:5, ca secțiunea să nu fie prea înaltă.
 */
.wp-block-media-text.v32-video > .wp-block-media-text__media img {
	aspect-ratio: 4 / 5;
}

/* Secțiunea cu video e o singură unitate: fond de var, colțuri rotunjite,
   titlul în dreptul fotografiei, nu deasupra, pe altă lățime. */
.wp-block-media-text.v32-video {
	padding: clamp(1rem, 3vw, 2rem);
	border-radius: 8px;
	background: var(--wp--preset--color--tertiary);
}

.wp-block-media-text.v32-video > .wp-block-media-text__content > .wp-block-heading:first-child {
	margin-top: 0;
}

.v32-video > .wp-block-media-text__media a {
	position: relative;
	display: block;
}

.v32-video > .wp-block-media-text__media a::after {
	content: "";
	position: absolute;
	/* Mai jos de mijloc: reel-urile au adesea text chiar în centrul cadrului. */
	top: 72%;
	left: 50%;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: rgb(0 0 0 / 0.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M8 5v14l11-7z'/%3E%3C/svg%3E") 55% 50% / 45% no-repeat;
	transform: translate(-50%, -50%);
	transition: transform 0.2s, background-color 0.2s;
}

.v32-video > .wp-block-media-text__media a:is(:hover, :focus-visible)::after {
	background-color: rgb(0 0 0 / 0.75);
	transform: translate(-50%, -50%) scale(1.08);
}

/*
 * Articolul (patterns/articol.php): imaginea reprezentativă pe toată lățimea,
 * lipită de linia antetului, fără întunecare. Categoria și titlul stau pe ea,
 * evidențiate ca un marker: categoria pe albastrul cahlei, titlul pe alb,
 * rând cu rând (box-decoration-break), ca să se citească pe orice fotografie.
 */
.wp-block-cover.v32-articol-erou {
	min-height: clamp(360px, 62vh, 680px);
	margin-top: 0;
	padding-bottom: clamp(1.5rem, 4vw, 3rem);
}

/* Un articol fără imagine: titlul direct pe alb, fără spațiul fotografiei. */
.wp-block-cover.v32-articol-erou:not(:has(img)) {
	min-height: 0;
	padding-top: var(--wp--preset--spacing--x-large);
}

.v32-articol-titlu {
	max-width: 52rem;
}

.v32-articol-titlu > .wp-block-post-terms {
	/* Pe rândul ei, deasupra titlului, cât textul, nu cât rândul. */
	display: block;
	width: fit-content;
	margin: 0 0 0.75rem;
	padding: 0.3rem 0.65rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.v32-articol-titlu > .wp-block-post-terms a {
	color: inherit;
	text-decoration: none;
}

.v32-articol-titlu > .wp-block-post-title {
	display: inline;
	margin: 0;
	/* Mai mult loc sus decât jos: fontul stă sus în cutia lui, iar cu
	   același spațiu literele mari ajungeau lipite de marginea albă. */
	padding: 0.2em 0.35em 0.08em;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
	font-size: clamp(1.9rem, 4.2vw, 3.25rem);
	line-height: 1.6;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/*
 * Imaginea de sus a paginilor („::: erou-evidentiat”, clasa
 * v32-erou-evidentiat), ca la articole: fotografia pe toată lățimea, lipită de
 * antet, neîntunecată; rândul mic pe albastrul cahlei și titlul pe alb, ca un
 * marker. Textul pornește de la marginea coloanei late, ca restul paginii.
 */
.wp-block-cover.v32-erou-evidentiat {
	min-height: clamp(360px, 62vh, 680px);
	margin-top: 0;
	padding-bottom: clamp(1.5rem, 4vw, 3rem);
}

/* WordPress pune „width: auto; margin: 0” pe conținutul unei Coperte cu
   poziție aleasă (aici „jos, stânga”), cu clasa dublată ca să câștige. */
.wp-block-cover:is(.v32-erou-evidentiat, .v32-articol-erou).has-custom-content-position.has-custom-content-position > .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.v32-erou-evidentiat > .wp-block-cover__inner-container > * {
	max-width: 52rem;
	margin-left: 0;
}

.v32-erou-evidentiat .v32-supratitlu {
	display: block;
	width: fit-content;
	margin: 0 0 0.75rem;
	/* Așezarea „constrained” a WordPress centrează copiii cu margin: auto
	   !important; rândul mic, cât textul, ar ajunge la mijloc. */
	margin-left: 0 !important;
	padding: 0.3rem 0.65rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.v32-erou-evidentiat h1 {
	display: inline;
	margin: 0;
	/* Mai mult loc sus decât jos: fontul stă sus în cutia lui, iar cu
	   același spațiu literele mari ajungeau lipite de marginea albă. */
	padding: 0.2em 0.35em 0.08em;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
	font-size: clamp(1.9rem, 4.2vw, 3.25rem);
	line-height: 1.6;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/*
 * Banda cu îndemnul la rezervare („::: banda-cta”, clasa v32-banda-cta), pe
 * paginile de cameră, între cameră și „Celelalte camere”. Subțire, ca să nu
 * ascundă camerele de dedesubt: textul în stânga, butoanele în dreapta, pe un
 * rând (grupul lat din mijloc îl aliniază WordPress cu restul paginii); pe
 * ecranele înguste, butoanele trec dedesubt.
 */
.is-style-banda.v32-banda-cta {
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
	text-align: left;
}

.v32-banda-cta > .alignwide {
	gap: 1rem 2.5rem;
	align-items: center;
}

.v32-banda-cta > .alignwide > .wp-block-group {
	flex: 1 1 24rem;
	max-width: 44rem;
}

.v32-banda-cta h2 {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--large);
	text-wrap: balance;
}

.v32-banda-cta p {
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--main-accent);
	font-size: var(--wp--preset--font-size--small);
}

.v32-banda-cta .wp-block-buttons {
	margin: 0;
}

.v32-banda-cta .wp-block-button__link {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
}

.v32-banda-cta .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	box-shadow: inset 0 0 0 1.5px currentColor;
	border: 0;
}

/*
 * Harta de pe „How to Reach Us" („::: harta”, plugin/inc/contact.php):
 * OpenStreetMap, cu marginea și colțurile fișelor.
 */
.v32-harta {
	margin-block: var(--wp--preset--spacing--medium);
}

.v32-harta iframe {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 1;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 5px;
}

@media (max-width: 599px) {
	.v32-harta iframe {
		aspect-ratio: 4 / 3;
	}
}

/* Într-o coloană, lângă adresă: harta ține toată înălțimea coloanei, cu un
   minim pentru când coloanele se așază una sub alta. */
.wp-block-column > .v32-harta {
	height: 100%;
	max-width: none;
	margin: 0;
}

.wp-block-column > .v32-harta iframe {
	height: 100%;
	min-height: 20rem;
	aspect-ratio: auto;
}

/*
 * Formularul de contact („::: formular”, plugin/inc/contact.php): numele și
 * adresa alăturate, mesajul pe toată lățimea, câmpurile ca fișele.
 */
.v32-formular {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 1rem 1.25rem;
}

.v32-formular > p {
	margin: 0;
}

.v32-formular__camp--lat,
.v32-formular__jos,
.v32-formular__aviz {
	grid-column: 1 / -1;
}

.v32-formular__camp label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.v32-formular__camp :is(input, textarea) {
	box-sizing: border-box;
	width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 5px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
	font: inherit;
}

.v32-formular__camp :is(input, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--primary);
}

.v32-formular__jos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
}

.v32-formular__nota {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--secondary);
}

/* Capcana pentru roboți: în afara ecranului, nu display: none, pe care unii
   roboți îl recunosc și îl ocolesc. */
.v32-formular__capcana {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.v32-formular__aviz {
	padding: 0.75rem 1rem;
	border-radius: 5px;
	font-size: var(--wp--preset--font-size--small);
}

.v32-formular__aviz--ok {
	border: 1px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary-accent);
	color: var(--wp--preset--color--main);
}

.v32-formular__aviz--eroare {
	border: 1px solid #b42318;
	color: #b42318;
}

/*
 * Steagul țării de după numele oaspetelui, în citate („— Virgil (UK)” în
 * kb/pagini/; scripts/pagini.py, STEAGURI). Toate în aceeași cutie 3:2,
 * cu o margine fină, ca steagul alb-roșu să nu se piardă pe alb.
 */
.v32-steag {
	display: inline-block;
	width: 1.35em;
	height: 0.9em;
	margin-left: 0.3em;
	vertical-align: -0.05em;
	border-radius: 2px;
	background: center / cover no-repeat;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 0.12);
}

.v32-steag--gb { background-image: url("assets/images/steaguri/gb.svg"); }
.v32-steag--ro { background-image: url("assets/images/steaguri/ro.svg"); }
.v32-steag--no { background-image: url("assets/images/steaguri/no.svg"); }
