/* =====================================================
   HOME PAGE
   ===================================================== */

/* --- HeroBanner (Bootstrap Carousel) — 1440px base --- */
.ipac-hero {
	width: 100%;
	overflow: hidden;
}
.ipac-hero__slide {
	position: relative;
	width: 100%;
	height: 50vh;
}
@media (min-width: 992px) { .ipac-hero__slide { height: calc(100vh - var(--ipac-navbar-height)); } }
.ipac-hero__slide img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ipac-hero__slide.img-broken::before {
	font-size: 64px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
}
.ipac-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(29,29,31,0.8) 0%, rgba(29,29,31,0.5) 40%, transparent 70%);
}
@media (max-width: 767.98px) {
	.ipac-hero__overlay {
		background: linear-gradient(to top, rgba(29,29,31,0.7) 0%, transparent 60%),
		            linear-gradient(to right, rgba(29,29,31,0.6) 0%, transparent 60%);
	}
}
.ipac-hero__content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 24px 64px;
	z-index: 1;
}
@media (min-width: 768px) {
	.ipac-hero__content {
		justify-content: center;
		padding: 0 72px;
	}
}
@media (min-width: 992px) {
	.ipac-hero__content { padding: 0 96px; }
}
.ipac-hero__content-inner { max-width: 560px; }
.ipac-hero__title {
	font-size: 32px;
	color: #fff;
	line-height: 1.15;
	margin-bottom: 16px;
}
.ipac-hero__title .highlight { color: var(--secondary-color); }
@media (min-width: 576px) { .ipac-hero__title { font-size: 40px; } }
@media (min-width: 768px) { .ipac-hero__title { font-size: 48px; } }
@media (min-width: 992px) { .ipac-hero__title { font-size: 52px; } }

.ipac-hero__subtitle {
	font-size: 22px;
	color: rgba(255,255,255,0.75);
	line-height: 1.6;
	max-width: 440px;
	margin-bottom: 24px;
}
@media (min-width: 768px) { .ipac-hero__subtitle { margin-bottom: 32px; } }

/* Hero carousel indicators — override Bootstrap defaults */
.ipac-hero__indicators.carousel-indicators {
	bottom: 20px;
	gap: 8px;
	margin: 0 auto;
	padding: 0;
}
@media (min-width: 768px) { .ipac-hero__indicators.carousel-indicators { bottom: 28px; } }
.ipac-hero__indicators.carousel-indicators [data-bs-target] {
	width: 20px;
	height: 6px;
	padding: 0;
	margin: 0;
	border-radius: 9999px;
	background: rgba(255,255,255,0.3);
	background-clip: unset;
	border: none;
	opacity: 1;
	text-indent: 0;
	box-sizing: border-box;
	flex: none;
	transition: width 0.3s;
	position: relative;
	overflow: hidden;
}
.ipac-hero__indicators.carousel-indicators [data-bs-target]::after {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 0;
	background: #fff;
	border-radius: 9999px;
}
.ipac-hero__indicators.carousel-indicators .active {
	width: 40px;
	background: rgba(255,255,255,0.3);
}
.ipac-hero__indicators.carousel-indicators .active::after {
	animation: ipac-dot-progress 5s linear forwards;
}
@keyframes ipac-dot-progress {
	from { width: 0; }
	to { width: 100%; }
}

