/*
 * OPAL · ami a theme.json-ba nem fér: rács, állapot, hover, fókusz, a Woo blokkjainak megjelenése.
 * Szín és méret csak a theme.json presetjeiből (var(--wp--preset--…), var(--wp--custom--…)); hexa érték nincs.
 * Lekerekítés 0, árnyék, gradiens, blur nincs. Kivétel csak ami maga kör: színkör, buborék.
 */

/* ---------- Rövid nevek a tokenekhez ---------- */
:root {
	--o-alap: var(--wp--preset--color--alap);
	--o-mely: var(--wp--preset--color--mely);
	--o-papir: var(--wp--preset--color--papir);
	--o-tinta: var(--wp--preset--color--tinta);
	--o-masod: var(--wp--preset--color--masod);
	--o-halvany: var(--wp--preset--color--halvany);
	--o-vonal: var(--wp--preset--color--vonal);
	--o-vonal-ero: var(--wp--preset--color--vonal-ero);
	--o-rossz: var(--wp--preset--color--rossz);
	--o-rossz-szoveg: var(--wp--preset--color--rossz-szoveg);
	--o-siker: var(--wp--preset--color--mohazold);
	--o-foto: var(--wp--custom--termekfoto--hatter);

	--o-cimke: var(--wp--preset--font-size--cimke);
	--o-szoveg: var(--wp--preset--font-size--szoveg);
	--o-ar: var(--wp--preset--font-size--ar);
	--o-termeknev: var(--wp--preset--font-size--termeknev);
	--o-oldalcim: var(--wp--preset--font-size--oldalcim);
	--o-kollekcio: var(--wp--preset--font-size--kollekcio);

	--o-s1: var(--wp--preset--spacing--1);
	--o-s2: var(--wp--preset--spacing--2);
	--o-s3: var(--wp--preset--spacing--3);
	--o-s4: var(--wp--preset--spacing--4);
	--o-s5: var(--wp--preset--spacing--5);
	--o-s6: var(--wp--preset--spacing--6);
	--o-s7: var(--wp--preset--spacing--7);
	--o-s8: var(--wp--preset--spacing--8);
	--o-s9: var(--wp--preset--spacing--9);

	--o-margo: var(--wp--custom--oldal--margo);
	--o-max: var(--wp--custom--oldal--max);
	--o-szekcio: var(--wp--custom--szekciokoz);
	--o-hasab: var(--wp--custom--szovegoszlop--marketing);
	--o-jogi: var(--wp--custom--szovegoszlop--jogi);
	--o-gomb: var(--wp--custom--vezerlo--magas);
	--o-gomb-kicsi: var(--wp--custom--vezerlo--kicsi);
	--o-gorbe: var(--wp--custom--mozgas--gorbe);
	--o-gyors: var(--wp--custom--mozgas--gyors);
	--o-usztat: var(--wp--custom--mozgas--usztatas);
	--o-nyit: var(--wp--custom--mozgas--nyitas);
	--o-hajszal: 1px;
}

/* ---------- Alap ---------- */
body {
	-webkit-font-smoothing: antialiased;
	font-variant-numeric: tabular-nums;
	text-wrap: pretty;
}
*, *::before, *::after { border-radius: 0; box-shadow: none; }
::selection { background: var(--o-tinta); color: var(--o-alap); }
a { text-decoration-thickness: var(--o-hajszal); text-underline-offset: 3px; text-decoration-color: var(--o-masod); transition: color var(--o-gyors) var(--o-gorbe), text-decoration-color var(--o-gyors) var(--o-gorbe), border-color var(--o-gyors) var(--o-gorbe); }
a:hover { text-decoration-color: var(--o-tinta); }
:focus-visible { outline: var(--wp--custom--fokusz--vastag) solid var(--o-tinta); outline-offset: var(--wp--custom--fokusz--eltolas); }
strong, b { font-weight: 500; }
h1, h2, h3, h4, h5, h6 { text-wrap: balance; margin: 0; }
p { margin: 0; }
/* 40 px alatt nincs 300-as súly: az oldalcím 900 px alatt 40 px alá megy, ott 400-as. */
@media (max-width: 899px) {
	h2:not(.has-kollekcio-font-size), .has-oldalcim-font-size,
	.opal-ajto__cim, .opal-termeklap__ar .wc-block-components-product-price { font-weight: 400 !important; }
}
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }
.opal-cimke { font-size: var(--o-cimke); font-weight: 500; line-height: 1.2; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; }
.opal-halk, .opal-bevezeto { color: var(--o-masod); }
.opal-bevezeto { max-width: var(--o-hasab); }
.opal-hasab { max-width: var(--o-hasab); }
.opal-hasab > * + * { margin-top: var(--o-s4); }
.opal-ikon { display: inline-block; flex: none; vertical-align: middle; }

/* Ikon CSS-maszkkal (a design system ikoncsaládja), mindig a szöveg színében. */
.opal-gomb-nyil .wp-block-button__link::after,
.opal-ikonos::before,
.opal-akkordeon__elem > summary::after,
.single_add_to_cart_button::before,
.opal-valaszto__ok::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: var(--o-ikon) center / contain no-repeat;
	mask: var(--o-ikon) center / contain no-repeat;
}
.opal-gomb-nyil .wp-block-button__link::after { --o-ikon: url(../images/ikonok/jobbra.svg); }
.single_add_to_cart_button::before { --o-ikon: url(../images/ikonok/kosar.svg); }
.opal-ikonos--email::before { --o-ikon: url(../images/ikonok/email.svg); }
.opal-ikonos--telefon::before { --o-ikon: url(../images/ikonok/telefon.svg); }
.opal-valaszto__ok::before { --o-ikon: url(../images/ikonok/informacio.svg); width: 16px; height: 16px; }

/* A blokkok közötti térközt a téma adja (blockGap 0): a folyó szövegben itt. */
.opal-tartalom-szoveg > * + *,
.wp-block-post-content.opal-tartalom > :not(.opal-szakasz):not(.opal-ajto-resz) + :not(.opal-szakasz):not(.opal-ajto-resz) { margin-top: var(--o-s4); }

/* ---------- Oldalkeret ---------- */
.opal-fo { min-height: 50vh; }
.opal-szakasz,
.opal-kollekcio,
.opal-szovegoldal,
.opal-kosar,
.opal-penztar,
.opal-koszono,
.opal-404,
.opal-tartalom > .opal-szakasz {
	max-width: var(--o-max);
	margin-inline: auto;
	padding-inline: var(--o-margo);
	box-sizing: border-box;
}
.opal-szakasz { margin-top: var(--o-szekcio); }
.opal-szakasz__fej { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--o-s3) var(--o-s6); margin-bottom: 40px; }
.opal-szakasz__fej > p { max-width: var(--o-hasab); }
.opal-szakasz__fej--lent { align-items: end; margin-top: 56px; }
.opal-szakasz__cim { margin-bottom: 40px; }
.opal-szakasz__gomb { margin-top: 40px; }
.opal-kampanysav:empty { display: none; }

