/**
 * TripStudy — Design Tokens
 * Fonte única de verdade para cores, tipografia, espaçamento, sombras e
 * raios usados por todos os blocos do plugin. Carregado uma única vez
 * (editor + front-end) em vez de duplicado em cada bloco.
 */
:root {
	/* Cores — primária (laranja) */
	--color-primary-50: #FEF3EF;
	--color-primary-100: #FCDFD4;
	--color-primary-200: #F9BCA6;
	--color-primary-300: #F5926F;
	--color-primary-400: #F06B45;
	--color-primary-500: #E94A26;
	--color-primary-600: #C93A1A;
	--color-primary-700: #A32D14;
	--color-primary-800: #7E2410;
	--color-primary-900: #5C1B0E;

	/* Cores — secundária (azul-marinho) */
	--color-secondary-50: #EEF0F9;
	--color-secondary-100: #D7DCF1;
	--color-secondary-200: #AEB7E2;
	--color-secondary-300: #828ED0;
	--color-secondary-400: #5867B6;
	--color-secondary-500: #3A4AA0;
	--color-secondary-600: #2A398E;
	--color-secondary-700: #232F76;
	--color-secondary-800: #1B255C;
	--color-secondary-900: #141B45;

	/* Cores — accent (azul claro) */
	--color-accent-50: #E6F6FD;
	--color-accent-100: #C0E9FA;
	--color-accent-200: #86D4F4;
	--color-accent-300: #47BCEE;
	--color-accent-400: #18ABE8;
	--color-accent-500: #009FE3;
	--color-accent-600: #0080BC;
	--color-accent-700: #006494;
	--color-accent-800: #004C70;
	--color-accent-900: #00374F;

	/* Cores — neutras */
	--color-neutral-0: #FFFFFF;
	--color-neutral-50: #FAF9F7;
	--color-neutral-100: #F2F1ED;
	--color-neutral-200: #E6E3DD;
	--color-neutral-300: #D2CEC6;
	--color-neutral-400: #A9A39A;
	--color-neutral-500: #837C72;
	--color-neutral-600: #645E56;
	--color-neutral-700: #4A453F;
	--color-neutral-800: #322E2A;
	--color-neutral-900: #1C1A17;
	--color-neutral-950: #0F0E0C;

	/* Cores — feedback */
	--color-success-50: #F7FAE6; --color-success-400: #AFCA0A; --color-success-500: #8FA60A; --color-success-700: #556406; --color-success-800: #495904;
	--color-warning-50: #FEFAE6; --color-warning-400: #F1CC00; --color-warning-500: #D4B000; --color-warning-700: #806800; --color-warning-800: #5E4D00;
	--color-error-50: #FEF1F1; --color-error-500: #D92D2D; --color-error-700: #931818;
	--color-info-50: var(--color-accent-50); --color-info-500: var(--color-accent-500); --color-info-700: var(--color-accent-700);

	/* Papéis semânticos */
	--surface-brand: var(--color-primary-500);
	--surface-brand-subtle: var(--color-primary-50);
	--surface-card: var(--color-neutral-0);
	--surface-inverse: var(--color-neutral-900);
	--surface-raised: var(--color-neutral-0);
	--surface-sunken: var(--color-neutral-100);
	--bg-base: var(--color-neutral-50);
	--bg-subtle: var(--color-neutral-100);

	--text-primary: var(--color-neutral-900);
	--text-secondary: var(--color-neutral-700);
	--text-muted: var(--color-neutral-500);
	--text-disabled: var(--color-neutral-400);
	--text-inverse: var(--color-neutral-0);
	--text-on-brand: var(--color-neutral-0);
	--text-brand: var(--color-primary-600);
	--text-link: var(--color-accent-700);

	--border-subtle: var(--color-neutral-200);
	--border-default: var(--color-neutral-300);
	--border-strong: var(--color-neutral-400);
	--border-brand: var(--color-primary-500);

	--action-primary-bg: var(--color-primary-500);
	--action-primary-bg-hover: var(--color-primary-600);
	--action-primary-bg-active: var(--color-primary-700);
	--action-primary-fg: var(--color-neutral-0);
	--action-secondary-bg: var(--color-secondary-600);
	--action-secondary-bg-hover: var(--color-secondary-700);
	--action-secondary-bg-active: var(--color-secondary-800);
	--action-secondary-fg: var(--color-neutral-0);

	--brand-rainbow: linear-gradient(90deg, var(--color-primary-500) 0%, var(--color-warning-400) 33%, var(--color-success-400) 66%, var(--color-accent-500) 100%);
	--scrim-warm: linear-gradient(rgba(8, 5, 2, 0.45) 0%, rgba(8, 5, 2, 0.88) 55%, rgba(8, 5, 2, 0.97) 100%);

	/* Tipografia */
	--font-brand: 'Dosis', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-sans: 'Dosis', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-support: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	--fs-caption: 0.75rem; --fs-label: 0.8125rem; --fs-body-sm: 0.875rem; --fs-body-md: 1rem; --fs-body-lg: 1.125rem;
	--fs-h6: 1.125rem; --fs-h5: 1.25rem; --fs-h4: 1.5rem; --fs-h3: 1.75rem; --fs-h2: 2rem; --fs-h1: 2.5rem;
	--fs-display-m: 3rem; --fs-display-l: 3.75rem; --fs-display-xl: 4.5rem;

	--lh-body: 1.6; --lh-body-sm: 1.55; --lh-h1: 1.14; --lh-h2: 1.18; --lh-h3: 1.24; --lh-display-m: 1.08; --lh-display-l: 1.06;

	--weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-extrabold: 800;
	--ls-tight: -0.02em; --ls-snug: -0.01em; --ls-wide: 0.02em; --ls-label: 0.06em;

	/* Espaçamento */
	--space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem;
	--space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem;

	--container-max: 1200px;
	--container-wide: 1320px;

	/* Raios e sombras */
	--radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --radius-xl: 24px; --radius-2xl: 32px; --radius-full: 9999px;
	--radius-card: var(--radius-lg); --radius-button: var(--radius-full); --radius-input: var(--radius-md);

	--shadow-xs: 0 1px 2px rgba(28,26,23,.06);
	--shadow-sm: 0 1px 2px rgba(28,26,23,.06), 0 2px 4px rgba(28,26,23,.05);
	--shadow-md: 0 2px 4px rgba(28,26,23,.05), 0 6px 12px rgba(28,26,23,.08);
	--shadow-lg: 0 4px 8px rgba(28,26,23,.06), 0 12px 24px rgba(28,26,23,.10);
	--shadow-xl: 0 8px 16px rgba(28,26,23,.08), 0 24px 48px rgba(28,26,23,.14);
	--shadow-brand: 0 4px 14px rgba(233,74,38,.35);
	--shadow-brand-sm: 0 2px 8px rgba(233,74,38,.28);

	--ease-standard: cubic-bezier(0.2,0,0,1);
	--duration-fast: 120ms; --duration-base: 200ms; --duration-slow: 320ms;
}

