/* ---------------------------------------------------------
   Buttons
   --------------------------------------------------------- */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.85rem 1.5rem;
	border-radius: var(--radius);
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform var(--dur-fast) var(--ease-out), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.btn:active { transform: scale(0.98); }

.btn--primary { background: var(--primary); color: var(--surface); }
.btn--primary:hover { background: var(--primary-ink); }

.btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--primary); color: var(--primary-ink); }

.btn--text { background: none; color: var(--ink); padding-inline: 0; }
.btn--text:hover { color: var(--primary-ink); }
.btn--text .icon { transition: transform var(--dur-fast) var(--ease-out); }
.btn--text:hover .icon { transform: translateX(3px); }

.link-arrow {
	display: inline-flex; align-items: center; gap: 0.5rem;
	text-decoration: none; color: var(--ink);
	font-weight: 500;
	margin-top: 1.5rem;
}
.link-arrow .icon { transition: transform var(--dur-fast) var(--ease-out); }
.link-arrow:hover { color: var(--primary-ink); }
.link-arrow:hover .icon { transform: translateX(3px); }

/* ---------------------------------------------------------
   Contact Form 7
   --------------------------------------------------------- */
.wpcf7-form p { margin-bottom: 1rem; }
.wpcf7-form label { display: block; font-size: 0.9rem; color: var(--ink-soft); margin-bottom: 0.4rem; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--surface);
	font-family: var(--font-body);
	font-size: 1rem;
	color: var(--ink);
	transition: border-color var(--dur-fast) var(--ease-out);
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus { border-color: var(--primary); outline: none; }
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form input[type="submit"] {
	background: var(--primary); color: var(--surface);
	border: none; border-radius: var(--radius);
	padding: 0.85rem 1.75rem; font-size: 0.95rem; font-weight: 500;
	cursor: pointer;
	transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.wpcf7-form input[type="submit"]:hover { background: var(--primary-ink); }
.wpcf7-form input[type="submit"]:active { transform: scale(0.98); }
.wpcf7-spinner { margin-left: 0.75rem; }
.wpcf7-not-valid-tip { color: oklch(52% 0.18 25); font-size: 0.85rem; margin-top: 0.3rem; }
.wpcf7-response-output { border-radius: var(--radius); padding: 0.85rem 1rem; margin-top: 1rem; border: 1px solid var(--line); }

/* ---------------------------------------------------------
   Fallback article (index.php)
   --------------------------------------------------------- */
.basic-article__body { max-width: 68ch; }
