/*
Theme Name: Yamu Travels
Theme URI: https://www.yamu.co.nz
Author: Inovix
Author URI: https://www.inovix.co.nz
Description: A modern travel agency WordPress theme for Yamu Travels - New Zealand's Lowest Flight Ticket Agency
Version: 1.1.172
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yamu-travels
Tags: travel, agency, flights, booking, modern, responsive
*/

/* ==========================================================================
   CSS VARIABLES
   ========================================================================== */
:root {
    /* Colors */
    --primary-color: #1c3f56;
    --primary-dark: #143246;
    --button-color: #4b8650;
    --button-hover: #3c7341;
    --text-color: #2d3436;
    --text-light: #636e72;
    --white: #fff;
    --light-bg: #f9fafb;
    --border-color: #e0e0e0;
    --star-color: #ffc107;
    --error-color: #e74c3c;
    
    /* Typography */
    --font-primary: "Montserrat", sans-serif;
    --body-size: 16px;
    --body-weight: 400;
    --body-line: 1.5;
    --h1-size: 64px;
    
    /* Spacing & Effects */
    --shadow: 0 2px 15px rgba(28,63,86,.08);
    --shadow-hover: 0 8px 30px rgba(28,63,86,.15);
    --transition: all .3s cubic-bezier(.4,0,.2,1);
    --radius: 8px;
    --radius-pill: 50px;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth }
body {
    font-family: var(--font-primary);
    font-size: var(--body-size);
    font-weight: var(--body-weight);
    line-height: var(--body-line);
    color: var(--text-color);
    background: var(--white);
}
a { text-decoration:none; color:inherit; transition:var(--transition) }
ul { list-style:none }
img { max-width:100%; height:auto; display:block }
.container { width:100%; max-width:1200px; margin:0 auto; padding:0 20px }

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */
h1,h2,h3,h4,h5,h6 {
    font-family: var(--font-primary);
    font-weight: 600;
    line-height: 1.3;
    color: var(--primary-color);
}
h1 { font-size: var(--h1-size) }
h2 { font-size: clamp(2rem,4vw,2.75rem) }
h3 { font-size: clamp(1.5rem,3vw,2rem) }
h4 { font-size: 1.5rem }
h5 { font-size: 1.25rem }
h6 { font-size: 1.1rem }
p { margin-bottom:1rem }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn {
    display: inline-block;
    padding: 14px 32px;
    font-size: .95rem;
    font-family: var(--font-primary);
    font-weight: 500;
    text-align: center;
    border-radius: var(--radius-pill);
    border: 1px solid var(--white);
    cursor: pointer;
    transition: var(--transition);
}
.btn-primary { background:var(--button-color); color:var(--white) }
.btn-primary:hover { background:var(--button-hover); transform:translateY(-2px); box-shadow:0 4px 15px rgba(75,134,80,.3) }
.btn-secondary { background:var(--primary-color); color:var(--white) }
.btn-secondary:hover { background:var(--primary-dark); transform:translateY(-2px); box-shadow:0 4px 15px rgba(28,63,86,.3) }
.btn-white { background:var(--white); color:var(--primary-color); border-color:var(--white) }
.btn-white:hover { background:transparent; color:var(--white) }
.btn-outline { background:transparent; color:var(--white); border-color:var(--white) }
.btn-outline:hover { background:var(--white); color:var(--primary-color) }
.btn-outline-dark { background:transparent; color:var(--primary-color); border-color:var(--primary-color) }
.btn-outline-dark:hover { background:var(--primary-color); color:var(--white) }
.btn-outline-green { background:transparent; color:var(--button-color); border-color:var(--button-color) }
.btn-outline-green:hover { background:var(--button-color); color:var(--white) }
.btn-small { padding:10px 24px; font-size:.85rem }
.btn-large { padding:18px 40px; font-size:1rem }
.btn-block { width:100%; text-align:center; margin-bottom:10px }

/* ==========================================================================
   HEADER & NAVIGATION
   ========================================================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: transparent;
    transition: var(--transition);
}
.site-header.scrolled { background:var(--white); box-shadow:var(--shadow) }
.header-inner { display:flex; justify-content:space-between; align-items:center; padding:20px 0 }

/* Logo */
.site-logo img,
.site-logo .custom-logo,
.custom-logo-link img { height:45px; width:auto; transition:height .3s ease }
.site-header.scrolled .site-logo img,
.site-header.scrolled .custom-logo-link img { height:45px !important }

/* Navigation */
.main-navigation { display:flex; align-items:center; gap:50px }
.nav-menu { display:flex; gap:40px }
.nav-menu li a {
    font-family: var(--font-primary);
    font-weight: 500;
    font-size: .95rem;
    color: var(--white);
    padding: 8px 0;
    position: relative;
    text-transform: capitalize;
}
.site-header.scrolled .nav-menu li a { color:var(--primary-color) }
.nav-menu li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--button-color);
    transition: var(--transition);
}
.nav-menu li a:hover::after,
.nav-menu li.current-menu-item a::after { width:100% }

