/* =============================================================================
   Dantel — sayfalar (sahibi: sayfalar): sepet, hesap, bilgi, iletişim, blog, hata ve başarı sayfaları.
   Çekirdek şablonların Bootstrap sınıfları body.dn-page--<rota> kapsamında yeniden stillenir; yalnızca yapının
   değişmesi gereken yerlerde Dantel şablonu vardır (checkout/cart, cart_list, cms/blog, account/account...).
   Kırılımlar: mobil < 768px, tablet 768–1023px, masaüstü >= 1024px.
   ========================================================================== */

/* ---------------------------------------------------------------------------
   0. Ortak: sayfa başlığı, boş durum, sayfa içi uyarılar
   ------------------------------------------------------------------------ */
.dn-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 64px 0 96px;
	text-align: center;
}

.dn-empty .dn-icon {
	width: 40px;
	height: 40px;
	margin-bottom: 20px;
	stroke-width: 1.25;
}

.dn-empty__title {
	margin: 0 0 12px;
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
	font-weight: 200;
	letter-spacing: -0.01em;
}

.dn-empty__text {
	margin: 0 0 32px;
	color: var(--dn-muted);
}

/* ---------------------------------------------------------------------------
   1. Sepet sayfası (checkout/cart + cart_list)
   ------------------------------------------------------------------------ */
.dn-cart-page__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 4px 16px;
	padding: 8px 0 28px;
}

.dn-cart-page__title {
	margin: 0;
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
	font-weight: 200;
	letter-spacing: -0.01em;
}

.dn-cart-page__count {
	color: var(--dn-muted-light);
	font-weight: 200;
}

.dn-cart-page__weight {
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-cart-page__layout {
	display: grid;
	gap: 40px;
	align-items: start;
	padding-bottom: 48px;
}

@media (min-width: 1024px) {
	.dn-cart-page__layout {
		grid-template-columns: minmax(0, 1fr) 400px;
		gap: 72px;
		padding-bottom: 96px;
	}

	/* Özet kartı kaydırırken yapışkan header'ın altında kalır */
	.dn-cart-summary {
		position: sticky;
		top: calc(var(--dn-sticky-offset) + 24px);
	}
}

/* Ürün satırları */
.dn-cart-lines {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--dn-border);
	list-style: none;
}

.dn-cart-line {
	display: grid;
	grid-template-areas:
		"media info total"
		"media form form";
	grid-template-columns: 88px minmax(0, 1fr) auto;
	gap: 12px 16px;
	align-items: start;
	padding: 24px 0;
	border-top: 1px solid var(--dn-border);
	transition: opacity 0.2s ease;
}

.dn-cart-line.is-busy {
	opacity: 0.45;
	pointer-events: none;
}

.dn-cart-line__media {
	position: relative;
	display: block;
	grid-area: media;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--dn-image-bg);
}

.dn-cart-line__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 6%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.dn-cart-line__info {
	grid-area: info;
	min-width: 0;
}

.dn-cart-line__name {
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
}

.dn-cart-line__stock {
	color: var(--dn-danger);
	font-weight: 600;
}