/* ---------- Gombok ---------- */
.wp-element-button,
.wp-block-button__link,
.opal-gomb {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: var(--o-gomb);
	box-sizing: border-box;
	padding: 0 var(--wp--custom--vezerlo--oldal-padding);
	border: var(--o-hajszal) solid var(--o-tinta);
	background: var(--o-tinta);
	color: var(--o-alap);
	font-family: inherit;
	font-size: var(--o-cimke);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--o-gyors) var(--o-gorbe), border-color var(--o-gyors) var(--o-gorbe), color var(--o-gyors) var(--o-gorbe);
}
.opal-gomb:hover { background: var(--o-papir); border-color: var(--o-papir); color: var(--o-alap); }
.is-style-masodlagos .wp-block-button__link,
.opal-gomb--masodlagos {
	background: transparent;
	border-color: var(--o-masod);
	color: var(--o-tinta);
}
.is-style-masodlagos .wp-block-button__link:hover,
.opal-gomb--masodlagos:hover { background: transparent; border-color: var(--o-tinta); color: var(--o-tinta); }
.is-style-szoveggomb .wp-block-button__link,
.opal-szoveggomb {
	background: transparent;
	border-color: transparent;
	padding: 0 2px;
	color: var(--o-masod);
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 6px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	font-size: var(--o-cimke);
	font-weight: 500;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
}
.is-style-szoveggomb .wp-block-button__link:hover,
.opal-szoveggomb:hover { background: transparent; border-color: transparent; color: var(--o-tinta); }
.opal-gomb--kicsi { min-height: var(--o-gomb-kicsi); padding: 0 18px; }
.opal-gomb--teljes { width: 100%; }
.opal-gombsor { display: flex; flex-wrap: wrap; gap: var(--o-s2); }
/* Letiltva: fókuszálható marad (aria-disabled), és mindig van mellette írott indoklás. */
[aria-disabled="true"].wp-element-button,
[aria-disabled="true"].opal-gomb,
.single_add_to_cart_button[aria-disabled="true"],
.single_add_to_cart_button.disabled {
	background: var(--o-mely) !important;
	border-color: var(--o-vonal) !important;
	color: var(--o-halvany) !important;
	cursor: not-allowed;
	opacity: 1 !important;
}
.opal-halk-link { color: var(--o-masod); }

/* ---------- Fejléc ---------- */
.opal-fejlec-resz { position: sticky; top: 0; z-index: 50; }
.admin-bar .opal-fejlec-resz { top: var(--wp-admin--admin-bar--height, 0px); }
.opal-fejlec { border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.opal-fejlec__sor {
	max-width: var(--o-max);
	margin: 0 auto;
	padding: 0 var(--o-margo);
	box-sizing: border-box;
	height: 84px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
}
.opal-fejlec__logo { display: block; }
.opal-fejlec__logo img { display: block; width: 150px; height: auto; }
.opal-fejlec__ikonok { justify-self: end; }
.opal-fomenu ul { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(16px, 2.2vw, 32px); }
.opal-fomenu a {
	min-height: 44px;
	display: flex;
	align-items: center;
	color: var(--o-masod);
	text-decoration: none;
	white-space: nowrap;
	font-size: var(--o-cimke);
	font-weight: 500;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
}
.opal-fomenu a:hover,
.opal-fomenu a[aria-current] { color: var(--o-tinta); }
.opal-fomenu a[aria-current] { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--o-tinta); }
.opal-fomenu--mobil { display: none; border-top: var(--o-hajszal) solid var(--o-vonal); overflow-x: auto; padding: 0 20px; }
.opal-fomenu--mobil ul { gap: var(--o-s5); }
@media (max-width: 899px) {
	.opal-fomenu--sor { display: none; }
	.opal-fomenu--mobil { display: block; }
	.opal-fejlec__sor { grid-template-columns: 1fr auto; height: 64px; }
	.opal-fejlec__logo img { width: 120px; }
}
.opal-ikongomb {
	width: var(--wp--custom--vezerlo--ikongomb);
	height: var(--wp--custom--vezerlo--ikongomb);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	box-sizing: border-box;
	border: var(--o-hajszal) solid transparent;
	color: var(--o-tinta);
}
.opal-ikongomb:hover { border-color: var(--o-vonal-ero); }
.opal-kosar-ikon__szam {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	box-sizing: border-box;
	background: var(--o-tinta);
	color: var(--o-alap);
	font-size: var(--o-cimke);
	font-weight: 500;
	line-height: 18px;
	text-align: center;
}

/* ---------- Lábléc ---------- */
.opal-lablec-resz { margin-top: var(--o-szekcio); }
.opal-lablec { border-top: var(--o-hajszal) solid var(--o-vonal); }
.opal-lablec__racs {
	max-width: var(--o-max);
	margin: 0 auto;
	box-sizing: border-box;
	padding: 64px var(--o-margo) 48px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 40px var(--o-s6);
}
.opal-lablec__logo img { display: block; width: 200px; height: auto; }
.opal-lablec__oszlop { display: flex; flex-direction: column; gap: 10px; color: var(--o-masod); }
.opal-lablec__oszlop a { color: var(--o-masod); text-decoration: none; min-height: 24px; }
.opal-lablec__oszlop a:hover { color: var(--o-tinta); text-decoration: underline; }
.opal-lablec__cim { color: var(--o-tinta); margin-bottom: 6px; }
.opal-lablec__also {
	max-width: var(--o-max);
	margin: 0 auto;
	box-sizing: border-box;
	padding: 18px var(--o-margo) 28px;
	border-top: var(--o-hajszal) solid var(--o-vonal);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--o-s2) var(--o-s5);
	font-size: var(--o-cimke);
	color: var(--o-masod);
}

/* A kategóriaajtó után a lábléc köz nélkül következik (a terv szerint az ajtó zárja az oldalt). */
.opal-ajto + .opal-lablec-resz,
.opal-fo:has(.opal-ajto:last-child) + .opal-lablec-resz { margin-top: 0; }

/* ---------- Kampánysáv ---------- */
/* DEMO-csík (a megbízó kérése): valódi piros, fehér szöveg (5,9:1), egy sorban. */
.opal-demo-sav { background-color: var(--wp--custom--demo--piros) !important; border-bottom: 0; }
.opal-demo-sav > p { color: var(--o-papir) !important; padding-block: var(--o-s4); font-size: var(--o-ar); line-height: 1.3; text-align: center; }
.opal-demo-sav strong { font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); }
@media (max-width: 599px) { .opal-demo-sav > p { font-size: var(--o-szoveg); line-height: 1.35; padding-block: var(--o-s2); } }
.opal-kampany { border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.opal-kampany > p { max-width: var(--o-max); margin: 0 auto; padding: var(--o-s3) var(--o-margo); box-sizing: border-box; color: var(--o-masod); }

/* ---------- Hero ---------- */
/* A hero teljes szélességű (a megbízó döntése, 2026-10-05): 1376 px felett a kép felnagyítva fut ki. */
.opal-hero { max-width: none; width: 100%; margin: 0; position: relative; }
.opal-hero__kep { margin: 0; aspect-ratio: 1376 / 768; background: var(--o-mely); overflow: hidden; }
/* A cím és a gomb ne kerüljön hajtás alá: a hero legfeljebb a látható terület (a DEMO-csík és a fejléc ~140 px-e után). */
@media (min-width: 900px) {
	.opal-hero__kep { max-height: max(440px, calc(100svh - 140px)); width: 100%; }
}
.opal-hero__kep img { width: 100%; height: 100%; object-fit: cover; display: block; }
.opal-hero__szoveg { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; }
.opal-hero__cim { font-size: var(--wp--custom--hero--cim); font-weight: 300; line-height: 1.05; letter-spacing: var(--wp--custom--betukoz--kollekcio); max-width: 22ch; }
@media (min-width: 900px) {
	.opal-hero__szoveg { position: absolute; left: 0; right: 0; bottom: clamp(56px, 9vh, 120px); padding: 0 var(--o-s5); }
}
@media (max-width: 899px) {
	.opal-hero__szoveg { align-items: flex-start; text-align: left; padding: var(--o-s6) 20px 0; }
}

/* ---------- Belépők (négy stílus, három szín) ---------- */
.opal-belepok {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(240px, 1fr);
	gap: var(--o-s6);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: var(--o-s2);
}
.opal-belepo { position: relative; display: flex; flex-direction: column; gap: 14px; scroll-snap-align: start; }
.opal-belepo__kep { margin: 0; aspect-ratio: 1 / 1; background: var(--o-mely); overflow: hidden; }
.opal-belepo__kep img,
.opal-belepo > picture img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter var(--o-usztat) var(--o-gorbe); }
.opal-belepo:hover img { filter: brightness(1.08); }
.opal-belepo__nev a { color: var(--o-tinta); text-decoration: none; }
.opal-belepo__nev a::after { content: ""; position: absolute; inset: 0; }
.opal-belepo:has(a:focus-visible) { outline: var(--wp--custom--fokusz--vastag) solid var(--o-tinta); outline-offset: var(--wp--custom--fokusz--eltolas); }
.opal-belepo a:focus-visible { outline: none; }
.opal-szinek { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 2.4vw, 32px); }
.opal-szinek + .opal-hasab { margin-top: 40px; }
.opal-belepo--kategoria { text-decoration: none; color: var(--o-tinta); }
.opal-belepo--kategoria img { aspect-ratio: 4 / 3; width: 100%; height: auto; object-fit: cover; display: block; }

