/*
 * LSSF Booking – calendar styles.
 * Reproduces the look of the previous booking calendar on lssf.lt (measured from screenshots).
 */

@font-face {
	font-family: "LSSFB Open Sans";
	font-style: normal;
	font-weight: 300 600;
	font-display: swap;
	src: url("../fonts/open-sans-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "LSSFB Open Sans";
	font-style: normal;
	font-weight: 300 600;
	font-display: swap;
	src: url("../fonts/open-sans-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "LSSFB Open Sans";
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/open-sans-italic-300-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "LSSFB Open Sans";
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/open-sans-italic-300-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.lssfb {
	--lssfb-available: #68ba68;
	--lssfb-booked: #dd6464;
	--lssfb-special: #ba68ba;
	--lssfb-unavailable: #cccccc;
	--lssfb-selected: #464646;
	--lssfb-border: #cccccc;
	--lssfb-panel: #fcfcfc;
	--lssfb-input-border: #c9c9c9;
	--lssfb-text: #666666;
	--lssfb-title: #464646;
	--lssfb-error: #f1705c;
	--lssfb-button: #0a6689;

	font-family: "LSSFB Open Sans", "Open Sans", sans-serif;
	font-size: 13px;
	line-height: 20px;
	margin: 0 0 20px;
	padding-left: 1px;
	text-align: left;
}
.lssfb *,
.lssfb *::before,
.lssfb *::after {
	box-sizing: border-box;
}
.lssfb [hidden] {
	display: none !important;
}

/* ---------- Navigation ---------- */
.lssfb-calendar-wrap {
	padding-top: 1px;
}
.lssfb-nav {
	position: relative;
	height: 90px;
	margin: 0 0 5px;
	border: 1px solid var(--lssfb-border);
	background: var(--lssfb-panel);
}
.lssfb-month-year {
	height: 59px;
	padding: 9px 9px 10px;
	font-size: 24px;
	font-weight: 300;
	line-height: 40px;
	color: var(--lssfb-title);
	text-align: center;
}
.lssfb .lssfb-btn {
	position: absolute;
	top: 9px;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #c9c9c9 center / 22px 22px no-repeat;
	box-shadow: none;
	cursor: pointer;
}
.lssfb .lssfb-btn:hover,
.lssfb .lssfb-btn:focus-visible {
	background-color: #464646;
}
.lssfb .lssfb-add,
.lssfb .lssfb-remove,
.lssfb .lssfb-prev {
	left: 9px;
}
.lssfb .lssfb-remove + .lssfb-prev:not([hidden]),
.lssfb .lssfb-add:not([hidden]) ~ .lssfb-prev {
	left: 54px;
}
.lssfb .lssfb-next {
	right: 9px;
}
.lssfb .lssfb-add {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23fff' stroke-width='1.2'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M11 6v10M6 11h10'/%3E%3C/svg%3E");
}
.lssfb .lssfb-remove {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23fff' stroke-width='1.2'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M6 11h10'/%3E%3C/svg%3E");
}
.lssfb .lssfb-prev {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23fff' stroke-width='1.2'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M12.5 7l-4 4 4 4'/%3E%3C/svg%3E");
}
.lssfb .lssfb-next {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23fff' stroke-width='1.2'%3E%3Ccircle cx='11' cy='11' r='10'/%3E%3Cpath d='M9.5 7l4 4-4 4'/%3E%3C/svg%3E");
}
.lssfb-week {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	padding: 0 4px 9px;
}
.lssfb-weekday {
	font-size: 12px;
	line-height: 20px;
	color: #898989;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
}

/* ---------- Month grid ---------- */
.lssfb-month {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 2px;
	padding: 9px 11px 11px 6px;
	border: 1px solid var(--lssfb-border);
	background: var(--lssfb-panel);
}
.lssfb-month + .lssfb-month {
	margin-top: 5px;
}
.lssfb-month-title {
	grid-column: 1 / -1;
	padding: 0 0 7px;
	font-size: 18px;
	font-weight: 300;
	color: var(--lssfb-title);
	text-align: center;
}
.lssfb-month.lssfb-loading {
	min-height: 380px;
}
.lssfb-busy {
	opacity: 0.6;
	transition: opacity 0.2s;
}

.lssfb-day {
	--c: var(--lssfb-unavailable);
	display: flex;
	flex-direction: column;
	height: 58px;
	min-width: 0;
	user-select: none;
}
.lssfb-head {
	flex: 0 0 19px;
	padding: 1px 0 0 5px;
	background: var(--c);
	font-size: 12px;
	font-weight: 300;
	line-height: 17px;
	color: #fff;
	overflow: hidden;
}
.lssfb-body {
	position: relative;
	flex: 1 1 auto;
	border: 1px solid var(--c);
	border-top: 0;
	background: #fff;
}
.lssfb-avail {
	position: absolute;
	left: 4px;
	bottom: 3px;
	font-size: 11px;
	font-weight: 300;
	line-height: 18px;
	color: #acacac;
	white-space: nowrap;
}

.lssfb-day.lssfb-past { opacity: 0.25; }
.lssfb-day.lssfb-prev-month,
.lssfb-day.lssfb-next-month { opacity: 0.5; }
.lssfb-day.lssfb-available { --c: var(--lssfb-available); }
.lssfb-day.lssfb-special { --c: var(--lssfb-special); }
.lssfb-day.lssfb-booked { --c: var(--lssfb-booked); }
.lssfb-day.lssfb-unavailable { --c: var(--lssfb-unavailable); }
.lssfb-day.lssfb-selected { --c: var(--lssfb-selected); }
.lssfb-day.lssfb-bookable { cursor: pointer; }
.lssfb-day.lssfb-bookable:focus-visible {
	outline: 2px solid var(--lssfb-selected);
	outline-offset: 1px;
}

/* ---------- Sidebar ---------- */
.lssfb-sidebar {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 20px;
	margin: 0;
	padding: 20px 0 0;
}
.lssfb-module {
	margin: 0 0 20px;
	padding: 8px 9px 0;
	border: 1px solid var(--lssfb-border);
	background: var(--lssfb-panel);
}
.lssfb-module h4 {
	margin: 0;
	padding: 10px 0 20px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 400;
	line-height: 20px;
	color: var(--lssfb-title);
	letter-spacing: 0;
	text-transform: none;
}
.lssfb-dates {
	padding-bottom: 10px;
}
.lssfb-input-wrapper {
	margin: 0 10px 10px 0;
}
.lssfb .lssfb-input-wrapper input[type="text"] {
	width: 220px;
	max-width: 100%;
	padding-left: 34px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='%23acacac'%3E%3Cpath d='M2 3h14v13H2zM3.5 7v7.5h11V7zM5 1h1.5v3H5zM11.5 1H13v3h-1.5z'/%3E%3Crect x='5' y='8.5' width='2' height='2' fill='%23fff'/%3E%3Crect x='8' y='8.5' width='2' height='2' fill='%23fff'/%3E%3Crect x='11' y='8.5' width='2' height='2' fill='%23fff'/%3E%3Crect x='5' y='11.5' width='2' height='2' fill='%23fff'/%3E%3Crect x='8' y='11.5' width='2' height='2' fill='%23fff'/%3E%3C/svg%3E") 8px center / 18px 18px no-repeat;
	cursor: default;
}
.lssfb .lssfb-input-wrapper input[type="text"]:disabled {
	opacity: 0.5;
}
.lssfb-field {
	margin: 0 0 10px;
}
.lssfb-field label {
	display: block;
	margin: 0;
	font-size: 13px;
	font-style: italic;
	font-weight: 300;
	line-height: 20px;
	color: var(--lssfb-text);
}
.lssfb-required {
	color: var(--lssfb-error);
}
.lssfb input[type="text"],
.lssfb input[type="email"],
.lssfb input[type="tel"],
.lssfb select {
	display: block;
	width: 220px;
	max-width: 100%;
	height: 30px;
	margin: 0;
	padding: 4px 9px;
	border: 1px solid var(--lssfb-input-border);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	font-family: inherit;
	font-size: 13px;
	font-weight: 300;
	line-height: 20px;
	color: var(--lssfb-text);
}
.lssfb input::placeholder {
	color: var(--lssfb-text);
	opacity: 1;
}
.lssfb input:focus,
.lssfb select:focus {
	border-color: #898989;
	outline: none;
}
.lssfb input[aria-invalid="true"] {
	border-color: var(--lssfb-error);
}
.lssfb .lssfb-select select {
	width: 105px;
	appearance: none;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='%23acacac'%3E%3Cpath d='M0 0h10L5 6z'/%3E%3C/svg%3E") right 10px center / 10px 6px no-repeat;
	cursor: pointer;
}
.lssfb-items {
	margin: 0;
}
.lssfb-phone-row {
	display: flex;
	width: 219px;
	max-width: 100%;
}
.lssfb .lssfb-phone-row .lssfb-phone-prefix {
	flex: 0 0 80px;
	width: 80px;
	padding-right: 24px;
	border-right: 0;
	background: #f2f2f2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='%23464646'%3E%3Cpath d='M0 0h10L5 6z'/%3E%3C/svg%3E") right 10px center / 10px 6px no-repeat;
	color: #464646;
}
.lssfb .lssfb-phone-row input[type="tel"] {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}
.lssfb-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.lssfb-form {
	padding-bottom: 0;
}
.lssfb-message {
	margin: 0 0 10px;
	padding: 5px 10px;
	font-size: 13px;
	font-weight: 300;
	line-height: 20px;
	color: #fff;
}
.lssfb-message-info {
	background: var(--lssfb-selected);
}
.lssfb-message-error {
	margin-top: 9px;
	background: var(--lssfb-error);
}
.lssfb-message-success {
	background: var(--lssfb-available);
}
.lssfb-summary-table {
	width: 100%;
	margin: 0 0 14px;
	border: 0;
	border-collapse: collapse;
	font-size: 13px;
	line-height: 20px;
}
.lssfb-summary-table th,
.lssfb-summary-table td {
	width: 50%;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	vertical-align: top;
}
.lssfb-summary-table th {
	font-weight: 600;
	color: var(--lssfb-title);
}
.lssfb-summary-table td {
	font-weight: 300;
	color: var(--lssfb-text);
}
.lssfb-book {
	padding-bottom: 9px;
}
.lssfb .lssfb-submit {
	display: block;
	width: 100%;
	height: 40px;
	margin: 0 0 1px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: var(--lssfb-button);
	box-shadow: none;
	font-family: inherit;
	font-size: 17px;
	font-weight: 300;
	line-height: 40px;
	color: #fff;
	text-transform: none;
	cursor: pointer;
}
.lssfb .lssfb-submit:hover,
.lssfb .lssfb-submit:focus-visible {
	background: #464646;
}
.lssfb .lssfb-submit:disabled {
	opacity: 0.6;
	cursor: wait;
}

/* ---------- Compact (phones / narrow tabs) ---------- */
.lssfb-compact .lssfb-nav {
	height: 140px;
}
.lssfb-compact .lssfb-month-year {
	height: auto;
	padding: 58px 9px 9px;
	text-align: left;
}
.lssfb-compact .lssfb-month {
	padding: 9px 6px 11px 6px;
}
.lssfb-compact .lssfb-day {
	height: 33px;
}
.lssfb-compact .lssfb-head {
	flex: 1 1 auto;
}
.lssfb-compact .lssfb-body {
	display: none;
}
.lssfb-compact .lssfb-sidebar {
	grid-template-columns: 1fr;
}