.dn-cart-line__price {
	margin: 4px 0 0;
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-cart-line__meta {
	margin: 6px 0 0;
	padding: 0;
	color: var(--dn-muted);
	font-size: 0.8125rem;
	line-height: 1.6;
	list-style: none;
}

.dn-cart-line__error {
	margin: 8px 0 0;
	color: var(--dn-danger);
	font-size: 0.8125rem;
}

.dn-cart-line__form {
	display: flex;
	grid-area: form;
	align-items: center;
	gap: 8px 20px;
	margin: 0;
}

.dn-cart-line__form .dn-qty.is-invalid {
	border-color: var(--dn-danger);
}

.dn-cart-line__remove {
	color: var(--dn-muted);
	font-size: 0.8125rem;
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 0.3em;
}

.dn-cart-line__remove:hover {
	color: var(--dn-text);
}

.dn-cart-line__total {
	grid-area: total;
	margin: 0;
	font-size: 0.9375rem;
	text-align: right;
	white-space: nowrap;
}

@media (min-width: 768px) {
	.dn-cart-line {
		grid-template-areas: "media info form total";
		grid-template-columns: 120px minmax(0, 1fr) auto 110px;
		gap: 24px;
		padding: 28px 0;
	}

	.dn-cart-line__form {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* Sipariş özeti kartı: gri zemin (#efefef), beyaz alanlar */
.dn-cart-summary {
	padding: 28px 24px;
	background: var(--dn-image-bg);
}

@media (min-width: 768px) {
	.dn-cart-summary {
		padding: 32px;
	}
}

.dn-cart-summary__title {
	margin: 0 0 20px;
	font-size: 1.5rem;
	font-weight: var(--dn-heading-weight);
	letter-spacing: 0;
}

.dn-cart-summary .form-control,
.dn-cart-summary .form-select {
	border-color: transparent;
	background-color: #fff;
}

.dn-cart-summary .form-control:focus,
.dn-cart-summary .form-select:focus {
	border-color: var(--dn-text);
}

.dn-cart-summary__modules {
	margin: 0 0 8px;
	border-top: 1px solid rgba(35, 35, 35, 0.14);
}

/* Kupon / puan / kargo tahmini satırları */
.dn-module {
	border-bottom: 1px solid rgba(35, 35, 35, 0.14);
}

.dn-module__heading {
	margin: 0;
	font-size: inherit;
	letter-spacing: 0;
}

.dn-module__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 16px 0;
	border: 0;
	background: none;
	color: var(--dn-text);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
}

.dn-module__icon {
	transition: transform 0.25s var(--dn-ease);
	transform: rotate(45deg);
}

.dn-module__toggle.collapsed .dn-module__icon {
	transform: none;
}

.dn-module__body {
	padding: 0 0 20px;
}

.dn-module__hint {
	margin: 0 0 14px;
	color: var(--dn-muted);
	font-size: 0.8125rem;
	line-height: 1.5;
}

.dn-module__inline {
	display: flex;
	gap: 8px;
}

.dn-module__inline .form-control {
	flex: 1;
	min-width: 0;
}

.dn-module__inline .btn {
	--bs-btn-padding-x: 1.125rem;
	--bs-btn-border-color: var(--dn-dark);
	flex-shrink: 0;
	background-color: transparent;
}

.dn-module__link {
	display: block;
	margin-top: 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--dn-muted);
	font-size: 0.8125rem;
	text-decoration: underline;
	text-underline-offset: 0.3em;
	cursor: pointer;
}

.dn-module__link:hover {
	color: var(--dn-text);
}

.dn-field {
	margin-bottom: 14px;
}

.dn-field .form-label {
	margin-bottom: 6px;
	font-size: 0.8125rem;
}

/* Toplamlar */
.dn-cart-totals {
	margin: 12px 0 0;
}

.dn-cart-totals__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	font-size: 0.875rem;
}

.dn-cart-totals__row dt {
	color: var(--dn-muted);
	font-weight: 400;
}

.dn-cart-totals__row dd {
	margin: 0;
	text-align: right;
}

.dn-cart-totals__row--grand {
	margin-top: 8px;
	padding-top: 20px;
	border-top: 1px solid rgba(35, 35, 35, 0.14);
}

.dn-cart-totals__row--grand dt {
	color: var(--dn-text);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.dn-cart-totals__row--grand dd {
	font-size: 1.625rem;
	font-weight: 300;
	line-height: 1.1;
}

.dn-cart-summary__note {
	margin: 10px 0 24px;
	color: var(--dn-muted);
	font-size: 0.75rem;
	line-height: 1.5;
}

.dn-cart-summary__checkout {
	margin-top: 4px;
}

.dn-cart-summary__note + .dn-cart-summary__checkout {
	margin-top: 0;
}

.dn-cart-summary__continue {
	display: block;
	margin-top: 18px;
	color: var(--dn-text);
	font-size: 0.8125rem;
	text-align: center;
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 0.35em;
}

/* Kargo yöntemi penceresi */
.dn-ship-modal .modal-body {
	padding-top: 20px;
}

.dn-ship-group {
	margin: 18px 0 8px;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dn-ship-option {
	min-height: 0;
	margin: 0 0 8px;
	padding: 0;
}

.dn-ship-option .form-check-input {
	position: absolute;
	margin: 0;
	opacity: 0;
}

.dn-ship-option .form-check-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--dn-border-strong);
	font-size: 0.875rem;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.dn-ship-option .form-check-input:checked + .form-check-label {
	border-color: var(--dn-dark);
	box-shadow: inset 0 0 0 1px var(--dn-dark);
}

.dn-ship-option .form-check-input:focus-visible + .form-check-label {
	outline: 2px solid var(--dn-text);
	outline-offset: 2px;
}

.dn-ship-modal form .btn {
	margin-top: 16px;
}

/* ---------------------------------------------------------------------------
   2. İçerik sayfaları ortak çerçevesi (hesap, bilgi, blog, hata, başarı, bakım)
   Yeni CSS iç içe yazımı (nesting): & seçicisi aşağıdaki :is() listesine bağlanır.
   ------------------------------------------------------------------------ */
.dn-page-title {
	margin: 0 0 32px;
	font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
	font-weight: 200;
	letter-spacing: -0.01em;
}

:is(
	body[class*="dn-page--account-"],
	body[class*="dn-page--information-"],
	body[class*="dn-page--cms-"],
	body:has(#error-not-found),
	body:has(#common-success),
	body:has(#common-maintenance)
) {
	& #dn-main > .container {
		padding-bottom: 72px;
	}

	& #content > h1 {
		margin: 0 0 32px;
		font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.5rem);
		font-weight: 200;
		letter-spacing: -0.01em;
	}

	& #content h2,
	& #content h3 {
		font-weight: var(--dn-heading-weight);
		letter-spacing: 0;
	}

	& #content h2 {
		margin: 0 0 16px;
		font-size: 1.5rem;
	}

	& #content h3 {
		margin: 0 0 14px;
		font-size: 1.25rem;
	}

	/* Sayfa içi bildirimler: ince çerçeve + renkli sol çizgi */
	& #dn-main .alert {
		position: relative;
		margin-bottom: 24px;
		padding: 14px 44px 14px 18px;
		border: 1px solid var(--dn-border);
		border-left: 3px solid var(--dn-dark);
		background: #fff;
		color: var(--dn-text);
		line-height: 1.5;
	}

	& #dn-main .alert-success {
		border-left-color: var(--dn-success);
	}

	& #dn-main .alert-danger {
		border-left-color: var(--dn-danger);
	}

	& #dn-main .alert-warning {
		border-left-color: var(--dn-warning);
	}

	& #dn-main .alert .btn-close {
		top: 50%;
		right: 8px;
		padding: 10px;
		transform: translateY(-50%);
		background-size: 10px;
	}

	& #dn-main .alert a {
		text-decoration-color: currentColor;
	}

	/* İkincil renkli butonlar tek çerçeveli dile çekilir */
	& .btn-info,
	& .btn-danger,
	& .btn-success,
	& .btn-warning {
		--bs-btn-color: var(--dn-text);
		--bs-btn-bg: transparent;
		--bs-btn-border-color: var(--dn-border-strong);
		--bs-btn-hover-color: #fff;
		--bs-btn-hover-bg: var(--dn-dark);
		--bs-btn-hover-border-color: var(--dn-dark);
		--bs-btn-active-color: #fff;
		--bs-btn-active-bg: var(--dn-dark);
		--bs-btn-active-border-color: var(--dn-dark);
		--bs-btn-disabled-color: var(--dn-muted);
		--bs-btn-disabled-bg: transparent;
		--bs-btn-disabled-border-color: var(--dn-border);
	}

	& .table .btn {
		--bs-btn-padding-x: 0.875rem;
		--bs-btn-padding-y: 0.5rem;
		--bs-btn-font-size: 0.6875rem;
	}

	/* Tablolar: yalnızca yatay çizgiler */
	& .table-bordered > :not(caption) > * {
		border-width: 0 0 1px;
	}

	& .table-bordered > :not(caption) > * > * {
		border-width: 0;
	}

	& .table > thead {
		border-bottom: 1px solid var(--dn-border-strong);
	}

	& .table > thead th {
		padding-top: 0;
	}

	& .table > :not(caption) > * > * {
		padding: 1.125rem 0.75rem;
	}

	& .table-hover > tbody > tr:hover > * {
		--bs-table-bg-state: #fafafa;
	}

	& .table img {
		width: 64px;
		height: auto;
		background: var(--dn-image-bg);
		mix-blend-mode: multiply;
	}

	/* Sayfalama satırı */
	& .row.mb-3 > .col-sm-6.text-end,
	& .row > .col-sm-6.text-end {
		color: var(--dn-muted);
		font-size: 0.8125rem;
	}
}

