/*
Theme Name:   Neza_Genesis
Theme URI:    https://bruneza.com
Description:  we are here to make WP yours
Author:       Bruce Mugwaneza
Author URI:   https://bruneza.com
Template:    hello-elementor
Version:      1.1.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain:  neza
*/

/* ==============================
   GLOBAL RESET & BASE STYLES
============================== */
html {
	box-sizing: border-box;
	scroll-behavior: smooth;
}

*, *::before, *::after {
	box-sizing: inherit;
}

body {
	position: relative;
	max-width: 2560px;
	margin: 0 auto;
	line-height: 1.6;
	font-family: 'Helvetica Neue', sans-serif;
	-webkit-font-smoothing: antialiased;
	background-color: #fff;
	color: #111;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

:root {
	--default-side-padding: 20px;
}

/* ==============================
   SECTION PADDING UTILITIES
   Format: .section-[top/bottom]-[side-padding]
============================== */
.section-0-20    { padding: 0 var(--default-side-padding); }
.section-20-20   { padding: 20px var(--default-side-padding); }
.section-40-20   { padding: 40px var(--default-side-padding); }
.section-60-20   { padding: 60px var(--default-side-padding); }
.section-80-20   { padding: 80px var(--default-side-padding); }
.section-100-20  { padding: 100px var(--default-side-padding); }
.section-120-20  { padding: 120px var(--default-side-padding); }
.section-140-20  { padding: 140px var(--default-side-padding); }
.section-160-20  { padding: 160px var(--default-side-padding); }
.section-180-20  { padding: 180px var(--default-side-padding); }

/* Bottom-only padding (e.g. .section-60b-20 = padding-bottom only) */
.section-40b-20  { padding: 0 var(--default-side-padding) 40px; }
.section-60b-20  { padding: 0 var(--default-side-padding) 60px; }
.section-80b-20  { padding: 0 var(--default-side-padding) 80px; }
.section-100b-20 { padding: 0 var(--default-side-padding) 100px; }

/* Top-only padding (e.g. .section-t60-20 = padding-top only) */
.section-t40-20  { padding: 40px var(--default-side-padding) 0; }
.section-t60-20  { padding: 60px var(--default-side-padding) 0; }
.section-t80-20  { padding: 80px var(--default-side-padding) 0; }

/* ==============================
   RESPONSIVE ADJUSTMENTS
============================== */
@media (max-width: 768px) {
	.section-40-20,
	.section-60-20,
	.section-80-20,
	.section-100-20,
	.section-120-20,
	.section-140-20,
	.section-160-20,
	.section-180-20 {
		padding: 20px var(--default-side-padding);
	}

	.section-40b-20,
	.section-60b-20,
	.section-80b-20,
	.section-100b-20 {
		padding: 0 var(--default-side-padding) 20px;
	}

	.section-t40-20,
	.section-t60-20,
	.section-t80-20 {
		padding: 20px var(--default-side-padding) 0;
	}

	br {
		display: none;
	}
}

/* ==============================
   HELPER / UTILITY CLASSES
============================== */
.text-center {
	text-align: center;
}


@media (max-width: 900px) {
	.hide-mobile {
		display: none !important;
	}
}
@media (min-width: 900px) {
.show-mobile {
		display: none !important;
	}
}

.container {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 var(--default-side-padding);
}

.responsive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}

/****ITINARY****/
 .timeline-itinerary-container {
        max-width: 800px;
        margin: 0 auto;
        padding: 20px;
    }
    
    .timeline-itinerary-item {
        display: flex;
        margin-bottom: 40px;
        position: relative;
    }
    
    .timeline-itinerary-left {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-right: 20px;
        position: relative;
        flex-shrink: 0;
    }
    
    .timeline-day-number {
        width: 40px;
        height: 40px;
        background-color: #066D75;
        color: white;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: bold;
        font-size: 16px;
        z-index: 2;
    }
    
    .timeline-connector-line {
        width: 2px;
        background-color: #066D75;
        flex-grow: 1;
        min-height: 60px;
        margin-top: 10px;
        opacity: 0.5;
    }
    
    .timeline-itinerary-content {
        flex: 1;
        padding-top: 5px;
    }
    
    .timeline-day-title {
        font-size: 18px;
        font-weight: 600;
        margin: 0 0 15px 0;
        color: #066D75;
        line-height: 1.4;
    }
    
    .timeline-day-description {
        color: #666;
        line-height: 1.6;
        margin-bottom: 15px;
    }
    
    .timeline-day-description p {
        margin: 0 0 10px 0;
    }
    
    .timeline-day-description p:last-child {
        margin-bottom: 0;
    }

/* ==============================
   Taxonomy Filter
============================== */

    /* Container Styles */
.neza-tax-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

/* Filter Items Base Style */
.neza-tax-filter .filter-item {
    display: inline-block;
    font-family: var(--e-global-typography-text-font-family), Sans-serif;
    font-size: var(--e-global-typography-text-font-size);
    font-weight: var(--e-global-typography-text-font-weight);
    line-height: var(--e-global-typography-text-line-height);
    padding: 8px 21px;
    border-style: solid;
    border-width: 1px;
    border-color: #DADADA;
    border-radius: 2px;
    text-decoration: none;
    color: var(--e-global-color-text);
    background-color: transparent;
    transition: all 0.3s ease;
    white-space: nowrap;
}

/* Hover State */
.neza-tax-filter .filter-item:hover:not(.active-item) {
    background-color: var(--e-global-color-primary);
    border-color: var(--e-global-color-primary);
    color: var(--e-global-color-be2f0e8);
}

/* Active State */
.neza-tax-filter .filter-item.active-item {
    background-color: var(--e-global-color-primary);
    border-color: var(--e-global-color-primary);
    color: var(--e-global-color-be2f0e8);
}

/* Tablet */
@media (max-width: 1024px) {
    .neza-tax-filter .filter-item {
        font-size: var(--e-global-typography-text-font-size);
        line-height: var(--e-global-typography-text-line-height);
    }
}

/* Mobile */
@media (max-width: 767px) {
    .neza-tax-filter {
        flex-direction: column;
        gap: 10px;
    }

    .neza-tax-filter .filter-item {
        width: 100%;
        flex-grow: 1;
        text-align: center;
    }
}
