.single-tour {
    padding-top: 92rem;
    background: var(--dt-white);
}

.single-tour-product {
    margin: 0;
}

.single-tour-product__primary {
    width: min(var(--dt-container), calc(100% - 2 * var(--dt-pad)));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(380rem, 0.74fr);
    gap: 72rem;
    align-items: start;
    padding: 52rem 0 100rem;
}

.single-tour-product__gallery {
    min-width: 0;
}

.single-tour-product__gallery .woocommerce-product-gallery {
    float: none !important;
    width: 100%;
    margin: 0 !important;
}

.single-tour-product__gallery .woocommerce-product-gallery__wrapper {
    margin: 0;
}

.single-tour-product__gallery .woocommerce-product-gallery__image a {
    display: block;
}

.single-tour-product__gallery .woocommerce-product-gallery__image img,
.single-tour-product__gallery .woocommerce-product-gallery__image--placeholder img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--dt-radius);
    box-shadow: var(--dt-shadow);
}

.single-tour-product__gallery .woocommerce-product-gallery__trigger {
    top: 18rem;
    right: 18rem;
    z-index: 4;
}

.single-tour-product__gallery .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12rem;
    margin: 16rem 0 0 !important;
    padding: 0;
}

.single-tour-product__gallery .flex-control-thumbs li {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
}

.single-tour-product__gallery .flex-control-thumbs img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    border: 2rem solid transparent;
    border-radius: var(--dt-radius-sm);
    object-fit: cover;
    opacity: 0.65;
}

.single-tour-product__gallery .flex-control-thumbs img.flex-active {
    border-color: var(--dt-accent);
    opacity: 1;
}

.single-tour-product__summary.summary {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 6rem 0 0;
}

.single-tour-product__summary .product_title {
    margin: 0 0 24rem;
    font-size: 56rem;
    line-height: 1.08;
}

.single-tour-product__summary .price {
    margin: 0 0 26rem;
    color: var(--dt-accent);
    font-size: 30rem;
    font-weight: 900;
}

.single-tour-product__summary .woocommerce-product-details__short-description {
    margin-bottom: 28rem;
    color: var(--dt-muted);
    font-size: 19rem;
    line-height: 1.65;
}

.single-tour-product__summary form.cart {
    display: flex;
    flex-wrap: wrap;
    gap: 14rem;
    align-items: end;
    margin: 30rem 0;
    padding: 28rem 0;
    border-top: 1rem solid var(--dt-line);
    border-bottom: 1rem solid var(--dt-line);
}

.single-tour-product__summary form.cart .dts-date-field,
.single-tour-product__summary form.cart .variations {
    flex-basis: 100%;
}

.single-tour-product__summary form.cart .quantity .qty {
    width: 82rem;
    min-height: 52rem;
}

.single-tour-product__summary form.cart .single_add_to_cart_button {
    min-height: 52rem;
    padding: 14rem 28rem;
    border: 0;
    border-radius: var(--dt-radius-sm);
    background: var(--dt-accent);
    color: var(--dt-white);
    font-weight: 800;
}

.single-tour-product__summary .product_meta {
    display: grid;
    gap: 8rem;
    color: var(--dt-muted);
    font-size: 15rem;
}

.single-tour-product__summary .product_meta a {
    color: var(--dt-accent);
}

.single-tour-content {
    padding: 96rem var(--dt-pad);
    border-top: 1rem solid var(--dt-line);
    background: var(--dt-white);
}

.single-tour-content__inner {
    width: min(1120rem, 100%);
    margin: 0 auto;
}

.single-tour-content__inner > h2 {
    margin: 0 0 36rem;
    font-size: 46rem;
    line-height: 1.15;
}

.single-tour-content__body {
    color: var(--dt-ink);
    font-size: 19rem;
    line-height: 1.75;
}

.single-tour-content__body > :first-child {
    margin-top: 0;
}

.single-tour-content__body > :last-child {
    margin-bottom: 0;
}

.single-tour-content__body h2 {
    margin: 32rem 0 14rem;
    font-size: 32rem;
    line-height: 1.25;
}

.single-tour-content__body h3,
.single-tour-content__body h4 {
    margin: 24rem 0 10rem;
    font-size: 22rem;
    line-height: 1.3;
}

.single-tour-content__body h4 {
    font-size: 19rem;
}

.single-tour-content__body p,
.single-tour-content__body ul,
.single-tour-content__body ol,
.single-tour-content__body blockquote,
.single-tour-content__body figure,
.single-tour-content__body .wp-block-table {
    margin-top: 0;
    margin-bottom: 4rem;
}

.single-tour-content__body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--dt-radius-sm);
}

