/**
 * TDT premium layer — traduzione.tech (v2, по итогам дизайн-консилиума)
 *
 * Принципы:
 *  - типографика: плотный жирный display ↔ воздушный lead;
 *  - цветовая дисциплина: один оранжевый CTA на экран, текстовые акценты —
 *    тёмным #b84e04 (WCAG AA), вторичное — нейтральные hairline;
 *  - поверхности: hairline-границы + едва заметные тени, никаких свечений;
 *  - движение: входы expo-out (.16,1,.3,1), интеракции standard (.4,0,.2,1),
 *    амплитуда 12–14px, закрытие быстрее открытия; всё гаснет при
 *    prefers-reduced-motion;
 *  - графика «Досье в пути»: линованный документ, координатная сетка,
 *    пунктир-маршрут IT⇄RU, штамп, глиф A⇄А — один слой на секцию,
 *    прозрачности .04–.18, декор не под текстом.
 */

:root {
	--tdt-accent: #e16206;
	--tdt-accent-deep: #b84e04;
	--tdt-sun: #fbed6e;
	--tdt-ink: #0e0e0e;
	--tdt-slate: #5f6368;
	--tdt-mist: #f3f3f3;
	--tdt-cream: #f7ecdd;
	--tdt-sky: #ddf0fb;
	--tdt-paper: #ffffff;

	--tdt-radius-s: 8px;
	--tdt-radius-m: 14px;
	--tdt-radius-l: 22px;

	--tdt-hairline: 1px solid rgba(14, 14, 14, .08);
	--tdt-shadow-rest: 0 1px 2px rgba(14, 14, 14, .04);
	--tdt-shadow-soft: 0 1px 2px rgba(14, 14, 14, .05), 0 8px 24px -8px rgba(14, 14, 14, .12);
	--tdt-shadow-lift: 0 2px 4px rgba(14, 14, 14, .06), 0 20px 44px -12px rgba(14, 14, 14, .16);

	/* движение: входы / интеракции / выходы */
	--tdt-ease-out: cubic-bezier(.16, 1, .3, 1);
	--tdt-ease: cubic-bezier(.4, 0, .2, 1);
	--tdt-ease-in: cubic-bezier(.7, 0, .84, 0);
	--tdt-t-fast: 120ms;
	--tdt-t-base: 200ms;
	--tdt-t-slow: 350ms;
	--tdt-t-enter: 700ms;

	/* совместимость со старыми именами */
	--tdt-fast: var(--tdt-t-fast);
	--tdt-base: var(--tdt-t-base);
	--tdt-slow: var(--tdt-t-enter);
}

/* ---------------------------------------------------------------------------
 * База
 * ------------------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection { background: var(--tdt-sun); color: var(--tdt-ink); }

h1, h2, h3, .wp-block-heading {
	letter-spacing: -0.02em;
	text-wrap: balance;
}

p { text-wrap: pretty; }

.tdt-lead {
	font-size: var(--wp--preset--font-size--large, 20px);
	line-height: 1.55;
	color: var(--tdt-slate);
	max-width: 56ch;
}

:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--tdt-accent) 55%, transparent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* текстовые ссылки: чернильные, подчёркивание тёплым */
.entry-content p a:not(.wp-element-button),
.wp-block-post-content p a:not(.wp-element-button) {
	color: var(--tdt-ink);
	text-decoration: underline;
	text-decoration-color: rgba(225, 98, 6, .5);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	transition: text-decoration-color var(--tdt-t-base) var(--tdt-ease), color var(--tdt-t-base) var(--tdt-ease);
}

.entry-content p a:not(.wp-element-button):hover,
.wp-block-post-content p a:not(.wp-element-button):hover {
	color: var(--tdt-accent-deep);
	text-decoration-color: currentColor;
}

/* ---------------------------------------------------------------------------
 * Кнопки: плоские, спокойные, крупные
 * ------------------------------------------------------------------------- */