/* Nav CTA */
.nav-cta .btn { padding:12px 28px; font-size:.85rem }
.site-header:not(.scrolled) .nav-cta .btn { background:var(--button-color); color:var(--white); border-color:var(--white) }
.site-header:not(.scrolled) .nav-cta .btn:hover { background:var(--button-hover) }
.site-header.scrolled .nav-cta .btn { background:var(--button-color); color:var(--white); border-color:var(--button-color) }
.site-header.scrolled .nav-cta .btn:hover { background:var(--button-hover); border-color:var(--button-hover) }

/* Mobile Toggle */
.menu-toggle {
    display: none;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
    padding: 10px;
    background: none;
    border: none;
}
.menu-toggle span { width:28px; height:2px; background:var(--white); transition:var(--transition) }
.site-header.scrolled .menu-toggle span { background:var(--primary-color) }

/* ==========================================================================
   ANNOUNCEMENT BAR
   ========================================================================== */
.announcement-bar {
    background: var(--button-color);
    color: var(--white);
    padding: 12px 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1001;
}
.announcement-bar .container { display:flex; align-items:center; justify-content:center; gap:15px }
.announcement-slider { position:relative; text-align:center; flex:1; overflow:hidden; min-height:24px }
.announcement-item { display:none; align-items:center; justify-content:center; gap:15px; animation:fadeInAnnouncement .5s ease }
.announcement-item.active { display:flex }
.announcement-message { font-family:var(--font-primary); font-size:.9rem; font-weight:500 }
.announcement-link { color:var(--white); font-size:.85rem; font-weight:600; text-decoration:underline; text-underline-offset:3px; white-space:nowrap }
.announcement-link:hover { opacity:.8 }
.announcement-close { background:none; border:none; color:var(--white); font-size:1.5rem; cursor:pointer; padding:0 5px; line-height:1; opacity:.8; flex-shrink:0 }
.announcement-close:hover { opacity:1 }

@keyframes fadeInAnnouncement {
    from { opacity:0; transform:translateY(-10px) }
    to { opacity:1; transform:translateY(0) }
}

/* Announcement Body Adjustments */
body.has-announcement .site-header { top:48px }
body.has-announcement .hero-section { padding-top:48px }
body.has-announcement .page-header { padding-top:200px }
body.has-announcement .single-hero { padding-top:130px }

/* ==========================================================================
   HERO SECTION
   ========================================================================== */
.hero-section {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,rgba(28,63,86,.7) 0%,rgba(28,63,86,.5) 100%);
}
.hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--white);
    max-width: 900px;
    padding: 0 20px;
}
.hero-content h1 { color:var(--white); margin-bottom:24px; font-size:clamp(2.5rem,5vw,var(--h1-size)); font-weight:600; line-height:1.3 }
.hero-content p { font-size:1.15rem; margin-bottom:35px; opacity:.95; max-width:700px; margin-left:auto; margin-right:auto }
.hero-content .btn { padding:16px 40px; font-size:.95rem }

/* ==========================================================================
   SECTIONS - SHARED STYLES
   ========================================================================== */
.section-header { text-align:center; margin-bottom:60px }
.section-header h2 { margin-bottom:15px; color:var(--primary-color) }
.section-header p { color:var(--text-light); max-width:600px; margin:0 auto }

.why-choose-section,
.reviews-section { padding:100px 0; background:var(--light-bg) }
.destinations-section,
.tours-section,
.blog-section,
.archive-section { padding:80px 0 }
.related-section { padding:80px 0; background:var(--light-bg) }
.related-section .section-header { margin-bottom:40px }
.related-section .section-header h2 { font-size:1.75rem }

/* ==========================================================================
   FEATURE CARDS (Why Choose Us)
   ========================================================================== */
.features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.feature-card {
    background: var(--white);
    padding: 40px 30px;
    border-radius: 16px;
    text-align: center;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.feature-card:hover { transform:translateY(-10px); box-shadow:var(--shadow-hover) }
.feature-icon { width:80px; height:80px; margin:0 auto 20px }
.feature-icon img { width:100%; height:100%; object-fit:contain }
.feature-icon svg { stroke:var(--button-color) }
.feature-card h6 { margin-bottom:10px; color:var(--primary-color) }
.feature-card p { color:var(--text-light); margin-bottom:0; font-size:.95rem }

/* ==========================================================================
   DESTINATION CARDS
   ========================================================================== */
.destinations-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.destination-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.destination-card:hover { transform:translateY(-10px); box-shadow:var(--shadow-hover) }
.destination-image { position:relative; height:400px; overflow:hidden }
.destination-image img { width:100%; height:100%; object-fit:cover; transition:var(--transition) }
.destination-card:hover .destination-image img { transform:scale(1.1) }
.destination-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 30px;
    background: linear-gradient(transparent,rgba(28,63,86,.9));
    color: var(--white);
}
.destination-content h6 { color:var(--white); margin-bottom:8px; font-size:1.2rem }
.destination-content p { font-size:.9rem; opacity:.9; margin-bottom:15px }
.destination-content .btn { padding:8px 20px; font-size:.85rem }

/* Destination Features Grid */
.destinations-features { display:grid; grid-template-columns:repeat(2,1fr); gap:20px }
.destinations-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 20px;
    background: var(--light-bg);
    border-radius: var(--radius);
}
.destinations-feature-icon {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border-radius: var(--radius);
}
.destinations-feature-text { flex:1 }
.destinations-feature-text h4 { font-size:1rem; color:var(--primary-color); margin-bottom:5px; font-weight:600 }
.destinations-feature-text p { color:var(--text-light); margin-bottom:0; font-size:.9rem; line-height:1.5 }