/* Színkör: gyűrű (vonal-erő) és a szín, mindig névvel. Kör, mert az üveget jelöli. */
.opal-szinnev,
.opal-szinkor-gyuru { --o-uveg: var(--o-vonal); }
.opal-szinnev--borostyan, .opal-szinkor-gyuru--borostyan, .opal-szinkor--borostyan { --o-uveg: var(--wp--preset--color--borostyan); }
.opal-szinnev--kobalt, .opal-szinkor-gyuru--kobalt, .opal-szinkor--kobalt { --o-uveg: var(--wp--preset--color--kobalt); }
.opal-szinnev--mohazold, .opal-szinkor-gyuru--mohazold, .opal-szinkor--mohazold { --o-uveg: var(--wp--preset--color--mohazold); }
.opal-szinnev { display: flex; align-items: center; gap: 12px; }
.opal-szinnev::before,
.opal-szinkor-gyuru {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--o-uveg);
	outline: var(--o-hajszal) solid var(--o-vonal-ero);
	outline-offset: 3px;
	margin: 4px;
}
.opal-szinnev a { color: var(--o-tinta); text-decoration: none; }

/* ---------- Kétosztatú, tények, buboréksor, portré helye ---------- */
.opal-ketosztatu { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(40px, 6vw, 96px); align-items: start; }
.opal-ketosztatu--kozep { align-items: center; }
.opal-ketosztatu__kep { margin: 0; background: var(--o-mely); }
.opal-ketosztatu__kep img { width: 100%; height: auto; aspect-ratio: 1200 / 896; object-fit: cover; display: block; }
.opal-ketosztatu__kep--negyzet { max-width: 560px; justify-self: center; width: 100%; }
.opal-ketosztatu__kep--negyzet img { aspect-ratio: 1 / 1; }
.opal-ketosztatu__szoveg { display: flex; flex-direction: column; gap: var(--o-s5); }
.opal-ketosztatu__szoveg.opal-hasab > * + * { margin-top: 0; }
.is-style-szandekosan-ures {
	border: var(--o-hajszal) dashed var(--o-vonal-ero);
	padding: var(--o-s4);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--o-s2);
	color: var(--o-masod);
	width: min(100%, 220px);
	aspect-ratio: 4 / 5;
	box-sizing: border-box;
}
.is-style-szandekosan-ures .opal-cimke { color: var(--o-tinta); }
.opal-portre-hely--rolunk { width: min(100%, 260px); margin: var(--o-s6) auto 0 max(var(--o-margo), calc((100% - var(--o-max)) / 2 + var(--o-margo))); }

.opal-buboreksor { position: relative; height: 16px; display: flex; align-items: center; justify-content: space-between; }
.opal-buboreksor::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: var(--o-hajszal); background: var(--o-vonal-ero); }
.opal-buborek { position: relative; flex: none; width: var(--d); height: var(--d); box-sizing: border-box; border-radius: 50%; border: var(--o-hajszal) solid var(--o-masod); background: var(--o-alap); }
.opal-buborek--tomor { background: var(--o-masod); }
.opal-tenyek-szakasz__cim { margin: 64px 0 40px; }
.opal-tenyek { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 var(--o-s6); }
.opal-teny { border-top: var(--o-hajszal) solid var(--o-vonal); padding: 20px 0 var(--o-s6); display: flex; flex-direction: column; gap: 10px; }
.opal-teny__ertek { letter-spacing: var(--wp--custom--betukoz--termeknev); }

/* Fújásív: nyitóelem, a végein hajszál, középen 7 px. Oldalanként egyszer. */
.opal-fujasiv.wp-block-separator {
	border: 0;
	height: 7px;
	margin: clamp(40px, 5vw, 64px) 0 0;
	background: var(--o-vonal-ero);
	clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
	opacity: 1;
}

/* ---------- Kollekció, keresés ---------- */
.opal-kollekcio__fej {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: var(--o-s5) var(--o-s7);
	padding: clamp(56px, 8vw, 112px) 0 var(--o-s7);
}
.opal-kollekcio__cim { display: flex; flex-direction: column; gap: 20px; }
.opal-kollekcio__cim h1 { font-size: var(--o-kollekcio); }
.opal-kereses-cim { overflow-wrap: anywhere; }
.opal-talalatszam { font-size: var(--o-ar); line-height: 1.3; white-space: nowrap; }
@media (max-width: 599px) {
	.opal-kollekcio__fej { grid-template-columns: minmax(0, 1fr); }
}
.opal-kereso { margin: var(--o-s5) 0 0; }
.opal-kereso .wp-block-search__inside-wrapper { gap: var(--o-s2); border: 0; padding: 0; }
.opal-kereso .wp-block-search__input,
.opal-mezo input,
.opal-mezo textarea,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	min-height: var(--o-gomb);
	box-sizing: border-box;
	padding: 0 14px;
	border: var(--o-hajszal) solid var(--o-masod);
	background: transparent;
	color: var(--o-tinta);
	font: inherit;
	font-size: var(--o-szoveg);
}
.wpcf7 textarea, .opal-mezo textarea { padding: 14px; min-height: 160px; resize: vertical; }
::placeholder { color: var(--o-masod); opacity: 1; }

.opal-szurosav { border-top: var(--o-hajszal) solid var(--o-vonal); border-bottom: var(--o-hajszal) solid var(--o-vonal); padding: 20px 0; }
.opal-szurosav__sor { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--o-s5) clamp(32px, 4vw, 56px); }
.opal-szurocsoport > .opal-cimke { color: var(--o-masod); margin-bottom: var(--o-s3); }
.opal-szurocsoport--sorrend { margin-left: auto; }
@media (max-width: 899px) { .opal-szurocsoport--sorrend { margin-left: 0; } }
.opal-chipsor { display: flex; flex-wrap: wrap; gap: var(--o-s2); }
.opal-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--o-s2);
	min-height: 44px;
	padding: 0 var(--o-s4);
	box-sizing: border-box;
	border: var(--o-hajszal) solid var(--o-masod);
	color: var(--o-masod);
	text-decoration: none;
	font-size: var(--o-cimke);
	font-weight: 500;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
}
.opal-chip:hover,
.opal-chip[aria-current] { border-color: var(--o-tinta); color: var(--o-tinta); }
.opal-chip--szin { border-color: transparent; padding: 0 4px; gap: 12px; color: var(--o-tinta); font-size: var(--o-szoveg); font-weight: 400; letter-spacing: 0; text-transform: none; }
.opal-chip--szin:hover { border-color: transparent; }
.opal-chip--szin[aria-current] { border-color: transparent; text-decoration: underline; text-underline-offset: 5px; }
.opal-chip--szin[aria-current] .opal-szinkor-gyuru { outline-color: var(--o-tinta); }
.opal-chipsor:has(.opal-chip--szin) { gap: var(--o-s2) var(--o-s5); }
.opal-szurosav__aktiv { padding-top: var(--o-s4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-s2) var(--o-s3); }
.opal-chip--aktiv { border-color: var(--o-tinta); color: var(--o-tinta); padding: 0 10px 0 14px; gap: 10px; }
.opal-jelmagyarazat { padding-top: var(--o-s4); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--o-s2) var(--o-s6); color: var(--o-masod); }
.opal-jelmagyarazat__sor { display: grid; grid-template-columns: 96px 1fr; gap: var(--o-s2); }
.opal-jelmagyarazat__sor strong { color: var(--o-tinta); font-weight: 400; }