/* Küçük yardımcılar (Dantel şablonlarında) */
.dn-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 40px;
}

.dn-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	margin-top: 32px;
}

.dn-pager__results {
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-pager .pagination {
	margin: 0;
}

/* ---------------------------------------------------------------------------
   3. Hesap alanı: üstte yatay sekme menüsü, form düzeni, panel kutuları, sipariş satırları
   ------------------------------------------------------------------------ */
body[class*="dn-page--account-"],
body.dn-page--information-gdpr {
	/* Çekirdek iki sütunlu satır: yan menü (column_right) içeriğin üstüne yatay bir şerit olur */
	& #dn-main > .container > .row {
		--bs-gutter-x: 0;
		flex-direction: column;
	}

	& #dn-main > .container > .row > * {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		padding: 0;
	}

	& #column-right {
		display: block !important;
		order: -1;
		margin: 0 0 40px;
	}

	& #column-right .list-group {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0 28px;
		margin: 0 !important;
		overflow-x: auto;
		border-bottom: 1px solid var(--dn-border);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	& #column-right .list-group::-webkit-scrollbar {
		display: none;
	}

	/* Dar ekranda yatay kayar; sağ kenarda solma ipucu */
	& #column-right .list-group {
		padding-right: 40px;
		-webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
		mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
	}

	/* Masaüstünde sığmayan bağlantılar ikinci satıra iner */
	@media (min-width: 1024px) {
		& #column-right .list-group {
			flex-wrap: wrap;
			padding-right: 0;
			overflow: visible;
			-webkit-mask-image: none;
			mask-image: none;
		}
	}

	& #column-right .list-group-item {
		flex: 0 0 auto;
		margin-bottom: -1px;
		padding: 14px 0;
		border: 0;
		border-bottom: 2px solid transparent;
		background: none;
		color: var(--dn-muted);
		font-size: 0.75rem;
		letter-spacing: 0.12em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	& #column-right .list-group-item:hover,
	& #column-right .list-group-item:focus-visible {
		color: var(--dn-text);
	}

	/* Giriş yapmamış ziyaretçide (giriş/kayıt/şifre) menü gösterilmez */
	& #column-right:has(a[href*="route=account/register"]) {
		display: none !important;
	}
}