/* ==========================================================================
   TOUR CARDS & HIGHLIGHTS
   ========================================================================== */
.tours-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.tour-card {
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.tour-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-5px) }
.tour-card-image { position:relative; height:250px; overflow:hidden }
.tour-card-image img { width:100%; height:100%; object-fit:cover; transition:var(--transition) }
.tour-card:hover .tour-card-image img { transform:scale(1.05) }
.tour-card-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: var(--button-color);
    color: var(--white);
    padding: 6px 14px;
    font-size: .8rem;
    font-weight: 500;
    border-radius: var(--radius-pill);
}
.tour-card-content { padding:25px }
.tour-card-location { font-size:.85rem; color:var(--text-light); margin-bottom:8px }
.tour-card-title { font-size:1.25rem; font-weight:600; margin-bottom:12px; line-height:1.3 }
.tour-card-title a { color:var(--primary-color) }
.tour-card-title a:hover { color:var(--button-color) }
.tour-card-excerpt { color:var(--text-light); font-size:.95rem; margin-bottom:20px }
.tour-card-footer { display:flex; justify-content:space-between; align-items:center; padding-top:20px; border-top:1px solid var(--border-color) }
.tour-card-price { font-size:1.3rem; font-weight:700; color:var(--button-color) }
.tour-card-price span { font-size:.85rem; font-weight:400; color:var(--text-light) }
.tour-card-duration { font-size:.9rem; color:var(--text-light) }

/* Tour Highlights Grid */
.tour-highlights-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px }
.tour-highlight-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 20px;
    background: var(--light-bg);
    border-radius: var(--radius);
}
.tour-highlight-icon {
    font-size: 1.75rem;
    line-height: 1;
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border-radius: var(--radius);
}
.tour-highlight-text { flex:1 }
.tour-highlight-text h4 { font-size:1rem; color:var(--primary-color); margin-bottom:5px; font-weight:600 }
.tour-highlight-text p { color:var(--text-light); margin-bottom:0; font-size:.9rem; line-height:1.5 }

/* ==========================================================================
   REVIEW CARDS
   ========================================================================== */
.reviews-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:30px }
.review-card {
    background: var(--white);
    padding: 40px;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.review-card:hover { box-shadow:var(--shadow-hover) }
.review-stars { color:var(--star-color); font-size:1.2rem; margin-bottom:20px; letter-spacing:2px }
.review-text { font-size:1.05rem; line-height:1.8; color:var(--text-color); margin-bottom:25px; font-style:italic }
.review-author { display:flex; align-items:center; gap:15px }
.review-avatar { width:60px; height:60px; border-radius:50%; overflow:hidden; background:var(--light-bg) }
.review-avatar img,.review-avatar svg { width:100%; height:100%; object-fit:cover }
.review-info h6 { margin-bottom:3px; color:var(--primary-color) }
.review-info span { color:var(--text-light); font-size:.9rem }

/* ==========================================================================
   BLOG CARDS
   ========================================================================== */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.blog-card {
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.blog-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-5px) }
.blog-card-image { position:relative; height:220px; overflow:hidden }
.blog-card-image img { width:100%; height:100%; object-fit:cover; transition:var(--transition) }
.blog-card:hover .blog-card-image img { transform:scale(1.05) }
.blog-card-content { padding:25px }
.blog-card-meta { font-size:.85rem; color:var(--text-light); margin-bottom:12px }
.blog-card-title { font-size:1.2rem; font-weight:600; margin-bottom:12px; line-height:1.4 }
.blog-card-title a { color:var(--primary-color) }
.blog-card-title a:hover { color:var(--button-color) }
.blog-card-excerpt { color:var(--text-light); font-size:.95rem; margin-bottom:20px }
.blog-card .read-more { font-size:.9rem; font-weight:500; color:var(--button-color) }
.blog-card .read-more:hover { color:var(--primary-color) }

/* Blog Sidebar */
.blog-with-sidebar { display:grid; grid-template-columns:1fr 350px; gap:50px }
.blog-sidebar .widget { background:var(--light-bg); padding:30px; margin-bottom:30px; border-radius:var(--radius) }
.blog-sidebar .widget-title { font-size:1rem; font-weight:600; margin-bottom:20px; color:var(--primary-color) }

/* ==========================================================================
   ARCHIVE CARDS
   ========================================================================== */
.archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.archive-card {
    background: var(--white);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.archive-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-hover) }
