/*
Theme Name: Astra Child
Template: astra
Description: Child theme Astra untuk ARDATERA Linen.
Version: 1.0.0
Text Domain: astra-child
*/

/*
 * Warna & font selalu lewat variabel global:
 * - konten Elementor: --e-global-color-* / --e-global-typography-* (Site Settings → Global Colors/Fonts)
 * - header/footer Astra: --ast-global-color-0..8 (Customizer → Global → Colors)
 */

/* ===== Header (Astra Header Builder) ===== */
/*
 * Sticky header: Astra versi gratis tidak punya opsi sticky, cukup CSS.
 * top negatif setinggi topbar: topbar ikut ter-scroll, baris navigasi tetap menempel.
 * --ard-topbar-h harus sama dengan tinggi Above Header di Customizer (40px desktop, 36px tablet/mobile).
 */
#masthead {
	--ard-topbar-h: 40px;
	--ard-adminbar-h: 0px;
	position: sticky;
	top: calc(var(--ard-adminbar-h) - var(--ard-topbar-h));
	z-index: 99;
	box-shadow: 0 1px 0 var(--ast-global-color-7);
}
.admin-bar #masthead { --ard-adminbar-h: 32px; }
@media (max-width: 921px) {
	#masthead { --ard-topbar-h: 36px; }
}
@media (max-width: 782px) {
	.admin-bar #masthead { --ard-adminbar-h: 46px; }
}
@media (max-width: 600px) {
	/* Admin bar WordPress tidak fixed di layar kecil. */
	.admin-bar #masthead { --ard-adminbar-h: 0px; }
}
.ard-topbar {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--ast-global-color-8);
}
.ard-topbar a { color: inherit; }
.ard-topbar a:hover { color: var(--ast-global-color-4); }
.ast-above-header-bar .ast-builder-html-element p { margin: 0; }

.main-header-menu > .menu-item > .menu-link {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ast-global-color-2);
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link { color: var(--ast-global-color-0); }

.ast-header-button-1 .ast-custom-button {
	background: transparent;
	color: var(--ast-global-color-0);
	border: 1px solid var(--ast-global-color-0);
	border-radius: 2px;
	padding: 10px 18px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.ast-header-button-1 .ast-custom-button:hover {
	background: var(--ast-global-color-0);
	color: var(--ast-global-color-4);
}

/* ===== Footer (Astra Footer Builder) ===== */
.site-primary-footer-wrap { border-top: 1px solid var(--ast-global-color-7); padding: 64px 0 40px; }
.site-below-footer-wrap { border-top: 1px solid var(--ast-global-color-7); font-size: 13px; }
.site-footer .widget-title {
	font-family: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 16px;
}
.site-footer .widget ul { margin: 0; padding: 0; list-style: none; }
.site-footer .widget li { font-size: 14px; margin-bottom: 8px; }
.site-footer a { color: var(--ast-global-color-2); }
.site-footer a:hover { color: var(--ast-global-color-0); }
.ard-footer-brand { text-align: left; }
.ard-footer-logo { display: block; width: 96px; height: auto; }
.ard-footer-brand p { font-size: 14px; margin: 12px 0 16px; max-width: 220px; }
.ard-social { display: flex; gap: 14px; }
.ard-social .ard-icon { width: 20px; height: 20px; }
.ard-footer-badge {
	width: 120px;
	height: 120px;
	margin-left: auto;
	border: 1px solid var(--ast-global-color-7);
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--ast-global-color-0);
}
.ard-footer-badge .ard-icon { width: 32px; height: 32px; }
@media (max-width: 921px) {
	.ard-footer-badge { margin-left: 0; }
	.site-primary-footer-wrap,
	.site-below-footer-wrap { padding-left: 32px; padding-right: 32px; }
	.site-footer .site-primary-footer-wrap .ast-builder-grid-row { row-gap: 40px; }
	.site-footer .site-primary-footer-wrap .site-footer-section { margin: 0; }
}
/* HP: jarak tepi layar, menu dua kolom (Produk | Perusahaan, Kebijakan | badge), Kontak lebar penuh di akhir, baris ±44px (tap target). */
@media (max-width: 544px) {
	.site-primary-footer-wrap { padding: 48px 20px 32px; }
	.site-below-footer-wrap { padding: 16px 20px; }
	.site-footer .site-primary-footer-wrap .ast-builder-grid-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 16px;
	}
	.site-footer .site-footer-section-1,
	.site-footer .site-footer-section-5 { grid-column: 1 / -1; }
	.site-footer .site-footer-section-5 { order: 1; }
	.ard-footer-brand p { max-width: none; }
	.ard-social { gap: 4px; margin-left: -12px; }
	.ard-social a { display: flex; padding: 12px; }
	.site-footer .widget-title { margin-bottom: 4px; }
	.site-footer .widget li { display: flex; align-items: center; min-height: 44px; margin: 0; }
	.site-footer .widget li a { align-self: stretch; display: flex; align-items: center; }
}