/* Etkin sekme: gövde sınıfı rotadan gelir, bağlantılar rota adıyla eşleşir */
body[class*="dn-page--account-edit"] #column-right a[href*="route=account/edit&"],
body[class*="dn-page--account-password"] #column-right a[href*="route=account/password&"],
body[class*="dn-page--account-payment_method"] #column-right a[href*="route=account/payment_method&"],
body[class*="dn-page--account-address"] #column-right a[href*="route=account/address&"],
body[class*="dn-page--account-wishlist"] #column-right a[href*="route=account/wishlist&"],
body[class*="dn-page--account-order"] #column-right a[href*="route=account/order&"],
body[class*="dn-page--account-download"] #column-right a[href*="route=account/download&"],
body[class*="dn-page--account-subscription"] #column-right a[href*="route=account/subscription&"],
body[class*="dn-page--account-reward"] #column-right a[href*="route=account/reward&"],
body[class*="dn-page--account-returns"] #column-right a[href*="route=account/returns&"],
body[class*="dn-page--account-transaction"] #column-right a[href*="route=account/transaction&"],
body[class*="dn-page--account-newsletter"] #column-right a[href*="route=account/newsletter&"] {
	border-bottom-color: var(--dn-text) !important;
	color: var(--dn-text) !important;
}

/* Panel sayfasında kutular zaten aynı bağlantılar */
body.dn-page--account-account #column-right {
	display: none !important;
}

/* Form düzeni: etiket üstte, alan altta; dar ve geniş boşluklu sütun */
:is(body[class*="dn-page--account-"], body.dn-page--information-gdpr, body.dn-page--information-contact) {
	& #content > form {
		max-width: 640px;
	}

	& form .row.mb-3 {
		--bs-gutter-x: 0;
		margin-bottom: 1.5rem !important;
	}

	& form .row.mb-3 > [class*="col-sm-"],
	& form .row.mb-3 > [class*="col-md-"],
	& form .row.mb-3 > [class*="col-lg-"] {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
		padding: 0;
	}

	& form .row.mb-3 > .col-form-label,
	& form .mb-3 > .col-form-label,
	& .col-form-label {
		padding: 0 0 8px;
		text-align: left;
	}

	& form .form-label,
	& form .col-form-label {
		font-size: 0.8125rem;
	}

	& fieldset {
		margin: 0 0 40px;
		padding: 0;
		border: 0;
	}

	& fieldset legend {
		float: none;
		width: 100%;
		margin-bottom: 28px;
		padding: 0 0 14px;
		border-bottom: 1px solid var(--dn-border);
		font-size: 0.75rem;
		font-weight: 500;
		letter-spacing: 0.15em;
		text-transform: uppercase;
	}

	/* Alt buton satırı: geri solda, gönder sağda */
	& #content > form > .row:last-child {
		--bs-gutter-x: 0;
		align-items: center;
		margin-top: 8px;
	}

	& #content > form > .row:last-child > .col-3 {
		flex: 0 0 auto;
		width: auto;
	}

	& #content > form > .row:last-child > * {
		padding: 0;
	}

	& .form-check-inline {
		margin-right: 1.5rem;
	}

	& #content > p {
		margin-bottom: 32px;
		color: var(--dn-muted);
		line-height: 1.7;
	}

	/* Gizlilik onayı (anahtar + metin) ve gönder butonu: alt satırda düzgün hizalı */
	& #content > form > .row:last-child {
		flex-wrap: wrap;
		gap: 16px 24px;
	}

	& #content > form > .row:last-child > .col.text-end {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: 16px 24px;
		text-align: right;
	}

	& #content > form > .row:last-child .form-check {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 12px;
		min-height: 0;
		margin: 0;
		padding: 0;
		font-size: 0.875rem;
		line-height: 1.5;
		text-align: right;
	}

	& #content > form > .row:last-child .form-check .form-check-input {
		flex-shrink: 0;
		float: none;
		order: 2;
		margin: 0;
	}

	& #content > form > .row:last-child .form-check .form-check-label {
		order: 1;
	}

	& #content > form > .row:last-child .form-check a {
		font-weight: 500;
		text-decoration-color: currentColor;
	}

	/* Kayıt, iade vb.: gönder butonu ve onay anahtarı doğrudan .text-end içinde */
	& #content > form > .text-end {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		gap: 16px 24px;
		margin-top: 8px;
	}

	& #content > form > .text-end .form-check {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 12px;
		min-height: 0;
		margin: 0;
		padding: 0;
		font-size: 0.875rem;
		line-height: 1.5;
		text-align: right;
	}

	& #content > form > .text-end .form-check .form-check-input {
		flex-shrink: 0;
		float: none;
		order: 2;
		margin: 0;
	}

	& #content > form > .text-end .form-check .form-check-label {
		order: 1;
	}

	& #content > form > .text-end .form-check a {
		font-weight: 500;
		text-decoration-color: currentColor;
	}

	& .form-switch .form-check-input {
		width: 2.5em;
		height: 1.375em;
	}

	/* Bilgi kutuları (sipariş bilgisi): ince çerçeveli */
	& div.form-control {
		height: auto;
		min-height: 0 !important;
		padding: 20px;
		border-color: var(--dn-border);
		line-height: 1.6;
	}

	& div.form-control .lead {
		display: block;
		margin-bottom: 6px;
		font-size: 0.75rem;
		font-weight: 500;
		letter-spacing: 0.15em;
		text-transform: uppercase;
	}
}