.card-image-link { display:block }
.card-image { position:relative; height:240px; overflow:hidden }
.card-image img { width:100%; height:100%; object-fit:cover; transition:var(--transition) }
.archive-card:hover .card-image img { transform:scale(1.08) }
.card-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: var(--button-color);
    color: var(--white);
    padding: 6px 16px;
    font-size: .75rem;
    font-weight: 600;
    border-radius: var(--radius-pill);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.card-price-badge {
    position: absolute;
    bottom: 15px;
    right: 15px;
    background: var(--primary-color);
    color: var(--white);
    padding: 8px 16px;
    font-size: .9rem;
    font-weight: 700;
    border-radius: var(--radius-pill);
}
.card-content { padding:25px }
.card-meta { display:inline-block; font-size:.85rem; color:var(--text-light); margin-bottom:10px }
.card-meta-row { display:flex; flex-wrap:wrap; gap:15px; margin-bottom:10px }
.card-title { font-size:1.25rem; font-weight:600; margin-bottom:12px; line-height:1.4 }
.card-title a { color:var(--primary-color); transition:var(--transition) }
.card-title a:hover { color:var(--button-color) }
.card-excerpt { margin-bottom:20px }
.card-excerpt p { color:var(--text-light); font-size:.95rem; margin-bottom:0 }
.card-footer { display:flex; justify-content:space-between; align-items:center; padding-top:15px; border-top:1px solid var(--border-color) }
.card-link { font-size:.9rem; font-weight:500; color:var(--button-color) }
.card-link:hover { color:var(--primary-color) }
.card-price-info { display:flex; align-items:baseline; gap:5px }
.card-price-info .price { font-size:1.25rem; font-weight:700; color:var(--button-color) }
.card-price-info .price-label { font-size:.85rem; color:var(--text-light) }

/* No Posts */
.no-posts-message { text-align:center; padding:60px 20px; background:var(--light-bg); border-radius:var(--radius) }
.no-posts-message h3 { margin-bottom:15px; color:var(--primary-color) }
.no-posts-message p { color:var(--text-light); margin-bottom:25px }

/* ==========================================================================
   SINGLE PAGE HERO
   ========================================================================== */
.single-hero {
    position: relative;
    min-height: 50vh;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    padding: 80px 0 60px;
}
.single-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent 20%,rgba(28,63,86,.9) 100%);
}
.single-hero .container { position:relative; z-index:1 }
.single-hero-content { color:var(--white); max-width:800px }
.single-hero h1 { color:var(--white); font-size:clamp(2rem,4vw,3rem); margin-bottom:15px; line-height:1.2 }
.single-hero-meta { font-size:1.1rem; opacity:.9 }
.single-hero-meta-row { display:flex; flex-wrap:wrap; gap:25px; margin-top:20px }
.single-hero-meta-row .meta-item { font-size:1rem; opacity:.9 }
.single-hero-meta-row .price-meta { background:var(--button-color); padding:8px 20px; border-radius:var(--radius-pill); font-weight:600; opacity:1 }

/* Blog Hero */
.blog-hero { min-height:45vh }
.blog-content-section .single-content-grid { grid-template-columns:1fr 320px }

/* Breadcrumb */
.breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:20px; font-size:.9rem }
.breadcrumb a { color:rgba(255,255,255,.8); transition:var(--transition) }
.breadcrumb a:hover { color:var(--white) }
.breadcrumb .separator { color:rgba(255,255,255,.5) }
.breadcrumb .current { color:var(--white) }

/* Post Categories */
.post-categories { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:15px }
.category-tag {
    background: var(--button-color);
    color: var(--white);
    padding: 6px 16px;
    border-radius: var(--radius-pill);
    font-size: .8rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .5px;
    transition: var(--transition);
}
.category-tag:hover { background:var(--button-hover) }
.post-meta { display:flex; flex-wrap:wrap; gap:20px; margin-top:20px; font-size:.95rem; opacity:.9 }
.post-meta .meta-item { display:flex; align-items:center; gap:6px }

/* ==========================================================================
   SINGLE CONTENT
   ========================================================================== */
.single-content-section { padding:80px 0 }
.single-content-grid { display:grid; grid-template-columns:1fr 380px; gap:50px }
.single-main-content { min-width:0 }
.content-block { margin-bottom:50px }
.content-block h2 { font-size:1.75rem; color:var(--primary-color); margin-bottom:25px; padding-bottom:15px; border-bottom:2px solid var(--light-bg) }

/* Entry Content */
.entry-content { font-size:var(--body-size); line-height:1.8; color:var(--text-color) }
.entry-content p { margin-bottom:1.5rem }
.entry-content h2,.entry-content h3,.entry-content h4 { color:var(--primary-color); margin-top:2rem; margin-bottom:1rem }
.entry-content ul,.entry-content ol { margin-bottom:1.5rem; padding-left:25px }
.entry-content li { margin-bottom:.5rem }
.entry-content img { border-radius:var(--radius); margin:1.5rem 0 }
.entry-content blockquote { border-left:4px solid var(--button-color); padding-left:25px; margin:2rem 0; font-style:italic; color:var(--text-light) }

/* Features & Highlights */
.features-list { display:grid; gap:25px }
.feature-item { display:flex; gap:20px; padding:20px; background:var(--light-bg); border-radius:var(--radius) }
.feature-item .feature-icon { font-size:2rem; flex-shrink:0 }
.feature-item h4 { font-size:1.1rem; color:var(--primary-color); margin-bottom:8px }
.feature-item p { color:var(--text-light); margin-bottom:0; font-size:.95rem }

.highlights-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px }
.highlight-item { display:flex; gap:15px; padding:20px; background:var(--light-bg); border-radius:var(--radius) }
.highlight-item .highlight-icon { font-size:1.75rem; flex-shrink:0 }
.highlight-item h4 { font-size:1rem; color:var(--primary-color); margin-bottom:5px }
.highlight-item p { color:var(--text-light); margin-bottom:0; font-size:.9rem }

