/* DetailDeco â€” components: buttons, cards, badges, toggle, chips, forms. */

/* Buttons */
.dc-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:.5em;
	font-family:var(--dc-font-head);font-weight:600;font-size:.98rem;line-height:1;
	padding:14px 24px;border-radius:var(--dc-radius-pill);border:1px solid transparent;
	cursor:pointer;transition:transform var(--dc-dur) var(--dc-ease),background var(--dc-dur) var(--dc-ease),color var(--dc-dur) var(--dc-ease),box-shadow var(--dc-dur) var(--dc-ease);
	text-align:center;white-space:nowrap;
}
.dc-btn--lg{padding:16px 30px;font-size:1.05rem}

.dc-btn--primary{background:var(--dc-accent);color:var(--dc-on-accent);box-shadow:0 8px 24px -10px var(--dc-accent-glow)}
.dc-btn--primary:hover{background:var(--dc-accent-hover);color:var(--dc-on-accent);transform:translateY(-2px);box-shadow:0 14px 30px -10px var(--dc-accent-glow)}
.dc-btn--primary:active{background:var(--dc-accent-pressed);transform:translateY(0)}

.dc-btn--ghost{background:transparent;color:var(--dc-text);border-color:var(--dc-border-strong)}
.dc-btn--ghost:hover{border-color:var(--dc-accent);color:var(--dc-accent);transform:translateY(-2px)}

.dc-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}

/* Eyebrow */
.dc-eyebrow{
	display:inline-block;font-family:var(--dc-font-head);font-weight:600;font-size:.82rem;
	letter-spacing:.14em;text-transform:uppercase;color:var(--dc-accent);margin:0 0 .8em;
}

/* Card */
.dc-card{
	background:var(--dc-surface);border:1px solid var(--dc-border);border-radius:var(--dc-radius-lg);
	padding:clamp(20px,3vw,28px);transition:border-color var(--dc-dur) var(--dc-ease),transform var(--dc-dur) var(--dc-ease),box-shadow var(--dc-dur) var(--dc-ease);
}
.dc-card:hover{border-color:var(--dc-border-strong)}

/* Badge */
.dc-badge{
	display:inline-block;background:var(--dc-accent);color:var(--dc-on-accent);
	font-family:var(--dc-font-head);font-weight:700;font-size:.72rem;letter-spacing:.06em;
	text-transform:uppercase;padding:5px 12px;border-radius:var(--dc-radius-pill);
}
.dc-badge--sm{font-size:.62rem;padding:3px 8px;vertical-align:middle}

/* Segmented toggle */
.dc-toggle{
	display:inline-flex;background:var(--dc-surface-2);border:1px solid var(--dc-border);
	border-radius:var(--dc-radius-pill);padding:5px;gap:4px;margin-inline:auto;
}
.dc-toggle__btn{
	border:0;background:transparent;color:var(--dc-text-muted);cursor:pointer;
	font-family:var(--dc-font-head);font-weight:600;font-size:.95rem;
	padding:10px 22px;border-radius:var(--dc-radius-pill);transition:all var(--dc-dur) var(--dc-ease);
}
.dc-toggle__btn.is-active{background:var(--dc-accent);color:var(--dc-on-accent)}
.dc-toggle__hint{text-align:center;color:var(--dc-text-muted);font-size:.9rem;margin-top:.9em}

/* Icon */
.dc-icon{display:inline-block;vertical-align:middle}

/* Chips (state list) */
.dc-chip{
	display:inline-flex;align-items:center;justify-content:center;
	min-width:44px;padding:5px 10px;border-radius:var(--dc-radius-sm);
	font-size:.82rem;font-weight:600;letter-spacing:.02em;
	border:1px solid var(--dc-border);color:var(--dc-text-muted);
}
.dc-chip--on{border-color:var(--dc-accent);color:var(--dc-text)}
.dc-chip--off{opacity:.45}

/* Forms */
.dc-input,.dc-field textarea,.dc-field select{
	width:100%;background:var(--dc-surface-2);color:var(--dc-text);
	border:1px solid var(--dc-border);border-radius:var(--dc-radius-md);
	padding:13px 14px;font:inherit;transition:border-color var(--dc-dur) var(--dc-ease),box-shadow var(--dc-dur) var(--dc-ease);
}
.dc-input:focus{border-color:var(--dc-accent);box-shadow:0 0 0 3px var(--dc-accent-soft);outline:none}
.dc-field{margin-bottom:1.1em}
.dc-field__label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.45em;color:var(--dc-text)}
.dc-field__hint{color:var(--dc-text-muted);font-size:.85rem;margin:.4em 0 0}
.dc-field.is-invalid .dc-input{border-color:var(--dc-danger)}

/* Consent + honeypot */
.dc-consent{display:flex;gap:.7em;align-items:flex-start;font-size:.88rem;color:var(--dc-text-muted);margin:1em 0}
.dc-consent input{margin-top:.2em;accent-color:var(--dc-accent)}
.dc-consent--plain{color:var(--dc-text-muted)}

/* Check list item */
.dc-tier__item{display:flex;gap:.55em;align-items:flex-start}
.dc-tier__check{color:var(--dc-accent);flex:0 0 auto;margin-top:.18em}

/* Stepper */
.dc-stepper{display:flex;gap:8px;list-style:none;margin:0 0 2rem;padding:0;flex-wrap:wrap}
.dc-stepper__item{
	display:flex;align-items:center;gap:.5em;flex:1 1 0;min-width:120px;
	padding:12px 14px;border-radius:var(--dc-radius-md);background:var(--dc-surface);
	border:1px solid var(--dc-border);color:var(--dc-text-muted);font-size:.9rem;
}
.dc-stepper__item.is-active{border-color:var(--dc-accent);color:var(--dc-text)}
.dc-stepper__item.is-done{border-color:var(--dc-border-strong);color:var(--dc-text)}
.dc-stepper__num{
	display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
	border-radius:var(--dc-radius-pill);background:var(--dc-surface-3);font-weight:700;font-size:.82rem;flex:0 0 auto;
}
.dc-stepper__item.is-active .dc-stepper__num{background:var(--dc-accent);color:var(--dc-on-accent)}
.dc-stepper__item.is-done .dc-stepper__num{background:var(--dc-accent-deep);color:#fff}
.dc-stepper__name{font-family:var(--dc-font-head);font-weight:600}

/* Step blocks */
.dc-step{border:0;padding:0;margin:0}
.dc-step__title{font-size:clamp(1.3rem,3vw,1.8rem)}
.dc-step__subtitle{font-size:1.05rem;margin-top:1.5em}
.dc-step__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:1.6em;flex-wrap:wrap}

/* Grid helpers */
.dc-grid2{display:grid;grid-template-columns:1fr;gap:1em}
.dc-grid3{display:grid;grid-template-columns:1fr;gap:1em}
@media(min-width:640px){.dc-grid2{grid-template-columns:1fr 1fr}.dc-grid3{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.dc-grid3{grid-template-columns:repeat(3,1fr)}}

/* Running total */
.dc-running{display:flex;justify-content:space-between;align-items:center;font-family:var(--dc-font-head);
	border-top:1px solid var(--dc-border);padding-top:1em;margin-top:1.4em;font-size:1.1rem}
.dc-running strong{color:var(--dc-accent);font-size:1.35rem}

/* Error box */
.dc-booking__error{
	background:var(--dc-danger-soft);border:1px solid var(--dc-danger);color:var(--dc-danger-text);
	padding:12px 16px;border-radius:var(--dc-radius-md);margin-top:1.2em;font-size:.92rem;
}