/* Giriş sayfası: iki kutu yan yana (dar ekranda alt alta) */
body.dn-page--account-login #content > .row {
	--bs-gutter-x: 32px;
	--bs-gutter-y: 32px;
}

body.dn-page--account-login #content > .row > .col {
	margin: 0 !important;
}

body.dn-page--account-login #content .border {
	padding: 32px !important;
	border: 1px solid var(--dn-border) !important;
	border-radius: 0 !important;
}

body.dn-page--account-login #content h2 {
	margin-bottom: 20px;
	font-size: 1.625rem;
}

body.dn-page--account-login #content .border p {
	color: var(--dn-muted);
	font-size: 0.9375rem;
}

body.dn-page--account-login #content .border p strong {
	color: var(--dn-text);
	font-weight: 500;
}

body.dn-page--account-login #content .border .text-end {
	margin-top: auto;
	padding-top: 12px;
	text-align: left !important;
}

body.dn-page--account-login #content .border .btn {
	min-width: 180px;
}

body.dn-page--account-login #content .border > a,
body.dn-page--account-login #content form a {
	color: var(--dn-muted);
	font-size: 0.8125rem;
	text-decoration: underline;
	text-decoration-color: currentColor;
}

@media (max-width: 767.98px) {
	body.dn-page--account-login #content > .row > .col,
	body[class*="dn-page--account-order-info"] #content > .row > .col {
		flex: 0 0 100%;
		width: 100%;
	}

	body.dn-page--account-login #content > .row > .col + .col {
		margin-top: 24px !important;
	}

	body[class*="dn-page--account-"] #content > .row.mb-3,
	body[class*="dn-page--account-"] #content > .row {
		flex-direction: column;
	}

	body[class*="dn-page--account-"] #content > form > .row:last-child {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	body[class*="dn-page--account-"] #content > form > .row:last-child > .col,
	body[class*="dn-page--account-"] #content > form > .row:last-child > .col-3 {
		flex: 0 0 auto;
		width: 100%;
	}

	body[class*="dn-page--account-"] #content > form > .row:last-child > .col.text-end {
		flex-direction: column;
		align-items: stretch;
	}

	body[class*="dn-page--account-"] #content > form > .row:last-child .form-check {
		justify-content: space-between;
		text-align: left;
	}

	body[class*="dn-page--account-"] #content > form > .row:last-child .btn {
		width: 100%;
	}

	body[class*="dn-page--account-"] #content > form > .text-end {
		flex-direction: column;
		align-items: stretch;
	}

	body[class*="dn-page--account-"] #content > form > .text-end .form-check {
		justify-content: space-between;
		text-align: left;
	}

	body[class*="dn-page--account-"] #content > form > .text-end .btn {
		width: 100%;
	}
}

/* Panel (account/account.twig): gruplanmış bağlantı kutuları */
.dn-dash {
	display: grid;
	gap: 24px;
}

@media (min-width: 768px) {
	.dn-dash {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}
}

