.tx-ivoffers {
	position: relative;
}

.tx-ivoffers span {
	transition: all 0.3s ease-in-out 0s;
}

.tx-ivoffers span.highlight {
	color: #6ab400 !important;
}

.tx-ivoffers span.background {
	opacity: 0.3 !important;
}

/* Filter styling - hide entire cards when no categories match */
.tx-ivoffers .offers-sections a.filtered-out {
	opacity: 0.3;
	pointer-events: none;
}

.tx-ivoffers .offers {
	margin-top: 30px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: 16px;
}

.tx-ivoffers .offers a {
	background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
	border: 1px solid #e9ecef;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	box-sizing: border-box;
	color: #2c3e50;
	display: block;
	font-size: 1.1em;
	font-weight: 600;
	margin-bottom: 16px;
	padding: 24px 28px;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	text-decoration: none;
	position: relative;
}

.tx-ivoffers .offers a .offer-main-title {
	font-size: 1.25em !important;
	font-weight: 700 !important;
	color: #2c3e50 !important;
	display: block;
	margin-bottom: 8px;
}

.tx-ivoffers .offers a::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: #b40000;
	transform: scaleX(0);
	transition: transform 0.3s ease;
}

.tx-ivoffers .offers a:hover {
	background: linear-gradient(135deg, #ffffff 0%, #f1f3f4 100%) !important;
	border-color: #b40000;
}

.tx-ivoffers .offers.next-offers a:hover {
	background-image: linear-gradient(135deg, #ffffff 0%, #f1f3f4 100%) !important;
	background-position: 0 0;
	background-repeat: no-repeat;
	background-size: auto;
	border-color: #b40000;
}

.tx-ivoffers .offers a:hover::before {
	transform: scaleX(1);
}

.tx-ivoffers .offers.offers-sections {
	margin-top: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: 16px;
	padding: 2px;
}

.tx-ivoffers .offers.offers-sections a {
	box-sizing: border-box;
	height: auto;
	line-height: normal;
	padding: 24px 28px;
	width: 100%;
}

.tx-ivoffers .offers.next-offers a {
	background-image: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
	background-position: 0 0;
	background-repeat: no-repeat;
	background-size: auto;
	padding-left: 28px;
}

.tx-ivoffers .offers a:last-child {
	margin-bottom: 15px;
}

.tx-ivoffers .offers a span {
	color: #3d3d3d;
	font-size: 0.85em;
	font-weight: 400;
	display: block;
	margin-top: 4px;
	line-height: 1.4;
}

/* New semantic elements styling */
.tx-ivoffers .offer-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 60px;
}

.tx-ivoffers .offer-title {
	margin: 0 0 8px 0;
	font-size: 1.1em;
	font-weight: 600;
	color: #2c3e50;
	line-height: 1.3;
}

.tx-ivoffers .offer-details {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.tx-ivoffers .offer-date {
	color: #3d3d3d;
	font-size: 0.85em;
	font-weight: 500;
	text-decoration: none;
}

.tx-ivoffers .offer-location,
.tx-ivoffers .offer-type {
	color: #3d3d3d;
	font-size: 0.85em;
	font-weight: 400;
}

.tx-ivoffers .offer-type {
	font-style: italic;
}

/* Enhanced visual effects */
.tx-ivoffers .offers a {
	position: relative;
	overflow: hidden;
}

/* Loading state for offers */
.tx-ivoffers .offers.loading {
	opacity: 0.7;
	pointer-events: none;
}

.tx-ivoffers .offers.loading::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	border: 2px solid #f3f3f3;
	border-top: 2px solid #b40000;
	animation: spin 1s linear infinite;
	transform: translate(-50%, -50%);
}

@keyframes spin {
	0% { transform: translate(-50%, -50%) rotate(0deg); }
	100% { transform: translate(-50%, -50%) rotate(360deg); }
}

.tx-ivoffers .offers.offers-sections a span {
	font-size: 0.9em;
	font-weight: 400;
	padding-left: 0;
}

.tx-ivoffers .next-offers-dates {
	box-sizing: border-box;
	border: 1px solid #e9ecef;
	padding: 20px;
	background: #ffffff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.tx-ivoffers .next-offers-dates h3 {
	margin-top: 0;
	color: #2c3e50;
	font-size: 1.2em;
	font-weight: 600;
	margin-bottom: 16px;
}

.tx-ivoffers .next-offers-dates .next-offers-dates-list > div {
	background-image: url('/typo3conf/ext/ivpackage/Resources/Public/Images/Icons/date-default.svg');
	background-position: 0 center;
	background-repeat: no-repeat;
	background-size: auto 18px;
	border-bottom: 1px solid #f1f3f4;
	margin-bottom: 16px;
	padding-bottom: 16px;
	padding-left: 32px;
	line-height: 1.5;
}

.tx-ivoffers .next-offers-dates .next-offers-dates-list > div:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tx-ivoffers .next-offers-dates .next-offers-dates-list > div span {
	color: #3d3d3d;
	font-size: 0.85em;
	font-weight: 500;
}

.tx-ivoffers .inquiry-form {
	margin-top: 30px;
}

.tx-ivoffers .inquiry-form .honeypot {
	display: none;
}

.tx-ivoffers .inquiry-form p.noDisplay {
	margin-bottom: 10px;
	opacity: 0;
	transition: opacity 0.3s ease-in-out 0s;
}

.tx-ivoffers .inquiry-form p.error {
	opacity: 1;
}

.tx-ivoffers .inquiry-form label {
	padding: 0 0 5px 5px;
	color: #2c3e50;
	font-weight: 500;
}

.tx-ivoffers .inquiry-form .submit {
	clear: both;
	text-align: right;
}

.tx-ivoffers .inquiry-form .error,
.tx-ivoffers .inquiry-form input[type="checkbox"].error + label {
	color: #dc3545;
}

.tx-ivoffers .inquiry-form input[type="text"].error,
.tx-ivoffers .inquiry-form textarea.error {
	background-color: #fff5f5;
	border-color: #dc3545;
}

.tx-ivoffers .inquiry-form input[type="checkbox"] {
	margin-right: 0.5rem;
}

.tx-ivoffers .inquiry-form input[type="text"], .tx-ivoffers .inquiry-form textarea {
	background-color: #f4f4f4;
	border-bottom: 1px solid #b40000;
	box-sizing: border-box;
	color: #3d3d3d;
	font-family: 'Abel', sans-serif;
	font-weight: normal;
	height: 40px;
	line-height: 40px;
	margin-bottom: 30px;
	padding: 0 5px;
	transition: all 0.3s ease-in-out 0s;
	width: 100%;
	resize: none;
	-webkit-appearance: none;
}

.tx-ivoffers .inquiry-form input.error {
	background-color: #f3e2e2;
}

.tx-ivoffers .inquiry-form textarea {
	height: 150px;
	line-height: 1.5em;
	margin-bottom: 15px;
	padding: 5px;
}

.tx-ivoffers .inquiry-form .submit input {
	background-color: #b40000;
	cursor: pointer;
	color: #fff;
	font-family: 'Abel',sans-serif;
	font-weight: normal;
	height: 60px;
	line-height: 60px;
	margin-bottom: 0;
	padding: 0;
	text-transform: uppercase;
	transition: all 0.3s ease-in-out 0s;
	width: 300px;
}

.tx-ivoffers .inquiry-form .submit input:hover {
	background-color: #a60000;
}

.tx-ivoffers .inquiry-form .checkbox {
	margin-top: 28px;
}

.tx-ivoffers .inquiry-form .checkbox > input {
	float: left;
	margin: 14px 10px 0 0;
}

.tx-ivoffers .inquiry-form .checkbox > label {
	height: 40px;
	line-height: 40px;
}

.tx-ivoffers .filter-container {
	background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
	padding: 24px 32px;
	margin-bottom: 24px;
	border: 1px solid #e9ecef;
}

.tx-ivoffers .filter-container h3 {
	color: #2c3e50;
	margin-top: 0;
	margin-bottom: 12px;
	font-weight: 600;
}

.tx-ivoffers .filter-container p {
	color: #3d3d3d;
	margin-bottom: 16px;
}

.tx-ivoffers .filter-container .filter-container-filter {
	position: relative;
	display: block;
	height: 70px;
	width: 100%;
}

.tx-ivoffers .filter-container .filter-container-filter > span {
	font-weight: 600;
	left: 40%;
	line-height: 40px;
	position: absolute;
	text-align: center;
	top: 0;
	width: 20%;
	color: #3d3d3d;
}

.tx-ivoffers .filter-container select {
	background: #ffffff;
	border: 1px solid #e9ecef;
	padding: 12px 16px;
	font-size: 0.9em;
	color: #2c3e50;
	transition: all 0.3s ease;
}

.tx-ivoffers .filter-container select:focus {
	border-color: #b40000;
	box-shadow: 0 0 0 3px rgba(180, 0, 0, 0.1);
	outline: none;
}

/* Modern link styling */
.tx-ivoffers .internal-link {
	background-color: #b40000;
	color: #fff;
	display: inline-block;
	height: 60px;
	line-height: 60px;
	padding: 0 20px;
	text-decoration: none;
	text-transform: uppercase;
	transition: all 0.3s ease-in-out 0s;
	font-weight: bold;
	font-size: 1em;
	margin-top: 16px;
}

.tx-ivoffers .internal-link::before {
	display: none;
}

.tx-ivoffers .internal-link:hover {
	background-color: #a60000;
}

.tx-ivoffers .internal-link-back {
	display: inline-block;
	color: #b40000;
	text-decoration: none;
	font-weight: 500;
	margin-bottom: 16px;
	transition: all 0.3s ease;
}

.tx-ivoffers .internal-link-back:hover {
	color: #fff;
}
