/* =========================================================================
   Logvance Shop — RESPONSIVE KATMANI
   main.css'ten SONRA yüklenir; bileşen medya sorgularının üzerine yazar.
   ========================================================================= */

/* -------------------------------------------------- 1. Taşma güvenliği */
html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

/* Uzun kelimeler / e-postalar dar ekranda taşmasın */
h1, h2, h3, h4,
p, li, td, th, a {
	overflow-wrap: anywhere;
}

/* Prose içindeki tablolar (beden rehberi) kendi içinde kaysın —
   sayfa yatay kaymaz. */
.lv-prose table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 1.4em;
}
.lv-prose table th,
.lv-prose table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--lv-line);
	text-align: left;
	white-space: nowrap;
}
.lv-prose table th {
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--lv-muted);
}

/* -------------------------------------------------- 2. Tablet (≤1024px) */
@media (max-width: 1024px) {
	:root {
		--lv-gutter: 20px;
	}

	.lv-section {
		padding-block: clamp(48px, 6vw, 72px);
	}

	/* Ürün ızgarası: tablette 3 sütun */
	.lv-products,
	.lv-products--4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px 16px;
	}
}

/* -------------------------------------------------- 3. Mobil menü (≤960px) */
@media (max-width: 960px) {

	/* KRİTİK: backdrop-filter, içindeki position:fixed elemanlar için yeni bir
	   konumlanma bağlamı yaratır. Menü çekmecesi header'ın içinde olduğu için
	   viewport'a değil header kutusuna (64px) göre konumlanıyordu — çekmece
	   ince bir şeride sıkışıyordu. Mobilde backdrop-filter'ı kaldırıyoruz;
	   zaten opak beyaz zemin kullanıyoruz, görsel kayıp yok. */
	.lv-header {
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		background: #fff;
	}

	.lv-nav {
		min-height: 64px;
		gap: 12px;
	}

	.lv-logo img,
	.custom-logo-link img {
		height: 28px;
	}

	/* Çekmece: tam ekran yüksekliği, opak zemin, kendi içinde kayar */
	.lv-menu {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		height: 100dvh;
		max-height: 100dvh;
		width: min(360px, 86vw);
		background: #fff;
		padding: 76px 20px calc(24px + env(safe-area-inset-bottom));
		gap: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		z-index: 120;
	}

	/* Dokunma hedefi en az 44–48px */
	.lv-menu a {
		display: flex;
		align-items: center;
		min-height: 48px;
		padding: 14px 12px;
	}

	.lv-icon-btn,
	.lv-cart-link {
		width: 44px;
		height: 44px;
	}

	/* Kapat butonu — yalnızca çekmece açıkken */
	.lv-menu-close {
		display: none;
		position: fixed;
		top: 14px;
		right: 14px;
		z-index: 130;
		width: 44px;
		height: 44px;
		place-items: center;
		border: 1px solid var(--lv-line);
		border-radius: 50%;
		background: #fff;
		color: var(--lv-ink);
		cursor: pointer;
		padding: 0;
	}
	.lv-menu.is-open + .lv-menu-close {
		display: grid;
	}
	.lv-menu-close svg {
		width: 20px;
		height: 20px;
	}
}

