.ht-tour-system {
	--ht-section-radius: var(--ht-card-radius, 24px);
	--ht-section-shadow: 0 18px 52px rgba(31, 74, 63, 0.08);
	--ht-section-border: 1px solid var(--ht-color-border, #e5e7eb);
	--ht-soft-gradient: linear-gradient(135deg, #f5f2ee 0%, #faf8f5 46%, #fff 100%);
	color: var(--ht-color-text, #1f2933);
	font-family: var(--ht-font-family, "Source Sans 3", "Segoe UI", sans-serif);
}

.ht-tour-system,
.ht-tour-system * {
	box-sizing: border-box;
}

.ht-tour-system[data-ht-filter-display="compact"] {
	--ht-filter-padding: 14px;
	--ht-filter-gap: 10px;
}

.ht-tour-system[data-ht-filter-display="large"] {
	--ht-filter-padding: 22px;
	--ht-filter-gap: 14px;
}

.ht-tour-system[data-ht-button-hover="none"] {
	--ht-button-hover-transform: 0;
}

.ht-tour-container {
	width: min(100% - 64px, var(--ht-detail-max-width, 1180px));
	margin-inline: auto;
}

.ht-tour-container.ht-narrow {
	width: min(100% - 64px, 860px);
}

.ht-tour-section {
	margin-top: var(--ht-section-spacing, 72px);
}

.ht-section-card,
.ht-tour-section-card {
	margin-top: clamp(28px, 5vw, 56px);
	padding: clamp(24px, 4vw, 48px);
	border: var(--ht-section-border);
	border-radius: var(--ht-section-radius);
	background: var(--ht-soft-gradient);
	box-shadow: var(--ht-section-shadow);
}

.ht-section-card > h2,
.ht-tour-section-card > h2,
.ht-tour-description__content > h2,
.ht-tour-related > h2 {
	margin: 0 0 clamp(18px, 3vw, 28px);
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(30px, 4vw, var(--ht-section-h2-size, 42px));
	font-weight: 500;
	line-height: 1.12;
	text-align: center;
}

.ht-section-kicker {
	margin: 0 0 10px;
	color: var(--ht-color-primary, #2e6f57);
	font-size: 0.86rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.ht-rich-text {
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(1.04rem, 1.4vw, 1.16rem);
	line-height: 1.78;
}

.ht-rich-text > :first-child {
	margin-top: 0;
}

.ht-rich-text > :last-child {
	margin-bottom: 0;
}

.ht-button,
.ht-btn,
.ht-tour-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--ht-button-padding, 13px 22px);
	border: 0;
	border-radius: var(--ht-button-radius, 999px);
	background: var(--ht-color-cta, #e76f51);
	color: #fff;
	font-weight: 800;
	line-height: 1.15;
	text-decoration: none;
	transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.ht-button:hover,
.ht-button:focus,
.ht-btn:hover,
.ht-btn:focus,
.ht-tour-card__button:hover,
.ht-tour-card__button:focus {
	background: var(--ht-color-primary, #2e6f57);
	color: #fff;
	text-decoration: none;
	transform: translateY(var(--ht-button-hover-transform, -2px));
}

.ht-button--small,
.ht-tour-term-row__actions .ht-button,
.ht-tour-term-row__actions .ht-btn {
	min-height: 40px;
	padding: 0 18px;
	font-size: 0.92rem;
	white-space: nowrap;
}

.ht-tour-title {
	max-width: none;
	margin: 0 auto 16px;
	min-height: 220px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	text-align: center;
}

.ht-tour-title h1 {
	margin: 0;
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(32px, 4vw, 56px);
	font-weight: 600;
	line-height: 1.15;
}

.ht-tour-title.ht-tour-section-card {
	margin-top: 0;
}

.ht-tour-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 12px;
}

.ht-tour-tags .ht-tour-card__badge {
	position: static;
	inset: auto;
	display: inline-flex;
	max-width: none;
	box-shadow: none;
	text-decoration: none;
	transition: transform 0.18s ease, background 0.18s ease;
}

.ht-tour-tags a.ht-tour-card__badge {
	cursor: pointer;
}

.ht-tour-tags a.ht-tour-card__badge:hover,
.ht-tour-tags a.ht-tour-card__badge:focus {
	transform: translateY(-1px);
	text-decoration: none;
}

.ht-tour-tags + h1 {
	margin-top: 8px;
}

.ht-tour-top {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	gap: clamp(24px, 4vw, 40px);
	align-items: start;
	width: 100%;
	max-width: 100%;
}

.ht-tour-main-gallery {
	display: grid;
	gap: 14px;
	min-width: 0;
	max-width: 100%;
}

.ht-tour-main-gallery figure,
.ht-tour-gallery figure {
	margin: 0;
}

.ht-tour-main-gallery__featured,
.ht-tour-main-gallery__thumbs figure,
.ht-tour-gallery__grid figure {
	overflow: hidden;
	border-radius: var(--ht-section-radius);
	background: var(--ht-color-light-bg, #f7f5f2);
	box-shadow: 0 12px 32px rgba(31, 74, 63, 0.08);
}

.ht-tour-main-gallery img,
.ht-tour-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.22s ease;
}

.ht-tour-main-gallery__featured img {
	min-height: min(54vw, 520px);
}

.ht-tour-main-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ht-tour-main-gallery__thumbs figure:nth-child(n+5) {
	display: none;
}

.ht-tour-main-gallery__thumbs img {
	aspect-ratio: 4 / 3;
}

.ht-lightbox-link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: zoom-in;
}

.ht-lightbox-link:hover img,
.ht-lightbox-link:focus img {
	transform: scale(1.035);
}

.ht-lightbox-open {
	overflow: hidden;
}

.ht-lightbox-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(18px, 4vw, 48px);
	background: rgba(12, 18, 24, 0.86);
}

.ht-lightbox-modal[hidden] {
	display: none;
}

.ht-lightbox-modal__figure {
	margin: 0;
	max-width: min(1120px, 92vw);
	max-height: 88vh;
	text-align: center;
}

.ht-lightbox-modal__image {
	display: block;
	max-width: 100%;
	max-height: 82vh;
	margin: 0 auto;
	border-radius: 16px;
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.36);
	object-fit: contain;
}

.ht-lightbox-modal__caption {
	margin-top: 12px;
	color: #fff;
	font-size: 15px;
	line-height: 1.4;
}

.ht-lightbox-modal__button {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: #1f2933;
	cursor: pointer;
	font-size: 30px;
	line-height: 1;
	box-shadow: 0 8px 26px rgba(0, 0, 0, 0.22);
}

.ht-lightbox-modal__close {
	color: transparent;
	font-size: 0;
}

.ht-lightbox-modal__close::before,
.ht-lightbox-modal__close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 18px;
	height: 2px;
	border-radius: 999px;
	background: #1f2933;
	transform-origin: center;
}

.ht-lightbox-modal__close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.ht-lightbox-modal__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.ht-lightbox-modal__button:hover,
.ht-lightbox-modal__button:focus {
	background: #fff;
	outline: 2px solid rgba(255, 255, 255, 0.48);
	outline-offset: 3px;
}

.ht-lightbox-modal__close {
	top: 18px;
	right: 18px;
}

.ht-lightbox-modal__prev {
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
}

.ht-lightbox-modal__next {
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
}

.ht-tour-summary-box.ht-tour-info {
	position: sticky;
	top: 24px;
	overflow: hidden;
	min-width: 0;
	max-width: 100%;
	padding: 28px;
	border: var(--ht-section-border);
	border-radius: var(--ht-section-radius);
	background: linear-gradient(145deg, #f5f2ee 0%, #fff 72%);
	box-shadow: var(--ht-section-shadow);
}

.ht-tour-info__grid {
	display: grid;
	gap: 14px;
	margin: 0;
}

.ht-tour-info__item {
	position: relative;
	display: block;
	padding: 14px 14px 14px 74px;
	border: 1px solid rgba(31, 41, 51, 0.06);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.62);
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.ht-tour-info__item::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	background: rgba(39, 104, 140, 0.12);
	color: var(--ht-color-primary, #2f6f93);
	transform: translateY(-50%);
}

.ht-tour-info__item::after {
	content: "";
	position: absolute;
	left: 25px;
	top: 50%;
	width: 24px;
	height: 24px;
	background: currentColor;
	color: var(--ht-color-primary, #2f6f93);
	transform: translateY(-50%);
	-webkit-mask: var(--ht-info-icon) center / contain no-repeat;
	mask: var(--ht-info-icon) center / contain no-repeat;
}

.ht-tour-info__item--duration { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15Zm1 3.5h-2v5.2l4.4 2.7 1-1.7-3.4-2V8Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--price { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M3 6h18v12H3V6Zm2 2v8h14V8H5Zm7 1.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM7 10h2v2H7v-2Zm8 2h2v2h-2v-2Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--term { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2Zm11 8H6v10h12V10ZM6 7v2h12V7H6Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--transport { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 11h12.2l-4.6-4.6L13 5l7 7-7 7-1.4-1.4 4.6-4.6H4v-2Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--accommodation { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 11.3 12 4l9 7.3-1.3 1.5L18 11.4V20H6v-8.6l-1.7 1.4L3 11.3ZM8 18h8v-8.2l-4-3.2-4 3.2V18Zm3-5h2v5h-2v-5Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--food { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v8h2V2h2v8a5 5 0 0 1-4 4.9V22H7v-7.1A5 5 0 0 1 3 10V2h2v8h2V2Zm11 0c2 2 3 4.2 3 6.7 0 2.7-1.2 4.7-3 5.7V22h-2V2h2Z'/%3E%3C/svg%3E"); }
.ht-tour-info__item--location { --ht-info-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E"); }

.ht-tour-info__item:hover,
.ht-tour-info__item:focus-within {
	transform: translateY(-2px);
	border-color: rgba(46, 111, 87, 0.18);
	background: rgba(255, 255, 255, 0.86);
	box-shadow: 0 10px 24px rgba(31, 74, 63, 0.07);
}

.ht-tour-info__item--price,
.ht-tour-info__item--term {
	border-left: 4px solid var(--ht-color-primary, #4f8c23);
	background: rgba(79, 140, 35, 0.07);
}

.ht-tour-info__label {
	margin: 0 0 3px;
	color: #737b74;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
}

.ht-tour-info__value {
	margin: 0;
	color: var(--ht-color-text, #1f2933);
	font-size: 19px;
	font-weight: 650;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.ht-tour-summary-box dd {
	text-transform: lowercase;
}

.ht-tour-summary-box .ht-tour-info__item--location dd {
	text-transform: none;
}

.ht-tour-info__price {
	color: var(--ht-color-primary, #4f8c23);
	font-size: 24px;
	font-weight: 850;
	line-height: 1.15;
	text-transform: none;
}

.ht-tour-info__term {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(79, 140, 35, 0.12);
	color: var(--ht-color-primary, #4f8c23);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.2;
}

.ht-tour-info__footer {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid rgba(31, 41, 51, 0.08);
	text-align: center;
}

.ht-tour-summary-box__cta {
	width: auto;
	max-width: 100%;
	min-height: 48px;
	border-radius: 14px;
}

.ht-tour-summary-box__note,
.ht-tour-summary-box__organizer {
	width: 100%;
	margin: 12px 0 0;
	color: #6b7280;
	font-size: 13px;
	line-height: 1.5;
	text-align: center;
}

.ht-tour-ai-summary {
	background: #ebe3db;
}

.ht-tour-ai-summary h2 {
	margin-inline: auto;
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(30px, 4vw, var(--ht-section-h2-size, 42px));
	font-weight: 500;
	line-height: 1.12;
	text-align: center;
}

.ht-tour-ai-summary__content {
	max-width: 1120px;
	margin-inline: auto;
}

.ht-tour-check-list,
.ht-tour-cross-list,
.ht-tour-ai-summary__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px clamp(28px, 6vw, 72px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ht-tour-check-list li,
.ht-tour-cross-list li,
.ht-tour-ai-summary__list li {
	position: relative;
	padding-left: 44px;
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(1rem, 1.5vw, 1.18rem);
	line-height: 1.45;
}

.ht-tour-check-list li::before,
.ht-tour-cross-list li::before,
.ht-tour-ai-summary__list li::before {
	position: absolute;
	left: 0;
	top: 0.05em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #2f6f93;
	color: #fff;
	content: "\2713";
	font-size: 18px;
	font-weight: 800;
}

.ht-tour-cross-list li::before {
	background: #c96754;
	content: "×";
}

.ht-tour-terms-strip {
	background: var(--ht-soft-gradient);
}

.ht-tour-terms-table-wrap {
	width: 100%;
	overflow-x: auto;
	overflow-y: visible;
	padding-bottom: 6px;
}

.ht-tour-terms-table,
.ht-table {
	width: 100%;
	min-width: 920px;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 10px;
	background: #fff;
	table-layout: fixed;
	overflow: hidden;
}

.ht-table__col--date { width: 28%; }
.ht-table__col--duration { width: 16%; }
.ht-table__col--price { width: 16%; }
.ht-table__col--transport { width: 28%; }
.ht-table__col--action { width: 12%; }

.ht-tour-terms-table th,
.ht-tour-terms-table td,
.ht-table th,
.ht-table td {
	padding: 13px 12px;
	border-bottom: 1px solid rgba(31, 41, 51, 0.08);
	text-align: left;
	vertical-align: middle;
}

.ht-tour-terms-table th,
.ht-table th {
	background: linear-gradient(135deg, var(--ht-color-primary, #2f6f93), #27688c);
	color: #6b7280;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.25;
}

.ht-tour-terms-table thead th,
.ht-table thead th {
	border-color: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.ht-tour-terms-table tbody td,
.ht-table tbody td {
	background: #fff;
}

.ht-tour-terms-table thead th:first-child,
.ht-table thead th:first-child {
	border-top-left-radius: 10px;
}

.ht-tour-terms-table thead th:last-child,
.ht-table thead th:last-child {
	border-top-right-radius: 10px;
}

.ht-tour-terms-table tbody tr:last-child td:first-child,
.ht-table tbody tr:last-child td:first-child {
	border-bottom-left-radius: 10px;
}

.ht-tour-terms-table tbody tr:last-child td:last-child,
.ht-table tbody tr:last-child td:last-child {
	border-bottom-right-radius: 10px;
}

.ht-tour-term-cell--date,
.ht-tour-term-cell--duration,
.ht-tour-term-cell--price,
.ht-tour-term-row__actions {
	white-space: nowrap;
}

.ht-tour-term-cell--price {
	color: var(--ht-color-primary, #2e6f57);
}

.ht-tour-term-cell--transport,
.ht-tour-departures p {
	font-weight: 400;
	white-space: normal;
}

.ht-tour-departures summary {
	margin-top: 4px;
	color: var(--ht-color-cta, #e76f51);
	cursor: pointer;
	font-size: 14px;
	font-weight: 800;
}

.ht-tour-departures p {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.45;
}

.ht-tour-term-row__actions {
	text-align: center;
}

.ht-tour-no-terms {
	max-width: 820px;
	margin-inline: auto;
	text-align: center;
}

.ht-tour-important-info__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ht-info-card,
.ht-tour-info-box {
	position: relative;
	display: block;
	min-width: 0;
	padding: 24px;
	border: 1px solid rgba(31, 41, 51, 0.07);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.ht-info-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

.ht-info-head h3 {
	margin: 0 !important;
	line-height: 28px;
	font-weight: 800;
}

.ht-info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	border-radius: 8px;
	background: rgba(39, 104, 140, 0.12);
	color: var(--ht-color-primary, #4f8c23);
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
}

.ht-tour-info-box > h3,
.ht-info-card > h3 {
	margin: 0 0 14px;
	font-size: 1.22rem;
	font-weight: 800;
	line-height: 1.25;
}

.ht-simple-list {
	margin: 0;
	padding-left: 18px;
}

.ht-simple-list li {
	margin-bottom: 6px;
}

.ht-simple-list li:last-child {
	margin-bottom: 0;
}

.ht-tour-description {
	position: relative;
	overflow: hidden;
	background: #f5f2ee;
}

.ht-tour-description--with-image {
	background:
		linear-gradient(
			to right,
			#f5f2ee 0%,
			#f5f2ee 45%,
			rgba(245, 242, 238, 0.85) 60%,
			rgba(245, 242, 238, 0.4) 75%,
			rgba(245, 242, 238, 0) 90%
		),
		var(--ht-description-bg-image) right center / cover no-repeat;
}

.ht-tour-description__content {
	position: relative;
	z-index: 1;
	max-width: 820px;
}

.ht-tour-description .ht-rich-text {
	max-width: 820px;
}

.ht-tour-program {
	background: linear-gradient(180deg, #fff, var(--ht-color-light-bg, #f7f5f2));
}

.ht-tour-program__list,
.ht-itinerary {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-left: 72px;
}

.ht-itinerary::before {
	position: absolute;
	left: 28px;
	top: 18px;
	bottom: 18px;
	width: 3px;
	border-radius: 999px;
	background: linear-gradient(to bottom, var(--ht-color-primary, #2e6f57), rgba(39, 104, 140, 0.35), var(--ht-color-cta, #e76f51));
	content: "";
}

.ht-tour-program-day,
.ht-itinerary-item {
	position: relative;
	display: block;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.ht-itinerary-line {
	display: none;
}

.ht-itinerary-dot,
.ht-itinerary-item::before {
	position: absolute;
	left: -51px;
	top: 28px;
	width: 16px;
	height: 16px;
	border: 4px solid #fff;
	border-radius: 999px;
	background: var(--ht-color-primary, #2e6f57);
	box-shadow: 0 0 0 2px rgba(39, 104, 140, 0.18);
	content: "";
}

.ht-itinerary-dot {
	z-index: 1;
}

.ht-itinerary-item::before {
	display: none;
}

.ht-itinerary-day,
.ht-tour-program-day__label {
	position: absolute;
	left: -72px;
	top: 54px;
	width: 56px;
	padding: 5px 8px;
	border: 1px solid rgba(39, 104, 140, 0.16);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 8px 20px rgba(31, 41, 51, 0.08);
	color: var(--ht-color-primary, #2e6f57);
	font-size: 14px;
	font-weight: 850;
	line-height: 1.25;
	text-align: center;
}

.ht-itinerary-content,
.ht-tour-program-day__content {
	padding: 22px 28px;
	border: 1px solid rgba(31, 41, 51, 0.08);
	border-radius: var(--ht-section-radius, 18px);
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 41, 51, 0.05);
}

.ht-tour-program-day h3,
.ht-itinerary-content h3 {
	margin: 0 0 10px;
	font-size: 1.28rem;
	font-weight: 800;
	line-height: 1.28;
}

.ht-tour-gallery {
	overflow: hidden;
}

.ht-tour-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ht-tour-gallery__grid img {
	aspect-ratio: 4 / 3;
}

.ht-tour-related {
	margin-top: 48px;
}

.ht-tour-related > h2 {
	margin-bottom: 24px;
}


.ht-fullwidth-section {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.ht-fullwidth-section__inner {
	width: min(100% - 64px, var(--ht-detail-max-width, 1180px));
	margin-inline: auto;
}

.ht-legal {
	margin-top: 56px;
	padding: 24px 0;
	border-top: 1px solid var(--ht-color-border, #e5e7eb);
	color: #667085;
	font-size: 0.95rem;
	line-height: 1.55;
	text-align: center;
}

.ht-legal p {
	width: 100%;
	margin: 0;
}

.ht-catalog-page {
	padding: clamp(32px, 6vw, 72px) 0;
}

.ht-catalog-hero {
	text-align: center;
}

/* odstraneni velke mezery pod headerem jen na landing strankach pluginu */
.ht-tour-system.ht-tax-landing {
	margin-top: 0 !important;
	padding-top: 8px;
}

.ht-tour-system.ht-tax-landing main,
.ht-tour-system.ht-tax-landing .site-main {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.ht-tax-landing__hero {
	margin-top: 8px !important;
	padding-top: 32px;
	text-align: center;
}

.ht-tax-landing__eyebrow {
	margin: 0 0 12px;
	color: var(--ht-color-primary, #2f6f93);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ht-tax-landing__title {
	max-width: 980px;
	margin: 0 auto;
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(36px, 5.4vw, 64px);
	font-weight: 700;
	line-height: 1.12;
	overflow-wrap: break-word;
	text-wrap: balance;
}

.ht-tax-landing__description {
	max-width: 820px;
	margin: clamp(22px, 3vw, 34px) auto 0;
	text-align: left;
}

.ht-tax-landing__tours h2 {
	margin: 0 0 clamp(22px, 3vw, 34px);
	color: var(--ht-color-text, #1f2933);
	font-size: clamp(30px, 4vw, var(--ht-section-h2-size, 42px));
	font-weight: 500;
	line-height: 1.12;
	text-align: center;
}

.ht-landing-highlights {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.ht-landing-highlights li,
.ht-feature-card {
	padding: 8px 13px;
	border-radius: 999px;
	background: var(--ht-color-light-bg, #f7f5f2);
	color: var(--ht-color-primary, #2e6f57);
	font-weight: 800;
	text-decoration: none;
}

.ht-feature-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ht-empty {
	text-align: center;
}

@media (max-width: 1024px) {
	.ht-tour-top,
	.ht-tour-important-info__grid {
		grid-template-columns: 1fr;
	}

	.ht-tour-summary-box.ht-tour-info {
		position: static;
	}

	.ht-tour-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}


@media (max-width: 700px) {
	.ht-tour-container,
	.ht-tour-container.ht-narrow,
	.ht-fullwidth-section__inner {
		width: min(100% - 36px, var(--ht-detail-max-width, 1180px));
	}

	.ht-section-card,
	.ht-tour-section-card,
	.ht-tour-summary-box.ht-tour-info {
		padding: 20px;
		border-radius: 20px;
	}

	.ht-tour-main-gallery__thumbs,
	.ht-tour-gallery__grid,
	.ht-tour-check-list,
	.ht-tour-cross-list,
	.ht-tour-ai-summary__list {
		grid-template-columns: 1fr;
	}

	.ht-tour-program-day,
	.ht-itinerary-item {
		display: block;
	}

	.ht-itinerary {
		padding-left: 46px;
	}

	.ht-itinerary::before {
		left: 18px;
	}

	.ht-itinerary-dot,
	.ht-itinerary-item::before {
		left: -35px;
		top: 24px;
		width: 14px;
		height: 14px;
	}

	.ht-itinerary-day,
	.ht-tour-program-day__label {
		position: static;
		width: auto;
		margin: 0 0 8px;
		display: inline-flex;
		text-align: left;
	}

	.ht-itinerary-content,
	.ht-tour-program-day__content {
		padding: 18px;
	}

	.ht-tour-description--with-image {
		background:
			linear-gradient(
				to right,
				rgba(245, 242, 238, 0.96) 0%,
				rgba(245, 242, 238, 0.92) 55%,
				rgba(245, 242, 238, 0.72) 100%
			),
			var(--ht-description-bg-image) center / cover no-repeat;
	}

	.ht-tour-terms-table,
	.ht-table {
		min-width: 840px;
	}
}

/*
 * Frontend recovery baseline.
 * Keeps the detail readable when theme/WooCommerce styles override plugin layout.
 */
.ht-tour-detail.ht-tour-system {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 12px 0 clamp(24px, 4vw, 48px);
	color: var(--ht-color-text, #1f2933);
	font-family: var(--ht-font-family, "Source Sans 3", "Segoe UI", sans-serif);
}

.ht-tour-detail .ht-tour-container {
	width: min(100% - 64px, var(--ht-detail-max-width, 1180px));
	max-width: var(--ht-detail-max-width, 1180px);
	margin-inline: auto;
}

.ht-tour-detail .ht-tour-title {
	max-width: none;
	margin: 0 auto 16px;
	min-height: 220px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	text-align: center;
}

.ht-tour-detail .ht-tour-title h1 {
	margin: 0;
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1.15;
}

.ht-tour-detail .ht-tour-title.ht-tour-section-card {
	margin-top: 0;
	margin-bottom: 16px;
}

.ht-tour-detail .ht-tour-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 12px;
}

.ht-tour-detail .ht-tour-tags .ht-tour-card__badge {
	position: static;
	inset: auto;
	display: inline-flex;
	max-width: none;
	box-shadow: none;
	text-decoration: none;
}

.ht-tour-detail .ht-tour-tags + h1 {
	margin-top: 8px;
}

.ht-tour-detail .ht-tour-top {
	display: grid !important;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
	gap: clamp(24px, 4vw, 40px);
	align-items: stretch;
	width: 100%;
	max-width: 100%;
}

.ht-tour-detail .ht-tour-main-gallery,
.ht-tour-detail .ht-tour-summary-box {
	min-width: 0;
	max-width: 100%;
}

.ht-tour-detail .ht-tour-main-gallery {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	gap: 14px;
	height: 100%;
}

.ht-tour-detail .ht-tour-main-gallery figure,
.ht-tour-detail .ht-tour-gallery figure {
	margin: 0;
}

.ht-tour-detail .ht-tour-main-gallery__featured,
.ht-tour-detail .ht-tour-main-gallery__thumbs figure,
.ht-tour-detail .ht-tour-gallery__grid figure {
	overflow: hidden;
	border-radius: var(--ht-section-radius, 24px);
	background: var(--ht-color-light-bg, #f7f5f2);
}

.ht-tour-detail .ht-tour-main-gallery img,
.ht-tour-detail .ht-tour-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: cover;
}

.ht-tour-detail .ht-tour-main-gallery__featured img {
	min-height: clamp(420px, 34vw, 520px);
}

.ht-tour-detail .ht-tour-main-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.ht-tour-detail .ht-tour-main-gallery__thumbs figure:nth-child(n+4) {
	display: none;
}

.ht-tour-detail .ht-tour-main-gallery__thumbs img {
	aspect-ratio: 3 / 4;
}

.ht-tour-detail .ht-tour-gallery__grid img {
	aspect-ratio: 16 / 9;
}

.ht-tour-detail .ht-tour-section-card,
.ht-tour-detail .ht-tour-summary-box.ht-tour-info {
	padding: clamp(24px, 4vw, 48px);
	border: var(--ht-section-border, 1px solid var(--ht-color-border, #e5e7eb));
	border-radius: var(--ht-section-radius, 24px);
	background: var(--ht-soft-gradient, linear-gradient(135deg, #f5f2ee 0%, #faf8f5 46%, #fff 100%));
	box-shadow: var(--ht-section-shadow, 0 18px 52px rgba(31, 74, 63, 0.08));
}

.ht-hero-bg--mountains {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-mountains.png"));
}

.ht-hero-bg--nature {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-nature.png"));
}

.ht-hero-bg--landmarks {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-landmarks.png"));
}

.ht-hero-bg--cities {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-cities.png"));
}

.ht-hero-bg--sea {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-sea.png"));
}

.ht-hero-bg--thermal {
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), var(--ht-hero-bg-image, url("/?ht_importer_asset=assets/img/hero-bg-nature.png"));
}

.ht-tour-detail .ht-tour-summary-box.ht-tour-info {
	position: sticky;
	top: 24px;
	overflow: hidden;
	height: 100%;
	padding: clamp(18px, 2.6vw, 32px);
}

.ht-tour-detail .ht-tour-info__grid {
	display: grid;
	gap: 12px;
	margin: 0;
}

.ht-tour-detail .ht-tour-info__item {
	position: relative;
	display: block;
	min-width: 0;
	padding: 12px 14px 12px 74px;
	border: 1px solid rgba(31, 41, 51, 0.06);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.72);
}

.ht-tour-detail .ht-tour-info__label {
	margin: 0 0 3px;
	color: #737b74;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
}

.ht-tour-detail .ht-tour-info__value {
	margin: 0;
	color: var(--ht-color-text, #1f2933);
	font-size: 19px;
	font-weight: 650;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.ht-tour-detail .ht-tour-summary-box dd {
	text-transform: lowercase;
}

.ht-tour-detail .ht-tour-summary-box .ht-tour-info__item--location dd {
	text-transform: none;
}

.ht-tour-detail .ht-tour-info__price {
	font-size: 24px;
	text-transform: none;
}

.ht-tour-detail .ht-tour-info__term {
	font-size: 17px;
}

.ht-tour-detail .ht-tour-ai-summary,
.ht-tour-detail .ht-tour-important-info,
.ht-tour-detail .ht-tour-description,
.ht-tour-detail .ht-tour-program,
.ht-tour-detail .ht-tour-gallery,
.ht-tour-detail .ht-tour-related,
.ht-tour-detail .ht-tour-terms-strip {
	margin-top: clamp(32px, 5vw, 64px);
}

.ht-tour-detail .ht-tour-important-info__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.ht-tour-detail .ht-itinerary {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-left: 72px;
}

.ht-tour-detail .ht-itinerary::before {
	position: absolute;
	left: 28px;
	top: 18px;
	bottom: 18px;
	width: 3px;
	border-radius: 999px;
	background: linear-gradient(to bottom, var(--ht-color-primary, #2e6f57), rgba(39, 104, 140, 0.35), var(--ht-color-cta, #e76f51));
	content: "";
}

.ht-tour-detail .ht-itinerary-item {
	position: relative;
	display: block;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.ht-tour-detail .ht-itinerary-line {
	display: none;
}

.ht-tour-detail .ht-itinerary-dot {
	position: absolute;
	left: -51px;
	top: 28px;
	z-index: 1;
	width: 16px;
	height: 16px;
	border: 4px solid #fff;
	border-radius: 999px;
	background: var(--ht-color-primary, #2e6f57);
	box-shadow: 0 0 0 2px rgba(39, 104, 140, 0.18);
}

.ht-tour-detail .ht-itinerary-day {
	position: absolute;
	left: -72px;
	top: 54px;
	width: 56px;
	padding: 5px 8px;
	border: 1px solid rgba(39, 104, 140, 0.16);
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 8px 20px rgba(31, 41, 51, 0.08);
	font-size: 14px;
	line-height: 1.25;
	text-align: center;
}

.ht-tour-detail .ht-itinerary-content {
	padding: 22px 28px;
	border: 1px solid rgba(31, 41, 51, 0.08);
	border-radius: var(--ht-section-radius, 18px);
	background: #fff;
	box-shadow: 0 8px 24px rgba(31, 41, 51, 0.05);
}

.ht-tour-detail .ht-tour-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ht-tour-detail .ht-tour-terms-table-wrap {
	width: 100%;
	overflow-x: auto;
}

.ht-tour-detail .ht-tour-terms-table {
	width: 100%;
	min-width: 920px;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 10px;
	background: #fff;
	table-layout: fixed;
	overflow: hidden;
}

.ht-tour-detail .ht-tour-terms-table th,
.ht-tour-detail .ht-tour-terms-table td {
	padding: 13px 12px;
	border-bottom: 1px solid rgba(31, 41, 51, 0.08);
	text-align: left;
	vertical-align: middle;
}

.ht-tour-detail .ht-tour-terms-table thead th {
	background: linear-gradient(135deg, var(--ht-color-primary, #2f6f93), #27688c);
	border-color: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.ht-tour-detail .ht-tour-terms-table tbody td {
	background: #fff;
}

.ht-tour-detail .ht-tour-terms-table thead th:first-child {
	border-top-left-radius: 10px;
}

.ht-tour-detail .ht-tour-terms-table thead th:last-child {
	border-top-right-radius: 10px;
}

.ht-tour-detail .ht-tour-terms-table tbody tr:last-child td:first-child {
	border-bottom-left-radius: 10px;
}

.ht-tour-detail .ht-tour-terms-table tbody tr:last-child td:last-child {
	border-bottom-right-radius: 10px;
}

.ht-tour-detail .ht-tour-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--ht-grid-desktop-columns, 3), minmax(0, 1fr)) !important;
	gap: var(--ht-grid-gap, 28px) !important;
	width: 100%;
}

.ht-tour-detail .ht-tour-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 100%;
	overflow: hidden;
	border: 1px solid var(--ht-color-border, #e5e7eb);
	border-radius: var(--ht-card-radius, 22px);
	background: #fff;
	box-shadow: var(--ht-card-shadow, 0 18px 52px rgba(31, 74, 63, 0.12));
}

@media (max-width: 1024px) {
	.ht-tour-detail .ht-tour-top,
	.ht-tour-detail .ht-tour-important-info__grid {
		grid-template-columns: 1fr;
	}

	.ht-tour-detail .ht-tour-summary-box.ht-tour-info {
		position: static;
	}

	.ht-tour-detail .ht-tour-grid,
	.ht-tour-detail .ht-tour-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 700px) {
	.ht-tour-detail .ht-tour-container {
		width: min(100% - 36px, var(--ht-detail-max-width, 1180px));
	}

	.ht-tour-detail .ht-tour-section-card,
	.ht-tour-detail .ht-tour-summary-box.ht-tour-info {
		padding: 20px;
		border-radius: 20px;
	}

	.ht-tour-detail .ht-tour-main-gallery__thumbs,
	.ht-tour-detail .ht-tour-grid,
	.ht-tour-detail .ht-tour-gallery__grid {
		grid-template-columns: 1fr !important;
	}

	.ht-tour-detail .ht-itinerary-item {
		display: block;
	}

	.ht-tour-detail .ht-itinerary {
		padding-left: 46px;
	}

	.ht-tour-detail .ht-itinerary::before {
		left: 18px;
	}

	.ht-tour-detail .ht-itinerary-dot {
		left: -35px;
		top: 24px;
		width: 14px;
		height: 14px;
	}

	.ht-tour-detail .ht-itinerary-day {
		position: static;
		width: auto;
		margin: 0 0 8px;
		display: inline-flex;
		text-align: left;
	}

	.ht-tour-detail .ht-itinerary-content {
		padding: 18px;
	}
}

.ht-tour-detail .ht-tour-description {
	overflow: hidden;
	background: #f5f2ee;
}

.ht-tour-detail .ht-tour-description.ht-tour-description--with-image {
	background:
		linear-gradient(
			to right,
			#f5f2ee 0%,
			#f5f2ee 48%,
			rgba(245, 242, 238, 0.98) 62%,
			rgba(245, 242, 238, 0.92) 76%,
			rgba(245, 242, 238, 0.78) 90%,
			rgba(245, 242, 238, 0.58) 100%
		),
		var(--ht-description-bg-image) right center / 58% 100% no-repeat,
		#f5f2ee;
}

.ht-tour-detail .ht-tour-description__content {
	position: relative;
	z-index: 1;
	max-width: 820px;
}

@media (max-width: 700px) {
	.ht-tour-detail .ht-tour-description.ht-tour-description--with-image {
		background:
			linear-gradient(
				to bottom,
				rgba(245, 242, 238, 0.97) 0%,
				rgba(245, 242, 238, 0.92) 58%,
				rgba(245, 242, 238, 0.84) 100%
			),
			var(--ht-description-bg-image) center / cover no-repeat,
			#f5f2ee;
	}
}
