/* PALWIND INC. - additions on top of the Ingreen template
   Palette: primary #57B33E, secondary #FF7033, dark #31313D, headings #171724, text #5D5D66 */

[x-cloak] { display: none !important; }

html.fb-modal-open { overflow: hidden; }

/* ---------- header: cart ---------- */
.navbar-cell-cart { align-items: center; }

.cart-widget { position: relative; }

.cart-trigger {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #171724;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.cart-trigger:hover, .cart-trigger:focus-visible { background: #ECF4FF; color: #57B33E; outline: 0; }
.cart-trigger-icon { font-size: 22px; line-height: 1; }
.cart-badge {
	position: absolute;
	top: 1px;
	right: 0;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: #FF7033;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
}

.cart-panel {
	position: absolute;
	top: calc(100% + 14px);
	right: -12px;
	z-index: 1100;
	width: 370px;
	max-width: calc(100vw - 20px);
	background: #fff;
	border-top: 3px solid #57B33E;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 18px 48px rgba(23, 23, 36, .22);
	text-align: left;
}
.cart-panel-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 16px 20px 12px;
	border-bottom: 1px solid #e8e8e9;
}
.cart-panel-title { color: #171724; font-size: 18px; font-weight: 600; }
.cart-panel-count { color: #5D5D66; font-size: 14px; }

.cart-line {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	max-height: none;
	padding: 12px 44px 12px 20px;
	border-bottom: 1px solid #f0f0f2;
}
.cart-line-img { flex: 0 0 64px; width: 64px; height: 48px; object-fit: cover; border-radius: 4px; }
.cart-line-body { min-width: 0; flex: 1; }
.cart-line-title {
	overflow: hidden;
	color: #171724;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cart-line-controls { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.cart-line-price { color: #171724; font-size: 14px; font-weight: 600; }
.cart-qty { display: inline-flex; align-items: center; border: 1px solid #e0e0e4; border-radius: 16px; }
.cart-qty button {
	width: 26px;
	height: 26px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #171724;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}
.cart-qty button:hover { color: #57B33E; }
.cart-qty span { min-width: 22px; text-align: center; font-size: 14px; }
.cart-line-remove {
	position: absolute;
	top: 50%;
	right: 12px;
	width: 26px;
	height: 26px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #9a9aa2;
	font-size: 12px;
	transform: translateY(-50%);
	cursor: pointer;
}
.cart-line-remove:hover { color: #FF7033; }

.cart-empty { padding: 30px 20px; text-align: center; }
.cart-empty-icon { display: block; margin-bottom: 8px; color: #c9c9d0; font-size: 38px; }
.cart-empty p { margin-bottom: 14px; }

.cart-panel-foot { padding: 14px 20px 20px; }
.cart-total { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: #5D5D66; }
.cart-total strong { color: #171724; font-size: 20px; }
.cart-panel-foot .btn { margin-top: 0; }

/* desktop: keep the cart centred in the 80px header row */
.rd-navbar-fullwidth .navbar-cell-cart { padding: 0 6px; }

/* mobile / tablet header: hamburger - logo - cart - dots */
.rd-navbar-fixed .navbar-cell-cart {
	position: fixed;
	top: 0;
	right: calc(5% + 34px);
	z-index: 3;
	height: 60px;
	padding: 0;
}
.rd-navbar-fixed .cart-panel {
	position: fixed;
	top: 63px;
	right: 10px;
	left: 10px;
	width: auto;
	max-width: none;
	max-height: calc(100vh - 80px);
	overflow-y: auto;
}
.rd-navbar-fixed .button-navbar-fullwidth { display: none; }

/* ---------- logo in footer ---------- */
.footer-logo { display: inline-block; }
.footer-logo img { display: block; width: 214px; height: 49px; max-width: 100%; }
.footer-address { max-width: 320px; }

/* ---------- catalog ---------- */
.catalog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 40px;
}
.catalog-filter {
	display: inline-block;
	padding: 9px 22px;
	border: 1px solid #e0e0e4;
	border-radius: 30px;
	background: #fff;
	color: #171724;
	font-size: 16px;
	line-height: 1.3;
	transition: all .2s;
}
.catalog-filter:hover { border-color: #57B33E; color: #57B33E; }
.catalog-filter.active { border-color: #57B33E; background: #57B33E; color: #fff; }

.product-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 28px rgba(23, 23, 36, .08);
	text-align: left;
	transition: box-shadow .25s, transform .25s;
}
.product-card:hover { box-shadow: 0 14px 40px rgba(23, 23, 36, .16); transform: translateY(-3px); }
.product-card-media { position: relative; overflow: hidden; background: #ECF4FF; aspect-ratio: 4 / 3; }
.product-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-card-category {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 4px 12px;
	border-radius: 20px;
	background: rgba(49, 49, 61, .88);
	color: #fff;
	font-size: 13px;
	line-height: 1.4;
}
.product-card-body { display: flex; flex: 1; flex-direction: column; padding: 20px 22px 22px; }
.product-card-title { margin-bottom: 8px; color: #171724; font-size: 20px; font-weight: 500; line-height: 1.3; }
.product-card-text { flex: 1; margin-bottom: 16px; font-size: 15px; line-height: 1.55; }
.product-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.product-card-price { color: #171724; font-size: 24px; font-weight: 600; white-space: nowrap; }
.product-card .btn { margin: 0; }
.btn.is-added { background: #4d963b; border-color: #4d963b; }

/* ---------- services ---------- */
.service-card {
	display: block;
	height: 100%;
	padding: 34px 30px 30px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 28px rgba(23, 23, 36, .08);
	cursor: pointer;
	transition: box-shadow .25s, transform .25s;
}
.service-card:hover, .service-card:focus-visible { box-shadow: 0 14px 40px rgba(23, 23, 36, .16); transform: translateY(-3px); outline: 0; }
.service-card .blurb-icon { font-size: 42px; }
.service-card-title { margin: 14px 0 12px; color: #171724; font-size: 22px; font-weight: 500; line-height: 1.3; }
.service-card-text { margin-bottom: 18px; }
.service-card-cta { color: #57B33E; font-weight: 500; }
.service-card-cta::after { content: ' \2192'; }

/* ---------- forms / status ---------- */
.form-status { margin-top: 16px; }
.form-status:empty, .fb-modal-output:empty { display: none; }
.form-status.is-success, .fb-modal-output.is-success { padding: 12px 16px; border-radius: 6px; background: #eaf7e5; color: #2f6b1e; }
.form-status.is-error, .fb-modal-output.is-error { padding: 12px 16px; border-radius: 6px; background: #fdeceb; color: #a12b1d; }
.fb-optional { color: #9a9aa2; font-size: .85em; }
.form-group label { display: block; margin-bottom: 6px; }
.field-error { margin-top: 6px; color: #c0392b; font-size: 14px; }
.form-control.is-invalid { border-color: #c0392b; }

/* ---------- feedback modal ---------- */
.fb-modal {
	width: 480px;
	max-width: calc(100vw - 24px);
	max-height: calc(100vh - 24px);
	padding: 0;
	border: 0;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 30px 80px rgba(23, 23, 36, .35);
	color: #5D5D66;
}
.fb-modal::backdrop { background: rgba(23, 23, 36, .6); }
.fb-modal-form { position: relative; padding: 34px 32px 30px; }
.fb-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #5D5D66;
	font-size: 14px;
	cursor: pointer;
}
.fb-modal-close:hover { background: #ECF4FF; color: #171724; }
.fb-modal-title { margin-bottom: 6px; padding-right: 30px; }
.fb-modal-subject { margin-bottom: 8px; color: #57B33E; font-size: 18px; font-weight: 600; line-height: 1.3; }
.fb-modal-text { margin-bottom: 20px; font-size: 16px; }
.fb-modal .form-group { margin-bottom: 14px; }
.fb-modal .form-control { height: 3rem; font-size: 1rem; }
.fb-modal textarea.form-control { height: auto; }
.fb-modal .btn-block { margin-top: 18px; }
.fb-modal-output { margin-top: 14px; }

/* ---------- checkout ---------- */
.checkout-summary {
	padding: 28px;
	border-radius: 12px;
	background: #ECF4FF;
}
.checkout-line { display: flex; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid #d9e6f7; }
.checkout-line:last-of-type { border-bottom: 0; }
.checkout-line img { flex: 0 0 72px; width: 72px; height: 54px; object-fit: cover; border-radius: 4px; }
.checkout-line-title { color: #171724; font-size: 16px; line-height: 1.3; }
.checkout-line-meta { font-size: 14px; }
.checkout-line-price { margin-left: auto; color: #171724; font-weight: 600; white-space: nowrap; }
.checkout-total { display: flex; justify-content: space-between; margin-top: 12px; padding-top: 16px; border-top: 2px solid #171724; color: #171724; font-size: 22px; font-weight: 600; }
.checkout-note { margin-top: 14px; font-size: 14px; }

/* ---------- contact map ---------- */
.contact-map { width: 100%; height: 420px; border: 0; display: block; background: #ECF4FF; }
.contact-hours { padding-left: 0; }

@media (max-width: 575.98px) {
	.fb-modal-form { padding: 28px 20px 24px; }
	.product-card-foot { align-items: stretch; }
	.product-card-foot .btn { flex: 1; }
	.checkout-summary { padding: 20px; }
	.contact-map { height: 320px; }
}

/* inline text button that looks like a link */
.btn-link-inline { padding: 0; border: 0; background: none; font: inherit; text-decoration: underline; cursor: pointer; }

.rd-navbar-fullwidth .navbar-cell.navbar-cell-cart { align-items: center; }

@media (min-width: 576px) {
	/* 4-column grid on the home page: titles almost always wrap to two lines */
	.col-lg-3 > .product-card .product-card-title { min-height: 2.6em; }
}

/* comfortable form spacing (template forms rely on the editor's own spacing) */
.section form .form-group { margin-bottom: 20px; }
.section form .form-group label { margin-bottom: 8px; font-size: 15px; }

.service-card { display: flex; flex-direction: column; align-items: flex-start; }
.service-card-text { flex: 1; }

@media (min-width: 576px) {
	.service-card-title { min-height: 2.7em; }
}

.fb-modal textarea.form-control { min-height: 96px; height: 96px; }

/* header logo: compact so the mobile bar (menu - logo - cart - info) never crowds */
.navbar-logo-default, .navbar-logo-inverse { width: 176px; height: auto; }
@media (max-width: 400px) {
	.navbar-logo-default, .navbar-logo-inverse { width: 150px; }
}

/* ---------- PALWIND additions ---------- */
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.service-card-price { margin-bottom: 10px; font-size: 16px; }
.service-card-price strong { color: #171724; }
.catalog-pagination .pag { justify-content: center; }
.checkout-done { max-width: 560px; margin: 0 auto; padding: 30px 0; }
.checkout-done-icon { display: block; margin-bottom: 14px; color: #57B33E; font-size: 64px; line-height: 1; }
.checkout-line-price { position: relative; padding-right: 26px; text-align: right; }
.checkout-line-remove { top: 0; right: -4px; transform: none; }
.checkout-line > div:nth-child(2) { min-width: 0; }
.form-status.is-error { padding: 12px 16px; border-radius: 6px; background: #fdeceb; color: #a12b1d; margin-bottom: 16px; }
.form-group .field-error { margin-top: 6px; }
.rd-navbar-fullwidth .navbar-logo-default, .rd-navbar-fullwidth .navbar-logo-inverse { width: 186px; }

/* accordion: only the active item shows its body */
.accordion .accordion-body[data-multi-switch-target-slide]:not(.active) { display: none; }