/* Termékrács: ≥1280 → 4 · 900–1279 → 3 · <900 → 2 oszlop; köz 32 / 44, 600 alatt 16. */
.opal-termekracs { margin-top: var(--wp--custom--racs--szurosav-utan); transition: opacity 200ms var(--o-gorbe); }
.opal-termekracs.opal-szur,
.opal-stilussorok.opal-szur { opacity: .4; }
.opal-racs.wc-block-product-template,
ul.opal-racs {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: var(--wp--custom--racs--koz-x);
	row-gap: var(--wp--custom--racs--koz-y);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (max-width: 1279px) { .opal-racs.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899px) { .opal-racs.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .opal-racs.wc-block-product-template { column-gap: var(--wp--custom--racs--koz-x-mobil); } }
.opal-racs.wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0; }
.opal-racs--sor.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* Termékkártya. A megbízó szabálya szerint a kártya a mély felületen ül (CLAUDE.md). */
.opal-kartya {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--o-mely);
	color: var(--o-tinta);
	min-width: 0;
	padding-bottom: var(--wp--custom--kartya--belso);
}
.opal-kartya > :not(.opal-kartya__kep) { margin-inline: var(--wp--custom--kartya--belso); }
.opal-kartya__kep { aspect-ratio: 1 / 1; background: var(--o-foto); overflow: hidden; margin-bottom: var(--wp--custom--kartya--kep-utan); }
.opal-kartya__kep img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter var(--o-usztat) var(--o-gorbe); }
.opal-kartya:hover .opal-kartya__kep img { filter: brightness(1.08); }
.opal-kartya__kep--nincs { display: flex; align-items: center; justify-content: center; padding: var(--o-s4); text-align: center; color: var(--o-masod); outline: var(--o-hajszal) solid var(--o-vonal); outline-offset: -1px; }
.opal-kartya__jelveny { display: flex; margin-bottom: var(--wp--custom--kartya--jelveny-utan); }
.opal-kartya__nev {
	margin-top: 0;
	margin-bottom: var(--wp--custom--kartya--nev-utan);
	font-size: var(--o-termeknev);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: var(--wp--custom--betukoz--termeknev);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}
@media (max-width: 599px) {
	.opal-kartya__nev { font-size: var(--o-ar); line-height: 1.3; letter-spacing: 0; }
	.opal-kartya { padding-bottom: var(--o-s3); }
	.opal-kartya > :not(.opal-kartya__kep) { margin-inline: var(--o-s2); }
}
.opal-kartya__nev a { color: inherit; text-decoration: none; }
.opal-kartya__nev a::after { content: ""; position: absolute; inset: 0; }
.opal-kartya:has(.opal-kartya__nev a:focus-visible) { outline: var(--wp--custom--fokusz--vastag) solid var(--o-tinta); outline-offset: var(--wp--custom--fokusz--eltolas); }
.opal-kartya__nev a:focus-visible { outline: none; }
.opal-kartya__szinek { display: flex; gap: var(--wp--custom--kartya--szinkor-koz); margin-bottom: var(--wp--custom--kartya--szinkor-utan); }
.opal-szinkor {
	width: var(--wp--custom--kartya--szinkor);
	height: var(--wp--custom--kartya--szinkor);
	box-sizing: border-box;
	border-radius: 50%;
	border: var(--o-hajszal) solid var(--o-vonal-ero);
	padding: 2px;
	background: var(--o-uveg);
	background-clip: content-box;
}
.opal-szinkor--ures { background: transparent; }
.opal-kartya__ar,
.opal-kartya .wc-block-components-product-price { font-size: var(--o-ar); line-height: 1.3; margin-bottom: var(--wp--custom--kartya--ar-utan); text-align: left; }
.opal-kartya__ido { color: var(--o-masod); }
.opal-kartya--egyedul { max-width: 320px; text-decoration: none; gap: var(--o-s2); }
.opal-kartya--egyedul .opal-kartya__nev { font-size: var(--o-termeknev); }

/* Jelvény: a kép ALATT, egyszerre legfeljebb egy, kitöltés nélkül. */
.opal-jelveny {
	display: inline-flex;
	align-items: center;
	padding: 6px 10px;
	border: var(--o-hajszal) solid var(--o-tinta);
	color: var(--o-tinta);
	font-size: var(--o-cimke);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
	white-space: nowrap;
}
.opal-jelveny--nem-keszul { color: var(--o-masod); border-color: var(--o-vonal); }
.opal-jelveny--elfogyott { border-color: var(--o-rossz); }

/* Állapotdoboz: üres szűrés, nincs találat, hiba. */
.opal-allapotdoboz {
	border-top: var(--o-hajszal) solid var(--o-vonal);
	border-bottom: var(--o-hajszal) solid var(--o-vonal);
	padding: 64px 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--o-s5);
}
.opal-allapotdoboz__cim { font-size: var(--o-termeknev); line-height: 1.2; display: flex; gap: var(--o-s3); align-items: flex-start; }
.opal-allapotdoboz__cim .opal-ikon--figyelmeztetes { color: var(--o-rossz); margin-top: 4px; }
.opal-allapotdoboz__szoveg { color: var(--o-masod); max-width: var(--o-hasab); }

/* Teljes kollekció, stílusonként */
.opal-stilussorok { border-bottom: var(--o-hajszal) solid var(--o-vonal); margin-top: var(--wp--custom--racs--szurosav-utan); transition: opacity 200ms var(--o-gorbe); }
.opal-stilussor {
	border-top: var(--o-hajszal) solid var(--o-vonal);
	padding: 40px 0 var(--o-s7);
	display: grid;
	grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr);
	gap: 28px clamp(32px, 4vw, 64px);
	align-items: start;
}
.opal-stilussor:first-child { border-top: 0; }
.opal-stilussor .opal-termekracs { margin-top: 0; }
@media (max-width: 899px) { .opal-stilussor { grid-template-columns: minmax(0, 1fr); } }
.opal-stilusfej { display: flex; flex-direction: column; gap: var(--o-s4); }
.opal-stilusfej__szoveg { max-width: 34ch; color: var(--o-masod); }
.opal-stilusfej__kep { width: min(100%, 200px); aspect-ratio: 1 / 1; background: var(--o-mely); margin-top: var(--o-s2); overflow: hidden; }
.opal-stilusfej__kep img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Kategóriaajtó */
.opal-ajto { display: block; margin-top: var(--o-szekcio); color: var(--o-tinta); text-decoration: none; }
.opal-ajto__kep { display: block; height: min(82vh, 760px); min-height: 560px; background: var(--o-foto); overflow: hidden; }
.opal-ajto__kep img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter var(--o-usztat) var(--o-gorbe); }
.opal-ajto:hover .opal-ajto__kep img { filter: brightness(1.06); }
.opal-ajto__felirat { display: flex; justify-content: space-between; align-items: center; gap: var(--o-s5); max-width: var(--o-max); margin: 0 auto; padding: 28px var(--o-margo) 36px; box-sizing: border-box; }
.opal-ajto__szoveg { display: flex; flex-direction: column; gap: var(--o-s2); }
.opal-ajto__cim { font-size: var(--o-oldalcim); font-weight: 300; line-height: 1.1; letter-spacing: var(--wp--custom--betukoz--oldalcim); }
.opal-ajto__szoveg .opal-cimke { color: var(--o-masod); }
.opal-ajto__nyil { width: 52px; height: 52px; flex: none; display: inline-flex; align-items: center; justify-content: center; border: var(--o-hajszal) solid var(--o-masod); }
.opal-ajto:hover .opal-ajto__nyil { border-color: var(--o-tinta); }
@media (max-width: 599px) { .opal-ajto__kep { min-height: 360px; height: 60vh; } }