/* Included/Excluded Lists */
.included-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:30px }
.included-column h4 { font-size:1.1rem; color:var(--primary-color); margin-bottom:15px; padding-bottom:10px; border-bottom:2px solid var(--light-bg) }
.included-list,.excluded-list { list-style:none; padding:0; margin:0 }
.included-list li,.excluded-list li { display:flex; align-items:center; gap:12px; padding:10px 0; font-size:.95rem; color:var(--text-color); border-bottom:1px solid var(--light-bg) }
.included-list li:last-child,.excluded-list li:last-child { border-bottom:none }
.included-list li .icon { color:var(--button-color); font-weight:bold }
.excluded-list li .icon { color:var(--error-color); font-weight:bold }

/* Gallery */
.gallery-block .gallery-main img { width:100%; border-radius:var(--radius) }

/* ==========================================================================
   SIDEBAR
   ========================================================================== */
.single-sidebar { position:sticky; top:100px; height:fit-content }
.sidebar-card { background:var(--light-bg); padding:30px; border-radius:var(--radius); margin-bottom:25px }
.sidebar-card h3 { font-size:1.2rem; color:var(--primary-color); margin-bottom:20px }

/* Booking Card */
.booking-card { background:var(--primary-color); color:var(--white) }
.booking-card h3 { color:var(--white) }
.price-display { text-align:center; margin-bottom:25px; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.2) }
.price-display .price-amount { display:block; font-size:1.5rem; font-weight:700; color:var(--white) }
.price-display .price-per { font-size:1rem; opacity:.8 }
.booking-info { margin-bottom:25px; text-align:left }
.booking-info .info-row { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:.95rem; text-align:left }
.booking-info .info-row:last-child { border-bottom:none }
.booking-info .info-row .icon { margin-right:8px; flex-shrink:0 }
.booking-info .info-row .label { opacity:.8; flex:1; text-align:left }
.booking-info .info-row .value { font-weight:600; text-align:right; flex-shrink:0 }
.booking-card .btn-outline-dark { background:transparent; color:var(--white); border-color:var(--white) }
.booking-card .btn-outline-dark:hover { background:var(--white); color:var(--primary-color) }

/* Contact Card */
.contact-card p { color:var(--text-light); margin-bottom:20px; font-size:.95rem }
.contact-info .contact-item { display:flex; align-items:center; gap:12px; padding:10px 0; font-size:.95rem }
.contact-info .contact-item .icon { font-size:1.2rem }
.contact-info .contact-item a { color:var(--primary-color); font-weight:500 }
.contact-info .contact-item a:hover { color:var(--button-color) }

/* Guarantee Card */
.guarantee-card { text-align:center; background:rgba(75,134,80,.1); border:1px solid var(--button-color) }
.guarantee-card .guarantee-icon { width:50px; height:50px; background:var(--button-color); color:var(--white); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 15px; font-size:1.5rem; font-weight:bold }
.guarantee-card h4 { font-size:1.1rem; color:var(--primary-color); margin-bottom:10px }
.guarantee-card p { color:var(--text-light); font-size:.9rem; margin-bottom:0 }

/* CTA Card */
.cta-card { background:var(--primary-color); color:var(--white); text-align:center }
.cta-card h3 { color:var(--white) }
.cta-card p { color:rgba(255,255,255,.85); margin-bottom:20px }

/* ==========================================================================
   BLOG SINGLE ELEMENTS
   ========================================================================== */
.post-tags { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:25px 0; border-top:1px solid var(--border-color); border-bottom:1px solid var(--border-color); margin-bottom:40px }
.tags-label { font-weight:600; color:var(--primary-color) }
.tag-link { background:var(--light-bg); color:var(--text-light); padding:6px 14px; border-radius:var(--radius-pill); font-size:.85rem; transition:var(--transition) }
.tag-link:hover { background:var(--primary-color); color:var(--white) }

/* Author Box */
.author-box { display:flex; gap:25px; padding:30px; background:var(--light-bg); border-radius:var(--radius); margin-bottom:40px }
.author-avatar img { width:100px; height:100px; border-radius:15px; object-fit:cover }
.author-info .author-label { font-size:.85rem; color:var(--text-light); text-transform:uppercase; letter-spacing:.5px }
.author-info .author-name { font-size:1.25rem; color:var(--primary-color); margin:5px 0 10px }
.author-info .author-bio { color:var(--text-light); font-size:.95rem; margin-bottom:0 }

/* Post Navigation */
.post-navigation { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:40px }
.post-navigation a { display:block; padding:20px; background:var(--light-bg); border-radius:var(--radius); transition:var(--transition) }
.post-navigation a:hover { background:var(--primary-color) }
.post-navigation a:hover .nav-label,.post-navigation a:hover .nav-title { color:var(--white) }
.post-navigation .nav-label { display:block; font-size:.85rem; color:var(--text-light); margin-bottom:5px }
.post-navigation .nav-title { font-weight:600; color:var(--primary-color); font-size:1rem }
.post-navigation .nav-next { text-align:right }

