/* Agri Builder - frontend widget & layout styles */

.agb-content { max-width: 100%; }
.agb-section--boxed > .agb-section__inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.agb-section--full > .agb-section__inner { width: 100%; }
.agb-section__inner { display: flex; flex-wrap: wrap; gap: 20px; }
.agb-column { min-width: 0; box-sizing: border-box; }

@media (max-width: 767px) {
	.agb-section__inner { flex-direction: column; }
	.agb-column { flex-basis: 100% !important; max-width: 100% !important; }
}

.agb-hide-desktop { display: none; }
@media (max-width: 1024px) { .agb-hide-tablet { display: none; } }
@media (max-width: 767px) {
	.agb-hide-mobile { display: none; }
}
@media (min-width: 768px) {
	.agb-hide-desktop { display: block; }
}

.agb-sticky--top { position: sticky; top: 0; z-index: 100; }

/* Entrance animations */
.agb-animate { opacity: 0; transition: opacity .6s ease, transform .6s ease; }
.agb-animate[data-agb-animation="fade-in"] { transform: none; }
.agb-animate[data-agb-animation="slide-up"] { transform: translateY(30px); }
.agb-animate[data-agb-animation="slide-left"] { transform: translateX(-40px); }
.agb-animate[data-agb-animation="zoom-in"] { transform: scale(.85); }
.agb-animate.agb-in-view { opacity: 1; transform: none; }

/* Basic widgets */
.agb-button { display: inline-block; padding: 10px 22px; text-decoration: none; background: #2c7a2c; color: #fff; border-radius: 4px; font-weight: 600; }
.agb-button--small { padding: 6px 14px; font-size: 13px; }
.agb-button--large { padding: 14px 30px; font-size: 17px; }
.agb-image img { max-width: 100%; height: auto; }
.agb-image__caption { font-size: 13px; color: #666; margin-top: 6px; }

.agb-icon-box { display: flex; gap: 14px; align-items: flex-start; }
.agb-icon-box--top { flex-direction: column; }
.agb-icon-box__icon { font-size: 28px; width: 28px; height: 28px; }
.agb-icon-box__title { margin: 0 0 4px; }
.agb-icon-box__desc { margin: 0; color: #555; }

.agb-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.agb-accordion__item { border-bottom: 1px solid #e2e2e2; padding: 10px 0; }
.agb-accordion__title { cursor: pointer; font-weight: 600; }

.agb-testimonial { text-align: center; max-width: 480px; margin: 0 auto; }
.agb-testimonial__stars { color: #e8a33d; margin-bottom: 8px; }
.agb-testimonial__quote { font-size: 18px; font-style: italic; margin: 0 0 14px; }
.agb-testimonial__author { display: flex; align-items: center; justify-content: center; gap: 10px; }
.agb-testimonial__avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }

.agb-pricing-table { border: 1px solid #e2e2e2; border-radius: 8px; padding: 24px; text-align: center; }
.agb-pricing-table--featured { border-color: #2c7a2c; box-shadow: 0 4px 20px rgba(44,122,44,.15); }
.agb-pricing-table__price { font-size: 30px; font-weight: 700; margin: 10px 0; }
.agb-pricing-table__period { font-size: 14px; font-weight: 400; color: #777; }
.agb-pricing-table__features { list-style: none; padding: 0; margin: 16px 0; }
.agb-pricing-table__features li { padding: 6px 0; border-top: 1px solid #f0f0f0; }

.agb-countdown { display: flex; gap: 16px; justify-content: center; }
.agb-countdown__unit { text-align: center; }
.agb-countdown__num { display: block; font-size: 28px; font-weight: 700; }
.agb-countdown__label { font-size: 11px; text-transform: uppercase; color: #777; }

.agb-toc { border: 1px solid #eee; padding: 14px 16px; border-radius: 6px; background: #fafafa; }
.agb-toc__list { margin: 8px 0 0; padding-left: 18px; }

.agb-flip-box { perspective: 1000px; height: 260px; }
.agb-flip-box__inner { position: relative; width: 100%; height: 100%; transition: transform .6s; transform-style: preserve-3d; }
.agb-flip-box:hover .agb-flip-box__inner { transform: rotateY(180deg); }
.agb-flip-box__front, .agb-flip-box__back {
	position: absolute; inset: 0; backface-visibility: hidden;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	padding: 20px; text-align: center; border-radius: 8px; box-sizing: border-box;
}
.agb-flip-box__front { background: #f5f5f5; }
.agb-flip-box__back { background: #2c7a2c; color: #fff; transform: rotateY(180deg); }
.agb-flip-box__front img { max-width: 60%; margin-bottom: 10px; }

.agb-animated-headline__rotator { color: #2c7a2c; transition: opacity .3s; }

/* Forms */
.agb-form__field { margin-bottom: 14px; }
.agb-form__field label { display: block; font-weight: 600; margin-bottom: 4px; }
.agb-form__field input, .agb-form__field select, .agb-form__field textarea {
	width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid #ccc; border-radius: 4px;
}
.agb-form__required { color: #c0392b; }
.agb-form__status { margin-top: 10px; font-weight: 600; }
.agb-form__status.is-success { color: #1a7f37; }
.agb-form__status.is-error { color: #c0392b; }

/* Loop grid / product cards */
.agb-loop-card { display: block; text-decoration: none; color: inherit; border: 1px solid #eee; border-radius: 6px; overflow: hidden; }
.agb-loop-card__thumb img { width: 100%; display: block; }
.agb-loop-card__title { margin: 10px 12px 4px; font-size: 15px; }
.agb-loop-card__price { margin: 0 12px 12px; font-weight: 600; }
.agb-loop-grid__pagination { display: flex; gap: 6px; justify-content: center; margin-top: 20px; }
.agb-loop-grid__pagination a { padding: 6px 12px; border: 1px solid #ddd; border-radius: 4px; text-decoration: none; }
.agb-loop-grid__pagination a.is-active { background: #2c7a2c; color: #fff; border-color: #2c7a2c; }

/* Popups */
.agb-popup { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
.agb-popup[hidden] { display: none; }
.agb-popup__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.agb-popup__box { position: relative; background: #fff; max-width: 560px; width: calc(100% - 40px); max-height: 85vh; overflow: auto; border-radius: 8px; padding: 30px 24px; }
.agb-popup__close { position: absolute; top: 8px; right: 12px; background: none; border: none; font-size: 26px; cursor: pointer; line-height: 1; }

/* Mega menu (hover-based, JS adds .is-open for touch/click support) */
li.agb-has-mega-menu { position: relative; }
li.agb-has-mega-menu > .agb-mega-menu {
	position: absolute; top: 100%; left: 0; min-width: 480px; background: #fff;
	box-shadow: 0 10px 30px rgba(0,0,0,.15); padding: 20px; z-index: 999;
	display: none;
}
li.agb-has-mega-menu:hover > .agb-mega-menu,
li.agb-has-mega-menu.is-open > .agb-mega-menu { display: block; }

.agb-widget-error { color: #c0392b; background: #fdecea; padding: 8px 12px; border-radius: 4px; font-size: 13px; }