/* ---------- Terméklap ---------- */
.opal-termeklap { max-width: 1600px; margin: 0 auto; }
.opal-termeklap .wc-block-store-notices,
.opal-termeklap > .woocommerce-notices-wrapper { max-width: var(--o-max); margin: 0 auto; padding: 0 var(--o-margo); }
.opal-termeklap__racs {
	display: grid;
	grid-template-columns: minmax(0, 52fr) minmax(0, 48fr);
	column-gap: clamp(40px, 5vw, 96px);
	row-gap: var(--o-s7);
	align-items: start;
}
@media (max-width: 899px) { .opal-termeklap__racs { grid-template-columns: minmax(0, 1fr); } }
.opal-termeklap__galeria .wp-block-woocommerce-product-image-gallery { max-width: none; width: 100%; }
.opal-termeklap__galeria .woocommerce-product-gallery { margin: 0; width: 100% !important; float: none !important; opacity: 1 !important; }
.opal-termeklap__galeria .woocommerce-product-gallery__wrapper { margin: 0; }
.opal-termeklap__galeria .woocommerce-product-gallery__image { background: var(--o-foto); }
.opal-termeklap__galeria .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; display: block; }
.opal-termeklap__galeria .woocommerce-product-gallery__trigger { display: none; }
.opal-termeklap__galeria .flex-control-thumbs {
	list-style: none;
	margin: 20px 0 0 !important;
	padding: 0 var(--o-margo) !important;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px var(--o-s3);
}
.opal-termeklap__galeria .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.opal-termeklap__galeria .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; opacity: .62; cursor: pointer; background: var(--o-foto); transition: opacity var(--o-gyors) var(--o-gorbe); }
.opal-termeklap__galeria .flex-control-thumbs img.flex-active,
.opal-termeklap__galeria .flex-control-thumbs img:hover { opacity: 1; }
.opal-termeklap__galeria .flex-control-thumbs img.flex-active { outline: var(--o-hajszal) solid var(--o-tinta); outline-offset: 3px; }
@media (max-width: 899px) {
	.opal-termeklap__galeria .flex-control-thumbs { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 48px; gap: 6px; overflow-x: auto; padding: 10px 20px; margin: 0; }
}
.opal-termeklap__info { padding: clamp(40px, 5vw, 72px) var(--o-margo) 0 0; max-width: 600px; }
@media (max-width: 899px) { .opal-termeklap__info { padding: 0 var(--o-margo); max-width: none; } }
.opal-termeklap__kategoria { min-height: 44px; display: flex; align-items: center; font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-termeklap__kategoria a { color: var(--o-masod); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.opal-termeklap__kategoria a:hover { color: var(--o-tinta); }
.opal-termeklap__cim { font-size: var(--o-kollekcio); font-weight: 300; line-height: 1.05; letter-spacing: var(--wp--custom--betukoz--kollekcio); }
.opal-termeklap__ar { margin-top: 28px; display: flex; flex-direction: column; gap: var(--o-s2); }
.opal-termeklap__ar .wc-block-components-product-price { font-size: var(--o-oldalcim); font-weight: 300; line-height: 1.1; }
.opal-szallitas-sor { color: var(--o-masod); }

.opal-valasztok { scroll-margin-top: 108px; margin-top: 40px; }
.opal-valaszto { border: 0; margin: 28px 0 0; padding: 0; min-width: 0; }
.opal-valasztok > .opal-valaszto:first-child { margin-top: 0; }
.opal-valaszto > legend { padding: 0; margin-bottom: 14px; color: var(--o-masod); }
.opal-valaszto__sor { display: flex; flex-wrap: wrap; gap: var(--o-s2); }
.opal-valaszto__gomb {
	display: inline-flex;
	align-items: center;
	gap: var(--o-s2);
	min-height: 44px;
	padding: 0 var(--o-s4);
	box-sizing: border-box;
	border: var(--o-hajszal) solid var(--o-masod);
	background: transparent;
	color: var(--o-masod);
	font-family: inherit;
	font-size: var(--o-cimke);
	font-weight: 500;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: border-color var(--o-gyors) var(--o-gorbe), color var(--o-gyors) var(--o-gorbe);
}
.opal-valaszto__gomb:hover,
.opal-valaszto__gomb[aria-current],
.opal-valaszto__gomb[aria-pressed="true"] { border-color: var(--o-tinta); color: var(--o-tinta); }
.opal-valaszto__ar { font-weight: 400; letter-spacing: 0; text-transform: none; font-size: var(--o-szoveg); }
.opal-valaszto__gomb--szin { gap: 10px; padding-left: 10px; }
.opal-valaszto__gomb--szin .opal-szinkor-gyuru { width: 16px; height: 16px; margin: 3px; }
.opal-valaszto__gomb--szin[aria-pressed="true"] .opal-szinkor-gyuru { outline-color: var(--o-tinta); }
.opal-valaszto__gomb--szin[aria-disabled="true"] { border-color: var(--o-vonal); color: var(--o-halvany); cursor: not-allowed; }
.opal-valaszto__gomb--szin[aria-disabled="true"] .opal-szinkor-gyuru { background: transparent; }
.opal-valaszto__par { margin-top: 14px; color: var(--o-masod); }
.opal-valaszto__okok { margin-top: var(--o-s3); display: flex; flex-direction: column; gap: 6px; }
.opal-valaszto__ok { display: flex; gap: var(--o-s2); align-items: flex-start; color: var(--o-masod); }
@media (max-width: 599px) {
	.opal-valaszto__sor--stilus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.opal-valaszto__sor--forma { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.opal-valaszto__gomb--ar { flex-direction: column; align-items: flex-start; justify-content: center; min-height: 52px; gap: 2px; }
	.opal-valaszto__gomb--ar { position: relative; padding-right: 32px; }
	.opal-valaszto__gomb--ar .opal-ikon { position: absolute; top: 10px; right: 10px; }
	.opal-valaszto__sor--szin { flex-direction: column; }
	.opal-valaszto__sor--szin .opal-valaszto__gomb { width: 100%; }
}

/* A Woo variációs űrlapja: a legördülő helyett a mi gombsorunk, a többi a Woo-é. */
.opal-termeklap__kosarba { margin-top: 28px; }
.opal-termeklap form.cart { margin: 0; }
.opal-szinvalaszto-kesz table.variations,
.opal-termeklap .reset_variations,
.opal-termeklap .woocommerce-variation-price,
.opal-termeklap .woocommerce-variation-description { display: none !important; }
.opal-termeklap .single_variation_wrap { margin-top: var(--o-s6); }
.opal-termeklap .woocommerce-variation-availability { padding-top: 20px; border-top: var(--o-hajszal) solid var(--o-vonal); min-height: 44px; }
.opal-keszlet { display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-s3); margin: 0; }
.opal-termeklap .quantity { display: none !important; }
.opal-termeklap .woocommerce-variation-add-to-cart { display: flex; flex-direction: column; gap: var(--o-s2); margin-top: var(--o-s4); }
.single_add_to_cart_button { width: 100%; }
.opal-termeklap .single_add_to_cart_button { display: inline-flex !important; float: none !important; }
.opal-kosarba-ok { color: var(--o-masod); }
.opal-termek__ido { margin-top: 14px; color: var(--o-masod); }
.opal-ertesites { margin-top: var(--o-s3); }
.opal-csapda { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.opal-ertesites__urlap { margin-top: var(--o-s3); border: var(--o-hajszal) solid var(--o-vonal); padding: 20px; display: flex; flex-direction: column; gap: var(--o-s4); }
.opal-termeklap__tenyek { margin-top: 40px; }
.opal-termeklap__tenyek > p { padding: 20px 0; border-top: var(--o-hajszal) solid var(--o-vonal); }

.opal-akkordeon { border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.opal-akkordeon__elem { border-top: var(--o-hajszal) solid var(--o-vonal); margin: 0; }
.opal-akkordeon__elem > summary {
	min-height: 60px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-s4);
	cursor: pointer;
	list-style: none;
}
.opal-akkordeon__elem > summary::-webkit-details-marker { display: none; }
.opal-akkordeon__elem > summary::after { --o-ikon: url(../images/ikonok/plusz.svg); transition: transform var(--o-nyit) var(--o-gorbe); }
.opal-akkordeon__elem[open] > summary::after { --o-ikon: url(../images/ikonok/minusz.svg); transform: rotate(180deg); }
.opal-akkordeon__elem > :not(summary) { color: var(--o-masod); max-width: var(--o-hasab); padding-bottom: var(--o-s5); }
.opal-akkordeon__tartalom > * + * { margin-top: var(--o-s3); }
.opal-akkordeon__tartalom h3 { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-tinta); margin-top: var(--o-s5); }
.opal-adatok { display: grid; grid-template-columns: auto 1fr; column-gap: var(--o-s5); margin: 0; }
.opal-adatsor { display: contents; }
.opal-adatsor dt, .opal-adatsor dd { margin: 0; padding: 10px 0; border-top: var(--o-hajszal) solid var(--o-vonal); }
.opal-adatsor dt { color: var(--o-tinta); }
.opal-velemenyek { margin-top: 40px; padding-top: 20px; display: flex; flex-direction: column; gap: var(--o-s2); }

.opal-also-sav {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-s4);
	padding: 10px 20px calc(10px + env(safe-area-inset-bottom));
	background: var(--o-mely);
	border-top: var(--o-hajszal) solid var(--o-vonal);
}
.opal-also-sav[hidden] { display: none; }
.opal-also-sav__info { display: flex; flex-direction: column; gap: 2px; }
.opal-also-sav__ar { font-size: var(--o-ar); }
.opal-also-sav__ido { font-size: var(--o-cimke); color: var(--o-masod); }
.opal-also-sav__gomb { min-width: 150px; }

/* ---------- Kosár, pénztár (a Woo blokkjainak megjelenése) ---------- */
.opal-kosar__cim,
.opal-penztar__fej { padding: clamp(56px, 8vw, 112px) 0 40px; }
.opal-kosar__cim { font-size: var(--o-kollekcio); }
.opal-penztar__fej { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--o-s3) var(--o-s6); }
.opal-penztar__fej h1 { font-size: var(--o-kollekcio); }
.opal-kosar [class*="wc-block-components"],
.opal-penztar [class*="wc-block-components"],
.opal-kosar [class*="wc-block-cart"],
.opal-penztar [class*="wc-block-checkout"] { border-radius: 0 !important; box-shadow: none !important; }
.opal-kosar .wc-block-cart,
.opal-penztar .wc-block-checkout { color: var(--o-tinta); }
.opal-kosar .wc-block-components-sidebar,
.opal-penztar .wc-block-components-sidebar { border: var(--o-hajszal) solid var(--o-vonal); padding: 28px !important; box-sizing: border-box; }
.opal-penztar .wc-block-components-sidebar { position: sticky; top: 108px; }
.opal-kosar table.wc-block-cart-items { border-collapse: collapse; }
.opal-kosar .wc-block-cart-items__header { display: none; }
.opal-kosar .wc-block-cart-items td,
.opal-kosar .wc-block-cart-items th { border-color: var(--o-vonal) !important; }
.opal-kosar .wc-block-cart-item__image img { background: var(--o-foto); }
.opal-kosar .wc-block-components-product-name { color: var(--o-tinta); text-decoration: none; font-size: var(--o-ar); }
.opal-kosar .wc-block-components-product-metadata,
.opal-penztar .wc-block-components-product-metadata { color: var(--o-masod); }
.opal-kosar .wc-block-components-product-metadata__description { display: none; }
.opal-kosar .wc-block-components-quantity-selector { border: var(--o-hajszal) solid var(--o-masod); }
.opal-kosar .wc-block-components-quantity-selector::after { display: none; }
.opal-kosar .wc-block-components-quantity-selector input,
.opal-kosar .wc-block-components-quantity-selector button { color: var(--o-tinta); background: transparent; min-height: 44px; min-width: 44px; }
.opal-kosar .wc-block-components-quantity-selector button:disabled { color: var(--o-halvany); cursor: not-allowed; }
.opal-kosar .wc-block-cart-item__remove-link { color: var(--o-masod) !important; font-size: var(--o-szoveg) !important; min-height: 44px; display: inline-flex; align-items: center; }
.opal-kosar .wc-block-components-totals-item,
.opal-penztar .wc-block-components-totals-item { color: var(--o-tinta); }
.opal-kosar .wc-block-components-totals-wrapper,
.opal-penztar .wc-block-components-totals-wrapper { border-color: var(--o-vonal) !important; }
.opal-kosar .wc-block-components-totals-footer-item,
.opal-penztar .wc-block-components-totals-footer-item { font-size: var(--o-ar); }
.opal-kosar .wc-block-cart__submit-button,
.opal-penztar .wc-block-components-checkout-place-order-button,
.opal-kosar .wc-block-components-button:not(.is-link),
.opal-penztar .wc-block-components-button:not(.is-link) {
	min-height: var(--o-gomb);
	background: var(--o-tinta) !important;
	color: var(--o-alap) !important;
	border: var(--o-hajszal) solid var(--o-tinta) !important;
	font-size: var(--o-cimke) !important;
	font-weight: 500;
	letter-spacing: var(--wp--custom--betukoz--cimke);
	text-transform: uppercase;
}
.opal-kosar .wc-block-cart__submit-button:hover,
.opal-penztar .wc-block-components-checkout-place-order-button:hover { background: var(--o-papir) !important; border-color: var(--o-papir) !important; }
.opal-kosar__ido { color: var(--o-masod); margin: var(--o-s4) 0; }
.opal-kosar__vissza a { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: var(--o-gomb); box-sizing: border-box; border: var(--o-hajszal) solid var(--o-masod); color: var(--o-tinta); text-decoration: none; font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; margin-top: var(--o-s2); }
.opal-kosar__vissza a:hover { border-color: var(--o-tinta); }
.opal-kosar__afa { margin-top: var(--o-s4); font-size: var(--o-cimke); color: var(--o-masod); }
.opal-kosar-meta { display: flex; flex-direction: column; gap: var(--o-s4); padding: var(--o-s4) 0; }
.opal-szallitas-kuszob { color: var(--o-masod); }
.opal-szallitas-kuszob--kozel { color: var(--o-tinta); }
.opal-par { display: grid; grid-template-columns: 64px 1fr; gap: var(--o-s3); align-items: center; border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: var(--o-s4); }
.opal-par__kep { width: 64px; height: 64px; object-fit: cover; background: var(--o-foto); }
.opal-par__meta { color: var(--o-masod); }
.opal-par .opal-gomb { grid-column: 1 / -1; }
.opal-ures-kosar__mondat { border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: 40px; margin-bottom: 40px; max-width: 40ch; }
.opal-legutobb { margin-top: 96px; border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: var(--o-s5); display: flex; flex-direction: column; gap: var(--o-s5); }
.opal-legutobb > .opal-cimke { color: var(--o-masod); }
.opal-legutobb--kategoriak { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: var(--o-s6); }

