/* Budi Tab Service — scoped widget styles */
.budi-tab-service {
	position: relative;
	width: 100%;
}

.budi-tab-service__panel[hidden] {
	display: none !important;
}

.budi-tab-service__svg-defs {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
	pointer-events: none;
	clip: rect(0, 0, 0, 0);
}

/* Tab bar: single row, horizontal scroll when labels overflow (tablet / long copy) */
.budi-tab-service__tabs-bar {
	margin-bottom: 70px;
	min-width: 0;
}

.budi-tab-service__tab-item {
	display: inline-flex;
	align-items: center;
	max-width: 100%;
}

/* Desktop / tablet: real tab buttons */
.budi-tab-service__tabs-desktop {
	width: 100%;
	min-width: 0;
}

/* Mobile strip: hidden on larger screens */
.budi-tab-service__tabs-mobile-strip {
	display: none;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	min-height: 52px;
	padding: 4px 6px;
	background: var(--color-main);
	border-radius: 10px;
	gap: 4px;
}

.budi-tab-service__tabs-mobile-center {
	flex: 1 1 auto;
	min-width: 0;
	padding: 10px 6px;
	text-align: center;
}

.budi-tab-service__mobile-title {
	display: block;
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 600;
	line-height: normal;
	color: #fff;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.budi-tab-service .budi-tab-service__tabs-mobile-strip .budi-tab-service__arrow {
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin: 0 !important;
	padding: 0 10px !important;
	border: none !important;
	background: transparent !important;
	color: #fff !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-shadow: none !important;
	line-height: 1;
}

.budi-tab-service .budi-tab-service__tabs-mobile-strip .budi-tab-service__arrow svg {
	display: block;
}

.budi-tab-service .budi-tab-service__tabs-mobile-strip .budi-tab-service__arrow:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.85);
	outline-offset: 2px;
	border-radius: 4px;
}

.budi-tab-service__tabs-frame {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding: 15px 4px;
	background: #fff;
	border-radius: 15px;
	box-shadow: 0 8px 35px 0 rgba(99, 99, 99, 0.25);
}

.budi-tab-service__tabs-scroll {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	scroll-behavior: smooth;
	scroll-padding-inline: 4px;
	min-width: 0;
	width: 100%;
	scrollbar-width: none;
	-ms-overflow-style: none;
	touch-action: pan-x;
}

.budi-tab-service__tabs-scroll::-webkit-scrollbar {
	display: none;
}

.budi-tab-service__tabs-bar-inner {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	width: max-content;
	max-width: none;
}

/*
 * Native <button> resets: theme/global button rules often win without tag + !important.
 */
