/* ==========================================================================
   LAYOUT — Kemet Theme
   Hero, CTA, search bar, and Elementor-friendly layout helpers
   ========================================================================== */

/* ---------- Hero ------------------------------------------------------ */
.kt-hero {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--kt-white);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    padding: calc(var(--kt-header-h) + 2rem) 1.5rem var(--kt-sp-4xl);
}

/* Wave bottom edge */
.kt-hero--wave::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 80px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' d='M0,40 C160,80 320,0 480,40 C640,80 800,0 960,40 C1120,80 1280,0 1440,40 L1440,80 L0,80 Z'/%3E%3C/svg%3E") no-repeat;
    background-size: 100% 100%;
    z-index: 5;
}

.kt-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(12,18,34,.55) 0%,
        rgba(12,18,34,.7) 60%,
        rgba(12,18,34,.85) 100%
    );
    z-index: 1;
}
.kt-hero__content {
    position: relative;
    z-index: 2;
    max-width: 780px;
}
.kt-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: 11px;
    font-weight: var(--kt-fw-bold);
    text-transform: uppercase;
    letter-spacing: var(--kt-ls-wider);
    color: var(--kt-accent);
    margin-bottom: var(--kt-sp-lg);
    padding: .5rem 1.25rem;
    background: rgba(245,166,35,.12);
    border: 1px solid rgba(245,166,35,.25);
    border-radius: var(--kt-r-full);
    backdrop-filter: blur(8px);
}
.kt-hero__title {
    font-size: var(--kt-fs-5xl);
    font-weight: var(--kt-fw-extra);
    color: var(--kt-white);
    line-height: 1.1;
    margin-bottom: var(--kt-sp-lg);
    max-width: 720px;
    margin-inline: auto;
}
.kt-hero__subtitle {
    font-size: var(--kt-fs-lg);
    color: rgba(255,255,255,.8);
    line-height: var(--kt-lh-normal);
    max-width: 600px;
    margin: 0 auto var(--kt-sp-xl);
}
.kt-hero__actions {
    display: flex;
    justify-content: center;
    gap: var(--kt-sp-md);
    flex-wrap: wrap;
}

/* Hero trust bar */
.kt-hero-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    margin-top: 2rem;
    font-size: 13px;
    color: rgba(255,255,255,.7);
    font-family: var(--kt-ff);
}
.kt-hero-trust__item {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}
.kt-hero-trust__item strong {
    color: #fff;
    font-weight: 700;
}
.kt-hero-trust__stars {
    color: #f5a623;
    font-size: 14px;
    letter-spacing: 1px;
}
.kt-hero-trust__divider {
    color: rgba(255,255,255,.3);
}

/* ---------- CTA Section ----------------------------------------------- */
.kt-cta {
    background: linear-gradient(135deg, var(--kt-blue-600), var(--kt-blue-800));
    color: var(--kt-white);
    text-align: center;
    padding: var(--kt-sp-4xl) 1.5rem;
    position: relative;
    overflow: hidden;
}
.kt-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: rgba(255,255,255,.04);
}
.kt-cta__content {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 0 auto;
}
.kt-cta__title {
    font-size: var(--kt-fs-3xl);
    color: var(--kt-white);
    margin-bottom: var(--kt-sp-md);
}
.kt-cta__desc {
    font-size: var(--kt-fs-md);
    color: rgba(255,255,255,.85);
    margin-bottom: var(--kt-sp-xl);
    line-height: var(--kt-lh-normal);
}

/* ---------- Search bar ------------------------------------------------ */
.kt-search-bar {
    background: var(--kt-white);
    border-radius: var(--kt-r-xl);
    box-shadow: var(--kt-shadow-lg);
    padding: var(--kt-sp-lg);
    max-width: 900px;
    margin: -3rem auto var(--kt-sp-2xl);
    position: relative;
    z-index: 10;
}
.kt-search-bar__inner {
    display: flex;
    gap: var(--kt-sp-md);
    align-items: end;
    flex-wrap: wrap;
}
.kt-search-bar__field {
    flex: 1;
    min-width: 150px;
}
.kt-search-bar__field label {
    display: block;
    font-size: var(--kt-fs-xs);
    font-weight: var(--kt-fw-semi);
    color: var(--kt-gray-500);
    text-transform: uppercase;
    letter-spacing: var(--kt-ls-wide);
    margin-bottom: .4rem;
}
.kt-search-bar__field input,
.kt-search-bar__field select {
    width: 100%;
    height: 48px;
    padding: 0 1rem;
    border: 1px solid var(--kt-gray-200);
    border-radius: var(--kt-r-md);
    font-size: var(--kt-fs-sm);
    background: var(--kt-gray-50);
    color: var(--kt-gray-800);
    transition: border-color var(--kt-tr-fast);
}
.kt-search-bar__field input:focus,
.kt-search-bar__field select:focus {
    outline: none;
    border-color: var(--kt-primary);
    box-shadow: 0 0 0 3px rgba(26,95,180,.1);
}