/* -------------------------------------------------- 4. Telefon (≤768px) */
@media (max-width: 768px) {

	/* --- Üst bar: sadece kargo vaadi --- */
	.lv-topbar {
		font-size: 0.72rem;
	}
	.lv-topbar__inner {
		min-height: 36px;
		justify-content: center;
	}
	.lv-topbar__group a[href^="mailto"] {
		display: none;
	}

	/* --- Kampanya slider --- */
	.lv-slide {
		min-height: 0;
	}
	.lv-slide__inner {
		gap: 0;
		padding-block: 30px 0;
	}
	.lv-slide__title {
		font-size: clamp(1.7rem, 7vw, 2.3rem);
	}
	.lv-slide__text {
		margin-bottom: 20px;
	}
	.lv-slide__badge {
		width: 62px;
		height: 62px;
		font-size: 1.05rem;
	}
	.lv-slide__art {
		min-height: 250px;
	}
	.lv-slider__dots {
		bottom: 12px;
	}
	.lv-slider__dot {
		width: 26px;
	}

	/* --- Avantaj şeridi: yatay kayan tek satır --- */
	.lv-usp__grid {
		display: flex;
		gap: 22px;
		overflow-x: auto;
		scrollbar-width: none;
		padding-block: 14px;
	}
	.lv-usp__grid::-webkit-scrollbar {
		display: none;
	}
	.lv-usp__item {
		flex: none;
		white-space: nowrap;
		font-size: 0.8rem;
	}
	.lv-usp__item svg {
		width: 18px;
		height: 18px;
	}

	/* --- Ürün ızgarası: telefonda 2 sütun (perakende standardı) --- */
	.lv-products,
	.lv-products--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px 12px;
	}
	.lv-card {
		border-radius: 14px;
	}
	.lv-card__body {
		padding: 12px 12px 14px;
		gap: 4px;
	}
	.lv-card__cat {
		font-size: 0.64rem;
	}
	.lv-card__title {
		font-size: 0.88rem;
		line-height: 1.3;
	}
	.lv-card__price {
		font-size: 0.94rem;
	}
	.lv-card__foot {
		flex-wrap: wrap;
		gap: 6px;
		padding-top: 6px;
	}
	.lv-flag {
		padding: 5px 9px;
		font-size: 0.62rem;
	}
	/* Dar kartta hızlı-ekle yer kaplamasın (varyasyon seçimi zaten gerekiyor) */
	.lv-card__quick {
		display: none;
	}

	/* --- Kategori kartları --- */
	.lv-cat__bar {
		padding: 14px 16px;
	}
	.lv-cat__name {
		font-size: 0.92rem;
	}

	/* --- Mağaza düzeni: kenar çubuğu → yatay kategori çipleri --- */
	.lv-shop-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
		padding-block: 24px;
	}
	.lv-sidebar {
		position: static;
	}
	/* "Yardım" widget'ı mobilde gizli — footer'da zaten var */
	.lv-sidebar .lv-widget + .lv-widget {
		display: none;
	}
	.lv-widget {
		padding-bottom: 0;
		margin-bottom: 0;
		border-bottom: 0;
	}
	.lv-widget__title {
		display: none;
	}
	.lv-widget ul {
		flex-direction: row;
		gap: 8px;
		overflow-x: auto;
		scrollbar-width: none;
		padding-bottom: 4px;
	}
	.lv-widget ul::-webkit-scrollbar {
		display: none;
	}
	.lv-widget li {
		flex: none;
	}
	.lv-widget li a {
		margin-inline: 0;
		padding: 10px 16px;
		border: 1px solid var(--lv-line);
		border-radius: var(--lv-pill);
		white-space: nowrap;
		font-size: 0.88rem;
	}
	.lv-widget li a .count {
		display: none;
	}

	/* --- Araç çubuğu --- */
	.lv-toolbar {
		gap: 12px;
		padding-bottom: 16px;
		margin-bottom: 20px;
	}
	.woocommerce-result-count {
		font-size: 0.82rem;
	}
	.woocommerce-ordering {
		margin-left: auto;
	}
	.woocommerce-ordering select {
		padding: 9px 34px 9px 14px;
		font-size: 0.84rem;
	}

	/* --- Sayfa hero --- */
	.lv-page-hero {
		padding-block: 30px 34px;
	}
	.lv-page-hero p {
		font-size: 0.94rem;
	}

	/* --- Ürün detay --- */
	.lv-single {
		padding-block: 18px 44px;
	}
	.lv-single__grid {
		gap: 22px;
	}
	.lv-gallery__thumbs {
		grid-template-columns: repeat(5, 1fr);
		gap: 8px;
	}
	.entry-summary .product_title {
		font-size: 1.55rem;
	}
	.lv-single .price {
		font-size: 1.5rem;
	}

	/* Miktar + sepete ekle tam genişlik */
	.lv-single form.cart,
	.lv-single .woocommerce-variation-add-to-cart {
		gap: 10px;
	}
	.single_add_to_cart_button {
		min-width: 0;
		flex: 1;
		padding: 16px 20px;
	}
	.quantity input.qty {
		width: 44px;
		height: 50px;
	}
	.lv-qty-btn {
		width: 38px;
		height: 50px;
	}
	.variations select {
		font-size: 16px; /* iOS zoom engelleme */
		padding: 13px 40px 13px 15px;
	}

	/* Sekmeler yatay kayar */
	.wc-tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.wc-tabs::-webkit-scrollbar {
		display: none;
	}
	.wc-tabs li a {
		white-space: nowrap;
		padding: 12px 16px;
		font-size: 0.88rem;
	}
	.shop_attributes th {
		width: 130px;
		font-size: 0.85rem;
	}

	/* --- SSS --- */
	.lv-acc__btn {
		padding: 18px;
		font-size: 0.94rem;
	}
	.lv-acc__panel p {
		padding: 0 18px 20px;
		font-size: 0.9rem;
	}

	/* --- İyilik banner --- */
	.lv-cause {
		padding: 28px 22px;
	}

	/* --- Marka şeridi --- */
	.lv-marquee__track {
		gap: 36px;
	}
	.lv-marquee__item img {
		height: 34px;
		max-width: 112px;
	}

	/* --- Bülten --- */
	.lv-newsletter__form {
		flex-direction: column;
	}
	.lv-newsletter__form .lv-btn {
		justify-content: center;
	}

	/* --- Başa dön --- */
	.lv-top {
		right: 14px;
		bottom: 14px;
		width: 42px;
		height: 42px;
	}
}

