/* InteriorBabu — front-end forms & calculators
   Scoped under .ib-* so it won't collide with the theme. */

.ib-form-wrap {
	--ib-accent: var(--ib-color-accent, #c9a14a);
	--ib-ink: var(--ib-color-ink, #1d2330);
	--ib-radius: 14px;
	background: #fff;
	border: 1px solid #ececf1;
	border-radius: var(--ib-radius);
	padding: 28px;
	box-shadow: 0 18px 50px -28px rgba(20, 24, 40, .35);
	max-width: 520px;
}

.ib-form-title {
	margin: 0 0 6px;
	font-size: 1.4rem;
	line-height: 1.2;
	color: var(--ib-ink);
}

.ib-form-subtitle {
	margin: 0 0 18px;
	color: #6b7280;
	font-size: .95rem;
}

.ib-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.ib-field { display: flex; flex-direction: column; gap: 6px; }
.ib-field--full { grid-column: 1 / -1; }

.ib-field label {
	font-size: .82rem;
	font-weight: 600;
	color: var(--ib-ink);
}
.ib-field label span { color: #e2483d; }

.ib-form input[type="text"],
.ib-form input[type="email"],
.ib-form input[type="tel"],
.ib-form input[type="number"],
.ib-form select,
.ib-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid #e2e3ea;
	border-radius: 10px;
	font-size: .95rem;
	font-family: inherit;
	color: var(--ib-ink);
	background: #fbfbfd;
	transition: border-color .15s, box-shadow .15s;
	box-sizing: border-box;
}
.ib-form input:focus,
.ib-form select:focus,
.ib-form textarea:focus {
	outline: none;
	border-color: var(--ib-accent);
	box-shadow: 0 0 0 3px rgba(201, 161, 74, .15);
	background: #fff;
}

.ib-consent {
	grid-column: 1 / -1;
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: .82rem;
	color: #6b7280;
}
.ib-consent input { margin-top: 3px; }

.ib-btn {
	grid-column: 1 / -1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 22px;
	border: none;
	border-radius: 10px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: transform .12s ease, box-shadow .2s ease, opacity .2s;
	text-decoration: none;
}
.ib-btn--primary {
	background: linear-gradient(135deg, var(--ib-accent), #b9892f);
	color: #fff;
	box-shadow: 0 12px 26px -10px rgba(185, 137, 47, .6);
}
.ib-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 18px 32px -12px rgba(185, 137, 47, .7); }
.ib-btn[disabled] { opacity: .6; cursor: progress; transform: none; }

.ib-form-feedback { grid-column: 1 / -1; font-size: .9rem; min-height: 1em; }
.ib-form-feedback.is-success { color: #1f9d57; font-weight: 600; }
.ib-form-feedback.is-error { color: #e2483d; font-weight: 600; }

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

.ib-alert {
	grid-column: 1 / -1;
	padding: 12px 14px;
	border-radius: 10px;
	font-size: .92rem;
	margin-bottom: 14px;
}
.ib-alert--success { background: #e7f7ee; color: #1f7a44; }
.ib-alert--error { background: #fdeceb; color: #c0392b; }

/* ---------------- Calculators ---------------- */

.ib-calc {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	background: #fff;
	border: 1px solid #ececf1;
	border-radius: 18px;
	padding: 28px;
	box-shadow: 0 22px 60px -34px rgba(20, 24, 40, .4);
}

.ib-calc__form .ib-field { margin-bottom: 14px; }

.ib-addons { border: none; padding: 0; margin: 12px 0 0; }
.ib-addons legend { font-weight: 700; font-size: .9rem; margin-bottom: 8px; }
.ib-addon {
	display: flex; align-items: center; gap: 8px;
	padding: 8px 10px; border: 1.5px solid #eceef3; border-radius: 9px;
	margin-bottom: 6px; cursor: pointer; font-size: .9rem;
}
.ib-addon:has(input:checked) { border-color: var(--ib-color-accent, #c9a14a); background: #fbf6ea; }

.ib-calc__result {
	background: linear-gradient(165deg, #1d2330, #2b3447);
	color: #fff;
	border-radius: 14px;
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.ib-calc__estimate { text-align: center; }
.ib-calc__label { display: block; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.ib-calc__value { display: block; font-size: 1.8rem; font-weight: 800; margin: 6px 0; color: #e9c97a; }
.ib-calc__meta { display: block; font-size: .85rem; opacity: .85; }
.ib-calc__gate { font-size: .85rem; opacity: .85; margin: 0 0 4px; }

.ib-calc__lead { grid-template-columns: 1fr; }
.ib-calc__lead input { background: rgba(255,255,255,.96); }
.ib-calc__lead .ib-btn { margin-top: 4px; }

.ib-roi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ib-roi-stat { background: rgba(255,255,255,.08); border-radius: 10px; padding: 14px; text-align: center; }
.ib-roi-val { display: block; font-size: 1.3rem; font-weight: 800; color: #e9c97a; }
.ib-roi-lbl { display: block; font-size: .75rem; opacity: .8; margin-top: 4px; }

/* ---------------- FAQ ---------------- */
.ib-faq { border-bottom: 1px solid #eceef3; padding: 6px 0; }
.ib-faq__q { cursor: pointer; font-weight: 600; padding: 12px 0; list-style: none; }
.ib-faq__q::-webkit-details-marker { display: none; }
.ib-faq__q::before { content: '+'; margin-right: 10px; color: var(--ib-color-accent, #c9a14a); font-weight: 800; }
.ib-faq[open] .ib-faq__q::before { content: '−'; }
.ib-faq__a { padding: 0 0 14px 22px; color: #5b6270; }

/* ---------------- Multi-step form ---------------- */
.ib-ms {
	background: #fff;
	border: 1px solid #ececf1;
	border-radius: 16px;
	padding: 28px;
	box-shadow: 0 18px 50px -28px rgba(20, 24, 40, .35);
	max-width: 560px;
}
.ib-ms__head { margin-bottom: 18px; }
.ib-ms__progress { height: 8px; background: #eceef3; border-radius: 20px; overflow: hidden; margin: 12px 0 6px; }
.ib-ms__bar { display: block; height: 100%; width: 33%; background: linear-gradient(90deg, var(--ib-color-accent, #c9a14a), #b9892f); border-radius: 20px; transition: width .35s ease; }
.ib-ms__count { font-size: .8rem; color: #8a8f9c; margin: 0; }

.ib-ms__step { border: none; padding: 0; margin: 0; display: none; }
.ib-ms__step.is-active { display: block; animation: ib-fade-in .3s ease; }
.ib-ms__step legend { font-family: var(--ib-font-head, serif); font-size: 1.15rem; font-weight: 600; margin-bottom: 16px; padding: 0; }
@keyframes ib-fade-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }

.ib-ms__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.ib-ms__opt { position: relative; }
.ib-ms__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ib-ms__opt span {
	display: block; padding: 14px 16px; border: 1.5px solid #e2e3ea; border-radius: 10px;
	font-size: .92rem; cursor: pointer; transition: border-color .15s, background .15s; text-align: center;
}
.ib-ms__opt input:checked + span { border-color: var(--ib-color-accent, #c9a14a); background: #fbf6ea; font-weight: 600; }
.ib-ms__opt input:focus-visible + span { box-shadow: 0 0 0 3px rgba(201,161,74,.2); }
.ib-ms__opts--error span { border-color: #e2483d; }
.ib-input--error { border-color: #e2483d !important; }

.ib-ms__nav { display: flex; gap: 10px; margin-top: 8px; }
.ib-ms__nav .ib-btn { flex: 1; }

.ib-guide .ib-field--full select { min-height: 46px; }

@media (max-width: 720px) {
	.ib-form { grid-template-columns: 1fr; }
	.ib-calc { grid-template-columns: 1fr; }
	.ib-field--full { grid-column: 1; }
	.ib-ms__opts { grid-template-columns: 1fr; }
}