/* Wrapper geral que os blocos usam para limitar largura de conteúdo */
.ts-container { max-width: var(--container-max); margin: 0 auto; padding-left: var(--space-6); padding-right: var(--space-6); }
.ts-container--wide { max-width: var(--container-wide); }

.ts-eyebrow { font-family: var(--font-brand); font-weight: var(--weight-semibold); font-size: var(--fs-label); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--text-brand); }

.ts-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-family: var(--font-brand); font-weight: var(--weight-bold); border-radius: var(--radius-button); padding: .9rem 1.75rem; text-decoration: none; border: none; cursor: pointer; transition: background-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard); font-size: var(--fs-body-md); }
.ts-btn:hover { transform: translateY(-1px); }
.ts-btn--primary { background: var(--action-primary-bg); color: var(--action-primary-fg); box-shadow: var(--shadow-brand-sm); }
.ts-btn--primary:hover { background: var(--action-primary-bg-hover); }
.ts-btn--secondary { background: var(--action-secondary-bg); color: var(--action-secondary-fg); }
.ts-btn--secondary:hover { background: var(--action-secondary-bg-hover); }
.ts-btn--outline { background: transparent; color: var(--text-on-brand); border: 2px solid currentColor; }

.ts-section { padding-top: var(--space-16); padding-bottom: var(--space-16); }

body.single-ts_landing {
	margin: 0;
}
@media (max-width: 782px) { .ts-section { padding-top: var(--space-10); padding-bottom: var(--space-10); } }