/* -------------------------------------------------- 5. Sepet tablosu → kart (≤768px)
   Klasik WooCommerce tablosu dar ekranda taşar; satırları karta çeviriyoruz. */
@media (max-width: 768px) {

	.woocommerce-cart-form,
	.woocommerce-cart-form .shop_table {
		display: block;
		width: 100%;
	}

	.woocommerce-cart-form .shop_table thead {
		display: none; /* Başlıklar data-title ile satır içinde */
	}

	.woocommerce-cart-form .shop_table tbody,
	.woocommerce-cart-form .shop_table td {
		display: block;
		width: 100%;
	}

	/* Her ürün satırı bir kart */
	.woocommerce-cart-form .shop_table tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 92px minmax(0, 1fr);
		grid-template-areas:
			"thumb name"
			"thumb price"
			"qty   subtotal";
		gap: 6px 14px;
		align-items: center;
		padding: 14px 40px 14px 14px;
		margin-bottom: 14px;
		border: 1px solid var(--lv-line);
		border-radius: var(--lv-radius);
	}
	.woocommerce-cart-form .shop_table tr.cart_item td {
		border: 0;
		padding: 0;
	}

	.shop_table .product-thumbnail {
		grid-area: thumb;
		width: auto;
	}
	.shop_table .product-thumbnail img {
		width: 92px;
		height: 122px;
	}
	.shop_table .product-name     { grid-area: name; }
	.shop_table .product-price    { grid-area: price; }
	.shop_table .product-quantity { grid-area: qty; padding-top: 8px; }
	.shop_table .product-subtotal { grid-area: subtotal; text-align: right; padding-top: 8px; }

	/* Sil butonu: kartın sağ üst köşesi */
	.shop_table .product-remove {
		position: absolute;
		top: 8px;
		right: 8px;
		width: auto;
	}

	/* Fiyat/ara toplam için satır içi etiket */
	.shop_table .product-price::before,
	.shop_table .product-subtotal::before {
		content: attr(data-title) ": ";
		font-size: 0.7rem;
		font-weight: 600;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		color: var(--lv-muted);
	}
	.shop_table .product-name a {
		font-size: 0.95rem;
	}
	.shop_table .product-quantity .quantity {
		transform: scale(0.92);
		transform-origin: left center;
	}

	/* Kupon + güncelle */
	.woocommerce-cart-form .shop_table td.actions {
		display: flex;
		flex-direction: column;
		gap: 12px;
		padding: 4px 0 0;
		border: 0;
	}
	.coupon {
		float: none;
		display: flex;
		gap: 8px;
		width: 100%;
	}
	.coupon input[type="text"] {
		flex: 1;
		min-width: 0;
		font-size: 16px;
	}
	td.actions > .button {
		float: none;
		width: 100%;
	}

	/* Sepet toplamları: tablo → satır listesi */
	.cart_totals {
		padding: 20px 18px;
	}
	.cart_totals .shop_table,
	.cart_totals .shop_table tbody {
		display: block;
	}
	.cart_totals .shop_table tr {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 16px;
		padding: 12px 0;
		border-bottom: 1px solid var(--lv-line);
	}
	.cart_totals .shop_table th,
	.cart_totals .shop_table td {
		display: block;
		padding: 0;
		border: 0;
		text-align: right;
	}
	.cart_totals .shop_table th {
		text-align: left;
		flex: none;
	}
	.cart_totals .shop_table .order-total {
		border-bottom: 0;
	}

	.cross-sells > h2 {
		font-size: 1.3rem;
	}
}