.single-tour-content__body .wp-block-table {
    overflow-x: auto;
}

.single-tour-product > .related,
.single-tour-product > .up-sells {
    width: min(var(--dt-container), calc(100% - 2 * var(--dt-pad)));
    margin: 96rem auto;
}

.single-tour-product > .related > h2,
.single-tour-product > .up-sells > h2 {
    margin-bottom: 34rem;
    font-size: 42rem;
}

@media (max-width: 1024px) {
    .single-tour-product__primary {
        grid-template-columns: 1fr;
        gap: 46rem;
    }

    .single-tour-product__summary .product_title {
        font-size: 48rem;
    }
}

@media (max-width: 600px) {
    .single-tour {
        padding-top: 74rem;
    }

    .single-tour-product__primary {
        width: min(var(--dt-container), calc(100% - 2 * var(--dt-pad)));
        padding: 36rem 0 72rem;
    }

    .single-tour-product__gallery .flex-control-thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .single-tour-product__summary .product_title {
        font-size: 40rem;
    }

    .single-tour-content {
        padding-top: 72rem;
        padding-bottom: 72rem;
    }

    .single-tour-content__inner > h2 {
        font-size: 38rem;
    }
}

/* Custom single-tour composition. */
.single-tour {
    padding: 118rem var(--dt-pad) 110rem;
    background: #edf5fb;
}
.single-tour-product {
    width: min(1500rem, 100%);
    margin: 0 auto;
    padding: 28rem;
    background: var(--dt-white);
}
.single-tour-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250rem;
    gap: 12rem;
    min-height: 590rem;
}
.single-tour-hero--single .single-tour-hero__main {
    grid-column: 1 / -1;
}
.single-tour-hero__main,
.single-tour-hero__slides,
.single-tour-hero__slide {
    position: relative;
    min-width: 0;
    min-height: 0;
    height: 100%;
}
.single-tour-hero__main {
    overflow: hidden;
    border-radius: var(--dt-radius);
    background: var(--dt-ink);
}
.single-tour-hero__slide {
    position: absolute;
    inset: 0;
    margin: 0;
}
.single-tour-hero__slide[hidden] { display: none; }
.single-tour-hero__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.single-tour-hero__shade {
    position: absolute;
    inset: 40% 0 0;
    background: linear-gradient(180deg, rgba(9, 16, 20, 0), rgba(9, 16, 20, 0.92));
    pointer-events: none;
}
.single-tour-hero h1 {
    position: absolute;
    left: 34rem;
    right: 34rem;
    bottom: 34rem;
    z-index: 2;
    max-width: 950rem;
    color: var(--dt-white);
    font-size: 48rem;
    line-height: 1.1;
}
.single-tour-hero__arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 44rem;
    height: 44rem;
    padding: 0;
    transform: translateY(-50%);
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: var(--dt-ink);
    font-size: 34rem;
    line-height: 1;
    cursor: pointer;
}
.single-tour-hero__arrow--prev { left: 22rem; }
.single-tour-hero__arrow--next { right: 22rem; }
.single-tour-hero__thumbs {
    display: grid;
    grid-auto-rows: minmax(130rem, 1fr);
    gap: 12rem;
    min-height: 0;
    max-height: 590rem;
    overflow-y: auto;
}
.single-tour-hero__thumb {
    min-height: 0;
    padding: 0;
    overflow: hidden;
    border: 2rem solid transparent;
    border-radius: var(--dt-radius);
    background: #e6ecef;
    cursor: pointer;
}
.single-tour-hero__thumb.is-active { border-color: var(--dt-accent); }
.single-tour-hero__thumb img { width: 100%; height: 100%; object-fit: cover; }
.single-tour-characteristics {
    width: 100%;
    margin: 30rem 0 42rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1rem solid var(--dt-line);
    border-radius: var(--dt-radius);
    background: #f7f9fc;
}
.single-tour-characteristic {
    display: flex;
    align-items: center;
    gap: 14rem;
    min-height: 88rem;
    padding: 18rem 24rem;
    border-right: 1rem solid var(--dt-line);
}
.single-tour-characteristic:last-child { border-right: 0; }
.single-tour-characteristic__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 38rem;
    width: 38rem;
    height: 38rem;
    border: 1rem solid var(--dt-line);
    border-radius: var(--dt-radius-sm);
    background: var(--dt-white);
    color: var(--dt-accent);
}
.single-tour-characteristic__icon svg { width: 19rem; height: 19rem; }
.single-tour-characteristic small,
.single-tour-characteristic strong { display: block; }
.single-tour-characteristic small {
    color: var(--dt-muted);
    font-size: 12rem;
    font-weight: 800;
    text-transform: uppercase;
}
.single-tour-characteristic strong { margin-top: 3rem; font-size: 17rem; }
.single-tour-characteristic__content { min-width: 0; }
.single-tour-characteristic__route {
    display: flex !important;
    flex-wrap: wrap;
    gap: 5rem 14rem;
}
.single-tour-characteristic__route a {
    color: var(--dt-text);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--dt-accent) 45%, transparent);
    text-underline-offset: 3rem;
}
.single-tour-characteristic__route a:hover,
.single-tour-characteristic__route a:focus-visible { color: var(--dt-accent); }
.single-tour-characteristic--route {
    display: grid;
    grid-template-columns: 38rem minmax(0, 1fr) auto;
}
.single-tour-route-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10rem;
    min-height: 42rem;
    padding: 8rem 14rem;
    border: 1rem solid var(--dt-accent);
    border-radius: var(--dt-radius-sm);
    background: var(--dt-white);
    color: var(--dt-accent);
    font: inherit;
    font-size: 14rem;
    font-weight: 800;
    cursor: pointer;
}
.single-tour-route-toggle::after {
    width: 8rem;
    height: 8rem;
    border-right: 2rem solid currentColor;
    border-bottom: 2rem solid currentColor;
    content: '';
    transform: translateY(-2rem) rotate(45deg);
    transition: transform 180ms ease;
}
.single-tour-route-toggle[aria-expanded='true']::after { transform: translateY(2rem) rotate(225deg); }
.single-tour-route-toggle:hover,
.single-tour-route-toggle:focus-visible { background: var(--dt-accent); color: var(--dt-white); }
.single-tour-route-toggle:focus-visible { outline: 2rem solid var(--dt-accent); outline-offset: 3rem; }
.single-tour-characteristics.is-route-open { margin-bottom: 10rem; }
.single-tour-route-panel {
    margin: 0 0 42rem;
    padding: 20rem 24rem;
    border: 1rem solid var(--dt-line);
    border-radius: var(--dt-radius);
    background: #f7f9fc;
}
.single-tour-route-panel[hidden] { display: none; }
.single-tour-route-panel__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8rem 18rem;
}
.single-tour-route-panel__links a {
    color: var(--dt-text);
    font-size: 15rem;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--dt-accent) 45%, transparent);
    text-underline-offset: 3rem;
}
.single-tour-route-panel__links a:hover,
.single-tour-route-panel__links a:focus-visible { color: var(--dt-accent); }
.single-tour-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420rem;
    gap: 46rem;
    align-items: start;
}
.single-tour-content {
    padding: 4rem 0 70rem;
    border: 0;
}
.single-tour-content > h2 {
    margin-bottom: 26rem;
    font-size: 34rem;
}
.single-tour-content__body {
    color: #374540;
    font-size: 17rem;
    line-height: 1.65;
}
.single-tour-sidebar {
    position: sticky;
    top: 104rem;
    align-self: start;
    display: grid;
    gap: 18rem;
    height: max-content;
}
.single-tour-booking,
.single-tour-question {
    padding: 28rem;
    border: 1rem solid var(--dt-line);
    border-radius: var(--dt-radius);
    background: var(--dt-white);
}
.single-tour-booking h2,
.single-tour-question h2 {
    margin: 0 0 10rem;
    font-size: 24rem;
}
.single-tour-booking__hint,
.single-tour-question__text {
    color: var(--dt-muted);
    font-size: 15rem;
}
.single-tour-booking__price .price {
    display: block;
    margin: 22rem 0;
    color: var(--dt-accent);
    font-size: 28rem;
    font-weight: 900;
}
.single-tour-booking form.cart { margin: 0; }
.single-tour-booking form.cart .dts-date-field,
.single-tour-booking form.cart .variations { width: 100%; margin-bottom: 16rem; }
.single-tour-booking form.cart select,
.single-tour-booking form.cart input {
    width: 100%;
    min-height: 50rem;
    border: 1rem solid var(--dt-line);
    border-radius: var(--dt-radius-sm);
    background: var(--dt-white);
}
.single-tour-booking form.cart .quantity { width: 92rem; margin: 0 10rem 12rem 0; }
.single-tour .single-tour-booking form.cart .single_add_to_cart_button {
    min-height: 50rem;
    padding: 0 22rem;
    border: 1rem solid var(--dt-accent);
    border-radius: var(--dt-radius-sm);
    background: var(--dt-accent);
    color: var(--dt-white);
    font-weight: 800;
}
.single-tour-question__text { padding-bottom: 18rem; border-bottom: 1rem solid var(--dt-line); }
.single-tour-question__contacts { display: grid; margin: 12rem 0 16rem; }
.single-tour-question__contacts a {
    display: flex;
    align-items: center;
    gap: 10rem;
    padding: 10rem 0;
    border-bottom: 1rem solid var(--dt-line);
    font-size: 15rem;
    overflow-wrap: anywhere;
}
.single-tour-question__contacts span {
    display: grid;
    place-items: center;
    width: 28rem;
    height: 28rem;
    border-radius: 50%;
    background: #e8f5f2;
    color: var(--dt-accent);
    font-size: 12rem;
    font-weight: 900;
}
.single-tour .single-tour-question .single-tour-question__button {
    width: 100%;
    background: var(--dt-accent);
    border: 1rem solid var(--dt-accent);
    color: var(--dt-white);
    white-space: normal;
    text-align: center;
}
.single-tour .single-tour-booking form.cart .single_add_to_cart_button:not(:disabled):is(:hover, :focus-visible),
.single-tour .single-tour-question .single-tour-question__button:is(:hover, :focus-visible) {
    background: var(--dt-white);
    color: var(--dt-accent);
}
.single-tour-related {
    margin-top: 80rem;
    padding-top: 60rem;
    border-top: 1rem solid var(--dt-line);
}
.single-tour-related__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24rem;
    margin-bottom: 30rem;
}
.single-tour-related__heading h2 { font-size: 38rem; }
.single-tour-related__controls { display: flex; gap: 10rem; }
.single-tour-related__controls button {
    width: 46rem;
    height: 46rem;
    padding: 0;
    border: 1rem solid var(--dt-line);
    border-radius: 50%;
    background: var(--dt-white);
    color: var(--dt-ink);
    font-size: 30rem;
    cursor: pointer;
}
.single-tour-related__controls button:disabled { opacity: 0.34; cursor: default; }
.single-tour-related__viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    cursor: grab;
    overscroll-behavior-x: contain;
}
.single-tour-related__viewport.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.single-tour-related__viewport img { -webkit-user-drag: none; }
.single-tour-related__viewport:focus-visible { outline: 2rem solid var(--dt-accent); outline-offset: 4rem; }
.single-tour-related__track {
    --related-per-view: 3;
    display: flex;
    gap: 22rem;
}
.single-tour-related__card {
    scroll-snap-align: start;
    flex: 0 0 calc((100% - (var(--related-per-view) - 1) * 22rem) / var(--related-per-view));
    min-width: 0;
}
.single-tour-related__card .tour-card { height: 100%; }
.single-tour-related__card .tour-card__media { flex: 0 0 auto; aspect-ratio: 4 / 3; }
.single-tour-related__card .tour-card__body { flex: 1; }
@media (max-width: 1024px) {
    .single-tour-product { padding: 22rem; }
    .single-tour-hero { grid-template-columns: minmax(0, 1fr) 190rem; min-height: 500rem; }
    .single-tour-hero__thumbs { max-height: 500rem; }
    .single-tour-characteristics { width: 100%; }
    .single-tour-layout { grid-template-columns: 1fr; }
    .single-tour-sidebar { position: static; order: 1; }
    .single-tour-content { order: 2; }
    .single-tour-related__track { --related-per-view: 2; }
}
@media (max-width: 600px) {
    .single-tour { padding: 86rem 0 70rem; }
    .single-tour-product { width: 100%; padding: 14rem; }
    .single-tour-hero { display: block; min-height: 390rem; }
    .single-tour-hero__main { height: 390rem; }
    .single-tour-hero__thumbs {
        grid-template-columns: repeat(4, 92rem);
        grid-auto-rows: 76rem;
        max-height: none;
        margin-top: 10rem;
        overflow-x: auto;
        overflow-y: hidden;
    }
    .single-tour-hero h1 { left: 20rem; right: 20rem; bottom: 22rem; font-size: 34rem; }
    .single-tour-hero__arrow { top: 90rem; transform: none; }
    .single-tour-characteristics {
        width: 100%;
        margin-top: 24rem;
        grid-template-columns: 1fr;
    }
    .single-tour-characteristic { border-right: 0; border-bottom: 1rem solid var(--dt-line); }
    .single-tour-characteristic:last-child { border-bottom: 0; }
    .single-tour-characteristic--route { grid-template-columns: 38rem minmax(0, 1fr); }
    .single-tour-route-toggle { grid-column: 2; justify-self: start; }
    .single-tour-route-panel { padding: 18rem; }
    .single-tour-layout { gap: 34rem; }
    .single-tour-booking,
    .single-tour-question { padding: 22rem; }
    .single-tour-related { margin-top: 58rem; padding-top: 44rem; }
    .single-tour-related__heading h2 { font-size: 30rem; }
    .single-tour-related__track { --related-per-view: 1; gap: 16rem; }
}