/* ---------- Section more link ----------------------------------------- */
.kt-section__more {
    text-align: center;
    margin-top: var(--kt-sp-xl);
}

/* ---------- Elementor full-width fix ---------------------------------- */
.kt-elementor-page .kt-content > .elementor { margin-top: 0; }

/* Push first Elementor section below fixed header on all Elementor pages */
.kt-content > .elementor > .elementor-section:first-child,
.kt-content > .elementor > .elementor-element:first-child,
.kt-content > .elementor > .e-con:first-child {
    padding-top: var(--kt-header-h);
}

/* ---------- Responsive ------------------------------------------------ */
@media (max-width: 768px) {
    .kt-hero { min-height: 70vh; padding: calc(var(--kt-header-h) + 1rem) 1rem var(--kt-sp-2xl); }
    .kt-hero--wave::after { height: 40px; }
    .kt-hero__title { font-size: var(--kt-fs-3xl); }
    .kt-hero__subtitle { font-size: var(--kt-fs-base); }
    .kt-hero__actions { flex-direction: column; align-items: center; }
    .kt-hero-trust { flex-direction: column; gap: .4rem; font-size: 12px; }
    .kt-hero-trust__divider { display: none; }
    .kt-search-bar { margin: -2rem 1rem var(--kt-sp-xl); padding: var(--kt-sp-md); }
    .kt-search-bar__inner { flex-direction: column; }
    .kt-search-bar__field { min-width: 100%; }
    .kt-cta { padding: var(--kt-sp-2xl) 1rem; }
}

/* ==========================================================================
   TOURS PAGE — Search, Destination Cards, Tags
   ========================================================================== */

/* ---------- Tours search bar ------------------------------------------ */
.kt-tours-search {
    background: var(--kt-white);
    border-radius: var(--kt-r-lg);
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    padding: 1rem 1.25rem;
    max-width: 720px;
}
.kt-tours-search__form {
    display: flex;
    gap: .5rem;
    align-items: center;
}
.kt-tours-search__input-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .5rem;
    background: var(--kt-gray-50);
    border: 1px solid var(--kt-gray-200);
    border-radius: var(--kt-r-md);
    padding: 0 .75rem;
    height: 42px;
    transition: border-color var(--kt-tr-fast);
}
.kt-tours-search__input-wrap:focus-within {
    border-color: var(--kt-primary);
    box-shadow: 0 0 0 3px rgba(22,95,166,.1);
}
.kt-tours-search__input-wrap svg {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}
.kt-tours-search__input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 13px;
    font-family: var(--kt-ff);
    color: var(--kt-gray-800);
    outline: none;
    height: 100%;
}
.kt-tours-search__input::placeholder { color: var(--kt-gray-400); }
.kt-tours-search__btn {
    height: 42px;
    padding: 0 1.5rem;
    background: var(--kt-primary);
    color: var(--kt-white);
    border: none;
    border-radius: var(--kt-r-md);
    font-size: 13px;
    font-weight: var(--kt-fw-semi);
    font-family: var(--kt-ff);
    cursor: pointer;
    transition: background var(--kt-tr-fast);
    white-space: nowrap;
}
.kt-tours-search__btn:hover { background: var(--kt-primary-dark); }

/* ---------- Quick filter tags ----------------------------------------- */
.kt-tours-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .75rem;
}
.kt-tours-tag {
    display: inline-flex;
    align-items: center;
    padding: .25rem .75rem;
    font-size: 11px;
    font-weight: var(--kt-fw-medium);
    font-family: var(--kt-ff);
    color: var(--kt-gray-600);
    background: var(--kt-gray-50);
    border: 1px solid var(--kt-gray-200);
    border-radius: var(--kt-r-full);
    text-decoration: none;
    transition: all var(--kt-tr-fast);
    cursor: pointer;
}
.kt-tours-tag:hover {
    background: var(--kt-blue-50);
    border-color: var(--kt-primary);
    color: var(--kt-primary);
}
.kt-tours-tag--active {
    background: var(--kt-primary);
    border-color: var(--kt-primary);
    color: var(--kt-white);
}
.kt-tours-tag--active:hover {
    background: var(--kt-primary-dark);
    color: var(--kt-white);
}

