/* Калькулятор. Палитра темы: корпус #2b2620, акцент #a98552, песочный #f6f2ea. */

.ocalc,
.ocalc * {
	box-sizing: border-box;
	min-width: 0;
}

.ocalc {
	max-width: 100%;
	margin: 32px 0;
	overflow-wrap: anywhere;
}

/* --- разделы --- */

.ocalc__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
}

.ocalc__tab {
	padding: 9px 17px;
	border: 1px solid #e4dbcb;
	border-radius: 999px;
	background: #fff;
	color: #2b2620;
	font-size: 15px;
	line-height: 1.35;
	cursor: pointer;
	transition: background .15s, border-color .15s, color .15s;
}

.ocalc__tab:hover {
	border-color: #a98552;
	color: #a98552;
}

.ocalc__tab.is-active {
	background: #2b2620;
	border-color: #2b2620;
	color: #fff;
}

/* --- поля --- */

.ocalc__panel {
	display: none;
	padding: 26px 28px;
	background: #f6f2ea;
	border-radius: 12px;
}

.ocalc__panel.is-active {
	display: block;
}

.ocalc__note {
	margin: 0 0 18px;
	font-size: 15px;
	color: #8a8177;
}

.ocalc__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	padding: 14px 0;
	border-bottom: 1px solid #e8e0d2;
}

.ocalc__row:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.ocalc__label {
	flex: 1 1 260px;
	display: flex;
	flex-direction: column;
	gap: 3px;
	font-size: 16px;
	color: #2b2620;
}

.ocalc__hint {
	font-size: 13px;
	line-height: 1.45;
	color: #8a8177;
}

.ocalc__control {
	flex: 0 1 auto;
	display: flex;
	align-items: center;
	gap: 10px;
}

.ocalc__qty {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ocalc select,
.ocalc input[type="number"] {
	height: 42px;
	padding: 0 12px;
	border: 1px solid #e4dbcb;
	border-radius: 8px;
	background: #fff;
	color: #2b2620;
	font-size: 15px;
	font-family: inherit;
}

.ocalc select {
	min-width: 210px;
	max-width: 100%;
	padding-right: 30px;
}

.ocalc input[type="number"] {
	width: 92px;
	text-align: center;
}

.ocalc select:focus,
.ocalc input[type="number"]:focus {
	outline: 0;
	border-color: #a98552;
}

.ocalc__unit,
.ocalc__per {
	font-size: 14px;
	color: #8a8177;
	white-space: nowrap;
}

.ocalc__per {
	min-width: 74px;
	text-align: right;
}

/* --- итог --- */

.ocalc__result {
	margin-top: 22px;
	padding: 22px 26px;
	background: #2b2620;
	border-radius: 12px;
	color: #fff;
}

.ocalc__sum {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 18px;
}

.ocalc__sum-label {
	font-size: 15px;
	color: rgba(255, 255, 255, .6);
}

.ocalc__sum b {
	font-size: 30px;
	font-weight: 600;
	line-height: 1.1;
	color: #e4d2b0;
}

.ocalc.is-empty .ocalc__sum b {
	color: rgba(255, 255, 255, .35);
}

.ocalc__disclaimer {
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: rgba(255, 255, 255, .5);
}

@media (max-width: 640px) {
	.ocalc__panel {
		padding: 20px;
	}

	.ocalc__row {
		align-items: flex-start;
	}

	.ocalc__control {
		flex: 1 1 100%;
		flex-wrap: wrap;
	}

	.ocalc select {
		min-width: 0;
		flex: 1 1 100%;
	}

	.ocalc__per {
		text-align: left;
	}
}

/* --- шаговые кнопки --- */

.ocalc__stepper {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid #e4dbcb;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.ocalc__stepper input[type="number"] {
	width: 62px;
	height: 40px;
	border: 0;
	border-radius: 0;
	background: transparent;
	-moz-appearance: textfield;
}

.ocalc__stepper input[type="number"]::-webkit-outer-spin-button,
.ocalc__stepper input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ocalc__step-btn {
	width: 38px;
	border: 0;
	background: #f6f2ea;
	color: #2b2620;
	font-size: 19px;
	line-height: 1;
	cursor: pointer;
	transition: background .15s, color .15s;
}

.ocalc__step-btn:hover {
	background: #a98552;
	color: #fff;
}

.ocalc__stepper:focus-within {
	border-color: #a98552;
}

/* --- расшифровка суммы --- */

.ocalc__breakdown {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.ocalc__breakdown:empty {
	display: none;
}

.ocalc__breakdown li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	border-bottom: 1px dashed rgba(255, 255, 255, .12);
	font-size: 15px;
	color: rgba(255, 255, 255, .75);
}

.ocalc__breakdown li:last-child {
	border-bottom: 0;
}

.ocalc__breakdown li b {
	flex: 0 0 auto;
	font-weight: 500;
	color: #fff;
	white-space: nowrap;
}

.ocalc__sum {
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, .18);
}

/* Пустое состояние: подсказываем, что делать, вместо голого нуля */
.ocalc.is-empty .ocalc__sum-label::after {
	content: ' — выберите формат и укажите количество';
	color: rgba(255, 255, 255, .4);
}

@media (max-width: 640px) {
	.ocalc.is-empty .ocalc__sum-label::after {
		content: '';
	}
}
