/* Rehab+ · tokens e base compartilhada (site e agenda) */
:root {
	--navy-950: #021526;
	--navy-900: #031B30;
	--navy-800: #04223A;
	--navy-700: #08304F;
	--navy-600: #0B416A;
	--blue-500: #1468A8;
	--blue-400: #2E86C9;
	--gold-500: #E0A91B;
	--gold-400: #F0BE3A;
	--gold-600: #C08F0E;
	--gold-50: #FDF6E3;

	--ink: #0B1B2B;
	--ink-2: #2B3D50;
	--muted: #5D6F82;
	--muted-2: #8A99A8;
	--line: #E2E8EF;
	--line-2: #EEF2F6;
	--bg: #F4F6F9;
	--card: #FFFFFF;

	--ok: #1B7F55;
	--ok-bg: #E7F5EE;
	--danger: #B93A2A;
	--danger-bg: #FBECEA;
	--warn: #A86A0B;
	--warn-bg: #FDF3E1;

	--font-d: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
	--font: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

	--r-sm: 10px;
	--r: 14px;
	--r-lg: 20px;
	--r-xl: 28px;
	--sh-1: 0 1px 2px rgba(4, 34, 58, .06), 0 1px 1px rgba(4, 34, 58, .04);
	--sh-2: 0 10px 30px -12px rgba(4, 34, 58, .22), 0 2px 6px rgba(4, 34, 58, .06);
	--sh-3: 0 24px 60px -20px rgba(2, 21, 38, .45);
	--ease: cubic-bezier(.22, 1, .36, 1);
	--ease-in: cubic-bezier(.4, 0, 1, 1);
	--gutter: clamp(16px, 4vw, 40px);
	--max: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink);
	background: var(--bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; line-height: 1.1; }
p { margin: 0; }
.ic { width: 20px; height: 20px; flex: none; }

:focus-visible { outline: 3px solid var(--gold-400); outline-offset: 2px; border-radius: 6px; }

.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }

/* Botões */
.btn {
	--b-bg: var(--navy-800); --b-fg: #fff; --b-bd: transparent;
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 48px; padding: 0 22px;
	border: 1px solid var(--b-bd); border-radius: 12px;
	background: var(--b-bg); color: var(--b-fg);
	font-weight: 700; font-size: 15px; letter-spacing: .01em; text-decoration: none;
	transition: transform .25s var(--ease), background-color .2s, box-shadow .25s var(--ease), opacity .2s;
	-webkit-tap-highlight-color: transparent;
	white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); box-shadow: var(--sh-2); }
.btn:active { transform: translateY(0) scale(.98); }
.btn[disabled], .btn.is-loading { opacity: .6; pointer-events: none; }
.btn .ic { width: 18px; height: 18px; transition: transform .3s var(--ease); }
.btn:hover .ic-arrow { transform: translateX(3px); }
.btn--gold { --b-bg: var(--gold-500); --b-fg: var(--navy-900); }
.btn--gold:hover { --b-bg: var(--gold-400); }
.btn--ghost { --b-bg: transparent; --b-fg: var(--navy-800); --b-bd: var(--line); }
.btn--ghost:hover { --b-bg: #fff; }
.btn--line-light { --b-bg: rgba(255,255,255,.06); --b-fg: #fff; --b-bd: rgba(255,255,255,.22); }
.btn--line-light:hover { --b-bg: rgba(255,255,255,.12); }
.btn--danger { --b-bg: #fff; --b-fg: var(--danger); --b-bd: #F1C9C3; }
.btn--sm { min-height: 38px; padding: 0 14px; font-size: 14px; border-radius: 10px; }
.btn--block { width: 100%; }

.btn.is-loading::after {
	content: ""; width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid currentColor; border-right-color: transparent;
	animation: rh-spin .7s linear infinite;
}
@keyframes rh-spin { to { transform: rotate(360deg); } }

.logo { display: inline-flex; align-items: center; }
.logo img { height: 34px; width: auto; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
[hidden] { display: none !important; }