.wp-element-button,
.wp-block-button__link {
	border-radius: 10px !important;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .01em;
	padding: .9em 1.9em;
	min-height: 44px;
	transition: background-color var(--tdt-t-base) var(--tdt-ease), border-color var(--tdt-t-base) var(--tdt-ease), color var(--tdt-t-base) var(--tdt-ease), box-shadow var(--tdt-t-base) var(--tdt-ease);
}

/* primary: плоская заливка, темнеет по ховеру */
.wp-block-button:not(.is-style-outline):not(.is-style-tdt-ghost) .wp-block-button__link:not(.has-background) {
	background: var(--tdt-accent);
	box-shadow: var(--tdt-shadow-rest);
}

.wp-block-button:not(.is-style-outline):not(.is-style-tdt-ghost) .wp-block-button__link:not(.has-background):hover {
	background: var(--tdt-accent-deep);
}

/* secondary: нейтральный hairline, не конкурирует с primary */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid rgba(14, 14, 14, .2);
	background: transparent;
	box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) {
	color: var(--tdt-ink);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--tdt-ink);
	background: rgba(14, 14, 14, .03);
}

/* ghost */
.is-style-tdt-ghost .wp-block-button__link {
	background: transparent;
	color: var(--tdt-accent-deep);
	border: none;
	box-shadow: none;
	padding-left: .4em;
	padding-right: .4em;
}

/* ---------------------------------------------------------------------------
 * Карточки: hairline + тихая тень, ровная геометрия
 * ------------------------------------------------------------------------- */

.is-style-with-shadow,
.is-style-tdt-card {
	border-radius: var(--tdt-radius-l) !important;
	border: var(--tdt-hairline);
	box-shadow: var(--tdt-shadow-rest);
	transition: transform var(--tdt-t-slow) var(--tdt-ease), box-shadow var(--tdt-t-slow) var(--tdt-ease), border-color var(--tdt-t-slow) var(--tdt-ease);
}

.is-style-with-shadow:hover,
.is-style-tdt-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--tdt-shadow-soft);
	border-color: rgba(14, 14, 14, .14);
}

/* равная высота карточек в колонках, кнопка прижата к низу */
.wp-block-column > .is-style-tdt-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.wp-block-column > .is-style-tdt-card > .wp-block-buttons { margin-top: auto; }

/* фирменные буллеты */
.tdt-checklist { list-style: none; padding-left: 0; }

.tdt-checklist li {
	position: relative;
	padding-left: 22px;
	margin-bottom: .5em;
}

.tdt-checklist li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: .55em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--tdt-accent);
}

/* стекло */
.is-style-tdt-glass {
	background: rgba(255, 255, 255, .72) !important;
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: var(--tdt-radius-l);
	box-shadow: var(--tdt-shadow-soft);
}

/* изображения */
.wp-block-image img,
.wp-block-post-featured-image img { border-radius: var(--tdt-radius-m); }

.wp-block-post-featured-image { overflow: hidden; border-radius: var(--tdt-radius-m); }

.wp-block-post-featured-image img { transition: transform var(--tdt-t-enter) var(--tdt-ease-out); }

.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }

.wp-block-post-title a {
	text-decoration: none;
	transition: color var(--tdt-t-fast) var(--tdt-ease);
}

.wp-block-post-title a:hover { color: var(--tdt-accent-deep); }

/* цены: табличные цифры, аккуратная единица */
.tdt-price {
	white-space: nowrap;
	line-height: 1.05;
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
	letter-spacing: -0.02em;
}

.tdt-price__unit {
	font-size: 0.32em;
	font-weight: 600;
	letter-spacing: 0;
	color: var(--tdt-slate);
	margin-left: 4px;
}

.has-tdt-accent-flow-gradient-background .tdt-price__unit { color: rgba(255, 255, 255, .8); }

