/* =========================================================
   Çatı Tamiri İstanbul — Yorumlar
   Tema paletiyle uyumlu, bağımsız (Tailwind gerektirmez).
   ========================================================= */

.cty {
	--cty-brand: #9e6a35;
	--cty-brand-dark: #7d5229;
	--cty-brand-50: #fdf8f3;
	--cty-brand-100: #f7ede0;
	--cty-brand-300: #dfc090;
	--cty-ink: #111827;
	--cty-body: #374151;
	--cty-muted: #6b7280;
	--cty-faint: #9ca3af;
	--cty-line: #f0efee;
	--cty-line-2: #e5e7eb;
	--cty-bg: #fafaf9;
	--cty-star: #f5a623;
	--cty-radius: 14px;

	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--cty-body);
	-webkit-font-smoothing: antialiased;
}

.cty *,
.cty *::before,
.cty *::after {
	box-sizing: border-box;
}

.cty .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Bölüm ---------- */
.cty-sec {
	padding: 64px 0;
}

.cty-sec--google {
	background: var(--cty-bg);
}

.cty-sec--form {
	background: var(--cty-brand-50);
}

.cty-sec--site {
	background: #fff;
}

@media (min-width: 768px) {
	.cty-sec {
		padding: 80px 0;
	}
}

.cty-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 16px;
}

.cty-wrap--narrow {
	max-width: 820px;
}

@media (min-width: 768px) {
	.cty-wrap {
		padding: 0 24px;
	}
}

/* ---------- Başlık ---------- */
.cty-head {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-bottom: 32px;
}

@media (min-width: 900px) {
	.cty-head {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		gap: 32px;
	}
}

.cty-eyebrow {
	display: block;
	color: var(--cty-brand);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.cty-title {
	margin: 0;
	color: var(--cty-ink);
	font-size: 24px;
	line-height: 1.25;
	font-weight: 700;
}

@media (min-width: 768px) {
	.cty-title {
		font-size: 30px;
	}
}

.cty-sub {
	margin: 10px 0 0;
	color: var(--cty-muted);
	font-size: 14px;
	line-height: 1.65;
	max-width: 46em;
}

/* ---------- Puan rozeti ---------- */
.cty-score {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--cty-line-2);
	border-radius: var(--cty-radius);
	padding: 14px 18px;
	flex-shrink: 0;
	align-self: flex-start;
}

.cty-score--plain {
	background: var(--cty-bg);
}

.cty-score__logo {
	display: flex;
	align-items: center;
}

.cty-score__num {
	font-size: 26px;
	font-weight: 800;
	color: var(--cty-ink);
	line-height: 1;
	margin-bottom: 4px;
}

.cty-score__meta {
	font-size: 12px;
	color: var(--cty-faint);
	margin-top: 4px;
}

/* ---------- Yıldızlar ---------- */
.cty-stars {
	display: inline-flex;
	gap: 2px;
	line-height: 0;
}

.cty-star {
	width: 18px;
	height: 18px;
	fill: #d8d5d1;
	flex-shrink: 0;
}

.cty-stars--sm .cty-star {
	width: 15px;
	height: 15px;
}

.cty-star.is-on {
	fill: var(--cty-star);
}

.cty-half {
	position: relative;
	display: inline-flex;
	line-height: 0;
}

.cty-half .cty-star.is-on {
	position: absolute;
	inset: 0;
	clip-path: inset(0 50% 0 0);
}

/* ---------- Slider ---------- */
.cty-slider {
	position: relative;
}

.cty-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 4px 2px 8px;
	margin: 0 -2px;
	scrollbar-width: none;
	-ms-overflow-style: none;
	outline: none;
}

.cty-track::-webkit-scrollbar {
	display: none;
}

.cty-track:focus-visible {
	outline: 2px solid var(--cty-brand-300);
	outline-offset: 4px;
	border-radius: var(--cty-radius);
}