@media (min-width: 1024px) {
	.dn-dash {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.dn-dash__box {
	padding: 28px 28px 20px;
	border: 1px solid var(--dn-border);
}

.dn-dash__title {
	margin: 0 0 8px !important;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--dn-border);
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase;
}

.dn-dash__title--next {
	margin-top: 24px !important;
}

.dn-dash__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dn-dash__list li + li {
	border-top: 1px solid var(--dn-border);
}

.dn-dash__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	text-decoration: none;
}

.dn-dash__list a::after {
	content: "\2192";
	flex-shrink: 0;
	color: var(--dn-muted-light);
	transition: transform 0.25s var(--dn-ease);
}

.dn-dash__list a:hover::after {
	color: var(--dn-text);
	transform: translateX(4px);
}

/* Sipariş listesi: sütunlu satırlar (mobilde etiketli kartlar) */
.dn-rows {
	border-top: 1px solid var(--dn-border-strong);
}

.dn-rows__head {
	display: none;
}

.dn-rows__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--dn-border);
	font-size: 0.9375rem;
}

.dn-rows__cell::before {
	content: attr(data-label);
	display: block;
	margin-bottom: 2px;
	color: var(--dn-muted-light);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dn-rows__cell--action::before {
	content: none;
}

.dn-rows__cell--action {
	align-self: end;
	text-align: right;
}

.dn-rows__cell--main {
	font-weight: 500;
}

@media (min-width: 768px) {
	.dn-rows__head,
	.dn-rows__row {
		grid-template-columns: 1fr 1.4fr 1.4fr 1fr 1fr 72px;
		align-items: center;
		gap: 0 20px;
	}

	.dn-rows__head {
		display: grid;
		padding: 14px 0;
		border-bottom: 1px solid var(--dn-border);
		color: var(--dn-muted);
		font-size: 0.6875rem;
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
	}

	.dn-rows__head span:nth-child(4),
	.dn-rows__head span:nth-child(5),
	.dn-rows__cell:nth-child(4),
	.dn-rows__cell:nth-child(5) {
		text-align: right;
	}

	.dn-rows__row {
		padding: 22px 0;
	}

	.dn-rows__cell::before {
		content: none;
	}
}

/* Favoriler: ürün ızgarası + kart altı eylemler */
.dn-wish {
	display: flex;
	flex-direction: column;
	min-width: 0;
	transition: opacity 0.2s ease;
}

.dn-wish.is-busy {
	opacity: 0.4;
	pointer-events: none;
}

.dn-wish .dn-card {
	height: auto;
}

.dn-wish__stock {
	margin: 2px 0 0;
	color: var(--dn-muted);
	font-size: 0.75rem;
}

.dn-wish__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 14px;
}

.dn-wish__actions form {
	margin: 0;
}

.dn-wish__remove {
	color: var(--dn-muted);
	font-size: 0.8125rem;
	text-align: center;
	text-decoration: underline;
	text-decoration-color: currentColor;
	text-underline-offset: 0.3em;
}

.dn-wish__remove:hover {
	color: var(--dn-text);
}

/* Adres defteri: satırlar (stok tablo, düzenle/sil düğmeleri küçük) */
body[class*="dn-page--account-address"] #address .table td {
	vertical-align: middle;
}

body[class*="dn-page--account-address"] #address .table td:first-child {
	line-height: 1.6;
}

/* Hesap tablolarında (indirme, iade, abonelik, işlem, puan) genel boşluk */
body[class*="dn-page--account-"] #content .table-responsive {
	margin-bottom: 8px;
}

body[class*="dn-page--account-"] #content > .text-end,
body[class*="dn-page--account-"] #content > div.text-end,
body[class*="dn-page--account-"] #content > .row:last-child {
	margin-top: 32px;
}

/* Sipariş bilgisi: ürün satırı sütunları dar ekranda yatay kayar (table-responsive), geçmiş tablosu */
body[class*="dn-page--account-order"] #content .row > .col.mb-3 {
	margin-bottom: 1rem !important;
}

/* ---------------------------------------------------------------------------
   4. Bilgi sayfaları, iletişim, site haritası
   ------------------------------------------------------------------------ */
.dn-info {
	max-width: 760px;
	margin: 0 auto;
	padding-top: 16px;
}

.dn-info__title {
	margin: 0 0 40px;
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
	font-weight: 200;
	letter-spacing: -0.02em;
	text-align: center;
}

.dn-info__body {
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.8;
}

.dn-info__body h2,
.dn-info__body h3,
.dn-info__body h4 {
	margin: 2em 0 0.6em;
}

.dn-info__body p,
.dn-info__body li {
	color: #3a3a3a;
}

.dn-info__body table {
	width: 100%;
}

body.dn-page--information-information #dn-main > .container > .row > #content {
	max-width: none;
}

/* İletişim: mağaza kartı ince çerçeveli, başlıklar küçük üst yazı */
body.dn-page--information-contact #content > h3 {
	margin: 0 0 20px;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

