/* VTG DGTH — form.css · chỉ nạp ở trang CÓ biểu mẫu. */

@layer components {
	.dg-form {
		padding: var(--dg-s-6);
		border: 1px solid var(--dg-line);
		border-radius: var(--dg-r-lg);
		background: var(--dg-surface);
	}

	.dg-form__title {
		font-size: var(--dg-fs-h3);
		margin-block-end: var(--dg-s-2);
	}

	.dg-form__desc {
		font-size: var(--dg-fs-small);
		color: var(--dg-ink-2);
		margin-block-end: var(--dg-s-5);
	}

	.dg-form__grid {
		display: grid;
		gap: var(--dg-s-4);
		grid-template-columns: 1fr;
	}

	@media (min-width: 640px) {
		.dg-form__grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.dg-field--wide {
			grid-column: 1 / -1;
		}
	}

	.dg-field {
		margin: 0;
	}

	.dg-field label {
		margin-block-end: var(--dg-s-1);
		color: var(--dg-ink);
	}

	.dg-field label span {
		color: var(--dg-bad);
	}

	.dg-field--check {
		margin-block-start: var(--dg-s-5);
	}

	.dg-field--check label {
		display: flex;
		align-items: flex-start;
		gap: var(--dg-s-2);
		font-size: var(--dg-fs-small);
		font-weight: 400;
		color: var(--dg-ink-2);
		line-height: var(--dg-lh-body);
	}

	/* Mật ong: giấu khỏi mắt người, KHÔNG dùng display:none — một số bot bỏ qua ô
	   bị display:none và điền đúng những ô còn lại. */
	.dg-hp {
		position: absolute;
		inline-size: 1px;
		block-size: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.dg-form__foot {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--dg-s-4);
		margin-block-start: var(--dg-s-6);
	}

	.dg-form__msg {
		font-size: var(--dg-fs-small);
	}

	.dg-form__msg.is-ok {
		color: var(--dg-ok);
	}

	.dg-form__msg.is-bad {
		color: var(--dg-bad);
	}

	/* ------------------------------------------------------ trang Liên hệ */
	.dg-contact {
		display: grid;
		gap: var(--dg-s-7);
		grid-template-columns: 1fr;
		align-items: start;
	}

	@media (min-width: 1024px) {
		.dg-contact {
			grid-template-columns: minmax(0, 1fr) var(--dg-aside);
			gap: var(--dg-s-8);
		}
	}

	.dg-contact__list {
		display: flex;
		flex-direction: column;
		gap: var(--dg-s-4);
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.dg-contact__list li {
		display: flex;
		align-items: flex-start;
		gap: var(--dg-s-3);
		font-size: var(--dg-fs-small);
	}

	.dg-contact__list svg {
		inline-size: var(--dg-icon-sm);
		block-size: var(--dg-icon-sm);
		color: var(--dg-brand-fg);
		flex: none;
		margin-block-start: 2px;
	}

	.dg-contact__list strong {
		display: block;
		font-size: var(--dg-fs-eyebrow);
		font-weight: var(--dg-fw-eyebrow);
		letter-spacing: var(--dg-ls-eyebrow);
		text-transform: uppercase;
		color: var(--dg-ink-2);
	}

	/* ------------------------------------------------ viết đánh giá (trang hồ sơ) */
	.dg-rvform {
		margin-block-start: var(--dg-s-6);
	}

	.dg-rvform > summary {
		inline-size: max-content;
		list-style: none;
		cursor: pointer;
	}

	.dg-rvform > summary::-webkit-details-marker {
		display: none;
	}

	.dg-rvform[open] > summary {
		margin-block-end: var(--dg-s-4);
	}

	.dg-rvstars {
		margin: 0 0 var(--dg-s-5);
		padding: 0;
		border: 0;
	}

	.dg-rvstars legend {
		margin-block-end: var(--dg-s-2);
		font-size: var(--dg-fs-small);
		font-weight: 500;
	}

	/* DOM 5→1 + row-reverse: `input:checked ~ label` tô sao đã chọn VÀ mọi sao nhỏ hơn,
	   không cần JS; ô radio thật vẫn nhận bàn phím. */
	.dg-rvstars__row {
		display: inline-flex;
		flex-direction: row-reverse;
		gap: var(--dg-s-1);
	}

	.dg-rvstars input {
		position: absolute;
		opacity: 0;
		pointer-events: none;
	}

	.dg-rvstars label {
		display: flex;
		color: var(--dg-line);
		cursor: pointer;
	}

	.dg-rvstars label svg {
		inline-size: var(--dg-icon-lg);
		block-size: var(--dg-icon-lg);
	}

	.dg-rvstars label:hover,
	.dg-rvstars label:hover ~ label,
	.dg-rvstars input:checked ~ label {
		color: var(--dg-accent-fg);
	}

	.dg-rvstars input:focus-visible + label {
		outline: 2px solid var(--dg-brand-fg);
		outline-offset: 2px;
		border-radius: var(--dg-r-sm);
	}
}