.budi-tab-service button.budi-tab-service__tab {
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 15px !important;
	border: none !important;
	border-radius: 10px !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	font-family: var(--font-heading) !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	font-style: normal !important;
	line-height: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: rgba(6, 53, 60, 1) !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
	text-align: center !important;
	text-decoration: none !important;
	min-height: 0 !important;
	height: auto !important;
	width: auto !important;
	max-width: none !important;
	white-space: nowrap !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.budi-tab-service button.budi-tab-service__tab:hover {
	color: rgba(6, 53, 60, 1) !important;
	background: transparent !important;
	background-color: transparent !important;
}

.budi-tab-service button.budi-tab-service__tab.is-active {
	background-color: var(--color-main) !important;
	background: var(--color-main) !important;
	color: #fff !important;
	font-weight: 600 !important;
}

.budi-tab-service button.budi-tab-service__tab.is-active:hover {
	color: #fff !important;
	background-color: var(--color-main) !important;
}

.budi-tab-service button.budi-tab-service__tab:focus {
	outline: none !important;
}

.budi-tab-service button.budi-tab-service__tab:focus-visible {
	outline: 2px solid var(--color-main) !important;
	outline-offset: 2px !important;
}

/* Two-column main content — 45.3% / 54.7% of row minus 30px gap */
.budi-tab-service__grid {
	display: grid;
	grid-template-columns: calc((100% - 30px) * 0.453) calc((100% - 30px) * 0.547);
	align-items: stretch;
	gap: 30px;
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
}

.budi-tab-service__media-wrap {
	display: flex;
	flex-direction: column;
	min-height: 0;
	min-width: 0;
}

.budi-tab-service__media {
	flex: 1 1 auto;
	width: 100%;
	min-height: 240px;
	border-radius: 15px;
	background-color: rgba(6, 53, 60, 0.06);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.budi-tab-service__content-col {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
}

.budi-tab-service__content-box {
	flex: 1 1 auto;
	box-sizing: border-box;
	padding: 40px;
	background: #fff;
	border-radius: 15px;
	box-shadow: 0 8px 35px 0 rgba(99, 99, 99, 0.12);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.budi-tab-service__content {
	width: 100%;
}

.budi-tab-service__content>*:first-child {
	margin-top: 0;
}

.budi-tab-service__content>*:last-child {
	margin-bottom: 0;
}

.budi-tab-service__content h3 {
	font-size: 28px;
	font-weight: 600;
	line-height: normal;
	color: var(--color-custom);
}

.budi-tab-service__content p,
.budi-tab-service__content ul {
	margin-bottom: 1.5rem;
}

.budi-tab-service__content p,
.budi-tab-service__content ul,
.budi-tab-service__content ol,
.budi-tab-service__content li {
	color: var(--color-custom);
}

.budi-tab-service__content ul {
	padding-left: 0;
}

.budi-tab-service__content ul li {
	position: relative;
	padding-left: 38px;
	list-style: none;
}

.budi-tab-service__content ul li:not(:last-child) {
	margin-bottom: 14px;
}

.budi-tab-service__content ul li::before {
	content: '';
	display: inline-block;
	position: absolute;
	left: 0;
	top: 50%;
	width: 30px;
	height: 30px;
	transform: translateY(-50%);
	background-repeat: no-repeat;
	background-size: 30px 30px;
	background-position: center;
	background-image: url('data:image/svg+xml;utf8,<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.375 9C22.875 8.5 22.125 8.5 21.625 9L12.375 18.375L8.5 14.5C8 14 7.125 14 6.75 14.5C6.25 15 6.25 15.875 6.75 16.25L11.5 21C12 21.5 12.75 21.5 13.25 21L23.5 10.75C23.875 10.375 23.875 9.5 23.375 9Z" fill="%231C9A95"/></svg>');
}

.budi-tab-service__actions {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin-top: 16px;
}

.budi-tab-service a.budi-tab-service__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 14px 28px !important;
	border-radius: 100px !important;
	background: var(--color-sub) !important;
	background-color: var(--color-sub) !important;
	color: #fff !important;
	font-family: var(--font-heading) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: normal !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: opacity 0.2s ease, background-color 0.2s ease !important;
	border: none !important;
	box-shadow: none !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
}

.budi-tab-service a.budi-tab-service__btn:hover {
	opacity: 0.92;
	color: #fff !important;
	text-decoration: none !important;
	background: var(--color-sub) !important;
	background-color: var(--color-sub) !important;
}

/* FAQ block */
.budi-tab-service__faq {
	margin-top: 70px;
}

.budi-tab-service__faq-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.budi-tab-service__faq-item {
	background: #fff;
	border-radius: 15px;
	overflow: hidden;
}

/*
 * FAQ body: closed = fully hidden (max-height + overflow; grid 0fr is inconsistent in some WebKit builds).
 * Padding lives on .faq-desc so it cannot “leak” when height is 0.
 */
.budi-tab-service__faq-panel-outer {
	display: block;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.budi-tab-service__faq-item.is-open .budi-tab-service__faq-panel-outer {
	max-height: 3200px;
}

@media (prefers-reduced-motion: reduce) {
	.budi-tab-service__faq-panel-outer {
		transition-duration: 0.01ms;
	}
}

.budi-tab-service button.budi-tab-service__faq-trigger {
	width: 100% !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px !important;
	margin: 0 !important;
	padding: 22px 30px !important;
	border: none !important;
	border-radius: 0 !important;
	background: #fff !important;
	background-color: #fff !important;
	box-shadow: none !important;
	cursor: pointer !important;
	text-align: left !important;
	box-sizing: border-box !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: normal !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: inherit !important;
	min-height: 0 !important;
	height: auto !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.budi-tab-service button.budi-tab-service__faq-trigger:hover {
	background: #fff !important;
	background-color: #fff !important;
}

.budi-tab-service button.budi-tab-service__faq-trigger:focus {
	outline: none !important;
}

.budi-tab-service button.budi-tab-service__faq-trigger:focus-visible {
	outline: 2px solid var(--color-main) !important;
	outline-offset: -2px !important;
}

.budi-tab-service__faq-title {
	flex: 1 1 auto;
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 600;
	line-height: normal;
	color: rgba(6, 53, 60, 1);
}

.budi-tab-service__faq-icons {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.budi-tab-service__faq-icon {
	display: block;
	flex-shrink: 0;
}

.budi-tab-service__faq-icon--open {
	display: none;
}

.budi-tab-service__faq-trigger[aria-expanded="true"] .budi-tab-service__faq-icon--closed {
	display: none;
}

.budi-tab-service__faq-trigger[aria-expanded="true"] .budi-tab-service__faq-icon--open {
	display: block;
}

.budi-tab-service__faq-panel {
	overflow: hidden;
	min-height: 0;
	padding: 0;
	box-sizing: border-box;
}

.budi-tab-service__faq-desc {
	padding: 0 30px 22px;
	box-sizing: border-box;
	overflow: hidden;
	font-size: 16px;
	line-height: 1.5;
	color: rgba(6, 53, 60, 0.85);
}

.budi-tab-service__faq-desc>*:first-child {
	margin-top: 0;
}

.budi-tab-service__faq-desc>*:last-child {
	margin-bottom: 0;
}

/* Tablet: tab strip — tighter frame, slightly smaller tabs; still one row + scroll */
@media screen and (max-width: 991px) {
	.budi-tab-service__tabs-frame {
		padding: 14px 16px 14px 14px;
	}

	.budi-tab-service__tabs-bar-inner {
		gap: 8px;
	}

	.budi-tab-service button.budi-tab-service__tab {
		padding: 12px 14px !important;
		font-size: 17px !important;
	}

	.budi-tab-service__grid {
		grid-template-columns: calc((100% - 30px) * 0.5) calc((100% - 30px) * 0.5);
	}
}

/*
 * Mobile: teal “active tab” strip inside the card; arrows + title synced via JS.
 * Desktop tab buttons stay in DOM but are visually hidden (still used for a11y / program state).
 */
@media screen and (max-width: 768px) {
	.budi-tab-service__content-box {
		padding: 40px 32px;
	}

	.budi-tab-service__tabs-bar {
		margin-bottom: 32px;
	}

	.budi-tab-service__faq {
		margin-top: 32px;
	}

	.budi-tab-service__tabs-frame {
		padding: 12px;
	}

	.budi-tab-service__tabs-mobile-strip {
		display: flex;
	}

	.budi-tab-service__tabs-desktop {
		position: absolute;
		left: 0;
		top: 0;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
		pointer-events: none;
	}

	.budi-tab-service__tabs-scroll {
		overflow: hidden;
	}

	.budi-tab-service__grid {
		grid-template-columns: 1fr;
	}

	.budi-tab-service__media {
		min-height: 400px;
	}
}