body.dn-page--information-contact .card {
	margin-bottom: 40px !important;
	border: 1px solid var(--dn-border);
	background: none;
}

body.dn-page--information-contact .card-body {
	padding: 32px;
	line-height: 1.7;
}

body.dn-page--information-contact .card-body strong {
	display: block;
	margin-bottom: 4px;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

body.dn-page--information-contact .card-body address {
	margin-bottom: 16px;
}

body.dn-page--information-contact .card-body img {
	background: var(--dn-image-bg);
}

body.dn-page--information-contact .card-body .col-sm-3 {
	margin-bottom: 12px;
}

body.dn-page--information-contact .accordion {
	--bs-accordion-border-color: var(--dn-border);
	--bs-accordion-border-radius: 0;
	--bs-accordion-inner-border-radius: 0;
	--bs-accordion-btn-focus-box-shadow: none;
	--bs-accordion-active-bg: transparent;
	--bs-accordion-active-color: var(--dn-text);
	--bs-accordion-btn-padding-y: 1.125rem;
	margin-bottom: 40px !important;
}

body.dn-page--information-contact .accordion-button {
	font-size: 0.9375rem;
	box-shadow: none;
}

body.dn-page--information-contact .accordion-body {
	line-height: 1.7;
}

body.dn-page--information-contact #content > form {
	max-width: 640px;
}

/* Site haritası: iki sütun, sade listeler */
body.dn-page--information-sitemap #content ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.dn-page--information-sitemap #content ul ul {
	margin: 2px 0 8px;
	padding-left: 18px;
	border-left: 1px solid var(--dn-border);
}

body.dn-page--information-sitemap #content li {
	line-height: 2.3;
}

body.dn-page--information-sitemap #content > .row > div > ul > li {
	margin-bottom: 8px;
	font-weight: 500;
}

body.dn-page--information-sitemap #content li li {
	font-weight: 300;
}

body.dn-page--information-sitemap #content a:hover {
	text-decoration-color: currentColor;
}

body.dn-page--information-sitemap #content > .row {
	--bs-gutter-x: 48px;
}

/* ---------------------------------------------------------------------------
   5. Hata (404), başarı ve bakım sayfaları: ortalı, ince büyük başlık
   ------------------------------------------------------------------------ */
body:has(#error-not-found),
body:has(#common-success),
body:has(#common-maintenance) {
	& #content,
	& #common-maintenance .col-12 {
		max-width: 640px;
		margin: 0 auto;
		padding: 48px 0 24px;
		text-align: center;
	}

	& #content > h1 {
		margin-bottom: 20px;
		font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem);
		letter-spacing: -0.02em;
	}

	& #content > p,
	& #content > div:not(.text-end) {
		color: var(--dn-muted);
		line-height: 1.7;
	}

	& #content .text-end {
		margin-top: 36px;
		text-align: center !important;
	}

	& #content .btn {
		min-width: 220px;
		--bs-btn-padding-y: 0.9375rem;
		--bs-btn-font-size: 0.875rem;
	}
}

#error-not-found > .row,
#common-success > .row {
	justify-content: center;
}

#error-not-found #content > h1::before {
	content: "404";
	display: block;
	margin-bottom: 16px;
	color: var(--dn-accent);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.3em;
}

#common-success #content > h1::before {
	content: "";
	display: block;
	width: 44px;
	height: 44px;
	margin: 0 auto 20px;
	background: no-repeat center / contain
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23232323' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m7.5 12.5 3 3 6-7'/%3E%3C/svg%3E");
}

#common-maintenance {
	padding: 96px 0;
	font-size: 1.125rem;
	font-weight: 300;
}

/* ---------------------------------------------------------------------------
   6. Blog (cms/blog, cms/blog.info)
   ------------------------------------------------------------------------ */
body.dn-page--cms-blog #column-left,
body.dn-page--cms-blog-info #column-left {
	display: none !important;
}

body[class*="dn-page--cms-"] #dn-main > .container > .row {
	--bs-gutter-x: 0;
}

body[class*="dn-page--cms-"] #dn-main > .container > .row > #content {
	padding: 0;
}

.dn-blog__head {
	max-width: 720px;
	margin: 0 auto 40px;
	text-align: center;
}

.dn-blog__head .dn-page-title {
	margin-bottom: 12px;
}

.dn-blog__intro {
	color: var(--dn-muted);
}

.dn-blog__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	margin-bottom: 40px;
	padding: 12px 0;
	border-top: 1px solid var(--dn-border);
	border-bottom: 1px solid var(--dn-border);
}

.dn-blog__topics {
	display: flex;
	flex: 1 1 100%;
	gap: 0 28px;
	overflow-x: auto;
	scrollbar-width: none;
}

.dn-blog__topics::-webkit-scrollbar {
	display: none;
}