/* -------------------------------------------------- 6. Ödeme / hesap (≤768px) */
@media (max-width: 768px) {
	.lv-checkout-page,
	.lv-cart-page,
	.lv-account-page {
		padding-block: 26px 44px;
	}

	.lv-checkout-grid {
		gap: 26px;
	}
	.lv-checkout-aside {
		padding: 20px 18px;
	}

	#order_review .shop_table th,
	#order_review .shop_table td {
		padding: 12px 0;
		font-size: 0.9rem;
	}

	.woocommerce-checkout h3 {
		font-size: 1.1rem;
	}

	/* 16px: iOS Safari odaklanınca sayfayı yakınlaştırmasın */
	.form-row input[type="text"],
	.form-row input[type="email"],
	.form-row input[type="tel"],
	.form-row input[type="password"],
	.form-row textarea,
	.form-row select {
		font-size: 16px;
		padding: 13px 15px;
	}

	#place_order,
	.woocommerce .checkout-button,
	.checkout-button {
		padding: 16px 24px;
		font-size: 0.98rem;
	}

	/* Hesap sekmeleri yatay kayar */
	.woocommerce-MyAccount-navigation ul {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}
	.woocommerce-MyAccount-navigation li a {
		white-space: nowrap;
	}
	.woocommerce-form-login,
	.woocommerce-form-register {
		padding: 22px 18px;
	}

	/* Bildirimler */
	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error {
		padding: 14px 16px;
		font-size: 0.88rem;
	}
	.woocommerce-message .button,
	.woocommerce-info .button {
		margin-left: 0;
		width: 100%;
	}
}

/* -------------------------------------------------- 7. Küçük telefon (≤400px) */
@media (max-width: 400px) {
	:root {
		--lv-gutter: 16px;
	}

	.lv-products,
	.lv-products--4 {
		gap: 12px 10px;
	}
	.lv-card__title {
		font-size: 0.82rem;
	}
	.lv-card__price {
		font-size: 0.86rem;
	}
	.lv-card__price del {
		display: none; /* Dar ekranda sadece indirimli fiyat */
	}

	.lv-btn {
		padding: 13px 20px;
		font-size: 0.9rem;
	}

	.woocommerce-cart-form .shop_table tr.cart_item {
		grid-template-columns: 72px minmax(0, 1fr);
	}
	.shop_table .product-thumbnail img {
		width: 72px;
		height: 96px;
	}

	.lv-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}
	.lv-pay span {
		font-size: 0.64rem;
		padding: 4px 8px;
	}
}

/* -------------------------------------------------- 8. Yatay telefon / kısa ekran */
@media (max-height: 520px) and (orientation: landscape) {
	.lv-slide {
		min-height: 0;
	}
	.lv-slide__inner {
		padding-block: 26px;
	}
	.lv-menu {
		padding-top: 64px;
	}
}

/* -------------------------------------------------- 9. Dokunmatik cihazlar */
@media (hover: none) {
	/* Hover'a bağlı ikinci görsel dokunmatikte çalışmaz — kapat */
	.lv-card:hover .lv-card__media img.lv-card__main {
		opacity: 1;
	}
	.lv-card:hover .lv-card__media img.lv-card__alt {
		opacity: 0;
	}
	.lv-card:hover {
		transform: none;
		box-shadow: none;
		border-color: var(--lv-line);
	}
	.lv-cat:hover {
		transform: none;
		box-shadow: none;
	}
	/* Logolar dokunmatikte hep okunur kalsın */
	.lv-marquee__item img {
		filter: grayscale(0);
		opacity: 0.85;
	}
}

/* -------------------------------------------------- 10. Yazdırma */
@media print {
	.lv-topbar,
	.lv-header,
	.lv-footer,
	.lv-top,
	.lv-slider,
	.lv-marquee,
	.lv-rail__tools,
	.lv-card__quick,
	.lv-usp {
		display: none !important;
	}
	body {
		color: #000;
		background: #fff;
	}
}
