/* Grace Digital Core — front-end styles
   Falls back gracefully if the theme tokens are not present. */

:root {
	--gdc-accent: var(--accent, #1F6F4A);
	--gdc-accent-hover: var(--accent-hover, #185B3C);
	--gdc-border: var(--border, #E5E7EB);
	--gdc-radius: var(--r-lg, 16px);
}

.gdc-grid { display: grid; gap: var(--s-5, 24px); }
.gdc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gdc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.gdc-grid--4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
	.gdc-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.gdc-grid--2, .gdc-grid--3, .gdc-grid--4 { grid-template-columns: 1fr; }
}

.gdc-empty { color: var(--muted, #6B7280); }

/* Honeypot — visually hidden but present for bots. */
.gdc-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

/* Form banners */
.gdc-banner { margin-bottom: var(--s-5, 24px); padding: var(--s-4, 16px); border-radius: var(--r-md, 10px); }
.notice--success { background: #E8F1EC; border: 1px solid #BFE0CC; color: #14532d; }
.notice--error { background: #FEECEB; border: 1px solid #F5C6C3; color: #7f1d1d; }

/* Floating WhatsApp button */
.gdc-wa-float {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 999;
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: #25D366;
	color: #fff;
	box-shadow: 0 6px 18px rgba(0,0,0,.22);
	transition: transform .15s ease-out, box-shadow .15s ease-out;
}
.gdc-wa-float:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.28); color: #fff; text-decoration: none; }
.gdc-wa-float:focus-visible { outline: 3px solid rgba(37,211,102,.4); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
	.gdc-wa-float { transition: none; }
}