/* Sidebar Widgets */
.search-form { display:flex; gap:10px }
.search-field { flex:1; padding:12px 16px; border:1px solid var(--border-color); border-radius:var(--radius-pill); font-size:.95rem }
.search-field:focus { outline:none; border-color:var(--button-color) }
.search-submit { width:48px; height:48px; background:var(--button-color); color:var(--white); border:none; border-radius:50%; cursor:pointer; transition:var(--transition) }
.search-submit:hover { background:var(--button-hover) }

.categories-list { list-style:none; padding:0; margin:0 }
.categories-list li { border-bottom:1px solid var(--border-color) }
.categories-list li:last-child { border-bottom:none }
.categories-list li a { display:flex; justify-content:space-between; padding:12px 0; color:var(--text-color); font-size:.95rem; transition:var(--transition) }
.categories-list li a:hover { color:var(--button-color); padding-left:10px }
.categories-list .count { color:var(--text-light); font-size:.85rem }

.recent-posts-list { list-style:none; padding:0; margin:0 }
.recent-post-item { margin-bottom:15px; padding-bottom:15px; border-bottom:1px solid var(--border-color) }
.recent-post-item:last-child { margin-bottom:0; padding-bottom:0; border-bottom:none }
.recent-post-item a { display:flex; gap:15px }
.recent-post-thumb { width:70px; height:70px; flex-shrink:0; border-radius:var(--radius); overflow:hidden }
.recent-post-thumb img { width:100%; height:100%; object-fit:cover }
.recent-post-info h4 { font-size:.95rem; font-weight:600; color:var(--primary-color); margin-bottom:5px; line-height:1.4; transition:var(--transition) }
.recent-post-item a:hover .recent-post-info h4 { color:var(--button-color) }
.recent-post-info .date { font-size:.8rem; color:var(--text-light) }

/* ==========================================================================
   PAGE TEMPLATES
   ========================================================================== */
.page-header { background:var(--primary-color); padding:150px 0 80px; text-align:center }
.page-header h1 { color:var(--white); margin-bottom:15px; font-size:clamp(2rem,4vw,var(--h1-size)) }
.page-header p { color:rgba(255,255,255,.85); font-size:1.1rem }
.page-content { padding:80px 0 }
.page-content .container { max-width:800px }

/* Contact Page */
.contact-section { padding:80px 0 }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px }
.contact-info h3 { margin-bottom:20px }
.contact-info p { margin-bottom:30px; color:var(--text-light) }
.contact-details { margin-bottom:30px }
.contact-item { display:flex; align-items:center; gap:15px; margin-bottom:20px }
.contact-item-icon { width:50px; height:50px; background:var(--light-bg); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.2rem }
.contact-item-text h6 { margin-bottom:3px }
.contact-item-text a { color:var(--text-light) }
.contact-item-text a:hover { color:var(--button-color) }

/* Contact Form */
.contact-form { background:var(--light-bg); padding:40px; border-radius:var(--radius) }
.contact-form h3 { margin-bottom:25px; color:var(--primary-color) }
.form-group { margin-bottom:20px }
.form-group label { display:block; margin-bottom:8px; font-weight:500; color:var(--primary-color) }
.form-group input,.form-group textarea,.form-group select {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: var(--font-primary);
    transition: var(--transition);
    background: var(--white);
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { outline:none; border-color:var(--button-color); box-shadow:0 0 0 3px rgba(75,134,80,.15) }
.form-group textarea { min-height:150px; resize:vertical }
.form-group input.error,.form-group textarea.error,.form-group select.error { border-color:var(--error-color) }

/* About Page */
.about-section { padding:80px 0 }
.about-content { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center }
.about-text h2 { margin-bottom:20px }
.about-text p { color:var(--text-light); margin-bottom:15px }
.about-image img { border-radius:16px; box-shadow:var(--shadow) }

/* Destination Archive & Single */
.destinations-archive-section { padding:80px 0 }
.destinations-archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px }
.single-destination-content { padding:80px 0 }
.destination-hero { position:relative; height:60vh; min-height:400px; background-size:cover; background-position:center; display:flex; align-items:flex-end }
.destination-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(transparent 50%,rgba(28,63,86,.85)) }
.destination-hero-content { position:relative; z-index:1; padding:50px; color:var(--white); width:100% }
.destination-hero-content h1 { color:var(--white); font-size:clamp(2rem,4vw,3rem); margin-bottom:10px }
.destination-meta { display:flex; gap:30px; margin-top:20px }
.destination-meta-item { display:flex; align-items:center; gap:8px; font-size:.95rem }
.destination-details { display:grid; grid-template-columns:2fr 1fr; gap:50px; padding:60px 0 }
.destination-description h2 { font-size:1.8rem; margin-bottom:20px; color:var(--primary-color) }
.destination-description p { margin-bottom:20px; line-height:1.8 }
.destination-sidebar { background:var(--light-bg); padding:30px; border-radius:var(--radius); height:fit-content }
.destination-sidebar h3 { font-size:1.2rem; margin-bottom:20px; color:var(--primary-color) }
.destination-info-list { list-style:none }
.destination-info-list li { padding:12px 0; border-bottom:1px solid var(--border-color); display:flex; justify-content:space-between }
.destination-info-list li:last-child { border-bottom:none }
.destination-info-list li strong { color:var(--primary-color) }

