.main-slider,
.thumb-slider,
.variant-container {
    width: 100%;
}

.main-slider img {
    border-radius: var(--bs-border-radius-lg) !important;
}

.thumb-slider {
    margin-top: 10px;
}

.thumb-slider img {
    cursor: pointer;
}

.thumb-slider .swiper-slide-thumb-active img {
    border-color: #007bff;
}

.havale-info-box {
  background-color: #ecf5f0;
  padding: 8px;
  border-radius: var(--tuva-radius) !important;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
}

.havale-info-box .title-text::before {
  font-family: "bootstrap-icons";
  content: "\F26B";
  font-size: 14px;
  font-weight: 500;
  color: var(--tuva-black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 5px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.havale-info-box .title-text {
  color: var(--tuva-gray-acik-ton)
}

.havale-info-box .title-price {
  color: var(--tuva-charcoal)
}

.havale-info-box .text-rate {
  color: var(--tuva-red-500)
}


.resimetiketi {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
    font-size: 12px;
    left: -18px !important;
    top: 0;
    z-index: 10;
}

.product-controls .custom-input-group .input-group {
    min-height: 45px;
    max-height: 45px;
}

.product-controls  .form-control {
	display: block;
	width: 100% !important;
	padding: 0.35rem 0.75rem;
	font-size: 0.8125rem !important;
	font-weight: 400 !important;
	line-height: 1.8;
	transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}




@media (max-width: 1024px) {
    .product-right-block {
        margin-top: 2rem;
    }

    .product-body {
        border-radius: var(--bs-border-radius-lg) !important;
    }
}

@media (max-width: 991.98px) {
    .no-border-mobile {
        border-left: 0 !important;
    }
}

/* =========================================
   2. SEÇENEK BAŞLIKLARI (HEADER)
   ========================================= */
.variant-container .option-group {
    margin-bottom: 0;
    -webkit-animation: fadeIn 0.3s ease-in;
    animation: fadeIn 0.3s ease-in;
}

.variant-container .form-label {
    margin: 0;
    padding-bottom: 5px;
}


.option-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.option-title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    margin: 0;
}

.selected-value {
    font-size: 13px;
    font-weight: 500;
    color: #666;
    -webkit-transition: opacity 0.3s ease;
    -o-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
}

/* Gizli Inputlar (Ortak Sınıf) */
.size-input,
.color-input {
    display: none;
}


/* =========================================
   3. BEDEN SEÇİCİ (SIZE SELECTOR)
   ========================================= */
.size-selector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 10px;
}

.size-label {
    position: relative;
    width: auto;
    height: 36px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    border: 1px solid var(--tuva-gray-200);
    border-radius: var(--bs-border-radius-lg) !important;
    font-weight: 500;
    cursor: pointer;
    text-align: center;
    padding: 10px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
    transition: all 0.2s ease;
}

.size-label:hover:not(.out-of-stock) {
    border-color: var(--tuva-altin-vurgu);
    background: var(--hover-bg);
}

.size-input:focus+.size-label {
    outline: 2px solid var(--tuva-altin-vurgu);
    outline-offset: 2px;
}

.size-input:checked+.size-label {
    color: var(--tuva-altin-vurgu);
    border-color: var(--tuva-altin-vurgu);
}


/* =========================================
   4. RENK SEÇİCİ (COLOR SELECTOR)
   ========================================= */
.color-selector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 12px;
}

.color-label {
    position: relative;
    cursor: pointer;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0;
    margin: 0;
    max-width: 60px;
    -webkit-transition: all 0.25s ease;
    -o-transition: all 0.25s ease;
    transition: all 0.25s ease;
}

.color-image-wrapper {
	position: relative;
	width: 32px;
	height: 32px;
	overflow: hidden;
	border-radius: var(--bs-border-radius-lg) !important;
	border: none !important;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	-ms-flex-negative: 0;
	flex-shrink: 0;
}