/* ===== Beranda: umum ===== */
@media (min-width: 1025px) {
	/* Kolom yang menempel ke tepi layar tetap sejajar dengan konten 1240px. */
	.ard-bleed-l { padding-left: max(32px, calc((100vw - 1240px) / 2)) !important; }
	.ard-bleed-r { padding-right: max(32px, calc((100vw - 1240px) / 2)) !important; }
}
.ard-btn .elementor-button { line-height: 1.2; }
.ard-link-underline .elementor-button-text {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}
.ard-icon { display: block; }

/* Hero */
.ard-h1 em { font-style: italic; color: var(--e-global-color-primary); }
.ard-hero__lead { max-width: 32em; }
.ard-hero__media { position: relative; }
.ard-badge {
	position: absolute !important;
	right: 32px;
	bottom: 32px;
	width: 150px !important;
	height: 150px;
	padding: 24px;
	border-radius: 50%;
	background: var(--e-global-color-ardbg01);
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Astra memberi .entry-content p margin-bottom 1.6em, teks badge jadi naik dari tengah. */
.ard-badge .elementor-heading-title { margin: 0; }
@media (max-width: 767px) {
	.ard-badge { width: 112px !important; height: 112px; padding: 16px; right: 16px; bottom: 16px; }
	.ard-badge .elementor-heading-title { font-size: 10px; }
}

/* Kategori: lingkaran, scroll horizontal di tablet & mobile */
.ard-cat { flex: 1 1 0; min-width: 0; }
.elementor .ard-cat .elementor-heading-title a { text-decoration: none; }
.elementor .ard-cat__img img {
	width: 100%;
	max-width: 150px;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	transition: transform 0.3s ease;
}
.elementor .ard-cat:hover .ard-cat__img img { transform: scale(1.04); }
@media (max-width: 1024px) {
	.elementor .ard-cats {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		justify-content: flex-start !important;
		margin: 0 -20px;
		padding: 0 20px 4px !important;
	}
	.elementor .ard-cats::-webkit-scrollbar { display: none; }
	.elementor .ard-cats > .ard-cat { flex: 0 0 120px !important; width: 120px !important; scroll-snap-align: start; }
	.elementor .ard-cat__img img { max-width: 120px; }
}

/* Kenapa Ardatera */
.ard-kenapa__media > .elementor-widget-image { height: 100%; }
.elementor .ard-kenapa__media img { height: 100% !important; min-height: 400px; }
.ard-kenapa__features { border-left: 1px solid var(--e-global-color-ardbrd1); }
@media (max-width: 1024px) {
	.ard-kenapa__features { border-left: 0; }
	.elementor .ard-kenapa__media img { height: 360px !important; min-height: 0; }
}
.ard-feature__icon .ard-icon,
.ard-strip__icon .ard-icon { width: 32px; height: 32px; color: var(--e-global-color-primary); }
@media (max-width: 767px) {
	.elementor .ard-kenapa__media img { height: 260px !important; min-height: 0; }
	.ard-kenapa__features { border-left: 0; }
}
/* Keunggulan: grid 2×2 mengisi tinggi kolom, garis pembagi antar sel, ikon dalam lingkaran. */
.ard-kenapa__features.e-con { --align-items: stretch; }
.ard-feature.e-con { --justify-content: center; }
.ard-feature:nth-child(odd) { border-right: 1px solid var(--e-global-color-ardbrd1); }
.ard-feature:nth-child(-n+2) { border-bottom: 1px solid var(--e-global-color-ardbrd1); }
.elementor .ard-feature__icon .ard-icon {
	width: 80px;
	height: 80px;
	padding: 20px;
	box-sizing: border-box;
	border-radius: 50%;
	background: var(--e-global-color-ardbg01);
	transition: background-color 0.3s ease, color 0.3s ease;
}
.ard-feature:hover .ard-feature__icon .ard-icon { background: var(--e-global-color-primary); color: var(--e-global-color-ardwht1); }
/*
 * Judul memakai tipografi global "secondary" (11–12px, label kecil); diperbesar di sini tanpa mengubah global.
 * Selektor ≥5 kelas agar mengalahkan CSS per-elemen Elementor (.elementor-45 .elementor-element.elementor-element-xxx …).
 */
.elementor .ard-feature > .elementor-widget-heading:not(.ard-feature__desc) .elementor-heading-title { font-size: 16px; }
.elementor .ard-feature .ard-feature__desc.elementor-widget-heading .elementor-heading-title { margin: 0 auto; max-width: 18em; font-size: 17px; line-height: 1.55; }
@media (max-width: 767px) {
	/* Mobile: 2 kolom sempit. */
	.elementor .ard-feature > .elementor-widget-heading:not(.ard-feature__desc) .elementor-heading-title { font-size: 14px; }
	.elementor .ard-feature .ard-feature__desc.elementor-widget-heading .elementor-heading-title { font-size: 15px; }
	.elementor .ard-feature__icon .ard-icon { width: 64px; height: 64px; padding: 16px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	/* Tablet: 4 sel sebaris, cukup garis vertikal. */
	.ard-feature:nth-child(-n+2) { border-bottom: 0; }
	.ard-feature:not(:last-child) { border-right: 1px solid var(--e-global-color-ardbrd1); }
}

/* Video (Beranda): video potret 9:16. Elementor mengabaikan aspect ratio untuk video hosted, jadi diatur di sini. */
.ard-video__media.e-con { --width: 360px; max-width: 100%; }
.ard-video__media .elementor-video {
	display: block;
	width: 100%;
	aspect-ratio: 9 / 16;
	object-fit: cover;
	border-radius: 2px;
	background: var(--e-global-color-ardbg01);
}
@media (max-width: 1024px) {
	.ard-video__media.e-con { --width: 320px; align-self: center; }
}

/* Produk pilihan (shortcode WooCommerce) */
.ard-products ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin: 0 !important;
}
.ard-products ul.products::before,
.ard-products ul.products::after { display: none; }
.ard-products ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	text-align: left;
}
.ard-products li.product img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 4px;
	margin: 0 0 14px !important;
}
.ard-products .woocommerce-loop-product__title {
	font-family: var(--e-global-typography-ardh3-font-family), serif !important;
	font-size: 19px !important;
	font-weight: 600 !important;
	color: var(--e-global-color-text) !important;
	padding: 0 0 4px !important;
	margin: 0 !important;
}
/* Tombol "Pesan Sekarang" di kartu produk (semua loop: beranda, shop, kategori). Warna Astra global, karena halaman shop bukan halaman Elementor. */
ul.products li.product { display: flex; flex-direction: column; }
ul.products li.product .astra-shop-summary-wrap { flex: 1 1 auto; display: flex; flex-direction: column; }
.ard-btn-pesan {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	margin-top: auto;
	padding: 10px 16px;
	border-radius: 2px;
	background: var(--ast-global-color-0);
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease;
}
.ard-btn-pesan .ard-icon { width: 16px; height: 16px; flex: none; }
.ard-btn-pesan:hover,
.ard-btn-pesan:focus-visible { background: var(--ast-global-color-1); color: #fff; }
.ard-btn-pesan:focus-visible { outline: 2px solid var(--ast-global-color-1); outline-offset: 2px; }
ul.products li.product .woocommerce-loop-product__title { margin-bottom: 12px !important; }
@media (max-width: 1024px) {
	.ard-products ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
	.ard-products ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}

/* Solusi per segmen */
.ard-strip__body { flex: 1 1 0; }
.ard-strip__item + .ard-strip__item { border-left: 1px solid var(--e-global-color-ardbrd1); }
@media (max-width: 1024px) {
	.ard-strip__item + .ard-strip__item { border-left: 0; }
	.ard-strip__item:nth-child(n+3) { border-top: 1px solid var(--e-global-color-ardbrd1); }
}
@media (max-width: 767px) {
	.ard-strip__item + .ard-strip__item { border-top: 1px solid var(--e-global-color-ardbrd1); }
}

/* Portofolio klien: tile putih seragam, logo utuh (contain) apa pun rasio aslinya. */
.ard-klien {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ard-klien__item {
	flex: 0 0 calc((100% - 6 * 16px) / 7);
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	box-sizing: border-box;
	background: var(--e-global-color-ardwht1);
	border: 1px solid var(--e-global-color-ardbrd1);
	border-radius: 4px;
}
.elementor .ard-klien__item img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
@media (max-width: 1024px) {
	.ard-klien__item { flex-basis: calc((100% - 3 * 16px) / 4); }
}
@media (max-width: 767px) {
	.ard-klien { gap: 12px; }
	.ard-klien__item { flex-basis: calc((100% - 12px) / 2); padding: 12px; }
}

/* Testimoni: screenshot ulasan, dua kolom bertumpuk (masonry) agar teks di gambar tetap terbaca. */
.ard-testimoni {
	columns: 2;
	column-gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ard-testimoni__item {
	break-inside: avoid;
	margin: 0 0 16px;
	padding: 16px;
	background: var(--e-global-color-ardwht1);
	border: 1px solid var(--e-global-color-ardbrd1);
	border-radius: 4px;
}
.ard-testimoni__item a { display: block; cursor: zoom-in; }
.ard-testimoni__item a:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 4px; }
.elementor .ard-testimoni__item img { display: block; width: 100%; height: auto; }
@media (max-width: 767px) {
	.ard-testimoni { columns: 1; }
	.ard-testimoni__item { margin-bottom: 12px; padding: 12px; }
}

/* Cara pesan */
.ard-step { border-top: 1px solid var(--e-global-color-ardbrd1); }
.ard-step__num .elementor-heading-title { font-style: italic; }

/* Galeri */
.ard-gallery {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}
.elementor .ard-gallery__img img { border-radius: 4px; }
@media (max-width: 767px) {
	.ard-gallery { grid-template-columns: repeat(2, 1fr); }
}

/* FAQ (details/summary native) */
.ard-faq { border-bottom: 1px solid var(--e-global-color-ardbrd1); }
.ard-faq:first-child { border-top: 1px solid var(--e-global-color-ardbrd1); }
.ard-faq summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding: 20px 40px 20px 0;
	font-weight: 500;
	font-size: 17px;
}
.ard-faq summary::-webkit-details-marker { display: none; }
.ard-faq summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 24px;
	font-weight: 300;
	color: var(--e-global-color-primary);
}
.ard-faq[open] summary::after { content: "\2212"; }
.ard-faq summary:focus-visible { outline: 2px solid var(--e-global-color-primary); outline-offset: 2px; }
.ard-faq p { margin: 0; padding: 0 0 20px; color: var(--e-global-color-ardmut1); }

/* CTA band */
.ard-cta__icon .ard-icon { width: 56px; height: 56px; color: var(--e-global-color-accent); }
.ard-cta__text { flex: 1 1 0; }
.ard-cta__actions { flex: 0 0 auto; }

/* ===== Animasi (js/motion.js) ===== */
/* Lenis (inertial scrolling) */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
/* Hero disembunyikan sampai GSAP memulai animasi masuk; class dipasang skrip di <head>. */
.ard-motion .ard-hero__text,
.ard-motion .ard-hero__media { visibility: hidden; }
/* Wadah foto ber-parallax: potong gambar yang diperbesar. .e-con agar menang dari overflow:var(--overflow) Elementor. */
.ard-hero__media.e-con,
.ard-kenapa__media.e-con { overflow: hidden; }

/* Link menu ke anchor Beranda (mis. /#portofolio) dari halaman lain: jangan tertutup header sticky. */
#portofolio,
#testimoni { scroll-margin-top: 100px; }