/* Darabszám-jelvény a tétel képén: kitöltés nélkül, tinta kerettel. */
.opal-kosar .wc-block-components-order-summary-item__quantity,
.opal-penztar .wc-block-components-order-summary-item__quantity { background: var(--o-mely) !important; border: var(--o-hajszal) solid var(--o-tinta) !important; color: var(--o-tinta) !important; box-shadow: none !important; }

/* Pénztár: sötét felület, mezők keretesek, szögletesek. */
.opal-penztar .wc-block-components-text-input input,
.opal-penztar .wc-block-components-combobox .wc-block-components-combobox-control input,
.opal-penztar .wc-blocks-components-select select,
.opal-penztar textarea {
	background: transparent !important;
	color: var(--o-tinta) !important;
	border: var(--o-hajszal) solid var(--o-masod) !important;
	min-height: var(--o-gomb);
}
.opal-penztar .wc-block-components-text-input label,
.opal-penztar .wc-blocks-components-select label { color: var(--o-masod) !important; }
.opal-penztar .wc-block-components-text-input.has-error input { border-color: var(--o-rossz) !important; }
.opal-penztar .wc-block-components-validation-error { color: var(--o-rossz-szoveg); }
.opal-penztar .wc-block-components-checkout-step__title { font-size: var(--o-termeknev); font-weight: 400; }
.opal-penztar .wc-block-components-radio-control__option,
.opal-penztar .wc-block-components-radio-control-accordion-option { border-color: var(--o-vonal) !important; }
.opal-penztar .wc-block-components-radio-control__input,
.opal-penztar .wc-block-components-checkbox__input { border-color: var(--o-vonal-ero) !important; background: transparent !important; }
.opal-penztar .wc-block-components-checkbox__mark { fill: var(--o-tinta); }
.opal-penztar .wc-block-checkout__terms { color: var(--o-masod); order: 99; }
@media (max-width: 899px) { .opal-penztar .wc-block-components-sidebar { position: static; } }