.color-image {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: var(--bs-border-radius-lg) !important;
    display: block;
    -webkit-transition: -webkit-transform 0.3s ease;
    transition: -webkit-transform 0.3s ease;
    -o-transition: transform 0.3s ease;
    transition: transform 0.3s ease;
    transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

.color-input:checked+.color-label .color-image-wrapper {
    border-color: var(--primary-dark);
    border-width: 2.5px;
}

.color-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--primary-dark);
    text-align: center;
    -webkit-transition: color 0.2s ease;
    -o-transition: color 0.2s ease;
    transition: color 0.2s ease;
}

.color-input:checked+.color-label .color-name {
    font-weight: 600;
}

.color-input:checked+.color-label::after,
.size-input:checked+.size-label::after {
    content: '✓';
    position: absolute;
    top: -5px;
    right: -5px;
    height: 16px;
    width: 16px;
    border-radius: var(--bs-border-radius-lg);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
    background-color: var(--bg-overlay);
    border: 1px solid var(--border-secondary);
    z-index: 2;
}

.size-label.out-of-stock,
.color-label.out-of-stock {
    cursor: not-allowed;
}

/* Beden Stok Yok */
.size-label.out-of-stock {
    background: var(--disabled-bg);
    color: var(--disabled-color);
}

.stock-line {
    position: absolute;
    top: 50%;
    left: 8%;
    right: 8%;
    height: 1.5px;
    background: var(--bg-tertiary);
    -webkit-transform: translateY(-50%) rotate(-12deg);
    -ms-transform: translateY(-50%) rotate(-12deg);
    transform: translateY(-50%) rotate(-12deg);
    display: none;
}

.size-label.out-of-stock .stock-line {
    display: block;
}

/* Renk Stok Yok */
.color-label.out-of-stock .color-image-wrapper {
    opacity: 0.5;
}

.color-label.out-of-stock .color-image {
    -webkit-filter: blur(10px) !important;
    filter: blur(10px) !important;
    -webkit-box-shadow: var(--shadow-sm);
    box-shadow: var(--shadow-sm);
}

.color-label.out-of-stock .color-name {
    color: var(--disabled-color);
}

/* Renk Stok Yok - Overlay Text */
.stock-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.5px;
    z-index: 2;
    border: 1px solid var(--tuva-gray-200);
    border-radius: var(--bs-border-radius-lg) !important;
    -webkit-box-shadow: var(--shadow-sm);
    box-shadow: var(--shadow-sm);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.color-label.out-of-stock .stock-overlay {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.star-rating input:checked~label .bi-star-fill,
.star-rating input:checked+label .bi-star-fill {
    color: #ffc107;
}

.star-rating label:hover .bi-star-fill,
.star-rating label:hover~label .bi-star-fill {
    color: #ffc107;
}

.star-label:hover .bi-star-fill {
    color: #ffc107 !important;
}


/* ============================================================================
   YORUM FORMU -- PASIF KALIP (varsayilan tema)
   Giris yapilmamis VE misafir yorumu (config_review_guest) kapaliyken form
   artik kaldirilmiyor: ayni alanlar `disabled` olarak basilir, gonder
   butonunun yerini "Oturum Ac" baglantisi alir (product/review.twig).
   Bu blok SALT GORSELDIR -- gonderimi engelleyen sey CSS degil, HTML
   `disabled` niteligi ve sunucu tarafi dogrulamadir.
   ============================================================================ */

.review-passive .legend-rating {
    color: var(--tuva-gray-500);
}

/* Yildizlar notr griye duser; hover/checked kurallari `disabled` yuzunden
   zaten tetiklenmez, burada yalnizca durgun renk sabitlenir. */
.review-passive .star-rating .star-empty {
    color: var(--tuva-gray-300);
}

.review-passive .star-label {
    cursor: default;
}

/* Iyi/Kotu etiketleri Bootstrap'in .text-body-secondary'sini tasir
   (renk !important tanimli), bu yuzden override da !important. */
.review-passive #input-rating > .text-body-secondary {
    color: var(--tuva-gray-400) !important;
}