/* ==========================================================================
   CONTACT FORM 7
   ========================================================================== */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="date"],
.wpcf7-form textarea,
.wpcf7-form select {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: var(--font-primary);
    transition: var(--transition);
    background: var(--white);
    margin-bottom: 20px;
}
.wpcf7-form input:focus,.wpcf7-form textarea:focus { outline:none; border-color:var(--button-color); box-shadow:0 0 0 3px rgba(75,134,80,.15) }
.wpcf7-form input[type="submit"] { background:var(--button-color); color:var(--white); border:1px solid var(--white); border-radius:var(--radius-pill); padding:14px 32px; font-weight:500; cursor:pointer; font-size: var(--wp--preset--font-size--normal); }
.wpcf7-form input[type="submit"]:hover { background:var(--button-hover) }

/* Radio & Checkbox */
.wpcf7-form .wpcf7-radio,.wpcf7-form .wpcf7-checkbox { display:flex; flex-wrap:wrap; gap:15px; margin-bottom:20px }
.wpcf7-form .wpcf7-list-item { margin:0 }
.wpcf7-form input[type="radio"],.wpcf7-form input[type="checkbox"] { display:none }
.wpcf7-form input[type="radio"] + span,.wpcf7-form input[type="checkbox"] + span {
    display: inline-flex;
    align-items: center;
    padding: 12px 24px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-pill);
    cursor: pointer;
    font-size: .95rem;
    transition: var(--transition);
    background: var(--white);
}
.wpcf7-form input[type="radio"] + span:hover,.wpcf7-form input[type="checkbox"] + span:hover { border-color:var(--button-color) }
.wpcf7-form input[type="radio"]:checked + span,.wpcf7-form input[type="checkbox"]:checked + span { background:var(--button-color); color:var(--white); border-color:var(--button-color) }

/* Validation */
.wpcf7-form .wpcf7-not-valid { border-color:var(--error-color) !important }
.wpcf7-form .wpcf7-not-valid-tip { color:var(--error-color); font-size:.85rem; margin-top:-15px; margin-bottom:15px }
.wpcf7-form .wpcf7-response-output { border-radius:var(--radius); padding:15px 20px; margin:20px 0 0; font-size:.95rem }
.wpcf7-form.sent .wpcf7-response-output { background:rgba(75,134,80,.1); border-color:var(--button-color); color:var(--button-color) }
.wpcf7-form.failed .wpcf7-response-output { background:rgba(231,76,60,.1); border-color:var(--error-color); color:var(--error-color) }

/* Passengers & Dates Row */
.passengers-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:20px }
.dates-row { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-bottom:20px }
.passenger-field label,.date-field label { display:block; margin-bottom:8px; font-weight:500; color:var(--primary-color) }
.passenger-field select,.passenger-field .wpcf7-select {
    width: 100%;
    padding: 14px 18px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    font-size: 1rem;
    background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23636e72' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 15px center;
    cursor: pointer;
    appearance: none;
}
.passenger-field select:focus,.date-field input[type="date"]:focus { outline:none; border-color:var(--button-color); box-shadow:0 0 0 3px rgba(75,134,80,.15) }
.date-field input[type="date"],.date-field .wpcf7-date { width:100%; padding:14px 18px; border:1px solid var(--border-color); border-radius:var(--radius); font-size:1rem; background:var(--white); cursor:pointer }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { background:var(--primary-color); color:var(--white); padding:70px 0 30px }
.footer-inner { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:50px; margin-bottom:50px }
.footer-about h5,.footer-contact h5,.footer-social h5 { color:var(--white); font-size:.85rem; font-weight:600; margin-bottom:20px; text-transform:uppercase; letter-spacing:1px }
.footer-about p { opacity:.85; line-height:1.8; font-size:.95rem }
.footer-contact p { margin-bottom:12px; opacity:.85; font-size:.95rem }
.footer-contact a { color:var(--white); opacity:.85 }
.footer-contact a:hover { opacity:1 }
.footer-social .social-icons { display:flex; gap:15px; margin-top:15px }
.footer-social .social-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:var(--white); transition:var(--transition); font-size:1.1rem }
.footer-social .social-icon:hover { background:var(--button-color); border-color:var(--button-color) }
.footer-social .social-icon svg { width:18px; height:18px; fill:currentColor }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:25px; text-align:center; font-size:.9rem; opacity:.75 }
.footer-bottom a { color:var(--white); opacity:.9 }
.footer-bottom a:hover { opacity:1; text-decoration:underline }

/* ==========================================================================
   PAGINATION
   ========================================================================== */
.pagination { display:flex; justify-content:center; gap:10px; margin-top:50px }
.pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; width:45px; height:45px; background:var(--light-bg); color:var(--primary-color); font-weight:500; border-radius:var(--radius-pill); transition:var(--transition) }
.pagination .page-numbers:hover,.pagination .page-numbers.current { background:var(--button-color); color:var(--white) }

/* ==========================================================================
   ANIMATIONS
   ========================================================================== */
@keyframes fadeInUp {
    from { opacity:0; transform:translateY(30px) }
    to { opacity:1; transform:translateY(0) }
}
.animate-fade-in-up { animation:fadeInUp .6s ease forwards }

