/* CRN Karir — job board, accordion, apply modal. Design tokens match the site kit. */
/* The apply modal is moved to <body> at runtime, so it needs the same tokens and resets. */
.crn-karir, .crn-modal {
	--crn-navy: #1F3765;
	--crn-teal: #00C1B2;
	--crn-teal-dark: #00A396;
	--crn-text: #191919;
	--crn-muted: #9CA3AF;
	--crn-soft: #E4EDFC;
	--crn-line: #E5E7EB;
	--crn-danger: #D92D20;
	font-family: "DM Sans", sans-serif;
	color: var(--crn-text);
}
.crn-karir *, .crn-karir *::before, .crn-karir *::after,
.crn-modal *, .crn-modal *::before, .crn-modal *::after { box-sizing: border-box; }
.crn-karir [hidden], .crn-modal[hidden], .crn-modal [hidden] { display: none !important; }
.crn-karir .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Filters */
.crn-karir__filters { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.crn-karir__search, .crn-karir__select-wrap { display: flex; align-items: center; gap: 14px; background: var(--crn-soft); padding: 16px; margin: 0; }
/* Scoped under .crn-karir so the theme's input[type=search] styles (dark border) don't win. */
.crn-karir .crn-karir__search-input, .crn-karir .crn-karir__category {
	width: 100%; height: 44px; border: 1px solid #FFFFFF; border-radius: 2px; background: #FFFFFF;
	padding: 0 14px; font: 400 14px/1.4 "DM Sans", sans-serif; color: var(--crn-text); outline: none; box-shadow: none;
}
.crn-karir .crn-karir__search-input:focus, .crn-karir .crn-karir__category:focus,
.crn-karir .crn-karir__search-input:focus-visible, .crn-karir .crn-karir__category:focus-visible {
	outline: none; border-color: var(--crn-teal); box-shadow: 0 0 0 3px rgba(0, 193, 178, .18);
}
.crn-karir__search-input::placeholder { color: var(--crn-muted); }
.crn-karir__search-input::-webkit-search-cancel-button { cursor: pointer; }
.crn-karir__search-btn {
	flex: 0 0 44px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: 2px; padding: 0; background: var(--crn-teal); color: #FFFFFF; cursor: pointer; transition: background .2s;
}
.crn-karir__search-btn:hover { background: var(--crn-teal-dark); }
.crn-karir__search-btn svg { width: 19px; height: 19px; }
.crn-karir__category {
	appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23191919' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}
/* Custom category dropdown (enhances the native select above). */
.crn-karir .crn-dd__native { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; margin: -1px; opacity: 0; pointer-events: none; overflow: hidden; clip: rect(0 0 0 0); }
.crn-dd { position: relative; width: 100%; }
.crn-karir .crn-dd__button {
	width: 100%; height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 0 12px 0 14px; background: #FFFFFF; border: 1px solid #FFFFFF; border-radius: 2px;
	font: 400 14px/1.4 "DM Sans", sans-serif; color: var(--crn-text); text-align: left; cursor: pointer;
	box-shadow: none; transition: border-color .2s, box-shadow .2s;
}
.crn-karir .crn-dd__button:hover { background: #FFFFFF; color: var(--crn-text); border-color: #C9D6F0; }
.crn-karir .crn-dd__button:focus { background: #FFFFFF; color: var(--crn-text); outline: none; }
.crn-karir .crn-dd__button:focus-visible, .crn-dd.is-open .crn-dd__button {
	border-color: var(--crn-teal); box-shadow: 0 0 0 3px rgba(0, 193, 178, .18); outline: none;
}
.crn-dd__value { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crn-dd__button.has-value .crn-dd__value { font-weight: 600; color: var(--crn-navy); }
.crn-dd__chevron {
	flex: 0 0 28px; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 6px; color: var(--crn-text); transition: transform .25s ease, background-color .2s, color .2s;
}
.crn-dd__chevron svg { width: 16px; height: 16px; }
.crn-dd.is-open .crn-dd__chevron { transform: rotate(180deg); background: var(--crn-soft); color: var(--crn-navy); }

.crn-dd__list {
	position: absolute; left: -16px; right: -16px; top: calc(100% + 24px); z-index: 1000; /* above the floating WhatsApp button (999) */
	margin: 0; padding: 8px; list-style: none; max-height: 320px; overflow-y: auto; overscroll-behavior: contain;
	background: #FFFFFF; border: 1px solid #E6E8EC; border-radius: 12px;
	box-shadow: 0 18px 44px rgba(15, 40, 80, .16), 0 2px 6px rgba(15, 40, 80, .06);
	transform-origin: top center; animation: crnDdIn .16s ease-out; outline: none;
}
.crn-dd.is-up .crn-dd__list { top: auto; bottom: calc(100% + 24px); transform-origin: bottom center; }
@keyframes crnDdIn { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: none; } }
.crn-dd__option {
	display: flex; align-items: center; gap: 10px; margin: 0; padding: 11px 12px; border-radius: 8px;
	font: 400 14px/1.35 "DM Sans", sans-serif; color: var(--crn-text); cursor: pointer; user-select: none;
	transition: background-color .15s, color .15s;
}
.crn-dd__option + .crn-dd__option { margin-top: 2px; }
.crn-dd__option.is-active { background: #F1F5FD; }
.crn-dd__option[aria-selected="true"] { color: var(--crn-navy); font-weight: 600; background: #EAF1FD; }
.crn-dd__option[aria-selected="true"].is-active { background: #E1EAFB; }
.crn-dd__check { flex: 0 0 18px; width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; color: var(--crn-teal); opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; }
.crn-dd__check svg { width: 16px; height: 16px; }
.crn-dd__option[aria-selected="true"] .crn-dd__check { opacity: 1; transform: none; }
.crn-dd__text { flex: 1 1 auto; min-width: 0; }
.crn-dd__count {
	flex: 0 0 auto; min-width: 26px; padding: 2px 8px; border-radius: 20px; text-align: center;
	font-size: 12px; font-weight: 600; line-height: 1.5; color: #64748B; background: #F1F5F9;
}
.crn-dd__option[aria-selected="true"] .crn-dd__count { color: #FFFFFF; background: var(--crn-teal); }
.crn-dd__list::-webkit-scrollbar { width: 8px; }
.crn-dd__list::-webkit-scrollbar-thumb { background: #D5DCE8; border-radius: 8px; border: 2px solid #FFFFFF; }

.crn-karir__count { margin: 24px 0 12px; font-size: 15px; line-height: 1.5; color: var(--crn-text); }

/* Job accordion */
.crn-job { border-bottom: 1px solid var(--crn-line); transition: background-color .2s; }
.crn-job.is-open { background: #F5F6F8; border-bottom: 2px solid #9CA3AF; }
.crn-job__head {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px;
	padding: 26px 0; background: transparent; border: 0; border-radius: 0; text-align: left; cursor: pointer;
	color: inherit; font: inherit; box-shadow: none;
}
.crn-job__head:hover, .crn-job__head:focus { background: transparent; color: inherit; }
.crn-job__head:focus-visible { outline: 2px solid var(--crn-teal); outline-offset: 2px; }
.crn-job.is-open .crn-job__head { padding: 26px 28px 18px; }
.crn-job__summary { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.crn-job__title { font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--crn-text); }
.crn-job__meta { display: flex; flex-wrap: wrap; gap: 8px 48px; }
.crn-job__meta-item { display: inline-flex; flex-direction: column; gap: 6px; }
.crn-job__label { font-size: 13px; line-height: 1.3; color: var(--crn-muted); }
.crn-job__value { font-size: 14px; line-height: 1.3; color: var(--crn-text); }
.crn-job__toggle {
	flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%; background: #B5B8BE; color: #FFFFFF;
	display: inline-flex; align-items: center; justify-content: center; transition: transform .25s, background-color .2s;
}
.crn-job__toggle svg { width: 14px; height: 14px; }
.crn-job__head:hover .crn-job__toggle { background: #8D929A; }
.crn-job.is-open .crn-job__toggle { background: var(--crn-navy); transform: rotate(180deg); }
.crn-job__panel { padding: 0 28px 28px; }
.crn-job__section + .crn-job__section { margin-top: 20px; }
.crn-job__section-title { margin: 0 0 8px; font-family: "DM Sans", sans-serif; font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--crn-text); }
.crn-job__section-body { font-size: 14px; line-height: 1.65; color: var(--crn-text); }
.crn-job__section-body p { margin: 0 0 8px; }
.crn-job__section-body p:last-child { margin-bottom: 0; }
.crn-job__section-body ul, .crn-job__section-body ol { margin: 0; padding-left: 20px; }
.crn-job__section-body li { margin: 0 0 2px; }
.crn-job__apply, .crn-apply__done {
	margin-top: 22px; display: inline-flex; align-items: center; justify-content: center;
	padding: 11px 22px; background: #FFFFFF; color: var(--crn-navy); border: 1px solid var(--crn-navy); border-radius: 6px;
	font: 500 14px/1.2 "DM Sans", sans-serif; cursor: pointer; transition: background .2s, color .2s;
}
.crn-job__apply:hover, .crn-job__apply:focus, .crn-apply__done:hover { background: var(--crn-navy); color: #FFFFFF; border-color: var(--crn-navy); }

/* Empty state */
.crn-karir__empty { text-align: center; padding: 72px 20px 88px; }
.crn-karir__empty-art svg { width: 200px; height: auto; display: inline-block; }
.crn-karir__empty p { margin: 16px 0 0; font-size: 16px; color: var(--crn-text); }

/* Modal */
html.crn-modal-open { overflow: hidden; }
.crn-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.crn-modal__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .5); animation: crnFade .2s ease; }
.crn-modal__dialog {
	position: relative; width: 100%; max-width: 760px; max-height: calc(100vh - 40px); overflow-y: auto;
	background: #FFFFFF; border-radius: 16px; padding: 28px 30px 30px; box-shadow: 0 24px 60px rgba(15, 23, 42, .25);
	animation: crnPop .22s ease;
}
@keyframes crnFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes crnPop { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.crn-modal__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.crn-modal__title { margin: 0; font-family: "DM Sans", sans-serif; font-size: 17px; font-weight: 500; color: var(--crn-text); }
.crn-modal__close {
	width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0;
	background: transparent; border: 0; border-radius: 8px; color: var(--crn-text); cursor: pointer;
}
.crn-modal__close:hover, .crn-modal__close:focus { background: #F3F4F6; color: var(--crn-text); }
.crn-modal__close svg { width: 22px; height: 22px; }

.crn-apply__job { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 48px; margin-bottom: 26px; }
.crn-apply__job-title { font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--crn-text); min-width: 150px; }
.crn-apply__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.crn-apply__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
.crn-apply__field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.crn-apply__label { font-size: 13px; font-weight: 500; color: var(--crn-text); }
.crn-apply__label--strong { display: block; font-size: 14px; font-weight: 700; margin-bottom: 12px; }
.crn-apply__field input {
	height: 44px; width: 100%; padding: 0 12px; border: 1px solid #D0D5DD; border-radius: 6px; background: #FFFFFF;
	font: 400 14px/1.4 "DM Sans", sans-serif; color: var(--crn-text); outline: none; box-shadow: none;
}
.crn-apply__field input::placeholder { color: var(--crn-muted); }
.crn-apply__field input:focus { border-color: var(--crn-teal); box-shadow: 0 0 0 3px rgba(0, 193, 178, .15); }
.crn-apply__field.has-error input { border-color: var(--crn-danger); }
.crn-apply__error { min-height: 0; font-size: 12px; line-height: 1.4; color: var(--crn-danger); }
.crn-apply__error:empty { display: none; }

.crn-dropzone {
	position: relative; display: flex; align-items: center; justify-content: center; min-height: 170px; padding: 24px;
	background: var(--crn-soft); border: 1.5px dashed #9AA8C4; border-radius: 10px; cursor: pointer; text-align: center;
	transition: border-color .2s, background-color .2s;
}
.crn-dropzone:hover, .crn-dropzone.is-drag { border-color: var(--crn-navy); background: #DCE7FB; }
.crn-dropzone.has-error { border-color: var(--crn-danger); }
.crn-dropzone__input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.crn-dropzone__empty, .crn-dropzone__file { display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; }
.crn-dropzone__icon { color: var(--crn-navy); display: inline-flex; }
.crn-dropzone__icon svg { width: 30px; height: 30px; }
.crn-dropzone__text { font-size: 14px; color: var(--crn-text); }
.crn-dropzone__hint { font-size: 12px; color: var(--crn-muted); }
.crn-dropzone__name { font-size: 14px; font-weight: 600; color: var(--crn-navy); word-break: break-all; }
.crn-dropzone__change { font-size: 12px; color: var(--crn-muted); text-decoration: underline; }
.crn-apply__note { display: block; margin-top: 10px; font-size: 12px; color: var(--crn-danger); }

.crn-apply__status { margin-top: 16px; padding: 12px 14px; border-radius: 8px; background: #FEF3F2; color: #B42318; font-size: 14px; line-height: 1.5; }
.crn-apply__actions { display: flex; justify-content: flex-end; margin-top: 22px; }
.crn-apply__submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 150px;
	padding: 13px 24px; background: var(--crn-navy); color: #FFFFFF; border: 0; border-radius: 6px;
	font: 500 14px/1.2 "DM Sans", sans-serif; cursor: pointer; transition: background .2s, opacity .2s;
}
.crn-apply__submit:hover, .crn-apply__submit:focus { background: #162A4F; color: #FFFFFF; }
.crn-apply__submit[disabled] { opacity: .7; cursor: progress; }
.crn-apply__submit.is-loading::before {
	content: ""; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #FFFFFF; border-radius: 50%;
	animation: crnSpin .7s linear infinite;
}
@keyframes crnSpin { to { transform: rotate(360deg); } }

.crn-apply__success { text-align: center; padding: 20px 10px 6px; }
.crn-apply__success-icon {
	width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: #E6FAF8; color: var(--crn-teal);
	display: flex; align-items: center; justify-content: center;
}
.crn-apply__success-icon svg { width: 30px; height: 30px; }
.crn-apply__success h4 { margin: 0 0 8px; font-family: "DM Sans", sans-serif; font-size: 20px; font-weight: 700; color: var(--crn-text); }
.crn-apply__success p { margin: 0 auto; max-width: 480px; font-size: 15px; line-height: 1.6; color: #4B5563; }

/* Focus states: override the theme's default button focus colours, keep a visible ring. */
.crn-karir .crn-job__apply:focus, .crn-modal .crn-apply__done:focus { background: #FFFFFF; color: var(--crn-navy); border-color: var(--crn-navy); }
.crn-karir .crn-job__apply:hover, .crn-modal .crn-apply__done:hover { background: var(--crn-navy); color: #FFFFFF; }
.crn-modal .crn-apply__submit:focus { background: var(--crn-navy); color: #FFFFFF; }
.crn-modal .crn-apply__submit:hover { background: #162A4F; color: #FFFFFF; }
.crn-karir .crn-karir__search-btn:focus { background: var(--crn-teal); color: #FFFFFF; }
.crn-karir .crn-karir__search-btn:hover { background: var(--crn-teal-dark); }
.crn-modal .crn-modal__close:focus { background: transparent; color: var(--crn-text); }
.crn-modal .crn-modal__close:hover { background: #F3F4F6; }
.crn-karir button:focus-visible, .crn-modal button:focus-visible { outline: 2px solid var(--crn-teal); outline-offset: 2px; }

/* Responsive */
@media (max-width: 1024px) {
	.crn-karir__filters { gap: 16px; }
}
@media (max-width: 767px) {
	.crn-karir__filters { grid-template-columns: 1fr; gap: 12px; }
	.crn-karir__search, .crn-karir__select-wrap { padding: 12px; }
	.crn-dd__list { left: -12px; right: -12px; top: calc(100% + 18px); max-height: 60vh; }
	.crn-dd.is-up .crn-dd__list { bottom: calc(100% + 18px); }
	.crn-dd__option { padding: 13px 12px; }
	.crn-job__head { padding: 22px 0; gap: 16px; }
	.crn-job.is-open .crn-job__head { padding: 22px 16px 14px; }
	.crn-job__panel { padding: 0 16px 24px; }
	.crn-job__title { font-size: 16px; }
	.crn-job__meta { gap: 8px 32px; }
	.crn-modal { padding: 12px; align-items: flex-end; }
	.crn-modal__dialog { padding: 22px 18px 22px; border-radius: 16px; max-height: calc(100vh - 24px); }
	.crn-apply__grid { grid-template-columns: 1fr; gap: 12px; }
	.crn-apply__job { gap: 10px 28px; }
	.crn-apply__job-title { width: 100%; }
	.crn-dropzone { min-height: 140px; }
	.crn-apply__submit { width: 100%; }
}