/* ---------------------------------------------------------------------------
 * Шапка: sticky-пилюля, стойкая к длинным меню
 * ------------------------------------------------------------------------- */

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 60;
}

.tdt-header-pill {
	background: rgba(255, 255, 255, .85);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border: 1px solid rgba(255, 255, 255, .65);
	border-radius: 999px;
	box-shadow: var(--tdt-shadow-rest);
	transition: box-shadow var(--tdt-t-slow) var(--tdt-ease);
}

body.tdt-scrolled .tdt-header-pill { box-shadow: var(--tdt-shadow-soft); }

.tdt-header-pill .wp-block-buttons,
.tdt-header-pill .wp-block-button { flex-shrink: 0; }

.tdt-header-pill .wp-block-button__link { white-space: nowrap; }

.tdt-header-pill .wp-block-navigation { min-width: 0; }

.wp-block-navigation-item__content {
	position: relative;
	white-space: nowrap;
	transition: color var(--tdt-t-fast) var(--tdt-ease);
}

.wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: -4px;
	height: 2px;
	border-radius: 2px;
	background: var(--tdt-accent);
	transition: right var(--tdt-t-slow) var(--tdt-ease);
}

.wp-block-navigation-item:hover .wp-block-navigation-item__content::after,
.wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content::after { right: 0; }

/* ---------------------------------------------------------------------------
 * Секции и графика «Досье в пути»
 * ------------------------------------------------------------------------- */

.is-style-tdt-eyebrow {
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--tdt-accent-deep);
}

.wp-block-separator { border-color: rgba(14, 14, 14, .08); }