/* ---------- Destination cards ----------------------------------------- */
.kt-dest-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: .75rem;
}
.kt-dest-card {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    display: block;
    aspect-ratio: 4/5;
    transition: transform var(--kt-tr-normal), box-shadow var(--kt-tr-normal);
}
.kt-dest-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
}
.kt-dest-card__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform var(--kt-tr-normal);
}
.kt-dest-card:hover .kt-dest-card__img {
    transform: scale(1.05);
}
.kt-dest-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.6) 0%, rgba(0,0,0,.05) 50%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: .75rem;
    color: var(--kt-white);
}
.kt-dest-card__name {
    font-size: 13px;
    font-weight: var(--kt-fw-bold);
    line-height: 1.2;
}
.kt-dest-card__count {
    font-size: 10px;
    opacity: .75;
    margin-top: 1px;
}

/* Destination columns (Elementor Image widget cards) */
.kt-dest-card-col {
    transition: transform var(--kt-tr-normal), box-shadow var(--kt-tr-normal);
}
.kt-dest-card-col:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
}
.kt-dest-card-col .elementor-image {
    border-radius: 10px;
    overflow: hidden;
}
.kt-dest-card-col .elementor-image img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    display: block;
    transition: transform var(--kt-tr-normal);
}
.kt-dest-card-col:hover .elementor-image img {
    transform: scale(1.05);
}
.kt-dest-section .elementor-row,
.kt-dest-section .elementor-container {
    gap: 10px;
}

/* Destination section — force grid on all screen sizes */
.kt-dest-section .elementor-row,
.kt-dest-section .elementor-container,
.kt-dest-section > .elementor-container > .elementor-row,
.kt-dest-section > .elementor-container {
    display: flex !important;
    flex-wrap: wrap !important;
}
.kt-dest-section .elementor-column,
.kt-dest-section .elementor-col-16 {
    flex: 0 0 auto !important;
}

@media (min-width: 769px) {
    .kt-dest-section .elementor-column,
    .kt-dest-section .elementor-col-16 {
        width: calc(16.666% - 9px) !important;
    }
}
@media (max-width: 768px) {
    .kt-dest-section .elementor-column,
    .kt-dest-section .elementor-col-16,
    .kt-dest-section .kt-dest-card-col {
        width: calc(50% - 6px) !important;
    }
    .kt-dest-section .elementor-row,
    .kt-dest-section .elementor-container {
        gap: 10px !important;
        justify-content: center;
    }
    .kt-dest-card-col .elementor-image img {
        aspect-ratio: 3/4;
    }
    .kt-dest-card-col .elementor-widget-heading .elementor-heading-title {
        font-size: 12px !important;
    }
}
@media (max-width: 480px) {
    .kt-dest-section .elementor-column,
    .kt-dest-section .elementor-col-16,
    .kt-dest-section .kt-dest-card-col {
        width: calc(50% - 5px) !important;
    }
    .kt-dest-section .elementor-row,
    .kt-dest-section .elementor-container {
        gap: 8px !important;
    }
    .kt-dest-card-col .elementor-image img {
        aspect-ratio: 1/1;
        border-radius: 8px;
    }
}

/* ---------- Tours page section spacing -------------------------------- */
.kt-tours-destinations-section .elementor-widget-heading,
.kt-tours-featured-section .elementor-widget-heading,
.kt-tours-all-section .elementor-widget-heading {
    margin-bottom: 0 !important;
}

/* Tours page product grid — use new card design */
.kt-tours-featured-section .woocommerce ul.products,
.kt-tours-all-section .woocommerce ul.products {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.25rem !important;
}

/* ---------- Tours page responsive ------------------------------------- */
@media (max-width: 1024px) {
    .kt-dest-grid { grid-template-columns: repeat(3, 1fr); }
    .kt-tours-featured-section .woocommerce ul.products,
    .kt-tours-all-section .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 768px) {
    .kt-tours-search { padding: .75rem; }
    .kt-tours-search__form { flex-direction: column; }
    .kt-tours-search__input-wrap { width: 100%; }
    .kt-tours-search__btn { width: 100%; }
    .kt-dest-grid { grid-template-columns: repeat(2, 1fr); }
    .kt-dest-card { aspect-ratio: 1/1; }
}
@media (max-width: 480px) {
    .kt-dest-grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
    .kt-tours-featured-section .woocommerce ul.products,
    .kt-tours-all-section .woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */

.kt-contact-info {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.kt-contact-info__item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}
.kt-contact-info__icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--kt-blue-50, #eff6ff);
    border-radius: 10px;
}
.kt-contact-info__label {
    display: block;
    font-size: 11px;
    font-weight: var(--kt-fw-medium);
    color: var(--kt-gray-500);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 2px;
}
.kt-contact-info__value {
    display: block;
    font-size: 14px;
    font-weight: var(--kt-fw-semi);
    color: var(--kt-gray-800);
}