/* Store-értesítések: keretes, kitöltés nélkül; siker = mohazöld jel, a szöveg tinta. */
.wc-block-components-notice-banner {
	background: transparent !important;
	color: var(--o-tinta) !important;
	border: var(--o-hajszal) solid var(--o-vonal) !important;
	border-radius: 0 !important;
}
.wc-block-components-notice-banner.is-success { border-color: var(--o-siker) !important; }
.wc-block-components-notice-banner.is-success > svg { background: transparent !important; fill: var(--o-siker) !important; }
.wc-block-components-notice-banner.is-error { border-color: var(--o-rossz) !important; }
.wc-block-components-notice-banner.is-error > svg { background: transparent !important; fill: var(--o-rossz) !important; }
.wc-block-components-notice-banner a { color: var(--o-tinta); }

/* ---------- Rendelés után ---------- */
.opal-koszono__racs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); gap: 56px; align-items: start; padding-top: clamp(56px, 8vw, 112px); }
@media (max-width: 899px) { .opal-koszono__racs { grid-template-columns: minmax(0, 1fr); } }
.opal-rendeles-fej { display: flex; flex-direction: column; gap: var(--o-s4); }
.opal-rendeles-fej > .opal-cimke { color: var(--o-masod); }
.opal-rendeles-fej__sor { display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-s4) var(--o-s5); }
.opal-rendeles-fej__szam { user-select: all; overflow-wrap: anywhere; }
.opal-rendeles-fej__lead { color: var(--o-masod); max-width: var(--o-hasab); }
.opal-rendeles-szakasz { margin-top: 64px; display: flex; flex-direction: column; gap: var(--o-s4); max-width: var(--o-jogi); }
.opal-utem { display: grid; grid-template-columns: 190px 1fr; margin: 0; border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.opal-utem__sor { display: contents; }
.opal-utem dt, .opal-utem dd { margin: 0; padding: 14px 0; border-top: var(--o-hajszal) solid var(--o-vonal); }
.opal-utem dt { display: flex; gap: var(--o-s2); align-items: center; color: var(--o-masod); }
@media (max-width: 599px) { .opal-utem { grid-template-columns: 1fr; } .opal-utem dd { border-top: 0; padding-top: 0; } }
.opal-ikonos-link { display: inline-flex; align-items: center; gap: var(--o-s2); min-height: 44px; }
.is-style-keretes { border: var(--o-hajszal) solid var(--o-vonal); padding: 28px; box-sizing: border-box; }
.opal-koszono__oldal { display: flex; flex-direction: column; gap: var(--o-s5); }
.opal-koszono__oldal table { width: 100%; border-collapse: collapse; }
.opal-koszono__oldal th, .opal-koszono__oldal td { padding: 10px 0; border-top: var(--o-hajszal) solid var(--o-vonal); text-align: left; font-weight: 400; vertical-align: top; }
.opal-koszono__oldal td:last-child, .opal-koszono__oldal th:last-child { text-align: right; }
.opal-koszono__oldal thead th { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-koszono__oldal h2, .opal-koszono__oldal h3 { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-koszono__oldal address { font-style: normal; color: var(--o-masod); border: 0; padding: 0; }
.opal-uzenet { margin-top: var(--o-s6); border: var(--o-hajszal) solid var(--o-vonal-ero); padding: 20px; display: grid; grid-template-columns: auto 1fr; gap: var(--o-s3); }
.opal-uzenet > div > * + * { margin-top: var(--o-s3); }
.opal-uzenet--hiba { border-color: var(--o-rossz); }
.opal-uzenet--hiba > .opal-ikon { color: var(--o-rossz); }
.opal-uzenet__cim { font-size: var(--o-ar); }

/* ---------- Szövegoldal ---------- */
.opal-szovegoldal { padding-top: clamp(48px, 7vw, 96px); }
.opal-szovegoldal__fej,
.opal-szovegoldal__test { display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: clamp(48px, 7vw, 112px); }
.opal-szovegoldal__fej > * { grid-column: 2; max-width: var(--o-jogi); }
.opal-szovegoldal__fej { row-gap: var(--o-s4); }
.opal-szovegoldal__fej > .opal-cimke { color: var(--o-masod); }
.opal-szovegoldal__fej .wp-block-post-title { font-size: var(--o-oldalcim); }
.opal-frissites { color: var(--o-masod); }
.opal-szovegoldal__test { margin-top: clamp(40px, 5vw, 64px); row-gap: var(--o-s6); align-items: start; }
.opal-szovegoldal__cikk { grid-column: 2; max-width: var(--o-jogi); line-height: 1.6; counter-reset: szakasz; }
.opal-szovegoldal__cikk > * + * { margin-top: var(--o-s4); }
.opal-szovegoldal__cikk h2 {
	counter-increment: szakasz;
	scroll-margin-top: 110px;
	border-top: var(--o-hajszal) solid var(--o-vonal);
	padding-top: var(--o-s5);
	margin-top: 64px;
	margin-bottom: 20px;
	font-size: var(--o-termeknev);
	font-weight: 400;
	line-height: 1.2;
}
.opal-szovegoldal__cikk h2:first-of-type { margin-top: 0; }
.opal-szovegoldal__cikk .opal-szovegoldal__gomb + h2 { margin-top: var(--o-s7); }
.opal-szovegoldal__cikk h2::before { content: counter(szakasz, decimal-leading-zero); display: block; margin-bottom: var(--o-s2); font-size: var(--o-cimke); font-weight: 500; color: var(--o-masod); }
.opal-szovegoldal__cikk h3 { margin: var(--o-s6) 0 var(--o-s2); font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-toc { grid-column: 1; }
.opal-toc > summary { display: flex; align-items: center; gap: var(--o-s2); min-height: 52px; cursor: pointer; list-style: none; border-top: var(--o-hajszal) solid var(--o-vonal); border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.opal-toc > summary::-webkit-details-marker { display: none; }
.opal-toc > summary .opal-ikon { margin-left: auto; }
.opal-toc ol { list-style: none; margin: 0; padding: 0; }
.opal-toc a { display: grid; grid-template-columns: 28px 1fr; align-items: center; min-height: 44px; color: var(--o-masod); text-decoration: none; }
.opal-toc a:hover, .opal-toc a[aria-current] { color: var(--o-tinta); }
.opal-toc__szam { font-size: var(--o-cimke); font-weight: 500; }
@media (min-width: 900px) {
	.opal-toc { position: sticky; top: 120px; border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: var(--o-s4); }
	.opal-toc > summary { border: 0; min-height: 0; margin-bottom: var(--o-s2); pointer-events: none; }
	.opal-toc > summary .opal-ikon, .opal-toc__db { display: none; }
}
@media (max-width: 899px) {
	.opal-szovegoldal__fej, .opal-szovegoldal__test { grid-template-columns: minmax(0, 1fr); }
	.opal-szovegoldal__fej > *, .opal-szovegoldal__cikk, .opal-toc { grid-column: 1; }
}
.is-style-kitoltendo { border: var(--o-hajszal) dashed var(--o-vonal-ero); padding: var(--o-s4); display: flex; flex-direction: column; gap: 6px; color: var(--o-masod); }
.is-style-kitoltendo .opal-cimke { color: var(--o-tinta); }
.is-style-opal { display: flex; flex-direction: column; }
.is-style-opal > figcaption { order: -1; }
.is-style-opal table { width: 100%; border-collapse: collapse; }
.is-style-opal thead { border-bottom: 0 !important; }
.is-style-opal tfoot { border-top: 0 !important; }
.is-style-opal th { padding: 0 var(--o-s4) 10px 0; text-align: left; font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); border: 0; border-bottom: var(--o-hajszal) solid var(--o-vonal-ero); }
.is-style-opal td { padding: 14px var(--o-s4) 14px 0; border: 0; border-bottom: var(--o-hajszal) solid var(--o-vonal); }
.is-style-opal .has-text-align-right { text-align: right; white-space: nowrap; }
.is-style-opal figcaption { caption-side: top; margin: 0 0 var(--o-s3); text-align: left; font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-dijtabla td:nth-child(2) { color: var(--o-masod); }
.opal-ertektabla tr:first-child td { border-top: var(--o-hajszal) solid var(--o-vonal-ero); }
@media (max-width: 899px) {
	.opal-dijtabla thead { display: none; }
	.opal-dijtabla tr { display: block; border-top: var(--o-hajszal) solid var(--o-vonal-ero); padding: var(--o-s3) 0; }
	.opal-dijtabla td { display: grid; grid-template-columns: 110px 1fr; gap: var(--o-s3); border: 0; padding: 6px 0; text-align: left !important; }
	.opal-dijtabla td:first-child { display: block; color: var(--o-tinta); }
	.opal-dijtabla td:nth-child(2)::before { content: "Hova"; }
	.opal-dijtabla td:nth-child(3)::before { content: "1 darab"; }
	.opal-dijtabla td:nth-child(4)::before { content: "2 darabtól"; }
	.opal-dijtabla td::before { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
}

/* ---------- Rólunk, Kapcsolat, Elállás ---------- */
.opal-tartalom > .opal-szakasz:first-child,
.opal-tartalom > .opal-ket-hasab:first-child { margin-top: 0; padding-top: clamp(48px, 7vw, 112px); }
.opal-nyito__racs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px clamp(40px, 6vw, 96px); align-items: end; }
.opal-nyito__racs h1 { margin-top: var(--o-s4); }
.opal-tures { border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: var(--o-s6) clamp(40px, 6vw, 96px); }
.opal-tures__szam { white-space: nowrap; margin-top: var(--o-s4); }
.opal-ket-hasab { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: var(--o-s7) clamp(48px, 7vw, 112px); align-items: start; }
.opal-ket-hasab__bal { display: flex; flex-direction: column; gap: var(--o-s6); }
.opal-ket-hasab__bal.opal-hasab > * + * { margin-top: 0; }
.opal-adatlista { display: flex; flex-direction: column; gap: 6px; border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: var(--o-s4); }
.opal-adatlista .opal-cimke:not(:first-child) { margin-top: var(--o-s4); padding-top: var(--o-s4); border-top: var(--o-hajszal) solid var(--o-vonal); }
.opal-adatlista:not(.opal-adatlista--sorok) + .opal-cimke { border-top: var(--o-hajszal) solid var(--o-vonal); padding-top: var(--o-s4); }
.opal-adatlista--sorok { display: grid; grid-template-columns: 120px 1fr; gap: 0 var(--o-s4); border-top: var(--o-hajszal) solid var(--o-vonal); }
.opal-adatlista--sorok > * { padding: var(--o-s4) 0; border-bottom: var(--o-hajszal) solid var(--o-vonal); margin: 0 !important; }
.opal-ikonos { display: flex; align-items: center; gap: var(--o-s3); }
.opal-ikonos a { color: var(--o-tinta); display: inline-flex; align-items: center; min-height: 44px; }
.opal-urlapblokk { padding: clamp(24px, 3vw, 40px); display: flex; flex-direction: column; gap: var(--o-s5); }

/* Contact Form 7 */
.wpcf7 form { display: flex; flex-direction: column; gap: var(--o-s5); }
.wpcf7 form > p { margin: 0; }
.wpcf7 label,
.opal-mezo { display: flex; flex-direction: column; gap: var(--o-s2); }
.opal-field__label,
.opal-mezo__cimke { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.opal-hint, .opal-mezo__sugo, .opal-form__note { color: var(--o-masod); }
.wpcf7-not-valid,
.opal-mezo--hiba input { border-color: var(--o-rossz) !important; }
.wpcf7-not-valid-tip { color: var(--o-rossz-szoveg); font-size: var(--o-szoveg); margin-top: 0; }
.wpcf7-form-control-wrap:has(.wpcf7-not-valid-tip) + .opal-hint { display: none; }
.wpcf7 fieldset { border: 0; border-top: var(--o-hajszal) solid var(--o-vonal); margin: 0; padding: var(--o-s5) 0 0; display: flex; flex-direction: column; gap: var(--o-s3); }
.wpcf7 legend { padding: 0; font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-list-item label { flex-direction: row; align-items: flex-start; gap: var(--o-s3); min-height: 44px; }
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	flex: none;
	border: var(--o-hajszal) solid var(--o-vonal-ero);
	background: transparent;
	display: inline-grid;
	place-content: center;
	cursor: pointer;
}
.wpcf7 input[type="radio"] { border-radius: 50%; }
.wpcf7 input[type="checkbox"]:checked { background: var(--o-tinta); border-color: var(--o-tinta); }
.wpcf7 input[type="checkbox"]:checked::before { content: ""; width: 16px; height: 16px; background: var(--o-alap); -webkit-mask: url(../images/ikonok/pipa.svg) center / contain no-repeat; mask: url(../images/ikonok/pipa.svg) center / contain no-repeat; }
.wpcf7 input[type="radio"]:checked { border-color: var(--o-tinta); }
.wpcf7 input[type="radio"]:checked::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--o-tinta); }
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: var(--o-s2) var(--o-s6); }
.wpcf7 .opal-consent .opal-hint { padding-left: 36px; margin-top: calc(-1 * var(--o-s2)); }
.wpcf7 input[type="submit"] { align-self: flex-start; }
.wpcf7 .wpcf7-response-output { margin: 0 !important; padding: var(--o-s4) !important; border: var(--o-hajszal) solid var(--o-rossz) !important; color: var(--o-tinta); }
.wpcf7 form.sent .wpcf7-response-output { display: none; }
.wpcf7 form[aria-busy="true"] input,
.wpcf7 form[aria-busy="true"] textarea { pointer-events: none; color: var(--o-halvany); }
.wpcf7-spinner { display: none; }
.opal-kuldes-ok { color: var(--o-masod); }

/* Siker: tinta szöveg, mohazöld pipa (a megbízó szabálya szerint a mohazöld a sikerjel). */
.opal-siker { display: flex; align-items: flex-start; gap: var(--o-s3); color: var(--o-tinta); }
.opal-siker .opal-ikon--pipa { color: var(--o-siker); }
.opal-siker--blokk { flex-direction: column; border-left: 2px solid var(--o-siker); padding-left: var(--o-s4); }
.opal-siker__cim { font-size: var(--o-termeknev); line-height: 1.2; }

/* ---------- 404 ---------- */
.opal-404__fej { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--o-s6) clamp(40px, 6vw, 96px); align-items: end; padding-top: clamp(56px, 8vw, 112px); }
.opal-404__fej .wp-block-group > * + * { margin-top: var(--o-s4); }
.opal-404__stilusok { margin-top: clamp(56px, 7vw, 96px); padding-inline: 0; }
.opal-404__stilusok > h2 { margin-bottom: var(--o-s5); color: var(--o-masod); }
@media (min-width: 900px) { .opal-404 .opal-belepok { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; } }
@media (max-width: 899px) { .opal-404 .opal-belepok { grid-auto-columns: 72%; } }

/* ---------- Csontváz (betöltés) ---------- */
@keyframes opal-pulzus { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.opal-csontvaz { background: var(--o-mely); animation: opal-pulzus 1400ms var(--o-gorbe) infinite; }

/* ---------- Szerkesztő: a kontextusfüggő saját blokkok címkéje ---------- */
.opal-szerk-blokk { border: var(--o-hajszal) dashed var(--o-vonal-ero); padding: var(--o-s2) var(--o-s3); }
.opal-szerk-cimke { font-size: var(--o-cimke); font-weight: 500; letter-spacing: var(--wp--custom--betukoz--cimke); text-transform: uppercase; color: var(--o-masod); }

/* ---------- Mozgás nélkül: minden 0 ms, végállapot ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: 0ms !important; scroll-behavior: auto !important; }
}