/* линованный документ — на кремовых секциях */
.has-tdt-warm-air-gradient-background {
	background-image:
		linear-gradient(90deg, rgba(225, 98, 6, .08) 1px, transparent 1px),
		repeating-linear-gradient(180deg, rgba(14, 14, 14, .045) 0 1px, transparent 1px 32px),
		var(--wp--preset--gradient--tdt-warm-air, linear-gradient(180deg, #f7ecdd 0%, #ffffff 100%));
	background-size: 100% 100%, 100% 100%, 100% 100%;
	background-position: 88px 0, 0 0, 0 0;
	background-repeat: no-repeat, repeat, no-repeat;
}

/* координатная бумага — на голубых секциях */
.has-tdt-cool-air-gradient-background {
	background-image:
		radial-gradient(circle at 1px 1px, rgba(14, 14, 14, .06) 1px, transparent 1.5px),
		var(--wp--preset--gradient--tdt-cool-air, linear-gradient(180deg, #ddf0fb 0%, #ffffff 100%));
	background-size: 24px 24px, 100% 100%;
}

/* лента страницы: мягкий градиент + глиф-пара A⇄А справа */
.tdt-page-header {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(1200px 400px at 15% -20%, rgba(225, 98, 6, .10), transparent 60%),
		radial-gradient(900px 380px at 85% 130%, rgba(221, 240, 251, .8), transparent 60%),
		var(--tdt-mist);
}

.tdt-page-header::before,
.tdt-page-header::after {
	position: absolute;
	top: 50%;
	font-weight: 800;
	font-size: clamp(160px, 22vw, 320px);
	line-height: 1;
	pointer-events: none;
	transform: translateY(-50%);
}

.tdt-page-header::before {
	content: "A" / "";
	right: 8%;
	color: transparent;
	-webkit-text-stroke: 2px rgba(14, 14, 14, .07);
}

.tdt-page-header::after {
	content: "\0410" / "";
	right: -1%;
	color: rgba(225, 98, 6, .06);
}

/* тёмная CTA-полоса: топографические дуги + пунктир-маршрут + штамп */
.has-tdt-night-gradient-background {
	position: relative;
	overflow: hidden;
}

.has-tdt-night-gradient-background::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 400" fill="none"><path d="M-40 330 C 260 190, 560 190, 860 300 S 1240 340, 1300 260" stroke="%23f7ecdd" stroke-opacity=".10" stroke-width="1.25"/><path d="M-40 356 C 260 216, 560 216, 860 326 S 1240 366, 1300 286" stroke="%23f7ecdd" stroke-opacity=".08" stroke-width="1.25"/><path d="M-40 382 C 260 242, 560 242, 860 352 S 1240 392, 1300 312" stroke="%23f7ecdd" stroke-opacity=".06" stroke-width="1.25"/><path d="M100 300 C 400 120, 800 120, 1100 260" stroke="%23e16206" stroke-opacity=".38" stroke-width="2" stroke-dasharray="2 9" stroke-linecap="round"/><circle cx="100" cy="300" r="4" fill="%23e16206" fill-opacity=".55"/><circle cx="1100" cy="260" r="4" stroke="%23e16206" stroke-opacity=".55" stroke-width="1.5"/></svg>');
	background-size: cover;
	background-position: center bottom;
}

.has-tdt-night-gradient-background::after {
	content: "";
	position: absolute;
	right: 4%;
	top: 50%;
	width: 150px;
	height: 150px;
	pointer-events: none;
	opacity: .14;
	transform: translateY(-50%) rotate(-12deg);
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="none"><circle cx="50" cy="50" r="46" stroke="%23f7ecdd" stroke-width="1.5"/><circle cx="50" cy="50" r="34" stroke="%23f7ecdd" stroke-width="1"/><text font-family="Sora, sans-serif" font-size="8.2" letter-spacing="2.6" fill="%23f7ecdd"><textPath href="%23c" startOffset="0">TRADUZIONE • CERTIFICATA • IT⇄RU •</textPath></text><defs><path id="c" d="M50 10 a40 40 0 1 1 -0.01 0"/></defs><text x="50" y="57" text-anchor="middle" font-family="Sora, sans-serif" font-weight="700" font-size="17" fill="%23f7ecdd">A⇄А</text></svg>');
	background-size: contain;
	background-repeat: no-repeat;
}

.has-tdt-night-gradient-background > * { position: relative; z-index: 1; }

/* строка доверия под CTA */
.tdt-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	justify-content: center;
	font-size: 13px;
	color: var(--tdt-slate);
}

.has-tdt-night-gradient-background .tdt-trust { color: rgba(243, 243, 243, .75); }

.tdt-trust > * {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0 !important;
}

.tdt-trust > *::before {
	content: "";
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23b84e04" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') no-repeat center / contain;
}

.has-tdt-night-gradient-background .tdt-trust > *::before {
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23fbed6e" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>');
}

/* иконки услуг: line + жёлтый маркер, в кружке-крем */
.tdt-icon {
	width: 64px;
	height: 64px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--tdt-cream);
	margin-bottom: 6px;
}

.tdt-icon svg { width: 30px; height: 30px; }

/* ---------------------------------------------------------------------------
 * Формы: селекты, дропзона, чекбоксы
 * ------------------------------------------------------------------------- */

.tdt-calc select,
.tdt-quote__field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230e0e0e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>');
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px;
	padding-right: 44px !important;
}

.tdt-calc select:focus,
.tdt-quote__field input:focus,
.tdt-quote__field textarea:focus {
	outline: none;
	border-color: var(--tdt-accent) !important;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--tdt-accent) 14%, transparent) !important;
}

.tdt-quote__file input[type="file"] {
	min-height: 88px;
	display: grid;
	align-content: center;
	transition: border-color var(--tdt-t-base) var(--tdt-ease), background-color var(--tdt-t-base) var(--tdt-ease);
}

.tdt-quote__consent input {
	width: 22px;
	height: 22px;
	accent-color: var(--tdt-accent);
	flex: 0 0 auto;
}

/* ---------------------------------------------------------------------------
 * Маршрут: контурные номера, рисующаяся линия
 * ------------------------------------------------------------------------- */

.tdt-route-step { font-variant-numeric: tabular-nums; }