/* Hero carousel controls — show/hide via d-none d-md-flex utility on element */
.ipac-hero__control {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255,255,255,0.15);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,0.2);
	top: 50%;
	transform: translateY(-50%);
	bottom: auto;
	opacity: 1;
	transition: background 0.3s;
	align-items: center;
	justify-content: center;
}
.ipac-hero__control:hover { background: rgba(255,255,255,0.3); }
.ipac-hero__control i { font-size: 20px; color: #fff; }
.carousel-control-prev.ipac-hero__control { left: 16px; }
.carousel-control-next.ipac-hero__control { right: 16px; }
@media (min-width: 992px) {
	.carousel-control-prev.ipac-hero__control { left: 24px; }
	.carousel-control-next.ipac-hero__control { right: 24px; }
}
/* Hide default Bootstrap carousel icons */
.ipac-hero__control .carousel-control-prev-icon,
.ipac-hero__control .carousel-control-next-icon { display: none; }


/* --- BentoGrid (Services) --- */
.ipac-bento-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
@media (min-width: 992px) {
	.ipac-bento-grid { grid-template-columns: 7fr 5fr; gap: 28px; }
}
.ipac-bento-flex {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
@media (min-width: 992px) { .ipac-bento-flex { gap: 28px; } }

.ipac-bento-card {
	transition: all 0.5s;
}
@media (min-width: 992px) { .ipac-bento-card { flex: 1; } }
.ipac-bento-card:hover {
	box-shadow: var(--ipac-shadow-hover);
	transform: translateY(-4px);
}
.ipac-bento-card__image {
	position: relative;
	height: 200px;
	overflow: hidden;
}
@media (min-width: 576px) { .ipac-bento-card__image { height: 240px; } }
@media (min-width: 992px) { .ipac-bento-card__image { height: 260px; } }
.ipac-bento-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s;
}
.ipac-bento-card:hover .ipac-bento-card__image img { transform: scale(1.05); }
.ipac-bento-card__image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.4), rgba(0,0,0,0.1), transparent);
}
.ipac-bento-card__image-title {
	position: absolute;
	bottom: 20px;
	left: 20px;
	right: 20px;
	z-index: 1;
	font-size: 26px;
	color: #fff;
	line-height: 1.3;
}
.ipac-bento-card__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
@media (min-width: 576px) { .ipac-bento-card__body { padding: 24px; } }
@media (min-width: 992px) { .ipac-bento-card__body { padding: 28px; } }
.ipac-bento-card__body p {
	font-size: 22px;
	color: var(--ipac-text-medium);
	line-height: 1.3;
	margin-bottom: 24px;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
@media (min-width: 576px) { .ipac-bento-card__body p { -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; } }
.ipac-bento-card__body p.expanded {
	-webkit-line-clamp: unset;
	line-clamp: unset;
	overflow: visible;
}
.ipac-read-more {
	display: inline-block;
	font-size: 20px;
	color: var(--primary-color);
	cursor: pointer;
	margin-bottom: 12px;
	transition: all 0.2s;
}
.ipac-read-more:hover {
	color: var(--primary-color);
	opacity: 0.8;
}
.ipac-read-more i {
	font-size: 14px;
	transition: transform 0.3s;
}
.ipac-read-more.active i {
	transform: rotate(180deg);
}

.ipac-bento-channels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	align-items: stretch;
	margin-top: auto;
}
.ipac-bento-channel {
	background: var(--ipac-bg);
	border-radius: 12px;
	padding: 12px;
}
@media (min-width: 576px) { .ipac-bento-channel { border-radius: 16px; padding: 16px; } }
.ipac-bento-channel__header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}
.ipac-bento-channel__icon {
	width: 32px;
	height: 32px;
	border-radius: 12px;
	background: rgba(240,78,48,0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--primary-color);
	font-size: 18px;
}
.ipac-bento-channel__name {
	font-size: 18px;
	color: var(--ipac-text-dark);
	font-weight: 500;
}
@media (min-width: 576px) { .ipac-bento-channel__name { font-size: 22px; } }
.ipac-bento-channel__detail {
	font-size: 22px;
	color: var(--ipac-text-medium);
	line-height: 1.5;
}
.ipac-bento-channel__detail .item {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
	transition: all 0.2s;
}
.ipac-bento-channel__detail .item.btn {
	--bs-btn-padding-x: 0;
	--bs-btn-padding-y: 0;
	justify-content: flex-start;
	text-align: left;
	font-size: 22px;
}
.ipac-bento-channel__detail a.item:hover {
	color: var(--primary-color) !important;
}
.ipac-bento-channel__detail a.item:has(.fa-map-location-dot) {
	color: #E53935;
}
.ipac-bento-channel__detail a.item:has(.fa-map-location-dot):hover {
	color: #c62828 !important;
}
.ipac-bento-channel__detail a.item:has(.fa-square-facebook) {
	color: #1877F2;
}
.ipac-bento-channel__detail a.item:has(.fa-square-facebook):hover {
	color: #1260cc !important;
}
.ipac-bento-channel__detail a.item:has(.fa-line) {
	color: #06C755;
}
.ipac-bento-channel__detail a.item:has(.fa-line):hover {
	color: #05a648 !important;
}
.ipac-bento-channel__detail a.item:has(.fa-zoom) {
	color: #2D8CFF;
}
.ipac-bento-channel__detail a.item:has(.fa-zoom):hover {
	color: #1a73e8 !important;
}

.ipac-bento-tags {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 12px;
	margin-top: auto;
}
.ipac-bento-tags > a {
	display: block;
	background: var(--ipac-bg);
	border-radius: var(--ipac-radius-pill);
	padding: 4px 16px;
	transition: opacity 0.2s;
}
.ipac-bento-tags > a:hover { opacity: 0.7; }
.ipac-bento-tags > a > img {
	width: 100%;
	height: 60px;
	object-fit: contain;
}
.ipac-bento-tag {
	background: var(--ipac-bg);
	font-size: 20px;
	color: var(--ipac-text-dark);
	padding: 4px 16px;
	border-radius: var(--ipac-radius-pill);
	display: inline-flex;
	align-items: center;
}
.ipac-bento-tag img {
	height: 60px;
	width: 140px;
	object-fit: contain;
	display: block;
}

