/* Cups & Flowers – Bolt beállítások */

/* ----------------------------------------------------- „Még X Ft” sáv */
.cf-bolt-progress {
	margin: 14px 0 6px;
	padding: 12px 14px;
	background: var(--cf-cream, #fbf8f4);
	border: 1px solid rgba(170, 154, 120, .35);
	border-radius: 8px;
	font-family: Arial, Helvetica, sans-serif;
}
.cf-bolt-progress__text {
	margin: 0 0 8px !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
	color: var(--cf-text, #202020);
}
.cf-bolt-progress__text strong { color: var(--cf-teal, #00504f); }
.cf-bolt-progress__bar {
	height: 6px;
	border-radius: 6px;
	background: #e9e3d8;
	overflow: hidden;
}
.cf-bolt-progress__bar span {
	display: block;
	height: 100%;
	border-radius: 6px;
	background: var(--cf-teal, #00504f);
	transition: width .3s ease;
}
.cf-bolt-progress.is-done .cf-bolt-progress__text { color: var(--cf-teal, #00504f); font-weight: 700; }
.widget_shopping_cart .cf-bolt-progress,
.elementor-menu-cart__main .cf-bolt-progress { margin: 10px 0 12px; }
/* Kosár/pénztár összesítő: igazodjon a többi sorhoz (16px oldaltérköz). */
.cf-bolt-progress-slot,
.wc-block-components-totals-wrapper.slot-wrapper > * > .cf-bolt-progress-slot { padding: 4px 16px 16px !important; }
.cf-bolt-progress-slot .cf-bolt-progress { margin: 0 !important; padding: 12px 14px !important; }
/* A kosár összesítőjében nincs keret, ott a sorok sem húzódnak beljebb. */
.wp-block-woocommerce-cart .wc-block-components-totals-wrapper.slot-wrapper > * > .cf-bolt-progress-slot { padding-left: 0 !important; padding-right: 0 !important; }

/* ------------------------------------------------ Naptáras napválasztó */
/* A pénztár kártyáihoz igazodik: fehér doboz, 10px lekerekítés, zöld/arany színek, Georgia címek. */
.cf-bolt-date {
	container-type: inline-size;
	margin: 18px 0 4px;
	font-family: Arial, Helvetica, sans-serif;
}
.cf-bolt-date__card {
	background: #fff;
	border: 1px solid rgba(157, 148, 135, .32);
	border-radius: 10px;
	box-shadow: 0 10px 30px rgba(22, 35, 35, .05);
	overflow: hidden;
	transition: border-color .2s, box-shadow .2s;
}
.cf-bolt-date.is-chosen .cf-bolt-date__card { border-color: rgba(0, 80, 79, .38); }
.cf-bolt-date.has-error .cf-bolt-date__card {
	border-color: #a84f43;
	box-shadow: 0 0 0 3px rgba(168, 79, 67, .08);
}
.cf-bolt-date__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px 18px;
	background: linear-gradient(180deg, #fbf8f4 0%, #fff 100%);
	border-bottom: 1px solid rgba(157, 148, 135, .22);
}
.cf-bolt-date__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--cf-teal, #00504f);
	color: #fff;
}
.cf-bolt-date__titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cf-bolt-date__label {
	margin: 0 !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--cf-teal, #00504f);
}
.cf-bolt-date__help {
	margin: 0 !important;
	font-size: 13px;
	line-height: 1.45;
	color: #706b63;
}
.cf-bolt-date__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	padding: 16px;
}
@container (min-width: 600px) {
	.cf-bolt-date__body {
		grid-template-columns: minmax(300px, 1.35fr) minmax(220px, 1fr);
		gap: 22px;
		padding: 20px 20px 20px 18px;
	}
}

/* Naptár */
.cf-bolt-cal { min-width: 0; }
.cf-bolt-cal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 12px;
}
.cf-bolt-cal__title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cf-teal, #00504f);
}
.cf-bolt-cal .cf-bolt-cal__nav {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 38px !important;
	height: 38px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid rgba(0, 80, 79, .24) !important;
	border-radius: 50% !important;
	background: #fff !important;
	color: var(--cf-teal, #00504f) !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.cf-bolt-cal .cf-bolt-cal__nav:hover:not(:disabled) {
	background: var(--cf-teal, #00504f) !important;
	border-color: var(--cf-teal, #00504f) !important;
	color: #fff !important;
}
.cf-bolt-cal .cf-bolt-cal__nav:disabled { opacity: .28; cursor: default; }
.cf-bolt-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}
.cf-bolt-cal__wd {
	padding: 0 0 4px;
	text-align: center;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cf-muted, #8d8170);
}
.cf-bolt-cal .cf-bolt-cal__day {
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100% !important;
	height: 44px !important;
	min-height: 0 !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: 8px !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	color: #c5beb2 !important;
}
.cf-bolt-cal button.cf-bolt-cal__day.is-on {
	background: #fff !important;
	border-color: rgba(0, 80, 79, .24) !important;
	color: var(--cf-teal, #00504f) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s, box-shadow .2s, transform .15s;
}
.cf-bolt-cal button.cf-bolt-cal__day.is-on:hover {
	background: rgba(0, 80, 79, .045) !important;
	border-color: var(--cf-teal, #00504f) !important;
}
.cf-bolt-cal button.cf-bolt-cal__day.is-on:active { transform: scale(.96); }
.cf-bolt-cal button.cf-bolt-cal__day.is-selected,
.cf-bolt-cal button.cf-bolt-cal__day.is-selected:hover {
	background: var(--cf-teal, #00504f) !important;
	border-color: var(--cf-teal, #00504f) !important;
	color: #fff !important;
	box-shadow: 0 7px 18px rgba(0, 80, 79, .24) !important;
}
.cf-bolt-cal button:focus { outline: none !important; }
.cf-bolt-cal button:focus-visible {
	outline: 2px solid rgba(200, 132, 85, .75) !important;
	outline-offset: 2px !important;
}
/* Mai nap: kis arany pötty a szám alatt. */
.cf-bolt-cal .cf-bolt-cal__day.is-today::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 5px;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: var(--cf-gold, #c88455);
}
.cf-bolt-cal .cf-bolt-cal__day.is-selected.is-today::after { background: #fff; }
.cf-bolt-cal__blank { display: block; }

/* Összegző panel */
.cf-bolt-sum {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 18px 18px 16px;
	background: var(--cf-cream, #fbf8f4);
	border: 1px solid rgba(170, 154, 120, .35);
	border-top: 3px solid var(--cf-frame-gold, #aa9a78);
	border-radius: 10px;
}
.cf-bolt-sum__eyebrow {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cf-gold, #c88455);
}
.cf-bolt-sum__date {
	margin-top: 10px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--cf-teal, #00504f);
}
.cf-bolt-sum__day {
	margin-top: 4px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 17px;
	font-style: italic;
	line-height: 1.3;
	color: #5c574f;
}
.cf-bolt-sum__time {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid rgba(170, 154, 120, .3);
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--cf-text, #202020);
}
.cf-bolt-sum__time svg { flex: 0 0 16px; margin-top: 1px; color: var(--cf-teal, #00504f); }
.cf-bolt-sum__empty {
	margin-top: 10px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
	color: rgba(0, 80, 79, .55);
}
.cf-bolt-sum__hint {
	margin-top: 6px;
	font-size: 13.5px;
	line-height: 1.45;
	color: #706b63;
}
.cf-bolt-sum__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin-top: auto;
	padding-top: 16px;
	font-size: 12px;
	color: #706b63;
}
.cf-bolt-sum__legend > span { display: inline-flex; align-items: center; gap: 6px; }
.cf-bolt-sum__legend i {
	display: inline-block;
	width: 14px;
	height: 14px;
	box-sizing: border-box;
	border-radius: 4px;
}
.cf-bolt-sum__legend i.is-on { background: #fff; border: 1px solid rgba(0, 80, 79, .4); }
.cf-bolt-sum__legend i.is-sel { background: var(--cf-teal, #00504f); }
.cf-bolt-sum__legend i.is-today { width: 6px; height: 6px; margin: 0 4px; border-radius: 50%; background: var(--cf-gold, #c88455); }

/* Keskeny oszlopban (mobil): kompaktabb összegző, jelmagyarázat nélkül. */
@container (max-width: 599px) {
	.cf-bolt-sum { padding: 14px 16px; }
	.cf-bolt-sum__date { margin-top: 6px; font-size: 24px; }
	.cf-bolt-sum__empty { margin-top: 6px; font-size: 18px; }
	.cf-bolt-sum__legend { display: none; }
}
@container (max-width: 380px) {
	.cf-bolt-date__head { padding: 13px 14px; }
	.cf-bolt-date__body { padding: 14px 12px; }
	.cf-bolt-cal__grid { gap: 4px; }
	.cf-bolt-cal .cf-bolt-cal__day { height: 40px !important; font-size: 13.5px !important; }
	.cf-bolt-cal button.cf-bolt-cal__day.is-on { font-size: 14px !important; }
}

.cf-bolt-date__error {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 8px 0 0 !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	font-weight: 700;
	color: #a84f43;
}
.cf-bolt-date__error::before {
	content: "!";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #a84f43;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
}

/* A WooCommerce saját (azonos értékű) mezője rejtve, ha a fenti napválasztó látszik. */
.cf-bolt-date-ui .wc-block-components-select-input-cf-bolt-delivery-date,
.cf-bolt-date-ui .wc-block-components-select-input-cf-bolt-pickup-date { display: none !important; }

/* -------------------------------------------------- Személyes átvétel */
.cf-bolt-pickup { margin: 14px 0 0; }
.cf-bolt-pickup__info {
	margin: 0 !important;
	padding: 14px 17px !important;
	background: #fff;
	border: 1px solid rgba(0, 80, 79, .22);
	border-left: 4px solid var(--cf-teal, #00504f);
	border-radius: 8px;
	box-shadow: 0 8px 20px rgba(22, 35, 35, .055);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 13.5px !important;
	line-height: 1.55 !important;
	color: #4e4a45;
}

/* --------------------------------------------- Csak Magyarország, megye */
.cf-bolt-hu-only .wc-block-components-address-form__country,
.cf-bolt-hu-only #billing_country_field,
.cf-bolt-hu-only #shipping_country_field { display: none !important; }

/* ------------------------------------------------- Kiegészítő-ajánló */
.cf-bolt-upsell {
	max-width: 1180px;
	margin: 36px auto 10px;
	padding: 0 16px;
	box-sizing: border-box;
}
.cf-bolt-upsell[hidden] { display: none !important; }
.cf-bolt-upsell__title {
	margin: 0 0 4px !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 26px !important;
	line-height: 1.25 !important;
	color: var(--cf-teal, #00504f);
}
.cf-bolt-upsell__text { margin: 0 0 18px !important; font-size: 14px; color: var(--cf-muted, #6f665a); }
.cf-bolt-upsell__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.cf-bolt-upsell__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px;
	background: #fff;
	border: 1px solid rgba(170, 154, 120, .35);
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(22, 35, 35, .05);
}
.cf-bolt-upsell__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 6px;
}
.cf-bolt-upsell__name {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 15px;
	line-height: 1.3;
	color: var(--cf-text, #202020) !important;
	text-decoration: none !important;
}
.cf-bolt-upsell__price { font-size: 14px; font-weight: 700; color: var(--cf-teal, #00504f); }
.cf-bolt-upsell__add {
	margin-top: auto;
	display: block;
	padding: 10px 12px;
	border-radius: 6px;
	background: var(--cf-teal, #00504f);
	color: #fff !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background .2s;
}
.cf-bolt-upsell__add:hover { background: var(--cf-gold, #c88455); }
.cf-bolt-upsell__add.is-loading { opacity: .6; pointer-events: none; }
.cf-bolt-upsell__add.is-added { background: #fff; color: var(--cf-teal, #00504f) !important; border: 1px solid var(--cf-teal, #00504f); }
@media (max-width: 860px) {
	.cf-bolt-upsell__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.cf-bolt-upsell__title { font-size: 22px !important; }
}

/* -------------------------------------------------------- Bizalmi sáv */
.cf-trust {
	background: var(--cf-cream, #fbf8f4);
	border-top: 1px solid rgba(170, 154, 120, .35);
	border-bottom: 1px solid rgba(170, 154, 120, .35);
	padding: 26px 16px;
	clear: both;
}
.cf-trust__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	max-width: 1180px;
	margin: 0 auto !important;
	padding: 0 !important;
	list-style: none !important;
}
.cf-trust__item { display: flex; align-items: center; gap: 12px; margin: 0 !important; }
.cf-trust__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid rgba(0, 80, 79, .18);
	color: var(--cf-teal, #00504f);
}
.cf-trust__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cf-trust__title {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px;
	line-height: 1.25;
	color: var(--cf-teal, #00504f);
}
.cf-trust__text { font-size: 13px; line-height: 1.35; color: var(--cf-muted, #6f665a); }
@media (max-width: 960px) {
	.cf-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
}
@media (max-width: 420px) {
	.cf-trust__icon { width: 44px; height: 44px; }
	.cf-trust__icon svg { width: 24px; height: 24px; }
	.cf-trust__title { font-size: 14.5px; }
	.cf-trust__text { font-size: 12px; }
}

/* -------------------------------------------------- Szállítás oldal */
.cf-ship {
	max-width: 900px;
	margin: 0 auto;
	color: var(--cf-text, #202020);
	font-size: 16px;
	line-height: 1.7;
}
.cf-ship__block {
	margin: 0 0 34px;
	padding: 28px 30px;
	background: #fff;
	border: 1px solid rgba(170, 154, 120, .35);
	border-top: 3px solid var(--cf-frame-gold, #aa9a78);
	border-radius: 10px;
	box-shadow: 0 10px 30px rgba(22, 35, 35, .05);
}
.cf-ship__title {
	margin: 0 0 12px !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 24px !important;
	line-height: 1.3 !important;
	color: var(--cf-teal, #00504f);
}
.cf-ship__subtitle {
	margin: 22px 0 6px !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px !important;
	color: var(--cf-teal, #00504f);
}
.cf-ship__lead { margin: 0 0 18px !important; }
.cf-ship__table {
	width: 100%;
	margin: 0 0 14px !important;
	border-collapse: collapse;
	font-size: 15px;
}
.cf-ship__table th,
.cf-ship__table td {
	padding: 12px 14px !important;
	border: 0 !important;
	border-bottom: 1px solid #ece6dc !important;
	text-align: left;
	vertical-align: top;
}
.cf-ship__table th {
	background: var(--cf-cream, #fbf8f4);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cf-muted, #6f665a);
}
.cf-ship__table td:last-child { font-weight: 700; color: var(--cf-teal, #00504f); }
.cf-ship__note,
.cf-ship__cities { margin: 0 !important; font-size: 14.5px; color: var(--cf-muted, #6f665a); }
.cf-ship__tip { text-align: center; font-size: 15px; }
.cf-ship__tip a { color: var(--cf-teal, #00504f); font-weight: 700; }
@media (max-width: 600px) {
	.cf-ship__block { padding: 20px 16px; }
	.cf-ship__title { font-size: 20px !important; }
	.cf-ship__table th, .cf-ship__table td { padding: 10px 8px !important; font-size: 14px; }
}