.tdt-route-step::after {
	background: transparent !important;
	border: 1.5px solid var(--tdt-accent);
	color: var(--tdt-accent-deep) !important;
	box-shadow: none !important;
	transition: opacity var(--tdt-t-slow) var(--tdt-ease-out), transform var(--tdt-t-slow) var(--tdt-ease-out);
}

.tdt-route-step::before {
	background: rgba(14, 14, 14, .1) !important;
	width: 1px !important;
	transform-origin: top;
	transition: transform 500ms var(--tdt-ease-out);
}

/* хореография: линия рисуется вслед за появлением шага */
.tdt-reveal.tdt-route-step:not(.tdt-in)::before { transform: scaleY(0); }
.tdt-reveal.tdt-route-step:not(.tdt-in)::after { opacity: 0; transform: scale(.6); }
.tdt-route-step.tdt-in::before { transform: scaleY(1); transition-delay: 180ms; }

/* ---------------------------------------------------------------------------
 * FAQ: физика раскрытия
 * ------------------------------------------------------------------------- */

.tdt-faq details > *:not(summary) {
	animation: tdt-faq-in 300ms var(--tdt-ease-out) both;
}

.tdt-faq summary::after { transition: transform 250ms var(--tdt-ease), background var(--tdt-t-base) var(--tdt-ease); }

@keyframes tdt-faq-in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------------
 * Появление при прокрутке
 * ------------------------------------------------------------------------- */

.tdt-reveal {
	opacity: 0;
	transform: translateY(14px);
}

.tdt-reveal.tdt-in {
	opacity: 1;
	transform: none;
	transition:
		opacity 500ms var(--tdt-ease-out),
		transform var(--tdt-t-enter) var(--tdt-ease-out);
	transition-delay: var(--tdt-d, 0ms);
}

/* лёгкий zoom только для стеклянной hero-карточки */
.tdt-reveal.is-style-tdt-glass { transform: translateY(10px) scale(.98); }
.tdt-reveal.is-style-tdt-glass.tdt-in { transform: none; }

/* едва заметное парение hero-карточки */
@keyframes tdt-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-4px); }
}

.tdt-float { animation: tdt-float 9s ease-in-out infinite; }

/* блик display-заголовка: одиночный проход после появления */
.tdt-shine {
	background: linear-gradient(100deg, var(--tdt-ink) 40%, var(--tdt-accent) 50%, var(--tdt-ink) 60%);
	background-size: 220% 100%;
	background-position: 110% 0;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: tdt-shine 1.8s var(--tdt-ease-out) .4s 1 both;
}

@keyframes tdt-shine {
	from { background-position: 110% 0; }
	to   { background-position: -10% 0; }
}

/* ---------------------------------------------------------------------------
 * Адаптив и доступность
 * ------------------------------------------------------------------------- */

@media (max-width: 640px) {
	.tdt-page-header::before,
	.tdt-page-header::after,
	.has-tdt-night-gradient-background::after { display: none; }
}

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

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.tdt-reveal { opacity: 1; transform: none; }
	.tdt-reveal.tdt-route-step:not(.tdt-in)::before { transform: none; }
	.tdt-reveal.tdt-route-step:not(.tdt-in)::after { opacity: 1; transform: none; }
}

/* outline-кнопки на тёмных поверхностях */
.has-tdt-night-gradient-background .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, .35);
}

.has-tdt-night-gradient-background .wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: rgba(255, 255, 255, .8);
	background: rgba(255, 255, 255, .06);
}

/* Хлебные крошки */
.tdt-crumbs {
	font-size: 13px;
	color: var(--tdt-slate);
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
	align-items: center;
}

.tdt-crumbs a { color: var(--tdt-slate); text-decoration: none; }
.tdt-crumbs a:hover { color: var(--tdt-accent-deep); }
.tdt-crumbs__sep { opacity: .5; }
.tdt-crumbs [aria-current="page"] { color: var(--tdt-ink); }