.cty-card {
	flex: 0 0 100%;
	scroll-snap-align: start;
	background: #fff;
	border: 1px solid var(--cty-line);
	border-radius: var(--cty-radius);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
	box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
}

.cty-sec--site .cty-card {
	background: var(--cty-bg);
	border-color: var(--cty-line-2);
}

@media (min-width: 720px) {
	.cty-card {
		flex-basis: calc((100% - 16px) / 2);
	}
}

@media (min-width: 1080px) {
	.cty-card {
		flex-basis: calc((100% - 32px) / 3);
	}
}

.cty-card__top {
	display: flex;
	align-items: center;
	gap: 12px;
}

.cty-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	background: var(--cty-brand-100);
}

.cty-avatar--txt {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cty-brand-dark);
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.02em;
}

.cty-card__who {
	min-width: 0;
	flex: 1;
}

.cty-card__name {
	display: block;
	color: var(--cty-ink);
	font-weight: 600;
	font-size: 14px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cty-card__meta {
	display: block;
	color: var(--cty-faint);
	font-size: 12px;
	margin-top: 2px;
}

.cty-card__src {
	flex-shrink: 0;
	line-height: 0;
	opacity: 0.9;
}

.cty-card__text {
	margin: 0;
	color: var(--cty-body);
	font-size: 14.5px;
	line-height: 1.72;
	flex: 1;
	white-space: pre-line;
	overflow-wrap: anywhere;
}

.cty-more {
	align-self: flex-start;
	background: none;
	border: 0;
	padding: 0;
	color: var(--cty-brand);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}

.cty-more:hover {
	color: var(--cty-brand-dark);
	text-decoration: underline;
}

/* Oklar */
.cty-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--cty-line-2);
	background: #fff;
	color: var(--cty-muted);
	display: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
	transition: color 0.15s, border-color 0.15s, opacity 0.15s;
	padding: 0;
}

/* Oklar yalnızca kartın dışında yer kalan geniş ekranlarda; mobilde kaydırma + noktalar yeterli. */
@media (min-width: 900px) {
	.cty-slider.is-scrollable .cty-arrow {
		display: flex;
	}
}

.cty-arrow svg {
	width: 20px;
	height: 20px;
}

.cty-arrow:hover {
	color: var(--cty-ink);
	border-color: var(--cty-brand-300);
}

.cty-arrow--prev {
	left: -8px;
}

.cty-arrow--next {
	right: -8px;
}

@media (min-width: 1360px) {
	.cty-arrow--prev {
		left: -20px;
	}

	.cty-arrow--next {
		right: -20px;
	}
}

/* Noktalar */
.cty-dots {
	display: flex;
	justify-content: center;
	gap: 7px;
	margin-top: 18px;
}

.cty-dots:empty {
	display: none;
}

.cty-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #d6d3d1;
	cursor: pointer;
	transition: background 0.2s, width 0.2s;
}

.cty-dot.is-active {
	background: var(--cty-brand);
	width: 22px;
	border-radius: 4px;
}

/* ---------- Butonlar ---------- */
.cty-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
	justify-content: center;
}

.cty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
	font-family: inherit;
	line-height: 1.2;
}

.cty-btn--primary {
	background: var(--cty-brand);
	color: #fff;
}

/* Google logosu marka kuralları gereği beyaz zemin ister. */
.cty-btn--primary .cty-g {
	background: #fff;
	border-radius: 50%;
	padding: 3px;
	box-sizing: content-box;
}

.cty-btn--primary:hover {
	background: var(--cty-brand-dark);
	color: #fff;
}

.cty-btn--ghost {
	background: #fff;
	color: var(--cty-ink);
	border-color: var(--cty-line-2);
}

.cty-btn--ghost:hover {
	border-color: var(--cty-brand-300);
	color: var(--cty-brand-dark);
}

.cty-btn[disabled] {
	opacity: 0.6;
	cursor: progress;
}