/* Bootstrap :disabled zemini zaten gri; ton pasif kalibina cekilir.
   Tarayicinin varsayilan solukluguna guvenmemek icin opacity 1'e sabitlenir. */
.review-passive .form-control:disabled {
    background-color: var(--tuva-gray-100);
    border-color: var(--tuva-gray-200);
    color: var(--tuva-gray-500);
    opacity: 1;
}

.review-passive .form-floating > label {
    color: var(--tuva-gray-500);
}

.review-passive .review-login {
    font-size: .95rem;
    color: var(--tuva-gray-700);
    min-width: 0;
}

/* Ozet paneli yorum YOKKEN de basilir (review_list.twig). Sifir degerlerde
   ortalama ve yildizlar soluk gosterilir; bar satirlarindaki kucuk altin
   yildiz olcek gostergesi oldugu icin BILEREK altin kalir. */
.review-summary-empty .display-5 {
    color: var(--tuva-gray-400);
}

.review-summary-empty .col-md-2 .bi {
    color: var(--tuva-gray-300) !important;
}


/* Mobilde carousel yüksekliğini sabit tut */
@media (max-width: 767.98px) {
    #carousel-related {
        height: auto;
        overflow: hidden;
    }

    #carousel-related .carousel-inner {
        height: 100%;
    }

    #carousel-related .carousel-item {
        height: 100%;
    }
}

@media (max-width: 767.98px) {
    #carousel-related .carousel-inner .row {
        flex-wrap: nowrap !important;
    }
}

.swiper-button-prev, .swiper-button-next {
	border-radius: 50%;
	width: 40px !important;
	height: 40px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.swiper-button-next::after, .swiper-button-prev::after {
	font-family: swiper-icons;
	font-size: 16px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-variant: initial !important;
	line-height: 1 !important;
	color: var(--bs-gray-600);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  position: relative;
  top: -0.5px;
}

/* Adet azaltma butonu: asgari adete gelindiginde pasif GORUNUR ama hover/tooltip
   calismaya devam eder. Bootstrap'in .btn.disabled / .btn:disabled kurali
   pointer-events:none uyguladigi icin native disabled yerine aria-disabled kullanilir.
   Azaltma engeli JS'te (current > min) kontrolundedir. */
.product-controls #decrement[aria-disabled="true"] {
	opacity: .65;
	cursor: not-allowed;
}

/* ------------------------------------------------------------------
   Fancybox galeri: secili thumbnail'a border
   NOT: Siniflarin hepsi AYNI element uzerinde (carousel__slide),
   bu yuzden aralarinda bosluk YOK -> zincirli secici kullanilir.
   Kutuphane varsayilani .fancybox__thumb::after ile 5px cyan bir halka
   ciziyor; onu da kapatmak istersen asagidaki ikinci blogun yorumunu ac.
   ------------------------------------------------------------------ */
.fancybox__thumbs .carousel__slide.has-thumb {
	border: 1px solid transparent;
}

.fancybox__thumbs .carousel__slide.has-thumb.is-nav-selected {
	border-color: yellow;
}

/* Kutuphanenin 5px cyan halkasini kapatmak icin:
.fancybox__thumbs .carousel__slide.is-nav-selected .fancybox__thumb::after {
	opacity: 0;
}
*/

/* Fancybox KAPALIYKEN (config_product_fancybox_status = 0) galeri anchor'i
   href'siz render edilir. Temalarin global 'a { cursor: pointer }' kurali
   (ultra_theme.css ve stylesheet.css) 'a:link' DEGIL duz 'a' secicisi
   kullandigi icin href'siz anchor'a da uyar -> tiklanamayan gorsel
   tiklanabilir gorunurdu. Ozgulluk (0,2,1) global 'a' kuralini (0,0,1)
   yendigi icin yukleme sirasindan BAGIMSIZ calisir.
   .main-slider sinifi UC TEMADA DA var (default / ultra_theme / diamond),
   bu yuzden kural ortak product.css'te -- tema CSS'lerine DOKUNULMAZ. */
.main-slider a:not([href]) {
	cursor: default;
}