/* Benefits gradient card */
.ipac-bento-benefits {
	flex: 1;
	background: linear-gradient(135deg, var(--primary-color), #d93d1f);
	border-radius: var(--ipac-radius-lg);
	padding: 20px;
	box-shadow: var(--ipac-shadow);
	transition: all 0.5s;
	color: #fff;
}
@media (min-width: 576px) { .ipac-bento-benefits { padding: 24px; } }
.ipac-bento-benefits:hover {
	box-shadow: 0 12px 48px rgba(240,78,48,0.2);
	transform: translateY(-4px);
}
.ipac-bento-benefits h4 {
	font-size: 26px;
	color: #fff;
	margin-bottom: 12px;
	font-weight: 500;
}
@media (min-width: 576px) { .ipac-bento-benefits h4 { margin-bottom: 16px; } }
.ipac-bento-benefits__list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.ipac-bento-benefits__item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}
@media (min-width: 576px) { .ipac-bento-benefits__item { margin-bottom: 10px; } }
.ipac-bento-benefits__item i {
	color: rgba(255,255,255,0.8);
	margin-top: 8px;
	font-size: 16px;
	flex-shrink: 0;
}
@media (min-width: 576px) { .ipac-bento-benefits__item i { font-size: 20px; } }
.ipac-bento-benefits__item span {
	font-size: 22px;
	color: rgba(255,255,255,0.9);
	line-height: 1.5;
}

/* --- Benefits Section --- */
.ipac-benefits { background: var(--ipac-bg); }
.ipac-benefits__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media (min-width: 576px) { .ipac-benefits__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) {
	.ipac-benefits__grid { grid-template-columns: repeat(6, 1fr); }
	.ipac-benefits__card:nth-child(-n+3) { grid-column: span 2; }
	.ipac-benefits__card:nth-child(n+4) { grid-column: span 3; }
}
.ipac-benefits__card {
	background: #fff;
	border-radius: var(--ipac-radius-md);
	padding: 28px 24px;
	box-shadow: var(--ipac-shadow);
	transition: all 0.3s;
}
.ipac-benefits__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}
.ipac-benefits__icon {
	width: 48px;
	height: 48px;
	border-radius: 14px;
	background: rgba(var(--primary-color-rgb), 0.1);
	color: var(--primary-color);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	margin-bottom: 16px;
}
.ipac-benefits__card h4 {
	font-size: 24px;
	font-weight: 600;
	color: var(--ipac-text-dark);
	margin-bottom: 8px;
}
.ipac-benefits__card p {
	font-size: 22px;
	color: var(--ipac-text-medium);
	line-height: 1.5;
	margin: 0;
}


/* --- AboutSection --- */
.ipac-about-image__img { height: 280px; }
@media (min-width: 576px) { .ipac-about-image__img { height: 340px; } }
@media (min-width: 992px) { .ipac-about-image__img { height: 420px; } }
.ipac-about-float {
	bottom: 20px;
	right: 20px;
	background: rgba(255,255,255,0.7);
	-webkit-backdrop-filter: blur(20px);
	backdrop-filter: blur(20px);
	box-shadow: 0 8px 32px rgba(0,0,0,0.12);
	border: 1px solid rgba(255,255,255,0.5);
}
.ipac-about-float__big { font-size: 40px; }
.ipac-about-float__small { font-size: 26px; }
.ipac-about-item__title { font-size: 32px; color: var(--ipac-text-dark); }
.ipac-about-item__num { font-size: 32px; width: 48px; line-height: 1.5; }
.ipac-about-item__text { font-size: 22px; line-height: 1.3; }
.ipac-about-item__text.ipac-clampable {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ipac-about-item__text.ipac-clampable.expanded {
	-webkit-line-clamp: unset;
	line-clamp: unset;
	overflow: visible;
}
@media (min-width: 576px) { .ipac-about-item__text.ipac-clampable { -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; } }
.ipac-about-quote { font-size: 22px; line-height: 1.3; }


/* --- News scroll (mobile horizontal) --- */
@media (max-width: 575.98px) {
	.ipac-scroll-row {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 8px;
	}
	.ipac-scroll-row::-webkit-scrollbar { display: none; }
	.ipac-scroll-row__item {
		flex: 0 0 80%;
		max-width: 80%;
		scroll-snap-align: start;
	}
}


/* --- Knowledge Cards (home) --- */
.ipac-knowledge-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
@media (min-width: 576px) { .ipac-knowledge-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .ipac-knowledge-grid { gap: 24px; } }
.ipac-knowledge-card {
	display: block;
	position: relative;
	border-radius: var(--ipac-radius-md);
	overflow: hidden;
	aspect-ratio: 1;
	text-decoration: none;
	box-shadow: var(--ipac-shadow);
	transition: all var(--ipac-transition);
	background: linear-gradient(135deg, rgba(var(--primary-color-rgb),0.08) 0%, rgba(var(--alternative-color-rgb),0.12) 50%, rgba(var(--primary-color-rgb),0.06) 100%);
}
.ipac-knowledge-card.img-broken::before {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
}
.ipac-knowledge-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ipac-shadow-hover);
}
.ipac-knowledge-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s;
}
.ipac-knowledge-card:hover img { transform: scale(1.05); }
.ipac-knowledge-card__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 16px;
}
@media (min-width: 576px) { .ipac-knowledge-card__overlay { padding: 20px; } }
.ipac-knowledge-card__title {
	font-size: 24px;
	color: #fff;
	font-weight: 500;
	line-height: 1.4;
}
.ipac-knowledge-card__more {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 18px;
	color: rgba(255,255,255,0.8);
	margin-top: 8px;
	opacity: 0;
	transition: opacity var(--ipac-transition);
}
.ipac-knowledge-card:hover .ipac-knowledge-card__more { opacity: 1; }