@media (max-width: 520px) {
	.cty-actions .cty-btn,
	.cty-formfoot .cty-btn {
		flex: 1 1 100%;
	}
}

/* ---------- Form ---------- */
.cty-formcard {
	background: #fff;
	border: 1px solid var(--cty-line-2);
	border-radius: 18px;
	padding: 28px 22px;
}

@media (min-width: 768px) {
	.cty-formcard {
		padding: 38px 40px;
	}
}

.cty-form {
	margin-top: 26px;
}

.cty-field {
	margin-bottom: 18px;
}

.cty-grid2 {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 16px;
}

@media (min-width: 640px) {
	.cty-grid2 {
		grid-template-columns: 1fr 1fr;
	}
}

.cty-label {
	display: block;
	color: #4b5563;
	font-size: 12.5px;
	font-weight: 600;
	margin-bottom: 6px;
}

.cty-req {
	color: #dc2626;
}

.cty-opt,
.cty-count {
	color: var(--cty-faint);
	font-weight: 400;
}

.cty-form input[type="text"],
.cty-form input[type="email"],
.cty-form select,
.cty-form textarea {
	width: 100%;
	border: 1px solid var(--cty-line-2);
	border-radius: 8px;
	padding: 11px 14px;
	font-size: 14px;
	font-family: inherit;
	color: var(--cty-ink);
	background: #fff;
	transition: border-color 0.15s, box-shadow 0.15s;
	-webkit-appearance: none;
	appearance: none;
}

.cty-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 16px;
	padding-right: 36px;
}

.cty-form textarea {
	resize: vertical;
	min-height: 120px;
	line-height: 1.65;
}

.cty-form input:focus,
.cty-form select:focus,
.cty-form textarea:focus {
	outline: none;
	border-color: var(--cty-brand-300);
	box-shadow: 0 0 0 3px rgba(158, 106, 53, 0.12);
}

.cty-form .has-error input,
.cty-form .has-error select,
.cty-form .has-error textarea,
.cty-field.has-error .cty-rate {
	border-color: #dc2626;
}

.cty-err {
	display: none;
	margin: 6px 0 0;
	color: #dc2626;
	font-size: 12.5px;
}

.cty-field.has-error .cty-err {
	display: block;
}

/* Yıldız seçimi */
.cty-field--rate {
	margin-bottom: 22px;
}

.cty-rate {
	position: relative;
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 4px;
	border: 1px solid transparent;
	border-radius: 8px;
	padding: 2px;
}

.cty-rate input {
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.cty-rate label {
	cursor: pointer;
	line-height: 0;
	padding: 2px;
	border-radius: 4px;
}

.cty-rate label svg {
	width: 30px;
	height: 30px;
	fill: #dcd8d3;
	transition: fill 0.12s, transform 0.12s;
}

.cty-rate label:hover svg,
.cty-rate label:hover ~ label svg,
.cty-rate input:checked ~ label svg {
	fill: var(--cty-star);
}

.cty-rate label:hover svg {
	transform: scale(1.08);
}

.cty-rate input:focus-visible + label svg {
	outline: 2px solid var(--cty-brand-300);
	outline-offset: 2px;
}

/* Bal küpü */
.cty-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cty-formfoot {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin-top: 6px;
}

.cty-note {
	margin: 16px 0 0;
	color: var(--cty-faint);
	font-size: 12px;
	line-height: 1.6;
}

.cty-msg {
	display: none;
	margin-top: 16px;
	padding: 13px 16px;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.6;
}

.cty-msg.is-ok {
	display: block;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	color: #065f46;
}

.cty-msg.is-err {
	display: block;
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

/* Tema içindeki eski yorum bölümü gizlendiğinde */
.cty-theme-hidden {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.cty-track {
		scroll-behavior: auto;
	}

	.cty-btn,
	.cty-arrow,
	.cty-dot,
	.cty-rate label svg {
		transition: none;
	}
}