/* Contact form */
.kt-contact-form {
    background: var(--kt-white);
    border: 1px solid var(--kt-gray-200);
    border-radius: 12px;
    padding: 1.5rem;
}
.kt-contact-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
.kt-contact-form__field {
    display: flex;
    flex-direction: column;
}
.kt-contact-form__field--full {
    margin-bottom: 1rem;
}
.kt-contact-form__field label {
    font-size: 12px;
    font-weight: var(--kt-fw-semi);
    color: var(--kt-gray-700);
    margin-bottom: .3rem;
}
.kt-contact-form__field input,
.kt-contact-form__field textarea {
    width: 100%;
    padding: .65rem .85rem;
    border: 1px solid var(--kt-gray-200);
    border-radius: 8px;
    font-size: 13px;
    font-family: var(--kt-ff);
    color: var(--kt-gray-800);
    background: var(--kt-gray-50);
    transition: border-color var(--kt-tr-fast), box-shadow var(--kt-tr-fast);
    resize: vertical;
}
.kt-contact-form__field input:focus,
.kt-contact-form__field textarea:focus {
    outline: none;
    border-color: var(--kt-primary);
    box-shadow: 0 0 0 3px rgba(22,95,166,.08);
    background: var(--kt-white);
}
.kt-contact-form__field input::placeholder,
.kt-contact-form__field textarea::placeholder {
    color: var(--kt-gray-400);
}
.kt-contact-form__submit {
    padding: .65rem 2rem !important;
    font-size: 13px !important;
}

/* Also style Contact Form 7 if installed */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select,
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form textarea,
.wpforms-form select {
    width: 100%;
    padding: .65rem .85rem;
    border: 1px solid var(--kt-gray-200);
    border-radius: 8px;
    font-size: 13px;
    font-family: var(--kt-ff);
    color: var(--kt-gray-800);
    background: var(--kt-gray-50);
    transition: border-color var(--kt-tr-fast), box-shadow var(--kt-tr-fast);
}
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpforms-form input:focus,
.wpforms-form textarea:focus {
    outline: none;
    border-color: var(--kt-primary);
    box-shadow: 0 0 0 3px rgba(22,95,166,.08);
    background: var(--kt-white);
}
.wpcf7 input[type="submit"],
.wpcf7-submit,
.wpforms-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .65rem 2rem;
    background: var(--kt-primary);
    color: var(--kt-white);
    border: none;
    border-radius: var(--kt-r-full);
    font-size: 13px;
    font-weight: var(--kt-fw-semi);
    font-family: var(--kt-ff);
    cursor: pointer;
    transition: background var(--kt-tr-fast);
}
.wpcf7 input[type="submit"]:hover,
.wpcf7-submit:hover,
.wpforms-submit:hover {
    background: var(--kt-primary-dark);
}

/* Map */
.kt-contact-map {
    width: 100%;
    line-height: 0;
}
.kt-contact-map iframe {
    width: 100%;
    display: block;
}

/* Contact responsive */
@media (max-width: 768px) {
    .kt-contact-form__row {
        grid-template-columns: 1fr;
    }
}

/* Contact page mobile — Elementor icon boxes + layout */
@media (max-width: 768px) {
    .kt-contact-main .elementor-row,
    .kt-contact-main .elementor-container {
        flex-direction: column !important;
    }
    .kt-contact-main .elementor-column {
        width: 100% !important;
    }
    .kt-contact-main .elementor-column .elementor-widget-wrap {
        padding: 0 !important;
    }

    .kt-contact-main .elementor-widget-icon-box .elementor-icon-box-wrapper {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        text-align: left !important;
        gap: .75rem;
    }
    .kt-contact-main .elementor-widget-icon-box .elementor-icon-box-icon {
        margin-bottom: 0 !important;
        margin-right: 0 !important;
    }
    .kt-contact-main .elementor-widget-icon-box .elementor-icon-box-content {
        text-align: left !important;
    }
    .kt-contact-main .elementor-widget-icon-box .elementor-icon-box-title {
        text-align: left !important;
    }
    .kt-contact-main .elementor-widget-icon-box .elementor-icon-box-description {
        text-align: left !important;
    }

    .kt-contact-main .elementor-widget-icon-box {
        background: var(--kt-gray-50);
        border-radius: 10px;
        padding: .85rem 1rem !important;
        margin-bottom: .5rem !important;
    }

    .kt-contact-main .elementor-widget-heading {
        margin-bottom: .5rem !important;
    }

    .kt-contact-form {
        padding: 1rem;
    }
}