.dn-blog__topic {
	flex: 0 0 auto;
	padding: 8px 0;
	border-bottom: 2px solid transparent;
	color: var(--dn-muted);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.dn-blog__topic:hover,
.dn-blog__topic.is-active {
	border-bottom-color: var(--dn-text);
	color: var(--dn-text);
}

.dn-blog__search {
	display: flex;
	flex: 1 1 320px;
	max-width: 420px;
	gap: 8px;
}

.dn-blog__search .form-control {
	min-width: 0;
}

.dn-blog__search .btn {
	flex-shrink: 0;
	--bs-btn-padding-x: 1.25rem;
}

.dn-blog__sort .form-select {
	min-width: 200px;
}

@media (min-width: 768px) {
	.dn-blog__topics {
		flex: 1 1 auto;
	}
}

.dn-blog__grid {
	display: grid;
	gap: 48px 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 768px) {
	.dn-blog__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 56px 24px;
	}
}

@media (min-width: 1024px) {
	.dn-blog__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 64px 32px;
	}
}

.dn-post {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
}

.dn-post__media {
	display: block;
	width: 100%;
	margin-bottom: 22px;
}

.dn-post__media .dn-post__img {
	object-fit: cover;
	mix-blend-mode: normal;
	transition: transform 0.8s var(--dn-ease);
}

.dn-post:hover .dn-post__img {
	transform: scale(1.03);
}

.dn-post__title {
	margin: 0 0 10px;
	font-size: clamp(1.375rem, 1.1rem + 0.7vw, 1.75rem);
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

.dn-post__title a {
	text-decoration: none;
}

.dn-post__meta {
	margin: 0 0 12px;
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-post__meta a {
	color: inherit;
}

.dn-post__excerpt {
	display: -webkit-box;
	margin: 0 0 20px;
	overflow: hidden;
	color: #3a3a3a;
	font-weight: 300;
	line-height: 1.7;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
}

.dn-post .dn-link {
	margin-top: auto;
}

.dn-blog__empty {
	padding: 48px 0;
	text-align: center;
}

/* Yazı detayı */
.dn-article__main {
	max-width: 960px;
	margin: 0 auto;
}

.dn-article__head,
.dn-article__body,
.dn-article__tags,
.dn-article__comments {
	max-width: 720px;
	margin-right: auto;
	margin-left: auto;
}

.dn-article__head {
	padding: 16px 0 36px;
	text-align: center;
}

.dn-article__meta {
	margin-bottom: 20px;
	color: var(--dn-muted);
}

.dn-article__meta a {
	color: inherit;
}

.dn-article__title {
	margin: 0;
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
	font-weight: 200;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.dn-article__figure {
	margin: 0 0 48px;
}

.dn-article__figure img {
	object-fit: cover;
	mix-blend-mode: normal;
}

.dn-article__body {
	font-size: 1.0625rem;
	font-weight: 300;
	line-height: 1.85;
}

.dn-article__body img {
	max-width: 100%;
	height: auto;
}

.dn-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--dn-border);
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-article__tags a {
	text-decoration-color: currentColor;
}

/* Yorumlar */
.dn-article__comments {
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid var(--dn-border);
}

.dn-article__comments hr {
	display: none;
}

.dn-article__comments h2 {
	margin: 0 !important;
	font-size: 1.5rem;
}

.dn-article__comments > .text-center {
	margin-bottom: 32px;
}

.dn-article__comments .btn-secondary {
	--bs-btn-padding-y: 0.625rem;
	--bs-btn-padding-x: 1.125rem;
	--bs-btn-font-size: 0.75rem;
}

.dn-article__comments > .row.mb-3 {
	align-items: center;
	margin-bottom: 28px !important;
}

.dn-article__comments .border {
	border: 0 !important;
	border-bottom: 1px solid var(--dn-border) !important;
	margin-bottom: 0 !important;
	padding-bottom: 12px;
}

.dn-article__comments .border > .p-2 {
	padding: 20px 0 !important;
}

.dn-article__comments .border p {
	margin-bottom: 0.75rem;
	line-height: 1.7;
}

.dn-article__comments .border p:first-child {
	color: var(--dn-muted);
	font-size: 0.8125rem;
}

.dn-article__comments .border .text-center.border-top {
	border-top: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.dn-article__comments .border .btn-secondary {
	--bs-btn-padding-y: 0.5rem;
	--bs-btn-padding-x: 0.875rem;
	--bs-btn-font-size: 0.6875rem;
}

.dn-article__comments .ps-5 {
	padding-left: 24px !important;
	border-left: 1px solid var(--dn-border);
	border-top: 0 !important;
}

@media (max-width: 767.98px) {
	.dn-article__comments > .row.mb-3 > .col-4 {
		flex: 0 0 100%;
		margin-top: 12px;
	}
}