/* ==========================================================================
   WORDPRESS DEFAULTS
   ========================================================================== */
.alignleft { float:left; margin-right:20px; margin-bottom:10px }
.alignright { float:right; margin-left:20px; margin-bottom:10px }
.aligncenter { display:block; margin:0 auto 20px }
.wp-caption { max-width:100% }
.wp-caption-text { font-size:.9rem; color:var(--text-light); margin-top:8px }
.screen-reader-text { clip:rect(1px,1px,1px,1px); position:absolute !important; height:1px; width:1px; overflow:hidden }

/* ==========================================================================
   RESPONSIVE - TABLET (1024px)
   ========================================================================== */
@media (max-width:1024px) {
    :root { --h1-size:48px }
    .features-grid,.destinations-grid,.tours-grid,.blog-grid,.archive-grid { grid-template-columns:repeat(2,1fr) }
    .single-content-grid,.blog-content-section .single-content-grid { grid-template-columns:1fr; gap:40px }
    .single-sidebar { position:static }
    .highlights-grid,.included-grid { grid-template-columns:1fr }
    .footer-inner { grid-template-columns:1fr 1fr; gap:40px }
    .footer-social { grid-column:span 2 }
    .contact-grid,.about-content { grid-template-columns:1fr; gap:40px }
}

/* ==========================================================================
   RESPONSIVE - MOBILE (768px)
   ========================================================================== */
@media (max-width:768px) {
    :root { --h1-size:36px; --body-size:15px }
    
    /* Mobile Menu */
    .menu-toggle { display:flex }
    .main-navigation { position:fixed; top:0; right:-100%; width:80%; max-width:320px; height:100vh; background:var(--white); flex-direction:column; padding:100px 30px 30px; transition:var(--transition); box-shadow:var(--shadow-hover) }
    .main-navigation.active { right:0 }
    .nav-menu { flex-direction:column; gap:20px; width:100% }
    .nav-menu li a { color:var(--primary-color); font-size:1.1rem }
    .nav-cta { width:100% }
    .nav-cta .btn { width:100%; background:var(--button-color) !important; color:var(--white) !important; border-color:var(--button-color) !important }
    
    /* Grids */
    .features-grid,.destinations-grid,.reviews-grid,.tours-grid,.blog-grid,.archive-grid,.destinations-features,.tour-highlights-grid { grid-template-columns:1fr }
    
    /* Footer */
    .footer-inner { grid-template-columns:1fr }
    .footer-social { grid-column:auto }
    
    /* Sections */
    .section-header,.why-choose-section,.destinations-section,.reviews-section { padding:70px 0 }
    .feature-card,.review-card,.contact-form { padding:30px 25px }
    .hero-content { padding:0 15px }
    .hero-content p { font-size:1rem }
    .btn { padding:12px 28px }
    .btn-large { padding:14px 32px }
    
    /* Single Pages */
    .single-content-grid,.blog-content-section .single-content-grid { display:flex; flex-direction:column; gap:40px }
    .single-main-content { width:100%; order:1 }
    .single-sidebar,.blog-sidebar { width:100%; order:2; position:static }
    .single-hero { min-height:50vh; padding-top:100px; padding-bottom:40px }
    .blog-hero { min-height:45vh; padding-top:100px }
    .single-hero h1 { font-size:1.75rem }
    .single-hero-content { padding-top:20px }
    .breadcrumb { font-size:.8rem; margin-bottom:15px }
    .single-hero-meta-row { flex-direction:column; gap:12px }
    body.has-announcement .single-hero,body.has-announcement .blog-hero { padding-top:160px }
    .post-navigation { grid-template-columns:1fr }
    .author-box { flex-direction:column; text-align:center }
    .author-avatar img { margin:0 auto }
    .feature-item,.highlight-item { flex-direction:column; text-align:center }
    
    /* Announcement */
    .announcement-bar { padding:10px 0 }
    .announcement-item { flex-direction:column; gap:8px }
    .announcement-message { font-size:.85rem }
    body.has-announcement .site-header { top:60px }
    body.has-announcement .hero-section { padding-top:60px }
    body.has-announcement .page-header { padding-top:180px }
    body.has-announcement .single-hero { padding-top:120px }
    
    /* Forms */
    .passengers-row,.dates-row { grid-template-columns:1fr; gap:15px }
}

/* ==========================================================================
   RESPONSIVE - SMALL MOBILE (480px)
   ========================================================================== */
@media (max-width:480px) {
    :root { --h1-size:28px }
    .btn { padding:12px 24px; font-size:.9rem }
    .destination-image { height:280px }
    .page-header { padding:120px 0 50px }
    .hero-content h1 { font-size:2rem }
    .single-hero { padding-top:90px; min-height:40vh }
    .blog-hero { padding-top:90px; min-height:35vh }
    .single-hero h1 { font-size:1.5rem }
    .breadcrumb { font-size:.75rem; gap:6px }
    body.has-announcement .single-hero,body.has-announcement .blog-hero { padding-top:150px }
    .post-categories { gap:6px }
    .category-tag { padding:4px 12px; font-size:.7rem }
    .post-meta { flex-direction:column; gap:10px }
}
