/* Blog card styles are defined below in the main Blog Card section */

/*
Theme Name: TravelSuggest
Theme URI: https://travelsuggest.com
Author: TravelSuggest Team
Author URI: https://travelsuggest.com
Description: A modern travel suggestions theme with personalized recommendations. Features a clean, minimalist design with customizable colors, tabbed interface, and responsive layout.
Version: 4.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: travelsuggest
Tags: travel, ai, custom-colors, custom-menu, featured-images, threaded-comments, translation-ready, blog, one-column, two-columns, left-sidebar, right-sidebar, custom-background, custom-header, custom-logo, editor-style, sticky-post, accessibility-ready

TravelSuggest WordPress Theme, Copyright 2025
TravelSuggest is distributed under the terms of the GNU GPL
*/

/* ========================================
   CSS Custom Properties (Variables)
   ======================================== */
:root {
    --color-primary: #2b2d42;
    --color-secondary: #f8961e;
    --color-accent: #e9d8a6;
    --color-white: #ffffff;
    --color-black: #000000;
    --color-gray-light: #f5f5f5;
    --color-gray-medium: #cccccc;
    --color-gray-dark: #666666;
    --color-text: #333333;

    --font-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
    --font-size-base: 16px;
    --font-size-small: 14px;
    --font-size-large: 18px;
    --font-size-h1: 2.5rem;
    --font-size-h2: 2rem;
    --font-size-h3: 1.75rem;
    --font-size-h4: 1.5rem;

    --spacing-xs: 0.5rem;
    --spacing-sm: 1rem;
    --spacing-md: 1.5rem;
    --spacing-lg: 2rem;
    --spacing-xl: 3rem;

    --border-radius: 8px;
    --transition-speed: 0.3s;
    --header-height: 80px;
    --max-width: 1200px;
    /* Offset so tabs end at the search icon (adjust as needed) */
    --header-right-offset: 120px;
}

/* ========================================
   Reset & Base Styles
   ======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: var(--font-size-base);
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-primary);
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-white);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-speed) ease;
}

a:hover,
a:focus {
    color: var(--color-secondary);
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

/* Skip to content link for accessibility */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--color-primary);
    color: var(--color-white);
    padding: var(--spacing-sm);
    z-index: 100;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}

/* ========================================
   Typography
   ======================================== */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
}

h1 { font-size: var(--font-size-h1); }
h2 { font-size: var(--font-size-h2); }
h3 { font-size: var(--font-size-h3); }
h4 { font-size: var(--font-size-h4); }

p {
    margin-bottom: var(--spacing-md);
}

/* ========================================
   Breadcrumbs
   ======================================== */
.ts-breadcrumbs {
    margin-bottom: 1.5rem;
    padding: 0.75rem 0;
    overflow: hidden;
}

.ts-breadcrumbs__list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.875rem;
    overflow: hidden;
}

.ts-breadcrumbs__item {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    min-width: 0;
}

.ts-breadcrumbs__item:last-child {
    flex-shrink: 1;
    min-width: 0;
    overflow: hidden;
}

.ts-breadcrumbs__item:not(:last-child)::after {
    content: '/';
    margin-left: 0.5rem;
    color: #d1d5db;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.ts-breadcrumbs__link {
    color: #6b7280;
    text-decoration: none;
    transition: color 0.2s ease;
    white-space: nowrap;
}

.ts-breadcrumbs__link:hover {
    color: var(--color-secondary);
    text-decoration: underline;
}

.ts-breadcrumbs__current {
    color: var(--color-primary);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

@media (max-width: 768px) {
    .ts-breadcrumbs {
        margin-bottom: 1rem;
        padding: 0.5rem 0;
    }

    .ts-breadcrumbs__list {
        font-size: 0.8125rem;
    }

    .ts-breadcrumbs__item:last-child {
        max-width: 200px;
    }
}

@media (max-width: 480px) {
    .ts-breadcrumbs__item:last-child {
        max-width: 120px;
    }
}

/* ========================================
   Layout Structure
   ======================================== */
.site-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-content {
    flex: 1;
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--spacing-lg);
}

/* Allow content to grow naturally on home page */
body.page-template-template-home {
    overflow-x: hidden;
}

/* OLD FULL HEIGHT DESIGN - DISABLED - using minimal redesign instead */

/* Content with Sidebar Layout */
.content-sidebar-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
    margin-top: var(--spacing-lg);
}

@media (min-width: 768px) {
    .content-sidebar-wrap.has-sidebar {
        grid-template-columns: 2fr 1fr;
    }

    .content-sidebar-wrap.has-sidebar.sidebar-left {
        grid-template-columns: 1fr 2fr;
    }

    .content-sidebar-wrap.has-sidebar.sidebar-left .main-content {
        order: 2;
    }

    .content-sidebar-wrap.has-sidebar.sidebar-left .sidebar {
        order: 1;
    }
}

.main-content {
    width: 100%;
}

/* Full-width layout when sidebar is hidden */
.content-sidebar-wrap:not(.has-sidebar) .main-content {
    max-width: 100%;
}





/* User Menu */








/* ========================================
   Sidebar Styles
   ======================================== */
.sidebar {
    background-color: var(--color-gray-light);
    padding: var(--spacing-lg);
    border-radius: var(--border-radius);
}

/* Sticky sidebar on single posts */
body.single .sidebar {
    position: sticky;
    top: 2rem;
    align-self: start;
}

.sidebar .widget {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
    border-bottom: 1px solid var(--color-gray-medium);
}

.sidebar .widget:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.sidebar .widget-title {
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
    padding-bottom: 10px;
    border-bottom: 3px solid var(--color-secondary);
    position: relative;
    letter-spacing: -0.01em;
}

.sidebar .widget-title::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 40px;
    height: 3px;
}

.sidebar ul {
    list-style: none;
    padding: 0;
}

.sidebar ul li {
    margin-bottom: var(--spacing-xs);
}

.sidebar ul li a {
    color: var(--color-text);
    transition: color var(--transition-speed) ease;
}

.sidebar ul li a:hover,
.sidebar ul li a:focus {
    color: var(--color-secondary);
}

/* Mobile Sidebar - Always visible, stacked below content */
.sidebar-toggle {
    display: none !important;
}

@media (max-width: 767px) {
    .sidebar {
        display: block !important;
        margin-top: var(--spacing-lg);
    }
}

/* ========================================
   Custom Widget Styles
   ======================================== */

/* Tools Widget */
.ts-tools-widget {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ts-tool-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
    border: 1px solid #fed7aa;
    border-radius: 8px;
    text-decoration: none;
    color: var(--color-text);
    transition: all 0.3s ease;
    font-weight: 500;
}

.ts-tool-item:hover,
.ts-tool-item:focus {
    background: linear-gradient(135deg, #ffedd5 0%, #fed7aa 100%);
    border-color: var(--color-secondary);
    transform: translateX(4px);
    box-shadow: 0 2px 8px rgba(248, 150, 30, 0.2);
    outline: none;
}

.ts-tool-icon {
    font-size: 20px;
    line-height: 1;
    flex-shrink: 0;
}

.ts-tool-name {
    font-size: 14px;
    line-height: 1.4;
}

/* Popular Destinations Widget */
.ts-popular-destinations-widget {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ts-destination-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    text-decoration: none;
    color: var(--color-text);
    transition: all 0.3s ease;
}

.ts-destination-item:hover,
.ts-destination-item:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 2px 8px rgba(248, 150, 30, 0.15);
    transform: translateX(2px);
    outline: none;
}

.ts-destination-thumbnail {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    background: #f3f4f6;
}

.ts-destination-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.ts-destination-item:hover .ts-destination-thumbnail img {
    transform: scale(1.1);
}

.ts-destination-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ts-destination-name {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color-text);
}

.ts-destination-item:hover .ts-destination-name {
    color: var(--color-secondary);
}

.ts-destination-subtitle {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    color: #6b7280;
    font-style: italic;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Blog Articles Widget */
.ts-blog-articles-widget {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ts-blog-article-item {
    display: flex;
    gap: 12px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e7eb;
}

.ts-blog-article-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.ts-article-thumbnail {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 6px;
    overflow: hidden;
}

.ts-article-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.ts-article-thumbnail:hover img {
    transform: scale(1.05);
}

.ts-article-content {
    flex: 1;
    min-width: 0;
}

.ts-article-title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 0 6px 0;
}

.ts-article-title a {
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ts-article-title a:hover,
.ts-article-title a:focus {
    color: var(--color-secondary);
    outline: none;
}

.ts-article-meta {
    font-size: 12px;
    color: #6b7280;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ts-meta-separator {
    color: #6b7280; /* match meta text for better contrast */
    font-weight: 700;
    font-size: 14px;
    line-height: 1;
}

/* Popular Comparisons Widget */
.ts-popular-comparisons-widget {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ts-popular-comparisons-widget li {
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e5e7eb;
}

.ts-popular-comparisons-widget li:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.ts-popular-comparisons-widget li a {
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.2s ease;
    display: block;
    padding: 4px 0;
}

.ts-popular-comparisons-widget li a:hover,
.ts-popular-comparisons-widget li a:focus {
    color: var(--color-secondary);
    outline: none;
}
.ts-popular-comparisons-cta { display:block; margin-top: 10px; text-align:center; padding: 8px 12px; font-size: 0.9rem; }


/* ========================================
   Tabbed Interface Styles
   ======================================== */
.tabs-container {
    background-color: var(--color-white);
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin: var(--spacing-lg) 0;
}

/* Full height tabs on home page - DISABLED - using minimal redesign instead */
/* These styles are overridden by the minimal redesign section below */

.tab-navigation {
    display: flex;
    background: linear-gradient(135deg, var(--color-primary) 0%, #1a1c2e 100%);
    padding: var(--spacing-xs);
    gap: var(--spacing-xs);
    position: relative;
}

.tab-navigation::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
}

.tab-button {
    flex: 1;
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-base);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    letter-spacing: 0.3px;
}

.tab-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: 12px;
}

.tab-button:hover::before {
    opacity: 1;
}

.tab-button:hover {
    color: var(--color-white);
    transform: translateY(-2px);
}

.tab-button:focus {
    outline: none;
    /* box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.3); */
}

.tab-button.active {
    /* background: linear-gradient(135deg, var(--color-secondary) 0%, #ff9a00 100%); */
    color: var(--color-white);
    /* box-shadow: 0 4px 15px rgba(248, 150, 30, 0.4); */
    transform: translateY(-2px);
}

.tab-button.active::before {
    opacity: 0;
}

.tab-button.active::after {
    content: '';
    position: absolute;
    /* bottom: -2px; */
    /* left: 50%; */
    /* transform: translateX(-50%); */
    /* width: 40px;
    height: 3px; */
    /* background-color: var(--color-accent); */
    /* border-radius: 3px 3px 0 0; */
    /* box-shadow: 0 -2px 10px rgba(233, 216, 166, 0.5); */
}

/* Tab icon/number */
.tab-button .tab-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    margin-right: var(--spacing-xs);
    font-size: 13px;
    font-weight: 700;
    transition: all 0.3s ease;
}

.tab-button.active .tab-number {
    background: rgba(255, 255, 255, 0.25);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.tab-content {
    /* padding: var(--spacing-xl); */
    background: linear-gradient(to bottom, #ffffff 0%, #fafafa 100%);
}

/* Full height tab content on home page - DISABLED - using minimal redesign instead */

.tab-panel {
    display: none;
    animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.tab-panel.active {
    display: block;
}

/* Full height tab panels on home page - DISABLED - using minimal redesign instead */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Loading state for submit button */
.submit-button.loading {
    pointer-events: none;
    opacity: 0.7;
}

.submit-button.loading::after {
    content: '';
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: white;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(-5px);
    }
    20%, 40%, 60%, 80% {
        transform: translateX(5px);
    }
}

/* Character counter for textarea */
.character-count {
    text-align: right;
    font-size: var(--font-size-small);
    color: var(--color-gray-dark);
    margin-top: var(--spacing-xs);
    font-weight: 500;
    flex-shrink: 0;
}

.character-count.warning {
    color: var(--color-secondary);
}

/* Helpful tips section */
.form-tips {
    background: linear-gradient(135deg, #fff9e6 0%, #fff3d6 100%);
    border-left: 4px solid var(--color-secondary);
    padding: var(--spacing-md);
    border-radius: 8px;
    margin-top: var(--spacing-lg);
}

/* Compact tips on home page */
body.page-template-template-home .form-tips {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
}

body.page-template-template-home .form-tips h3 {
    font-size: var(--font-size-small);
    margin-bottom: var(--spacing-xs);
}

body.page-template-template-home .form-tips ul {
    font-size: var(--font-size-small);
}

body.page-template-template-home .form-tips li {
    margin-bottom: 2px;
}

.form-tips h3 {
    color: var(--color-primary);
    font-size: var(--font-size-base);
    margin-bottom: var(--spacing-sm);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.form-tips h3::before {
    content: '💡';
    font-size: 1.2em;
}

.form-tips ul {
    margin: 0;
    padding-left: var(--spacing-lg);
    color: var(--color-gray-dark);
}

.form-tips li {
    margin-bottom: var(--spacing-xs);
    line-height: 1.6;
}

.form-tips li:last-child {
    margin-bottom: 0;
}

/* Smooth scroll behavior */
html {
    scroll-behavior: smooth;
}

/* Focus visible for better accessibility */
*:focus-visible {
    outline: 3px solid var(--color-secondary);
    outline-offset: 2px;
}

/* Tab button text wrapping on smaller screens */
.tab-button .tab-label {
    display: inline-block;
}

/* Add subtle pulse animation to active tab */
@keyframes pulse {
    0%, 100% {
        box-shadow: 0 4px 15px rgba(248, 150, 30, 0.4);
    }
    50% {
        box-shadow: 0 4px 20px rgba(248, 150, 30, 0.6);
    }
}

.tab-button.active {
    animation: pulse 2s ease-in-out infinite;
}

/* Improve form accessibility */
.form-group label .required {
    font-size: 1.2em;
}

/* Add visual feedback on textarea interaction */
.form-group textarea:not(:placeholder-shown) {
    border-color: var(--color-primary);
}

/* Success state for character counter */
.character-count::before {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 0;
    transition: all 0.3s ease;
}

.character-count:not(.warning)::before {
    width: 16px;
    height: 16px;
    margin-right: 6px;
}

/* Tab 1: Vacation Input */
.vacation-input-form {
    max-width: 800px;
    margin: 0 auto;
}

/* Full height form on home page - DISABLED */
body.page-template-template-home .vacation-input-form {
    display: block;
    max-width: 700px;
}

.vacation-input-form h2 {
    text-align: center;
    margin-bottom: var(--spacing-xs);
    color: var(--color-primary);
    font-size: 1.75rem;
    font-weight: 700;
    flex-shrink: 0;
}

.vacation-input-form > p {
    text-align: center;
    color: var(--color-gray-dark);
    margin-bottom: var(--spacing-md);
    font-size: var(--font-size-base);
    line-height: 1.5;
    flex-shrink: 0;
}

/* Form should fill available space on home page */
body.page-template-template-home #vacation-form {
    display: block;
}

.form-group {
    margin-bottom: var(--spacing-lg);
}

/* Form group should grow on home page */
body.page-template-template-home .form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: var(--spacing-md);
}

.form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
    font-size: var(--font-size-large);
}

.form-group label .required {
    color: var(--color-secondary);
    margin-left: 4px;
}

.form-group textarea {
    width: 100%;
    min-height: 220px;
    padding: var(--spacing-lg);
    border: 2px solid #e0e0e0;
    border-radius: 12px;
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: 1.8;
    resize: vertical;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--color-white);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* Textarea should fill available space on home page */
body.page-template-template-home .form-group textarea {
    min-height: 160px;
    resize: vertical;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #9ca3af #f3f4f6;
}

/* Custom scrollbar for webkit browsers */
body.page-template-template-home .form-group textarea::-webkit-scrollbar {
    width: 8px;
}

body.page-template-template-home .form-group textarea::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 4px;
}

body.page-template-template-home .form-group textarea::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 4px;
}

body.page-template-template-home .form-group textarea::-webkit-scrollbar-thumb:hover {
    background: #6b7280;
}

.form-group textarea:hover {
    border-color: #d0d0d0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.form-group textarea:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 4px rgba(248, 150, 30, 0.1), 0 4px 20px rgba(248, 150, 30, 0.15);
    transform: translateY(-2px);
}

.form-group textarea::placeholder {
    color: #999;
    font-style: normal;
    line-height: 1.8;
}

.submit-button {
    background: linear-gradient(135deg, var(--color-secondary) 0%, #ff9a00 100%);
    color: var(--color-white);
    border: none;
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: var(--font-size-large);
    font-weight: 700;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    margin: var(--spacing-lg) auto 0;
    min-width: 240px;
    box-shadow: 0 4px 15px rgba(248, 150, 30, 0.3);
    position: relative;
    overflow: hidden;
}

/* Compact button on home page */
body.page-template-template-home .submit-button {
    margin: var(--spacing-sm) auto 0;
    flex-shrink: 0;
}

.submit-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s ease;
}

.submit-button:hover::before {
    left: 100%;
}

.submit-button:hover,
.submit-button:focus {
    background: linear-gradient(135deg, var(--color-primary) 0%, #1a1c2e 100%);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(43, 45, 66, 0.4);
}

.submit-button:active {
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(43, 45, 66, 0.3);
}

.submit-button:focus {
    outline: none;
    box-shadow: 0 0 0 4px rgba(248, 150, 30, 0.3), 0 8px 25px rgba(43, 45, 66, 0.4);
}

/* Submit button - no arrow */
.submit-button::after {
    display: none;
}

/* Tab 2: Quiz */
.quiz-container {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

/* Full height quiz on home page - DISABLED */
body.page-template-template-home .quiz-container {
    display: block;
    max-width: 700px;
    margin: 0 auto;
}

.quiz-container h2 {
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
    font-size: 2rem;
    font-weight: 700;
}

.quiz-placeholder {
    padding: var(--spacing-xl) var(--spacing-lg);
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 16px;
    border: 2px dashed #d0d0d0;
    position: relative;
    overflow: hidden;
    margin-top: var(--spacing-lg);
}

.quiz-placeholder::before {
    content: '🧭';
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 4rem;
    opacity: 0.1;
}

.quiz-placeholder p {
    color: var(--color-gray-dark);
    font-size: var(--font-size-large);
    line-height: 1.8;
    margin-bottom: var(--spacing-md);
}

.quiz-placeholder p:last-child {
    font-weight: 700;
    color: var(--color-secondary);
    font-size: 1.2rem;
    margin-bottom: 0;
}

/* ========================================
   Footer Styles
   ======================================== */
/* Footer styles moved to css/footer.css for consistency across all pages */

/* ========================================
   Utility Classes
   ======================================== */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: var(--color-gray-light);
    border-radius: var(--border-radius);
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    color: var(--color-primary);
    display: block;
    font-size: var(--font-size-base);
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* ========================================
   Responsive Design
   ======================================== */
@media (max-width: 1024px) {
    :root {
        --font-size-h1: 2rem;
        --font-size-h2: 1.75rem;
        --font-size-h3: 1.5rem;
        --header-right-offset: 0px; /* no offset on tablet */
    }
}

@media (max-width: 767px) {
    :root {
        --font-size-h1: 1.75rem;
        --font-size-h2: 1.5rem;
        --font-size-h3: 1.25rem;
        --spacing-lg: 1.5rem;
        --spacing-xl: 2rem;
        --header-right-offset: 0px; /* no offset on mobile */
    }

    .site-content {
        padding: var(--spacing-md);
    }

    /* Home page mobile adjustments */
    body.page-template-template-home .site-content {
        padding: 0;
    }

    body.page-template-template-home .main-content {
        padding: 0;
    }

    .tabs-container {
        border-radius: 12px;
        margin: var(--spacing-md) 0;
    }

    body.page-template-template-home .tabs-container {
        border-radius: 0;
        margin: 0;
        max-width: 100%;
    }

    body.page-template-template-home .vacation-input-form,
    body.page-template-template-home .quiz-container {
        max-width: 100%;
    }

    .tab-navigation {
        flex-direction: row;
        gap: var(--spacing-xs);
        padding: var(--spacing-sm);
    }

    .tab-button {
        font-size: var(--font-size-small);
        padding: var(--spacing-sm) var(--spacing-md);
        text-align: center;
        flex-direction: column;
        gap: 4px;
    }

    .tab-button .tab-number {
        margin-right: 0;
        width: 24px;
        height: 24px;
        font-size: 12px;
    }

    .tab-button .tab-label {
        font-size: 0.75rem;
    }

    .tab-button.active::after {
        display: none;
    }

    .tab-content {
        padding: var(--spacing-md);
    }

    .vacation-input-form h2,
    .quiz-container h2 {
        font-size: 1.25rem;
        margin-bottom: var(--spacing-xs);
    }

    .vacation-input-form > p {
        font-size: var(--font-size-base);
        margin-bottom: var(--spacing-md);
    }

    .form-group textarea {
        min-height: 180px;
        padding: var(--spacing-md);
    }

    body.page-template-template-home .form-group textarea {
        padding: var(--spacing-sm);
        font-size: var(--font-size-small);
    }

    .submit-button {
        width: 100%;
        min-width: auto;
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-base);
    }

    .form-tips {
        padding: var(--spacing-sm);
    }

    .form-tips h3 {
        font-size: var(--font-size-small);
    }

    .form-tips ul {
        font-size: 0.75rem;
        padding-left: var(--spacing-md);
    }

    .form-tips li {
        margin-bottom: 2px;
    }

    .character-count {
        font-size: 0.7rem;
    }

}

/* ========================================
   Posts & Pages Styling
   ======================================== */
article:not(.ts-blog-card) {
    /* margin-bottom: var(--spacing-xl);
    padding-bottom: var(--spacing-xl); */
    border-bottom: 1px solid var(--color-gray-medium);
}

article:last-child {
    border-bottom: none;
}

.entry-header {
    margin-bottom: var(--spacing-lg);
}

.entry-title {
    margin-bottom: var(--spacing-sm);
}

.entry-title a {
    color: var(--color-primary);
    text-decoration: none;
}

.entry-title a:hover,
.entry-title a:focus {
    color: var(--color-secondary);
}

.entry-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--font-size-small);
    color: var(--color-gray-dark);
    margin-bottom: var(--spacing-md);
}

.entry-meta a {
    color: var(--color-gray-dark);
}

.entry-meta a:hover,
.entry-meta a:focus {
    color: var(--color-secondary);
}

.entry-meta-separator {
    color: var(--color-gray-dark);
    opacity: 0.6;
}

.post-thumbnail {
    margin-bottom: var(--spacing-lg);
    border-radius: var(--border-radius);
    overflow: hidden;
}

.post-thumbnail img {
    width: 100%;
    height: auto;
    transition: transform var(--transition-speed) ease;
}

.post-thumbnail:hover img {
    transform: scale(1.05);
}

.entry-content {
    line-height: 1.8;
}

.entry-content > *:last-child {
    margin-bottom: 0;
}

.entry-footer {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-gray-medium);
    font-size: var(--font-size-small);
}

.entry-footer > span {
    margin-right: var(--spacing-md);
}

.entry-footer a {
    color: var(--color-primary);
}

.entry-footer a:hover,
.entry-footer a:focus {
    color: var(--color-secondary);
}

/* Page Links (for paginated posts) */
.page-links {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-gray-medium);
}

.page-links a {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-sm);
    margin-right: var(--spacing-xs);
    background-color: var(--color-gray-light);
    border-radius: var(--border-radius);
}

.page-links a:hover,
.page-links a:focus {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

/* Post Navigation */
.post-navigation,
.posts-navigation {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-lg);
    border-top: 2px solid var(--color-gray-medium);
}

.nav-links {
    display: flex;
    justify-content: space-between;
    gap: var(--spacing-md);
}

.nav-previous,
.nav-next {
    flex: 1;
}

.nav-next {
    text-align: right;
}

.nav-links a {
    display: block;
    padding: var(--spacing-md);
    background-color: var(--color-gray-light);
    border-radius: var(--border-radius);
    transition: all var(--transition-speed) ease;
}

.nav-links a:hover,
.nav-links a:focus {
    background-color: var(--color-secondary);
    color: var(--color-white);
    transform: translateY(-2px);
}

.nav-subtitle {
    display: block;
    font-size: var(--font-size-small);
    color: var(--color-gray-dark);
    margin-bottom: var(--spacing-xs);
}

.nav-title {
    display: block;
    font-weight: 600;
}

/* Archive & Search Headers */
.page-header {
    margin-bottom: var(--spacing-xl);
    padding-bottom: var(--spacing-lg);
    border-bottom: 2px solid var(--color-secondary);
}

.page-title {
    margin-bottom: var(--spacing-sm);
}

.archive-description {
    color: var(--color-gray-dark);
    font-size: var(--font-size-large);
}

/* Comments */
.comments-area {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-xl);
    border-top: 2px solid var(--color-gray-medium);
}

.comments-title {
    margin-bottom: var(--spacing-lg);
}

.comment-list {
    list-style: none;
    padding: 0;
}

.comment {
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-lg);
    background-color: var(--color-gray-light);
    border-radius: var(--border-radius);
}

.comment-author {
    font-weight: 600;
    margin-bottom: var(--spacing-xs);
}

.comment-metadata {
    font-size: var(--font-size-small);
    color: var(--color-gray-dark);
    margin-bottom: var(--spacing-md);
}

.comment-content {
    margin-bottom: var(--spacing-md);
}

.reply {
    text-align: right;
}

.reply a {
    font-size: var(--font-size-small);
    padding: var(--spacing-xs) var(--spacing-sm);
    background-color: var(--color-primary);
    color: var(--color-white);
    border-radius: var(--border-radius);
}

.reply a:hover,
.reply a:focus {
    background-color: var(--color-secondary);
}

/* ========================================
   Forms
   ======================================== */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
select,
textarea {
    width: 100%;
    padding: var(--spacing-sm);
    border: 2px solid var(--color-gray-medium);
    border-radius: var(--border-radius);
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    transition: border-color var(--transition-speed) ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

button,
input[type="submit"],
input[type="button"],
.button {
    background-color: var(--color-secondary);
    color: var(--color-white);
    border: none;
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: var(--font-size-base);
    font-weight: 600;
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: all var(--transition-speed) ease;
}

button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="button"]:hover,
input[type="button"]:focus,
.button:hover,
.button:focus {
    background-color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Search Form */
.search-form {
    display: flex;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-lg);
}

.search-form label {
    flex: 1;
}

.search-field {
    width: 100%;
}


/* ========================================
   HOME PAGE HERO SECTION
   ======================================== */

/* Hero wrapper */
body.page-template-template-home .home-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-home .home-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio (closer to 16:9) */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-home .home-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-home .home-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end; /* Bottom alignment like other pages */
}

body.page-template-template-home .home-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px; /* Bottom padding like other pages */
}

body.page-template-template-home .home-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem); /* Responsive sizing like other pages */
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-home .home-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem); /* Responsive sizing like other pages */
  margin: 0;
}

/* Mobile responsive */
@media (max-width: 768px) {
  body.page-template-template-home .home-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile for performance */
  }

  body.page-template-template-home .home-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* ========================================
   Home Minimal Redesign — Modern, Compact, Clean
   ======================================== */
/* Scope to home template only */
body.page-template-template-home {
    background: #f7f8fa; /* neutral background */
    --header-height: 64px; /* compact header on home */
}

/* Use a compact centered content column */
body.page-template-template-home .content-sidebar-wrap {
    display: grid !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.page-template-template-home .main-content {
    max-width: 960px; /* compact */
    margin: 0 auto;
    padding: var(--spacing-lg);
    background: transparent;
    width: 100%;
}

/* Tabs container becomes a simple card */
body.page-template-template-home .tabs-container {
    width: 100%;
    max-width: 960px;
    margin: var(--spacing-lg) auto 0;

    padding: 0;
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: none;
    overflow: hidden;
}

/* Segmented-control style tabs; no gradients, no numbers */
body.page-template-template-home .tab-navigation {
    display: grid;
    grid-template-columns: 1fr; /* Single column for one tab */
    gap: 4px;

    padding: 6px;
    background: #f3f4f6;
    border-bottom: 1px solid #e5e7eb;
}

/* Remove old decorations */
body.page-template-template-home .tab-navigation::before,
body.page-template-template-home .tab-button::after {
    content: none !important;
    display: none !important;

}

/* Minimal pill buttons */
body.page-template-template-home .tab-button {
    background: #f3f4f6; /* muted */
    border: 1px solid #e5e7eb;
    color: #374151;

    padding: 10px 14px;
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: 8px;
    letter-spacing: 0;
    box-shadow: none;
    transition: none;
}
body.page-template-template-home .tab-button .tab-number { display: none; }
body.page-template-template-home .tab-button.active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #ffffff;
    transform: none;
}

body.page-template-template-home .tab-button:hover:not(.active) {
    background: #e9ecef; /* slightly darker than default */
    border-color: #e5e7eb;
    color: #111827;
}

/* Content area — simple white card */
body.page-template-template-home .tab-content {
    background: #ffffff;
    border-top: none;
    padding: 20px 24px 24px;
    box-shadow: none;
}

/* Typography — compact and clean */
body.page-template-template-home .vacation-input-form h2,
body.page-template-template-home .quiz-container h2 {
    font-size: 1.5rem;
    margin-bottom: 8px;
    color: #111827;
}
body.page-template-template-home .vacation-input-form > p,
body.page-template-template-home .quiz-container > p {
    color: #6b7280;
    margin-bottom: 16px;
}

/* Quiz placeholder — minimal style */
body.page-template-template-home .quiz-placeholder {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: var(--spacing-xl) var(--spacing-lg);
    text-align: center;
}
body.page-template-template-home .quiz-placeholder::before { display: none; }
body.page-template-template-home .quiz-placeholder p {
    color: #6b7280;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: var(--spacing-sm);
}
body.page-template-template-home .quiz-placeholder p:last-child {
    color: var(--color-secondary);
    font-weight: 600;
    font-size: 1.1rem;
}


/* Date preference section — minimal modern design */
body.page-template-template-home .date-preference-group {
    margin-bottom: 20px;
}
body.page-template-template-home .form-label {
    display: block;
    font-size: 0.95rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 12px;
}

/* Modern radio buttons */
body.page-template-template-home .radio-group {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
body.page-template-template-home .radio-option {
    flex: 1;
    min-width: 200px;
    position: relative;
    cursor: pointer;
    margin: 0;
}
body.page-template-template-home .radio-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
body.page-template-template-home .radio-option .radio-label {
    display: block;
    padding: 10px 14px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: #6b7280;
    font-size: 0.95rem;
    font-weight: 500;
    text-align: center;
    transition: all 0.2s ease;
}
body.page-template-template-home .radio-option input[type="radio"]:checked + .radio-label {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #ffffff;
}
body.page-template-template-home .radio-option:hover .radio-label {
    border-color: #d1d5db;
}
body.page-template-template-home .radio-option input[type="radio"]:checked:hover + .radio-label {
    border-color: var(--color-primary);
}
body.page-template-template-home .radio-option input[type="radio"]:focus + .radio-label {
    outline: 2px solid var(--color-secondary);
    outline-offset: 2px;
}

/* Date range inputs */
body.page-template-template-home .date-range-group {
    margin-bottom: 20px;
}
body.page-template-template-home .date-inputs {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}
body.page-template-template-home .date-input-wrapper {
    flex: 1;
    min-width: 200px;
}
body.page-template-template-home .date-input-label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6b7280;
    margin-bottom: 6px;
}
body.page-template-template-home .date-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 0.95rem;
    color: #374151;
    background: #ffffff;
    transition: border-color 0.2s ease;
}
body.page-template-template-home .date-input:hover {
    border-color: #d1d5db;
}
body.page-template-template-home .date-input:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

/* Mobile responsive */
@media (max-width: 768px) {
    body.page-template-template-home .radio-group {
        flex-direction: column;
    }
    body.page-template-template-home .radio-option {
        min-width: 100%;
    }
    body.page-template-template-home .date-inputs {
        flex-direction: column;
    }
    body.page-template-template-home .date-input-wrapper {
        min-width: 100%;
    }
}



/* Textarea — neutral and compact */
body.page-template-template-home .form-group textarea {
    border: 1px solid #e5e7eb;
    background: #ffffff;
    border-radius: 10px;
    padding: 12px 14px;
    box-shadow: none;
}
body.page-template-template-home .form-group textarea:focus {
    outline: none;
    border-color: #cfd4dc;
    box-shadow: 0 0 0 3px rgba(43,45,66,0.08);
}

/* Submit button — prominent and clean */
body.page-template-template-home .submit-button {
    background: var(--color-secondary);
    border-radius: 10px;
    padding: 14px 28px;
    font-size: 1rem;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(255, 107, 0, 0.25);
    transition: all 0.2s ease;
}
body.page-template-template-home .submit-button:hover {
    background: #e65f00;
    box-shadow: 0 6px 20px rgba(255, 107, 0, 0.35);
    transform: translateY(-2px);
}
body.page-template-template-home .submit-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(255, 107, 0, 0.3);
}
body.page-template-template-home .submit-button::before,
body.page-template-template-home .submit-button::after { display: none; }

/* Remove pulses, glows, animations specific to tabs/buttons */
body.page-template-template-home .tab-button,

/* Results Modal — modern and clean */
.results-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  animation: fadeIn 0.3s ease forwards;
}

@keyframes fadeIn {
  to { opacity: 1; }
}

@keyframes fadeOut {
  to { opacity: 0; }
}

.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.modal-container {
  position: relative;
  width: 95%;
  max-width: 1200px;
  max-height: 85vh;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  animation: slideUp 0.3s ease forwards;
}

@keyframes slideUp {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #e5e7eb;
  flex-shrink: 0;
}

.modal-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin: 0;
}

.modal-close {
  background: transparent;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #6b7280;
  border-radius: 8px;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-close:hover {
  background: #f3f4f6;
  color: #111827;
}

.modal-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

.results-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.results-modal .result-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 20px;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px;
}

.results-modal .result-card:hover {
  border-color: #d1d5db;
}

.results-modal .result-header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.results-modal .result-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #111827;
  margin: 0;
  line-height: 1.3;
}

.results-modal .result-location {
  font-size: 0.9rem;
  color: #6b7280;
  font-weight: 500;
}

.results-modal .result-summary {
  color: #4b5563;
  line-height: 1.5;
  margin: 0 0 12px 0;
  font-size: 0.95rem;
}

.results-modal .result-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.results-modal .result-tag {
  background: #f3f4f6;
  color: #6b7280;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 500;
}

.results-modal .result-points {
  margin-top: 8px;
}

.results-modal .points-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: #374151;
  margin: 0 0 8px 0;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.results-modal .result-points-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.results-modal .result-poi-tag {
  background: #fff7ed;
  color: var(--color-secondary);
  border: 1px solid #fed7aa;
}

/* Card layout with content on left and button on right */

.result-card-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.result-card-actions {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  padding-top: 2px;
}

.learn-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: var(--color-secondary);
  color: #ffffff;
  text-decoration: none;
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.learn-more-btn:hover {
  background: #ff9a00;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.25);
  color: #ffffff;
}

.learn-more-btn::after {
  content: '→';
  font-size: 1em;
  transition: transform 0.2s ease;
}

.learn-more-btn:hover::after {
  transform: translateX(2px);
}

/* Loading state for Learn More button */
.learn-more-btn.loading {
  opacity: 0.7;
  cursor: wait;
}

.learn-more-btn.loading::after {
  display: none;
}

.btn-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  margin-right: 6px;
}

/* Modal loading overlay */
.modal-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  border-radius: 16px;
  animation: fadeIn 0.2s ease;
}

.modal-loading-content {
  text-align: center;
}

.modal-loading-spinner {
  width: 48px;
  height: 48px;
  border: 4px solid #e5e7eb;
  border-top-color: var(--color-secondary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin: 0 auto 16px;
}

.modal-loading-content p {
  font-size: 1rem;
  color: var(--color-text);
  font-weight: 500;
  margin: 0;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .modal-container {
    width: 95%;
    max-height: 90vh;
    border-radius: 12px;
  }

  .modal-header {
    padding: 16px 20px;
  }

  .modal-title {
    font-size: 1.1rem;
  }

  /* Stack card content vertically on mobile */
  .results-modal .result-card {
    flex-direction: column;
    gap: 12px;
    padding: 16px;
  }

  .result-card-actions {
    align-self: flex-start;
  }

  .learn-more-btn {
    padding: 8px 14px;
    font-size: 0.85rem;
  }

/* ========================================
   DESTINATION HERO - MODERN & BOLD
   ======================================== */

body.page-template-template-destination-details-php .destination-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-destination-details-php .destination-hero {
  position: relative !important;
  width: 100% !important;
  height: 55vh !important; /* Increased from 48vh for better aspect ratio */
  min-height: 400px !important; /* Increased from 304px */
  max-height: 650px !important; /* Increased from 512px */
  background-size: cover !important;
  background-position: center 35% !important; /* Better default for landscape photos */
  background-repeat: no-repeat !important;
  background-attachment: fixed !important; /* Parallax effect - needs !important to override inline styles */
  overflow: hidden !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .destination-hero {
    height: 42vh !important; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px !important; /* Increased from 256px */
    background-attachment: scroll !important; /* Disable parallax on mobile */
  }
}

body.page-template-template-destination-details-php .destination-hero .hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.3) 0%,
    rgba(0, 0, 0, 0.5) 50%,
    rgba(0, 0, 0, 0.75) 100%
  ) !important;
  z-index: 1 !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-content {
  position: relative !important;
  z-index: 2 !important;
  height: 100% !important;
  display: flex !important;
  align-items: flex-end !important;
  padding-bottom: 60px !important;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .destination-hero .hero-content {
    padding-bottom: 120px !important;
  }
}

body.page-template-template-destination-details-php .destination-hero .hero-container {
  width: 100% !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .destination-hero .hero-container {
    padding: 0 20px !important;
  }
}

/* Destination Details Back Button - Match Things to Do Design */
body.page-template-template-destination-details-php .destination-hero .hero-back-btn,
body.page-template-template-destination-details-php .destination-hero a.hero-back-btn,
body.page-template-template-destination-details-php .hero-back-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: rgba(255, 255, 255, 0.9) !important;
  text-decoration: none !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  margin-bottom: 16px !important;
  transition: all 0.2s ease !important;
  padding: 8px 12px !important;
  border-radius: 6px !important;
  background: rgba(0, 0, 0, 0.3) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-back-btn:hover,
body.page-template-template-destination-details-php .destination-hero a.hero-back-btn:hover,
body.page-template-template-destination-details-php .hero-back-btn:hover,
body.page-template-template-destination-details-php .destination-hero .hero-back-btn:focus,
body.page-template-template-destination-details-php .destination-hero a.hero-back-btn:focus {
  color: #fff !important;
  background: rgba(0, 0, 0, 0.5) !important;
  transform: translateX(-4px) !important;
  border: none !important;
  box-shadow: none !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-back-btn svg,
body.page-template-template-destination-details-php .destination-hero a.hero-back-btn svg,
body.page-template-template-destination-details-php .hero-back-btn svg {
  flex-shrink: 0 !important;
  width: 20px !important;
  height: 20px !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-text {
  color: #ffffff !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-title {
  font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  margin: 0 0 24px 0 !important;
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5) !important;
  letter-spacing: -0.02em !important;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .destination-hero .hero-title {
    font-size: 1.85rem !important;
    margin: 0 0 12px 0 !important;
  }
}

body.page-template-template-destination-details-php .destination-hero .hero-stats {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
  margin-top: 16px !important;
}

body.page-template-template-destination-details-php .destination-hero .stat-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

body.page-template-template-destination-details-php .destination-hero .stat-number {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--color-secondary) !important;
  line-height: 1 !important;
}

body.page-template-template-destination-details-php .destination-hero .stat-label {
  font-size: 0.875rem !important;
  color: rgba(255, 255, 255, 0.9) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  font-weight: 500 !important;
}

body.page-template-template-destination-details-php .destination-hero .stat-divider {
  width: 1px !important;
  height: 40px !important;
  background: rgba(255, 255, 255, 0.3) !important;
}

body.page-template-template-destination-details-php .destination-hero .hero-photo-credit {
  position: absolute !important;
  bottom: 12px !important;
  right: 16px !important;
  z-index: 3 !important;
  font-size: 0.75rem !important;
  color: rgba(255, 255, 255, 0.7) !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5) !important;
  display: none;
}

/* Mobile responsive - merged with main mobile query above */
@media (max-width: 768px) {
  body.page-template-template-destination-details-php .destination-hero .hero-content {
    padding-bottom: 40px !important;
  }

  body.page-template-template-destination-details-php .destination-hero .hero-container {
    padding: 0 20px !important;
  }

  body.page-template-template-destination-details-php .destination-hero .hero-title {
    font-size: 2rem !important;
    margin-bottom: 16px !important;
  }

  body.page-template-template-destination-details-php .destination-hero .stat-number {
    font-size: 1.5rem !important;
  }

  body.page-template-template-destination-details-php .destination-hero .stat-label {
    font-size: 0.75rem !important;
  }

  body.page-template-template-destination-details-php .destination-hero .hero-stats {
    gap: 16px !important;
  }
}


/* Destination Details Page - Modern Design */
body.page-template-template-destination-details-php {
    background: #f3f4f6;
    --header-height: 64px;
}

body.page-template-template-destination-details-php .site-content {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

body.page-template-template-destination-details-php .content-sidebar-wrap {
    background: transparent !important;
}












/* Destination details: show sidebar; stack it under content on mobile */
@media (max-width: 767px) {
  body.page-template-template-destination-details-php .content-sidebar-wrap.has-sidebar {
    grid-template-columns: 1fr !important; /* 1 column stack on mobile */
  }
  body.page-template-template-destination-details-php .sidebar-toggle { display: none !important; }
  body.page-template-template-destination-details-php #secondary.sidebar,
  body.page-template-template-destination-details-php .sidebar { display: block !important; }
}
@media (min-width: 768px) {
  /* Let default grid apply: 2fr 1fr via global rules */
}


/* ========================================
   CONTENT AREA - MODERN CARD LAYOUT
   ======================================== */

body.page-template-template-destination-details-php .main-content {
  margin-top: 0;
  position: relative;
  z-index: 10;
  padding: 32px 32px 48px;
}

body.page-template-template-destination-details-php .main-content > .container {
  margin-bottom: 24px;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .main-content {
    margin-top: 0 !important;
    padding: 24px 20px 32px !important;
  }
}

body.page-template-template-destination-details-php .destination-details-container {
  background: #ffffff !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15) !important;
  padding: 48px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  border: none !important;
}

body.page-template-template-destination-details-php .destination-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

/* Section styling - HIGHEST SPECIFICITY */
body.page-template-template-destination-details-php .destination-section {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 48px !important;
}

body.page-template-template-destination-details-php .destination-section:last-child {
  margin-bottom: 0 !important;
}

body.page-template-template-destination-details-php .section-title {
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  color: #111827 !important;
  margin: 0 0 24px 0 !important;
  padding: 0 0 0 20px !important;
  border: none !important;
  position: relative !important;
}

body.page-template-template-destination-details-php .section-title::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 5px !important;
  height: 32px !important;
  background: linear-gradient(180deg, var(--color-secondary), #fbbf24) !important;
  border-radius: 3px !important;
}

body.page-template-template-destination-details-php .section-title::after {
  display: none !important;
}

body.page-template-template-destination-details-php .section-content {
  font-size: 1.0625rem !important;
  line-height: 1.8 !important;
  color: #374151 !important;
}

body.page-template-template-destination-details-php .section-content p {
  margin-bottom: 16px !important;
}

/* Modern list styling - HIGHEST SPECIFICITY */
body.page-template-template-destination-details-php .things-list,
body.page-template-template-destination-details-php .sites-list,
body.page-template-template-destination-details-php .tips-list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 16px !important;
}

body.page-template-template-destination-details-php .things-list li,
body.page-template-template-destination-details-php .sites-list li,
body.page-template-template-destination-details-php .tips-list li {
  background: #f9fafb !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  padding: 16px 20px 16px 20px !important;
  position: relative !important;
  color: #374151 !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  transition: all 0.2s ease !important;
}

body.page-template-template-destination-details-php .things-list li:hover,
body.page-template-template-destination-details-php .sites-list li:hover,
body.page-template-template-destination-details-php .tips-list li:hover {
  background: #ffffff !important;
  border-color: var(--color-secondary) !important;
}

body.page-template-template-destination-comparison .tab-button::after {
  display: none !important;
}

body.page-template-template-destination-comparison .tab-button.active::after {
  display: none !important;
}

body.page-template-template-destination-details-php .things-list li::before,
body.page-template-template-destination-details-php .sites-list li::before,
body.page-template-template-destination-details-php .tips-list li::before {
  position: absolute !important;
  left: 18px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 1.5rem !important;
}

body.page-template-template-destination-details-php .things-list li::before {
  content: '🎯' !important;
}

body.page-template-template-destination-details-php .sites-list li::before {
  content: '📍' !important;
}

body.page-template-template-destination-details-php .tips-list li::before {
  content: '💡' !important;
}

/* Responsive grid - HIGHEST SPECIFICITY */
@media (min-width: 768px) {
  /* Desktop reinforcement */
  body.page-template-template-destination-details-php .main-content {
    margin-top: 0 !important;
    padding: 32px 32px 56px !important;
  }

  body.page-template-template-destination-details-php .things-list,
  body.page-template-template-destination-details-php .sites-list,
  body.page-template-template-destination-details-php .tips-list {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  body.page-template-template-destination-details-php .destination-details-container {
    padding: 56px !important;
  }
}


@media (min-width: 1024px) {
  body.page-template-template-destination-details-php .things-list {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  body.page-template-template-destination-details-php .sites-list,
  body.page-template-template-destination-details-php .tips-list {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

@media (max-width: 767px) {
  body.page-template-template-destination-details-php .main-content {
    margin-top: 0 !important;
    padding: 24px 20px 32px !important;
  }

  body.page-template-template-destination-details-php .destination-details-container {
    padding: 32px 24px !important;
    border-radius: 20px !important;
  }

  body.page-template-template-destination-details-php .section-title {
    font-size: 1.5rem !important;
  }
}

/* Similar Destinations Section */
body.page-template-template-destination-details-php .similar-destinations-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-destination-details-php .similar-destination-card {
  display: block !important;
  text-decoration: none !important;
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}

body.page-template-template-destination-details-php .similar-destination-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12) !important;
  border-color: var(--color-secondary) !important;
}

body.page-template-template-destination-details-php .similar-destination-image {
  width: 100% !important;
  height: 180px !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

body.page-template-template-destination-details-php .similar-destination-content {
  padding: 16px !important;
}

body.page-template-template-destination-details-php .similar-destination-name {
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: #111827 !important;
  margin: 0 0 6px 0 !important;
  line-height: 1.3 !important;
}

body.page-template-template-destination-details-php .similar-destination-country {
  font-size: 0.875rem !important;
  color: #6b7280 !important;
  margin: 0 0 10px 0 !important;
}

body.page-template-template-destination-details-php .similar-destination-type {
  display: inline-block !important;
  font-size: 0.75rem !important;
  padding: 4px 10px !important;
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%) !important;
  color: #c2410c !important;
  border-radius: 12px !important;
  font-weight: 500 !important;
}

@media (max-width: 1024px) {
  body.page-template-template-destination-details-php .similar-destinations-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 767px) {
  body.page-template-template-destination-details-php .similar-destinations-grid {
    grid-template-columns: 1fr !important;
  }

  body.page-template-template-destination-details-php .similar-destination-image {
    height: 200px !important;
  }
}


/* Content layout for destination details */
@media (max-width: 767px) {
  body.page-template-template-destination-details-php .content-sidebar-wrap {
    display: block !important; /* stack content + sidebar on mobile */
    margin: 0 !important;
    padding: 0 !important;
  }
}

body.page-template-template-destination-details-php .main-content {
    margin-top: 0 !important;
    position: relative !important;
    z-index: 10 !important;
    padding: 32px 32px 48px !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    background: transparent !important;
    width: 100% !important;
}

@media (max-width: 768px) {
  body.page-template-template-destination-details-php .main-content {
    margin-top: 0 !important;
    padding: 24px 20px 32px !important;
  }
}


.destination-details-container {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 24px;
    margin: 0;
    box-shadow: none;
}

/* Footer styling - Now handled by css/footer.css */

/* Destination Details Page Loading Overlay - Full Page */
.destination-page-loading {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #ffffff;
    display: flex !important;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.destination-page-loading .spinner-container {
    text-align: center;
}

.destination-page-loading .spinner {
    width: 60px;
    height: 60px;
    margin: 0 auto 24px;
    border: 5px solid #f3f4f6;
    border-top: 5px solid var(--color-secondary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.destination-page-loading .loading-text {
    font-size: 1.125rem;
    color: #6b7280;
    font-weight: 500;
    margin: 0;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Loading Content Styles - Modern (for error states) */
.destination-loading-content {
    text-align: center;
    padding: 80px 40px;
    background: transparent;
    border-radius: 0;
    margin: 0;
}

.destination-loading-content h2 {
    color: #111827;
    margin: 24px 0 12px 0;
    font-size: 1.75rem;
    font-weight: 700;
}

.destination-loading-content p {
    color: #6b7280;
    margin: 0;
    font-size: 1.0625rem;
}

.loading-spinner {
    margin-bottom: 32px;
}

/* Error Content Styles - Modern */
.destination-error-content {
    text-align: center;
    padding: 80px 40px;
    background: transparent;
    border-radius: 0;
    margin: 0;
    border: none;
}

.destination-error-content h2 {
    color: #dc2626;
    margin: 24px 0 12px 0;
    font-size: 1.75rem;
    font-weight: 700;
}

.destination-error-content p {
    color: #991b1b;
    margin: 0 0 32px 0;
    font-size: 1.0625rem;
}

.retry-btn {
    background: var(--color-secondary);
    color: white;
    border: none;
    padding: 14px 32px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

.retry-btn:hover {
    background: #ea580c;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(248, 150, 30, 0.4);
}

/* OLD STYLES REMOVED - SEE MODERN STYLES ABOVE */

.destination-error {
  max-width: 600px;
  margin: 80px auto;
  text-align: center;
  padding: 40px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.destination-error h1 {
  font-size: 1.5rem;
  color: #111827;
  margin-bottom: 12px;
}

.destination-error p {
  color: #6b7280;
  margin-bottom: 16px;
}

.destination-error .destination-name {
  font-weight: 600;
  color: var(--color-secondary);
  font-size: 1.1rem;
  margin-bottom: 24px;
}

.loading-spinner {
  margin-bottom: 24px;
}

.spinner {
  width: 40px;
  height: 40px;
  margin: 0 auto;
  border: 4px solid #f3f4f6;
  border-top: 4px solid var(--color-secondary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.back-home-btn {
  display: inline-block;
  padding: 12px 24px;
  background: var(--color-secondary);
  color: #ffffff;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.back-home-btn:hover {
  background: #ff9a00;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
  color: #ffffff;
}

/* Destination Details Tabs */
/* NOTE: Tab styles are defined inline in template-destination-details.php (lines 989-1157) */
/* and also loaded as critical inline CSS in functions.php to prevent FOUC */
/* Do NOT add generic .destination-tabs styles here as they will conflict */

/* Mobile adjustments */
@media (max-width: 767px) {
  .destination-details-container {
    padding: 24px 0;
  }

  .destination-title {
    font-size: 1.75rem;
  }

  .destination-location {
    font-size: 1rem;
  }

  .destination-error {
    margin: 40px auto;
    padding: 24px;
  }

  .destination-section {
    padding: 20px;
  }

  .section-title {
    font-size: 1.125rem;
  }
}

  .modal-body {
    padding: 20px;
  }

  .results-modal .result-card {
    padding: 16px;
  }
}

body.page-template-template-home .submit-button {
    animation: none !important;
}

/* Mobile tweaks */
@media (max-width: 767px) {
    body.page-template-template-home .main-content,
    body.page-template-template-home .tabs-container {
        max-width: 100%;
        margin: 0;
        border-radius: 0;
        border-left: none;
        border-right: none;
    }
    body.page-template-template-home .tab-content { padding: 16px; }
}

/* Header minimal redesign (home only) */


/* Footer styling - Now handled by css/footer.css */


/* Match search icon color to primary tab accent on home */
body.page-template-template-home .search-form .search-submit { color: var(--color-secondary); }


.search-submit {
    flex-shrink: 0;
}

/* ========================================
   Print Styles
   ======================================== */
@media print {
    .site-footer,
    .sidebar,
    .tab-navigation {
        display: none;
    }

    .site-content {
        max-width: 100%;
    }
}



/* Simple, clean tabs that won't cause full-screen issues */
body.page-template-template-home .simple-tabs-container {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
}

body.page-template-template-home .simple-tab-nav {
  display: flex;
  background: #f3f4f6;
  border-bottom: 1px solid #e5e7eb;
  padding: 6px;
  gap: 4px;
}

body.page-template-template-home .simple-tab-btn {
  flex: 1;
  background: transparent;
  border: 1px solid #e5e7eb;
  color: #374151;
  padding: 14px 18px;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-home .simple-tab-btn:hover {
  background: #e9ecef;
  color: #111827;
}

body.page-template-template-home .simple-tab-btn.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #ffffff;
}

body.page-template-template-home .simple-tab-content {
  position: relative;
}

body.page-template-template-home .simple-tab-panel {
  display: none;
  padding: 20px 24px;
  text-align: center;
}

body.page-template-template-home .simple-tab-panel.active {
  display: block;
}

body.page-template-template-home .vacation-input-form,
body.page-template-template-home .quiz-container {
  margin: 0 auto;
  padding: 0;
  max-width: 700px;
  text-align: center;
}

body.page-template-template-home .vacation-input-form h2,
body.page-template-template-home .quiz-container h2 {
  text-align: center;
  margin-bottom: 12px;
}

body.page-template-template-home .vacation-input-form > p,
body.page-template-template-home .quiz-container > p {
  text-align: center;
  margin-bottom: 16px;
}

body.page-template-template-home .form-group {
  text-align: left;
  margin-bottom: 16px;
}

body.page-template-template-home .submit-button {
  display: block;
  margin: 16px auto 0;
}

/* Center the timeframe radio buttons */
body.page-template-template-home .timeframe-options {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 20px 0;
}

/* Center the date range inputs */
body.page-template-template-home .date-inputs {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

body.page-template-template-home .date-input-wrapper {
  text-align: center;
}

/* Center form labels */
body.page-template-template-home .form-label {
  display: block;
  text-align: center;
  margin-bottom: 8px;
}

/* Ensure no height/positioning issues */
body.page-template-template-home .simple-tabs-container,
body.page-template-template-home .simple-tab-content,
body.page-template-template-home .simple-tab-panel {
  height: auto;
  position: static;
  overflow: visible;
}


/* ========================================
   Global Header & Footer: unify with homepage across all pages
   ======================================== */







/* Dropdown menus - modern card style */

/* Search toggle - removed global overrides to allow header search bar styling */



/* Footer styles moved to css/footer.css */




/* ========================================
   Menu Item Animations & Polish
   ======================================== */


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

/* Known For tag styles (destination details) */
body.page-template-template-destination-details-php .known-for-tags {
  list-style: none; margin: 8px 0 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px;
}
body.page-template-template-destination-details-php .known-for-tag {
  display: inline-flex; align-items: center; padding: 6px 10px; border-radius: 9999px;
  background: #f3f4f6; border: 1px solid #e5e7eb; color: #111827; font-size: 0.9rem;
}


/* When sidebar is enabled on home, let content fill the grid column */
body.page-template-template-home .content-sidebar-wrap.has-sidebar .main-content {
  max-width: 100%;
  margin: 0;
}



/* ========================================
   Home Page SEO Content Sections
   ======================================== */

/* Container for all content sections */
body.page-template-template-home .home-content-sections {
  max-width: 960px;
  margin: 48px auto 0;
  padding: 0;
}

/* Individual content section */
body.page-template-template-home .content-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 40px 32px;
  margin-bottom: 32px;
}

body.page-template-template-home .content-section h2 {
  font-size: 1.75rem;
  font-weight: 700;
  color: #111827;
  text-align: center;
  margin-bottom: 32px;
  line-height: 1.3;
}

/* Benefits Grid */
body.page-template-template-home .benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}

body.page-template-template-home .benefit-card {
  text-align: center;
  padding: 24px 16px;
}

body.page-template-template-home .benefit-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #ff9a00 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
}

body.page-template-template-home .benefit-card h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 12px;
  line-height: 1.4;
}

body.page-template-template-home .benefit-card p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* How It Works Steps */
body.page-template-template-home .steps-container {
  max-width: 700px;
  margin: 0 auto;
}

body.page-template-template-home .step-item {
  display: flex;
  gap: 20px;
  margin-bottom: 32px;
  align-items: flex-start;
}

body.page-template-template-home .step-item:last-child {
  margin-bottom: 0;
}

body.page-template-template-home .step-number {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: var(--color-primary);
  color: #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
}

body.page-template-template-home .step-content h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 8px;
  line-height: 1.4;
}

body.page-template-template-home .step-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Features List */
body.page-template-template-home .features-list {
  max-width: 700px;
  margin: 0 auto;
}

body.page-template-template-home .feature-item {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
  align-items: flex-start;
}

body.page-template-template-home .feature-item:last-child {
  margin-bottom: 0;
}

body.page-template-template-home .feature-item svg {
  flex-shrink: 0;
  color: var(--color-secondary);
  margin-top: 2px;
}

body.page-template-template-home .feature-item h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 6px;
  line-height: 1.4;
}

body.page-template-template-home .feature-item p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Mobile Responsive */
@media (max-width: 767px) {
  body.page-template-template-home .home-content-sections {
    margin-top: 32px;
  }

  body.page-template-template-home .content-section {
    padding: 32px 24px;
    margin-bottom: 24px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  body.page-template-template-home .content-section h2 {
    font-size: 1.5rem;
    margin-bottom: 24px;
  }

  body.page-template-template-home .benefits-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  body.page-template-template-home .benefit-card {
    padding: 20px 12px;
  }

  body.page-template-template-home .step-item {
    gap: 16px;
    margin-bottom: 24px;
  }

  body.page-template-template-home .step-number {
    width: 40px;
    height: 40px;
    font-size: 1.125rem;
  }

  body.page-template-template-home .step-content h3,
  body.page-template-template-home .benefit-card h3 {
    font-size: 1.0625rem;
  }

  body.page-template-template-home .feature-item {
    margin-bottom: 20px;
  }
}


/* ========================================
   Quiz Styles
   ======================================== */

/* Quiz intro text */
body.page-template-template-home .quiz-intro {
  text-align: center;
  color: #6b7280;
  font-size: 0.9375rem;
  margin-bottom: 24px;
}

/* Quiz progress bar */
body.page-template-template-home .quiz-progress {
  margin-bottom: 32px;
}

body.page-template-template-home .quiz-progress-bar {
  width: 100%;
  height: 8px;
  background: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 8px;
}

body.page-template-template-home .quiz-progress-fill {
  height: 100%;
  background: var(--color-secondary);
  border-radius: 999px;
  transition: width 0.3s ease;
}

body.page-template-template-home .quiz-progress-text {
  text-align: center;
  font-size: 0.875rem;
  color: var(--color-secondary);
  font-weight: 600;
}

/* Quiz questions container */
body.page-template-template-home .quiz-questions-container {
  min-height: 300px;
  margin-bottom: 24px;
}

/* Individual question */
body.page-template-template-home .quiz-question {
  animation: fadeIn 0.3s ease;
}

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



body.page-template-template-home .quiz-question-title {
  font-size: 1.375rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 24px;
  line-height: 1.4;
}

/* Quiz options */
body.page-template-template-home .quiz-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}

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

body.page-template-template-home .quiz-option {
  display: flex !important;
  align-items: center;
  padding: 18px 20px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  animation: slideInOption 0.3s ease forwards;
}



body.page-template-template-home .quiz-option:nth-child(1) { animation-delay: 0.05s; }
body.page-template-template-home .quiz-option:nth-child(2) { animation-delay: 0.1s; }
body.page-template-template-home .quiz-option:nth-child(3) { animation-delay: 0.15s; }
body.page-template-template-home .quiz-option:nth-child(4) { animation-delay: 0.2s; }
body.page-template-template-home .quiz-option:nth-child(5) { animation-delay: 0.25s; }
body.page-template-template-home .quiz-option:nth-child(6) { animation-delay: 0.3s; }
body.page-template-template-home .quiz-option:nth-child(7) { animation-delay: 0.35s; }

body.page-template-template-home .quiz-option::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: -1;
}

body.page-template-template-home .quiz-option:hover {
  border-color: var(--color-secondary);
  box-shadow: 0 4px 12px rgba(255, 107, 0, 0.15);
  transform: translateY(-2px);
}

body.page-template-template-home .quiz-option:focus-within {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
  border-color: var(--color-secondary);
}

body.page-template-template-home .quiz-option input[type="radio"],
body.page-template-template-home .quiz-option input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom radio/checkbox indicator */
body.page-template-template-home .quiz-option::after {
  content: '';
  width: 22px;
  height: 22px;
  border: 2px solid #d1d5db;
  border-radius: 50%;
  margin-right: 14px;
  flex-shrink: 0;
  transition: all 0.25s ease;
  background: #ffffff;
  position: relative;
}

/* Checkbox style */
body.page-template-template-home .quiz-option:has(input[type="checkbox"])::after {
  border-radius: 6px;
}

/* Checked state indicator */
body.page-template-template-home .quiz-option:has(input:checked)::after {
  border-color: var(--color-secondary);
  background: var(--color-secondary);
  box-shadow: none;
}

/* Checkmark for radio */
body.page-template-template-home .quiz-option:has(input[type="radio"]:checked)::after {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  box-shadow: inset 0 0 0 4px #ffffff;
}

/* Checkmark icon for checkbox */
body.page-template-template-home .quiz-option:has(input[type="checkbox"]:checked)::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  background-size: 14px;
  background-position: center;
  background-repeat: no-repeat;
}

body.page-template-template-home .quiz-option input[type="radio"]:checked ~ .quiz-option-label,
body.page-template-template-home .quiz-option input[type="checkbox"]:checked ~ .quiz-option-label {
  font-weight: 600;
  color: #1f2937;
}

body.page-template-template-home .quiz-option:has(input:checked) {
  background: rgba(255, 107, 0, 0.08);
  border-color: rgba(255, 107, 0, 0.3);
  box-shadow: 0 2px 8px rgba(255, 107, 0, 0.12);
  transform: translateY(-1px);
}

body.page-template-template-home .quiz-option-label {
  font-size: 0.9375rem;
  color: #374151;
  line-height: 1.5;
  cursor: pointer;
  flex: 1;
  padding-left: 36px;
  transition: color 0.2s ease;
}

/* Quiz navigation buttons */
body.page-template-template-home .quiz-navigation {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 32px;
}

body.page-template-template-home .quiz-btn {
  padding: 12px 24px;
  font-size: 0.9375rem;
  font-weight: 600;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

body.page-template-template-home .quiz-prev,
body.page-template-template-home .quiz-next {
  background: #ffffff;
  color: #374151;
  border: 2px solid #e5e7eb;
  min-width: 120px;
}

body.page-template-template-home .quiz-prev:hover:not(:disabled),
body.page-template-template-home .quiz-next:hover:not(:disabled) {
  background: #f9fafb;
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(255, 107, 0, 0.1);
}

body.page-template-template-home .quiz-prev:disabled,
body.page-template-template-home .quiz-next:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

body.page-template-template-home .quiz-submit {
  background: var(--color-secondary);
  color: #ffffff;
  padding: 12px 32px;
  border: none;
  box-shadow: 0 4px 12px rgba(255, 107, 0, 0.25);
}

body.page-template-template-home .quiz-submit:hover:not(:disabled) {
  background: #e65f00;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 107, 0, 0.35);
}

body.page-template-template-home .quiz-submit.loading {
  opacity: 0.7;
  cursor: wait;
}

/* Mobile responsive */
@media (max-width: 767px) {
  body.page-template-template-home .quiz-question-title {
    font-size: 1.125rem;
  }

  body.page-template-template-home .quiz-options {
    grid-template-columns: 1fr;
  }

  body.page-template-template-home .quiz-option {
    padding: 16px 18px;
  }

  body.page-template-template-home .quiz-option-label {
    font-size: 0.875rem;
    padding-left: 34px;
  }

  body.page-template-template-home .quiz-option::after {
    width: 20px;
    height: 20px;
  }

  body.page-template-template-home .quiz-navigation {
    flex-direction: column;
  }

  body.page-template-template-home .quiz-btn {
    width: 100%;
  }

  body.page-template-template-home .quiz-questions-container {
    min-height: 250px;
  }
}

/* Tablet - 2 columns */
@media (min-width: 768px) and (max-width: 1023px) {
  body.page-template-template-home .quiz-options {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Desktop - up to 3 columns for better readability */
@media (min-width: 1024px) {
  body.page-template-template-home .quiz-options {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}




/* ========================================
   Tab Loading Spinner
   ======================================== */

body.page-template-template-home .tab-loading-spinner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  border-radius: 12px;
}

body.page-template-template-home .spinner-container {
  text-align: center;
}

body.page-template-template-home .spinner {
  width: 50px;
  height: 50px;
  margin: 0 auto 16px;
  border: 4px solid #f3f4f6;
  border-top: 4px solid var(--color-secondary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

body.page-template-template-home .spinner-container p {
  font-size: 1rem;
  color: #6b7280;
  font-weight: 600;
  margin: 0;
}

/* Make tab panels position relative for absolute spinner */
body.page-template-template-home .simple-tab-panel {
  position: relative;
}

/* ========================================
   Quiz Location Detection
   ======================================== */
.location-detection-container {
  margin-top: 24px;
}

.location-input-group {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}

.location-text-input {
  flex: 1;
  padding: 14px 18px;
  font-size: 1rem;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.3s ease;
  font-family: var(--font-primary);
}

.location-text-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(43, 45, 66, 0.1);
}

.detect-location-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 24px;
  background: var(--color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.detect-location-btn:hover {
  background: #e85d0a;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

.detect-location-btn:active {
  transform: translateY(0);
}

.detect-location-btn svg {
  flex-shrink: 0;
}

.location-status {
  padding: 12px 16px;
  border-radius: 6px;
  font-size: 0.9rem;
  display: none;
}

.location-status.success {
  display: block;
  background: #d1fae5;
  color: #065f46;
  border: 1px solid #6ee7b7;
}

.location-status.error {
  display: block;
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.location-status.loading {
  display: block;
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #93c5fd;
}

@media (max-width: 768px) {
  .location-input-group {
    flex-direction: column;
  }

  .detect-location-btn {
    justify-content: center;
  }
}

.ts-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.95);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 100000;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ts-lightbox.is-open {
  display: flex;
  opacity: 1;
}

.ts-lightbox__img {
  max-width: 90vw;
  max-height: 90vh;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

.ts-lightbox__close {
  position: absolute;
  top: 20px;
  right: 30px;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.8);
  color: #ffffff;
  font-size: 40px;
  font-weight: 300;
  line-height: 1;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  z-index: 100001;
}

.ts-lightbox__close:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: #ffffff;
  transform: rotate(90deg);
}

.ts-lightbox__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.8);
  color: #ffffff;
  font-size: 30px;
  font-weight: 300;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  z-index: 100001;
}

.ts-lightbox__btn:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: #ffffff;
  transform: translateY(-50%) scale(1.1);
}

.ts-lightbox__prev {
  left: 30px;
}

.ts-lightbox__next {
  right: 30px;
}

/* Mobile responsive */
@media (max-width: 768px) {
  .ts-lightbox__close {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
    font-size: 30px;
  }

  .ts-lightbox__btn {
    width: 40px;
    height: 40px;
    font-size: 24px;
  }

  .ts-lightbox__prev {
    left: 10px;
  }

  .ts-lightbox__next {
    right: 10px;
  }

  .ts-lightbox__img {
    max-width: 95vw;
    max-height: 85vh;
  }
}

/* ========================================
   Destinations Page Styles
   ======================================== */

/* Destinations Header */
.destinations-header {
  margin-bottom: var(--spacing-xl);
}

.destinations-header h1 {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 var(--spacing-sm) 0;
}

.destinations-header p {
  font-size: 1.125rem;
  color: var(--color-text-light);
  margin: 0;
}


/* Destinations Page Hero */
body.page-template-template-popular-destinations-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-popular-destinations-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-popular-destinations-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-popular-destinations-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-popular-destinations-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-popular-destinations-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-popular-destinations-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-popular-destinations-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-popular-destinations-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* All Destinations Page Hero */
body.page-template-template-all-destinations-php .destinations-hero-wrapper {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}
body.page-template-template-all-destinations-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-all-destinations-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-all-destinations-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-all-destinations-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-all-destinations-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-all-destinations-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-all-destinations-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-all-destinations-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}


/* All Occasions Page Hero */
body.page-template-template-all-occasions-php .destinations-hero-wrapper {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}
body.page-template-template-all-occasions-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh;
  min-height: 400px;
  max-height: 650px;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-all-occasions-php .destinations-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-all-occasions-php .destinations-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}
body.page-template-template-all-occasions-php .destinations-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}
body.page-template-template-all-occasions-php .destinations-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-all-occasions-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-all-occasions-php .destinations-hero {
    height: 42vh;
    min-height: 300px;
    background-attachment: scroll;
  }
  body.page-template-template-all-occasions-php .destinations-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Region Countries Page Hero */
body.page-template-template-region-countries-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-template-template-region-countries-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-region-countries-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-region-countries-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-region-countries-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-region-countries-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-region-countries-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-region-countries-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-region-countries-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* Country Details Page Hero */
body.page-template-template-country-details-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-template-template-country-details-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-country-details-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-country-details-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-country-details-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-country-details-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
  display: flex;
  align-items: center;
}
body.page-template-template-country-details-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-country-details-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-country-details-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* All Interests Page Hero */
body.page-template-template-all-interests-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-template-template-all-interests-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-all-interests-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-all-interests-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-all-interests-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-all-interests-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-all-interests-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-all-interests-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-all-interests-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* All Comparisons Page Hero */
body.page-template-template-all-comparisons-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-template-template-all-comparisons-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-all-comparisons-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-all-comparisons-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-all-comparisons-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-all-comparisons-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-all-comparisons-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
/* Comparisons Page Back Button - Match Things to Do Design */
body.page-template-template-all-comparisons-php .destinations-hero .hero-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 500;
  margin-bottom: 16px;
  transition: all 0.2s ease;
  padding: 8px 12px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: none;
}

body.page-template-template-all-comparisons-php .destinations-hero .hero-back-btn:hover {
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  transform: translateX(-4px);
}

body.page-template-template-all-comparisons-php .destinations-hero .hero-back-btn svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
@media (max-width: 768px) {
  body.page-template-template-all-comparisons-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
    padding-top: 20px;
  }
  body.page-template-template-all-comparisons-php .destinations-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Remove default site-content padding */
main.site-content.occasion-details-layout {
  padding: 0;
  max-width: none;
}

/* Content wrapper with sidebar support */
main.site-content.occasion-details-layout .content-sidebar-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 20px;
}

main.site-content.occasion-details-layout .main-content {
  width: 100%;
}

/* Hero Section */
.occasion-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.occasion-hero {
  position: relative;
  width: 100%;
  height: 55vh;
  min-height: 400px;
  max-height: 650px;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

.occasion-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

.occasion-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

.occasion-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

.occasion-hero .hero-title {
  color: #fff;
  margin: 0 0 12px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3), 0 4px 16px rgba(0,0,0,0.2);
}

.occasion-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* Content Container */
.occasion-details-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Introduction */
.occasion-intro {
  font-size: 1.125rem;
  line-height: 1.8;
  color: #4a5568;
  margin-bottom: 3rem;
}

.occasion-intro p {
  margin-bottom: 1.25rem;
}

.occasion-intro p:last-child {
  margin-bottom: 0;
}

/* Destinations Section */
.occasion-destinations {
  margin-top: 2rem;
}

.occasion-destinations__title {
  font-size: 2rem;
  font-weight: 700;
  margin: 0 0 2.5rem;
  padding-bottom: 1rem;
  border-bottom: 3px solid var(--color-secondary);
  color: #1a202c;
}

.occasion-destinations__list {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

/* Destination Item */
.destination-item {
  position: relative;
}

.destination-item__number-inline {
  display: inline-block;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #ff8c00 100%);
  color: #fff;
  border-radius: 6px;
  padding: 0.25rem 0.75rem;
  font-size: 1.5rem;
  font-weight: 700;
  margin-right: 0.75rem;
  box-shadow: 0 2px 4px rgba(255, 165, 0, 0.3);
  vertical-align: middle;
}

.destination-item__content {
  background: #fff;
  border-radius: 8px;
  padding: 2rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  border: 1px solid #e2e8f0;
  transition: all 0.3s ease;
  margin-bottom: 50px;
}

.destination-item__content:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  border-color: var(--color-secondary);
}

.destination-item__header {
  margin-bottom: 1.25rem;
}

.destination-item__title {
  font-size: 1.875rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.5;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}

.destination-item__title a {
  color: #1a202c;
  text-decoration: none;
  transition: color 0.2s ease;
  display: inline;
}

.destination-item__title a:hover {
  color: var(--color-secondary);
}

.destination-item__image {
  margin: 1.5rem 0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.destination-item__image img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s ease;
}

.destination-item__image a:hover img {
  transform: scale(1.03);
}

.destination-item__description {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #2d3748;
  margin-bottom: 1.5rem;
}

.destination-item__description p {
  margin-bottom: 1.25rem;
}

.destination-item__description p:last-child {
  margin-bottom: 0;
}

.destination-item__cta {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 2px solid #e2e8f0;
}

.destination-item__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  background: var(--color-secondary);
  color: #fff;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  border-radius: 6px;
  transition: all 0.2s ease;
}

.destination-item__link:hover {
  background: #ff8c00;
  gap: 0.75rem;
  box-shadow: 0 4px 6px -1px rgba(255, 165, 0, 0.4);
  transform: translateX(2px);
}

.destination-item__link svg {
  flex-shrink: 0;
}

/* Personalized Recommendations CTA Section */
.occasion-cta-section {
  margin-top: 4rem;
  padding: 3rem 0;
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border-radius: 16px;
  border: 1px solid #bae6fd;
}

.occasion-cta-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2rem;
  padding: 0 2rem;
}

.occasion-cta-icon {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #ff8c00 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px -5px rgba(255, 165, 0, 0.3);
}

.occasion-cta-icon svg {
  color: #fff;
  width: 48px;
  height: 48px;
}

.occasion-cta-content {
  max-width: 800px;
}

.occasion-cta-title {
  font-size: 2rem;
  font-weight: 800;
  color: #1a202c;
  margin: 0 0 1rem 0;
  line-height: 1.2;
}

.occasion-cta-description {
  font-size: 1.125rem;
  line-height: 1.7;
  color: #4a5568;
  margin: 0 0 2rem 0;
}

.occasion-cta-features {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
  text-align: left;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.occasion-cta-feature {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1rem;
  color: #2d3748;
}

.occasion-cta-feature svg {
  flex-shrink: 0;
  color: #10b981;
  stroke-width: 3;
}

.occasion-cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2.5rem;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #ff8c00 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1.125rem;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 6px -1px rgba(255, 165, 0, 0.4), 0 2px 4px -1px rgba(255, 165, 0, 0.2);
}

.occasion-cta-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(255, 165, 0, 0.4), 0 4px 6px -2px rgba(255, 165, 0, 0.2);
  gap: 1rem;
}

.occasion-cta-button svg {
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.occasion-cta-button:hover svg {
  transform: translateX(4px);
}

/* Occasion Details - Mobile Responsive */
@media (max-width: 768px) {
  .occasion-hero {
    height: 42vh;
    min-height: 300px;
    background-attachment: scroll;
  }

  .occasion-hero .hero-container {
    padding: 0 18px 28px 18px;
  }

  .occasion-details-container {
    padding: 2rem 18px;
  }

  .occasion-intro {
    font-size: 1rem;
    margin-bottom: 2rem;
  }

  .occasion-destinations__title {
    font-size: 1.75rem;
    margin-bottom: 2rem;
  }

  .occasion-destinations__list {
    gap: 2.5rem;
  }

  .destination-item__number-inline {
    font-size: 1.25rem;
    padding: 0.2rem 0.6rem;
  }

  .destination-item__content {
    padding: 1.5rem;
  }

  .destination-item__title {
    font-size: 1.625rem;
  }

  .destination-item__description {
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  .occasion-details-container {
    padding: 1.5rem 18px;
  }

  .occasion-destinations__title {
    font-size: 1.5rem;
  }

  .destination-item__number-inline {
    font-size: 1.125rem;
    padding: 0.15rem 0.5rem;
    margin-right: 0.5rem;
  }

  .destination-item__content {
    padding: 1.25rem;
  }

  .destination-item__title {
    font-size: 1.375rem;
  }

  .destination-item__link {
    width: 100%;
    justify-content: center;
  }

  /* CTA Section - Mobile */
  .occasion-cta-section {
    margin-top: 3rem;
    padding: 2rem 0;
    border-radius: 12px;
  }

  .occasion-cta-container {
    padding: 0 1.5rem;
    gap: 1.5rem;
  }

  .occasion-cta-icon {
    width: 64px;
    height: 64px;
  }

  .occasion-cta-icon svg {
    width: 36px;
    height: 36px;
  }

  .occasion-cta-title {
    font-size: 1.5rem;
  }

  .occasion-cta-description {
    font-size: 1rem;
    margin-bottom: 1.5rem;
  }

  .occasion-cta-features {
    gap: 0.875rem;
    margin-bottom: 1.5rem;
  }

  .occasion-cta-feature {
    font-size: 0.9375rem;
  }

  .occasion-cta-button {
    padding: 0.875rem 2rem;
    font-size: 1rem;
    width: 100%;
    justify-content: center;
  }
}

/* Interest Details Page Hero */
body.page-template-template-interest-details-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Vacation Type Details Page Hero */
body.page-template-template-vacation-type-details-php .destinations-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-template-template-interest-details-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}
body.page-template-template-interest-details-php .destinations-hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-interest-details-php .destinations-hero .hero-content {
  position: relative; z-index: 2; height: 100%;
  display: flex; align-items: flex-end;
}
body.page-template-template-interest-details-php .destinations-hero .hero-container {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px 44px 24px;
}
body.page-template-template-interest-details-php .destinations-hero .hero-title {
  color: #fff; margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}
body.page-template-template-interest-details-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-interest-details-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile */
  }
  body.page-template-template-interest-details-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* Vacation Type Details Page Hero Styles */
body.page-template-template-vacation-type-details-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
  display: flex;
  align-items: flex-end;
}
body.page-template-template-vacation-type-details-php .hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}
body.page-template-template-vacation-type-details-php .hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 0 0 32px 0;
}
body.page-template-template-vacation-type-details-php .hero-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 0 24px;
}
body.page-template-template-vacation-type-details-php .hero-title {
  color: #ffffff;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 800;
  margin: 0 0 12px 0;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  gap: 16px;
}
body.page-template-template-vacation-type-details-php .hero-icon {
  font-size: 2.5rem;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}
body.page-template-template-vacation-type-details-php .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}
@media (max-width: 768px) {
  body.page-template-template-vacation-type-details-php .destinations-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll;
  }
  body.page-template-template-vacation-type-details-php .destinations-hero .hero-container { padding: 0 18px 28px 18px; }
}

/* Vacation Type Destinations Container */
.vacation-type-destinations-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 0 60px 0;
}

/* ========================================
   Breadcrumbs
   ======================================== */
.breadcrumbs {
  margin: 0 0 24px 0;
  padding: 0;
}

.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
  color: #6b7280;
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.breadcrumb-item a {
  color: #6b7280;
  text-decoration: none;
  transition: color 0.2s ease;
}

.breadcrumb-item a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.breadcrumb-item.active span {
  color: #111827;
  font-weight: 500;
}

.breadcrumb-separator {
  color: #d1d5db;
  user-select: none;
}

@media (max-width: 768px) {
  .breadcrumb-list {
    font-size: 0.8125rem;
    gap: 6px;
  }

  .breadcrumb-item {
    gap: 6px;
  }
}

/* Hero Back Button - General (for all templates) - Match Things to Do Design */
.destinations-hero .hero-back-btn,
.destinations-hero a.hero-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 500;
  margin-bottom: 16px;
  transition: all 0.2s ease;
  padding: 8px 12px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: none;
}

.destinations-hero .hero-back-btn:hover,
.destinations-hero a.hero-back-btn:hover {
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  transform: translateX(-4px);
}

.destinations-hero .hero-back-btn svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.back-link {
  color: var(--color-secondary);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s ease;
}

.back-link:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

/* Section Headers */
.destinations-section {
  margin-bottom: var(--spacing-xl);
}

.section-header {
  margin-bottom: var(--spacing-lg);
}

.section-header h2 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 var(--spacing-xs) 0;
}

.section-header p {
  font-size: 1rem;
  color: var(--color-text-light);
  margin: 0;
}

/* Section header top row with action */
.section-header-top { display:flex; align-items: baseline; justify-content: space-between; gap:16px; }
.view-all-link {
  display:inline-flex; align-items:center; gap:6px; text-decoration:none; font-weight:600; font-size:0.95rem;
  padding:8px 16px; border-radius:6px; border:1px solid #e5e7eb;
  color: var(--color-secondary);
  background-color: #ffffff;
  transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.view-all-link:hover {
  background-color: color-mix(in srgb, var(--color-secondary) 4%, #ffffff);
  box-shadow: 0 4px 8px rgba(0,0,0,.06);
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-secondary) 30%, #e5e7eb);
}
.view-all-link:focus-visible { outline:none; box-shadow: 0 0 0 3px rgba(248,150,30,.25); border-color: var(--color-secondary); }
@media (max-width: 600px) { .section-header-top { align-items: center; } }

/* Destinations Grid */
.destinations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.destination-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  text-decoration: none;
  display: block;
  background-color: color-mix(in srgb, var(--color-secondary) 6%, #ffffff);
  background-image: linear-gradient(180deg, color-mix(in srgb, var(--color-secondary) 8%, #ffffff) 0%, color-mix(in srgb, var(--color-secondary) 3%, #f9fafb) 100%);
}

.destination-card:hover {
  transform: translateY(-8px);
}

.destination-card-image {
  width: 100%;
  height: 250px;
  position: relative;
  overflow: hidden;
  transition: transform .35s ease;
}

.destination-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.35s ease;
}

.destination-card:hover .destination-card-image img {
  transform: scale(1.04);
}

.destination-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
  pointer-events: none;
}

.destination-card-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  gap: 6px;
  z-index: 2;
}
.badge {
  font-size: 0.75rem;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,0.6);
  color: #fff;
}
.badge-popular { background: var(--color-secondary); color: #fff; }

.destination-card-meta {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  z-index: 2;
}
.chip {
  font-size: 0.85rem;
  padding: 6px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(0,0,0,0.55);
  backdrop-filter: saturate(110%) blur(2px);
  -webkit-backdrop-filter: saturate(110%) blur(2px);
}

.destination-card-cta {
  margin-top: 10px;
  font-weight: 600;
  color: var(--color-secondary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.destination-card-cta .arrow { transition: transform .2s ease; display: inline-block; }
.destination-card:hover .destination-card-cta .arrow { transform: translateX(3px); }

@media (max-width: 768px) {
  .destination-card-image { height: 220px; }
}


.destination-card-content {
  padding: 20px;
}

/* Region placement inside card content for popular destinations */
.destination-card-content .destination-card-region {
  margin: 6px 0 0 0;
  font-size: 0.95rem;
  color: #6b7280;
}


.destination-card-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 8px 0;
}

.destination-card-country {
  font-size: 1rem;
  color: #6b7280;
  margin: 0 0 8px 0;
}

.destination-card-type,
.destination-card-region {
  font-size: 0.9rem;
  color: var(--color-secondary);
  margin: 0;
}

/* Regions Grid */
.regions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.region-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  text-decoration: none;
  display: block;
  height: 300px;
}

.region-card:hover {
  transform: translateY(-8px);
}

.region-card-image {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  position: relative;
}

.region-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.8) 100%);
}

.region-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px;
  color: #ffffff;
  z-index: 1;
}

.region-card-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 8px 0;
}

.region-card-count {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

/* Countries Grid */
.countries-section {
  margin-bottom: 48px;
}

.countries-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.country-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  text-decoration: none;
  display: block;
  background-color: color-mix(in srgb, var(--color-secondary) 6%, #ffffff);
  background-image: linear-gradient(180deg, color-mix(in srgb, var(--color-secondary) 8%, #ffffff) 0%, color-mix(in srgb, var(--color-secondary) 3%, #f9fafb) 100%);
}

.country-card:hover {
  transform: translateY(-8px);
}

.country-card-image {
  width: 100%;
  height: 200px;
  position: relative;
  overflow: hidden;
}

.country-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.35s ease;
}

.country-card:hover .country-card-image img {
  transform: scale(1.05);
}

.country-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.6) 100%);
  pointer-events: none;
}

.country-card-content {
  padding: 20px;
}

.country-card-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 8px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.country-flag {
  font-size: 1.75rem;
  line-height: 1;
}

.country-card-count {
  font-size: 1rem;
  color: #6b7280;
  margin: 0 0 12px 0;
}

.country-card-cta {
  margin-top: 10px;
  font-weight: 600;
  color: var(--color-secondary);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.country-card-cta .arrow {
  transition: transform .2s ease;
  display: inline-block;
}

.country-card:hover .country-card-cta .arrow {
  transform: translateX(3px);
}

@media (max-width: 1024px) {
  .countries-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .countries-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .country-card-image {
    height: 160px;
  }

  .country-card-content {
    padding: 16px;
  }

  .country-card-title {
    font-size: 1.25rem;
  }
}

@media (max-width: 480px) {
  .countries-grid {
    grid-template-columns: 1fr;
  }
}

/* Vacation Types Grid */
.vacation-types-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.vacation-type-card {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 14px;
  padding: 28px 22px;
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  text-decoration: none;
  display: block;
  border: none;
  position: relative;
  overflow: hidden;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
}

.vacation-type-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
  transition: background 0.25s ease;
}

.vacation-type-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

.vacation-type-card:hover .vacation-type-overlay {
  background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.55) 60%, rgba(0,0,0,0.75) 100%);
}

.vacation-type-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  font-size: 2rem;
  margin: 0 auto 14px auto;
  line-height: 1;
  position: relative;
  z-index: 2;
}

.vacation-type-content {
  position: relative;
  z-index: 2;
}

.vacation-type-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 8px 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Accessibility + focus state */
.vacation-type-card:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.5), 0 12px 24px rgba(0, 0, 0, 0.15);
  transform: translateY(-6px);
}

/* Responsive columns for types grid */
@media (max-width: 1024px) { .vacation-types-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .vacation-types-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px)  { .vacation-types-grid { grid-template-columns: 1fr; } }

.vacation-type-count {
  font-size: 0.9rem;
  color: #ffffff;
  margin: 0;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Filter Controls */
.filter-section {
  margin-bottom: 48px;
}

.filter-controls {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.filter-controls label {
  display: block;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 12px;
}

.region-select,
.type-select {
  width: 100%;
  padding: 14px 18px;
  font-size: 1rem;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.3s ease;
}

.region-select:focus,
.type-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(43, 45, 66, 0.1);
}

/* No Results */
.no-results-section,
.no-destinations,
.no-regions,
.no-types {
  text-align: center;
  padding: 60px 20px;
  font-size: 1.125rem;
  color: #6b7280;
}

/* Page Content Section */
.page-content-section {
  margin-top: 60px;
  padding-top: 60px;
  border-top: 2px solid #e5e7eb;
}

.page-content {
  max-width: 800px;
  margin: 0 auto;
  font-size: 1.125rem;
  line-height: 1.8;
  color: #374151;
}

/* Responsive Design */
@media (max-width: 1200px) {
  .destinations-grid,
  .regions-grid,
  .vacation-types-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 900px) {
  .destinations-grid,
  .regions-grid,
  .vacation-types-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .destinations-header h1 {
    font-size: 2rem;
  }

  .section-header h2 {
    font-size: 1.75rem;
  }
}

@media (max-width: 600px) {
  .destinations-grid,
  .regions-grid,
  .vacation-types-grid {
    grid-template-columns: 1fr;
  }

  .destinations-header h1 {
    font-size: 1.75rem;
  }

  .destinations-header p { font-size: 1rem; }




  .section-header h2 {
    font-size: 1.5rem;
  }

  .destination-card-image,
  .region-card {
    height: 200px;
  }
}


/* All Destinations page cleanup */
body.page-template-template-all-destinations-php {
  overflow-x: hidden;
}
body.page-template-template-all-destinations-php .site-content {
  overflow-x: hidden;
  padding: 0 !important;
}
body.page-template-template-all-destinations-php .content-sidebar-wrap {
  overflow-x: hidden;
  padding: 0 !important;
  margin: 0 !important;
}
body.page-template-template-all-destinations-php .main-content {
  overflow-x: hidden;
  padding: var(--spacing-lg);
  box-sizing: border-box;
}
body.page-template-template-all-destinations-php .destinations-header { margin: 24px 0 16px; }
body.page-template-template-all-destinations-php .filter-section { margin: 0 0 16px; padding: 0; }

/* All Tools Page */
body.page-template-template-all-tools-php {
  overflow-x: hidden;
}
body.page-template-template-all-tools-php .site-content {
  overflow-x: hidden;
  padding: 0 !important;
}
body.page-template-template-all-tools-php .content-sidebar-wrap {
  overflow-x: hidden;
  padding: 0 !important;
  margin: 0 !important;
}
body.page-template-template-all-tools-php .main-content {
  overflow-x: hidden;
  padding: var(--spacing-lg);
  box-sizing: border-box;
}

body.page-template-template-all-tools-php .destinations-hero-wrapper {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
}

body.page-template-template-all-tools-php .destinations-hero {
  position: relative;
  width: 100%;
  height: 55vh;
  min-height: 400px;
  max-height: 650px;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-all-tools-php .destinations-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-all-tools-php .destinations-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-all-tools-php .destinations-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-all-tools-php .destinations-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-all-tools-php .destinations-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-all-tools-php .destinations-hero {
    height: 42vh;
    min-height: 300px;
    background-attachment: scroll;
  }
  body.page-template-template-all-tools-php .destinations-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Tools Grid */
.tools-section {
  margin-bottom: var(--spacing-xl);
}

.tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
  margin-bottom: 48px;
}

.tool-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.tool-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
  border-color: var(--color-secondary);
}

.tool-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
  position: relative;
  overflow: hidden;
}

.tool-card-icon::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
  animation: pulse 3s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
}

.tool-icon {
  font-size: 3.5rem;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.2));
}

.tool-card-content {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.tool-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 12px 0;
}

.tool-card-description {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0 0 20px 0;
  flex: 1;
}

.tool-card-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-secondary);
  font-weight: 600;
  font-size: 0.9375rem;
  transition: gap 0.3s ease;
}

.tool-card:hover .tool-card-link {
  gap: 12px;
}

.tool-card-link svg {
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.tool-card:hover .tool-card-link svg {
  transform: translateX(4px);
}

/* SEO Content Section */
.seo-content-section {
  margin-top: 48px;
  padding-top: 48px;
  border-top: 1px solid #e5e7eb;
}

.seo-content {
  max-width: 800px;
}

.seo-content h2 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 16px 0;
}

.seo-content h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-primary);
  margin: 32px 0 12px 0;
}

.seo-content p {
  font-size: 1rem;
  line-height: 1.7;
  color: #374151;
  margin-bottom: 16px;
}

.seo-content ul {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}

.seo-content ul li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 12px;
  font-size: 1rem;
  line-height: 1.6;
  color: #374151;
}

.seo-content ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--color-secondary);
  font-weight: 700;
  font-size: 1.125rem;
}

@media (max-width: 768px) {
  .tools-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .tool-card-icon {
    height: 100px;
  }

  .tool-icon {
    font-size: 3rem;
  }

  .tool-card-content {
    padding: 20px;
  }

  .seo-content h2 {
    font-size: 1.5rem;
  }

  .seo-content h3 {
    font-size: 1.125rem;
  }
}

/* Right-aligned, compact filters */
body.page-template-template-all-destinations-php .filter-controls { max-width: none; margin: 0; text-align: right; }

body.page-template-template-all-destinations-php .filter-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 10px 12px;
}
body.page-template-template-all-destinations-php .filter-controls select {
  width: auto;
  min-width: 180px;
  font-size: 0.9rem;
  padding: 6px 10px;
  height: 36px;
  line-height: 1.2;
  border-radius: 8px;
  border-width: 1px;
}
body.page-template-template-all-destinations-php .filter-actions-inline { display: flex; gap: 10px; align-items: center; }
body.page-template-template-all-destinations-php .filter-actions-inline .button { font-size: 0.9rem; padding: 6px 12px; height: 36px; line-height: 1.2; }

@media (max-width: 900px) {
  body.page-template-template-all-destinations-php .filter-row { justify-content: flex-start; }
}
@media (max-width: 600px) {
  body.page-template-template-all-destinations-php .filter-row { justify-content: flex-start; }
}

/* Pagination - All Destinations Page */
body.page-template-template-all-destinations-php nav.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 48px 0 40px;
  padding: 32px 0 0 0;
  border-top: 1px solid #e5e7eb;
}

body.page-template-template-all-destinations-php .pagination-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  color: var(--color-secondary);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

body.page-template-template-all-destinations-php .pagination-btn:hover {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.2);
}

body.page-template-template-all-destinations-php .pagination-btn.pagination-disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

body.page-template-template-all-destinations-php .pagination-btn svg {
  flex-shrink: 0;
}

body.page-template-template-all-destinations-php .pagination-numbers {
  display: flex;
  align-items: center;
  gap: 6px;
}

body.page-template-template-all-destinations-php .pagination-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  color: #2b2d42;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.2s ease;
}

body.page-template-template-all-destinations-php .pagination-number:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
  transform: translateY(-2px);
}

body.page-template-template-all-destinations-php .pagination-number.pagination-current {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
  cursor: default;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.25);
}

body.page-template-template-all-destinations-php .pagination-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  color: #9ca3af;
  font-weight: 600;
  font-size: 0.9375rem;
}

/* Mobile responsive for All Destinations pagination */
@media (max-width: 640px) {
  body.page-template-template-all-destinations-php nav.pagination {
    gap: 8px;
  }

  body.page-template-template-all-destinations-php .pagination-btn span {
    display: none;
  }

  body.page-template-template-all-destinations-php .pagination-btn {
    padding: 10px 12px;
  }

  body.page-template-template-all-destinations-php .pagination-numbers {
    gap: 4px;
  }

  body.page-template-template-all-destinations-php .pagination-number {
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 0.875rem;
  }

  body.page-template-template-all-destinations-php .pagination-ellipsis {
    min-width: 36px;
    height: 36px;
  }
}

/* Pagination Component (for Interest & Vacation Type pages) */
nav.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 48px 0 0 0;
  padding: 32px 0 0 0;
  border-top: 1px solid #e5e7eb;
}

/* WordPress paginate_links() with type='list' generates <ul class="page-numbers"> */
nav.pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

nav.pagination ul.page-numbers li {
  margin: 0;
  padding: 0;
}

/* Page number links and current page */
nav.pagination .page-numbers a,
nav.pagination .page-numbers span.current,
nav.pagination .page-numbers span.dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  color: #2b2d42;
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.2s ease;
}

/* Hover state for links */
nav.pagination .page-numbers a:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
  transform: translateY(-2px);
}

/* Current page */
nav.pagination .page-numbers span.current {
  background: #f8961e;
  border-color: #f8961e;
  color: #ffffff;
  cursor: default;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.25);
}

/* Dots/ellipsis */
nav.pagination .page-numbers span.dots {
  background: transparent;
  border: none;
  color: #9ca3af;
}

/* Previous/Next links */
nav.pagination .page-numbers a.prev,
nav.pagination .page-numbers a.next {
  padding: 10px 18px;
  gap: 8px;
}

nav.pagination .page-numbers a.prev:hover,
nav.pagination .page-numbers a.next:hover {
  background: #f8961e;
  border-color: #f8961e;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.2);
}

/* Legacy styles for custom pagination (Interest Details page) */
.pagination-prev,
.pagination-next {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

.pagination-prev:hover,
.pagination-next:hover {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.2);
}

.pagination-prev.disabled,
.pagination-next.disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.pagination-prev svg,
.pagination-next svg {
  flex-shrink: 0;
}

.pagination-numbers {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pagination-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9375rem;
  text-decoration: none;
  transition: all 0.2s ease;
}

.pagination-number:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
}

.pagination-number.current {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
  cursor: default;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.25);
}

.pagination-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  color: #9ca3af;
  font-weight: 600;
  font-size: 0.9375rem;
}

/* Responsive Pagination */
@media (max-width: 640px) {
  nav.pagination {
    gap: 8px;
  }

  nav.pagination ul.page-numbers {
    gap: 6px;
  }

  nav.pagination .page-numbers a,
  nav.pagination .page-numbers span.current,
  nav.pagination .page-numbers span.dots {
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 0.875rem;
  }

  nav.pagination .page-numbers a.prev,
  nav.pagination .page-numbers a.next {
    padding: 8px 12px;
    font-size: 0.875rem;
  }

  /* Hide text in prev/next on mobile, keep only arrows */
  nav.pagination .page-numbers a.prev::before {
    content: '‹';
  }
  nav.pagination .page-numbers a.next::after {
    content: '›';
  }

  .pagination-prev span,
  .pagination-next span {
    display: none;
  }

  .pagination-prev,
  .pagination-next {
    padding: 10px 12px;
  }

  .pagination-number {
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 0.875rem;
  }

  .pagination-ellipsis {
    min-width: 36px;
    height: 36px;
  }
}

/* ========================================
   Itinerary Page Styles
   ======================================== */

/* Itinerary Hero Section */
body.page-template-template-itinerary .itinerary-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-itinerary .itinerary-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-itinerary .itinerary-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-itinerary .itinerary-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-itinerary .itinerary-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-itinerary .itinerary-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-itinerary .itinerary-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-itinerary .itinerary-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile for performance */
  }

  body.page-template-template-itinerary .itinerary-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Itinerary Container */
body.page-template-template-itinerary .itinerary-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  /* padding: 40px 24px; */
}

@media (max-width: 768px) {
  body.page-template-template-itinerary .itinerary-container {
    /* padding: 24px 18px; */
  }
}

body.page-template-template-itinerary .itinerary-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

/* Form Styles */
body.page-template-template-itinerary .form-row {
  margin-bottom: 24px;
}

body.page-template-template-itinerary .form-row-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

body.page-template-template-itinerary .form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--color-primary);
  font-size: 1rem;
}

body.page-template-template-itinerary .form-group .required {
  color: var(--color-secondary);
  margin-left: 4px;
}

body.page-template-template-itinerary .form-group input[type="text"],
body.page-template-template-itinerary .form-group input[type="date"],
body.page-template-template-itinerary .form-group textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  font-family: var(--font-primary);
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .form-group input:focus,
body.page-template-template-itinerary .form-group textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

body.page-template-template-itinerary .form-group textarea {
  resize: vertical;
  min-height: 80px;
}

body.page-template-template-itinerary .field-hint {
  display: block;
  margin-top: 6px;
  font-size: 0.875rem;
  color: var(--color-gray-dark);
}

/* Interest Tags */
body.page-template-template-itinerary .interest-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}

body.page-template-template-itinerary .interest-tag {
  display: inline-block;
  cursor: pointer;
}

body.page-template-template-itinerary .interest-tag input[type="checkbox"] {
  display: none;
}

body.page-template-template-itinerary .interest-tag span {
  display: inline-block;
  padding: 10px 18px;
  background: #f3f4f6;
  border: 2px solid #e5e7eb;
  border-radius: 24px;
  font-size: 0.9rem;
  font-weight: 500;
  color: #374151;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .interest-tag:hover span {
  background: #e5e7eb;
  border-color: #d1d5db;
}

body.page-template-template-itinerary .interest-tag input:checked + span {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
}

/* Pace Options */
body.page-template-template-itinerary .pace-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 12px;
}

body.page-template-template-itinerary .pace-option {
  cursor: pointer;
}

body.page-template-template-itinerary .pace-option input[type="radio"] {
  display: none;
}

body.page-template-template-itinerary .pace-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 20px 16px;
  background: #f9fafb;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .pace-card strong {
  display: block;
  font-size: 1rem;
  color: var(--color-primary);
  margin-bottom: 6px;
}

body.page-template-template-itinerary .pace-card small {
  font-size: 0.875rem;
  color: var(--color-gray-dark);
}

body.page-template-template-itinerary .pace-option:hover .pace-card {
  background: #f3f4f6;
  border-color: #d1d5db;
}

body.page-template-template-itinerary .pace-option input:checked + .pace-card {
  background: #fff7ed;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

/* Trip Type Options */
body.page-template-template-itinerary .trip-type-options {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

body.page-template-template-itinerary .trip-type-option {
  cursor: pointer;
}

body.page-template-template-itinerary .trip-type-option input[type="radio"] {
  display: none;
}

body.page-template-template-itinerary .trip-type-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.3s ease;
}

body.page-template-template-itinerary .trip-type-card strong {
  font-size: 1rem;
  color: var(--color-primary);
}

body.page-template-template-itinerary .trip-type-card small {
  font-size: 0.85rem;
  color: var(--color-gray-dark);
}

body.page-template-template-itinerary .trip-type-option:hover .trip-type-card {
  border-color: var(--color-secondary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

body.page-template-template-itinerary .trip-type-option input[type="radio"]:checked + .trip-type-card {
  background: color-mix(in srgb, var(--color-secondary) 8%, #ffffff);
  border-color: var(--color-secondary);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.15);
}

/* Trip Duration Display */
body.page-template-template-itinerary .trip-duration-info {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: color-mix(in srgb, var(--color-accent) 25%, #ffffff);
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-primary);
}

body.page-template-template-itinerary .trip-duration-info svg {
  color: var(--color-accent);
  flex-shrink: 0;
}

/* Form Section Subtitle */
body.page-template-template-itinerary .form-section-subtitle {
  font-size: 0.9rem;
  color: var(--color-gray-dark);
  margin: -8px 0 16px 0;
  font-weight: 500;
}

/* Multi-City List */
body.page-template-template-itinerary #multi-city-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 20px;
}

/* City Days Warning */
body.page-template-template-itinerary .city-days-warning {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: #fef2f2;
  border-radius: 8px;
  margin-bottom: 16px;
  animation: shake 0.5s ease;
}

body.page-template-template-itinerary .city-days-warning svg {
  color: #dc2626;
  flex-shrink: 0;
}

body.page-template-template-itinerary .city-days-warning span {
  font-size: 0.95rem;
  font-weight: 600;
  color: #991b1b;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

body.page-template-template-itinerary .city-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 120px 40px;
  gap: 16px;
  align-items: end;
  padding: 20px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  transition: all 0.3s ease;
}

body.page-template-template-itinerary .city-item:hover {
  border-color: color-mix(in srgb, var(--color-secondary) 40%, #e5e7eb);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

body.page-template-template-itinerary .city-item-number {
  position: absolute;
  left: -8px;
  top: -12px;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-secondary);
  color: #ffffff;
  border-radius: 14px;
  font-size: 0.75rem;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(248, 150, 30, 0.3);
  z-index: 1;
}

body.page-template-template-itinerary .city-input-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

body.page-template-template-itinerary .city-input-group label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-gray-dark);
  margin: 0;
}

body.page-template-template-itinerary .city-input-group input {
  margin: 0;
  padding: 10px 14px;
  font-size: 0.95rem;
}

body.page-template-template-itinerary .city-days-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

body.page-template-template-itinerary .city-days-group label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-gray-dark);
  margin: 0;
}

body.page-template-template-itinerary .city-days-group input {
  margin: 0;
  padding: 10px 14px;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
}

body.page-template-template-itinerary .remove-city-btn {
  padding: 10px;
  background: transparent;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: var(--color-gray-dark);
  height: 40px;
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.page-template-template-itinerary .remove-city-btn:hover {
  background: #fee2e2;
  border-color: #dc2626;
  color: #dc2626;
  transform: scale(1.05);
}

body.page-template-template-itinerary .remove-city-btn svg {
  display: block;
  width: 18px;
  height: 18px;
}

body.page-template-template-itinerary .add-city-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  background: #ffffff;
  border: 2px dashed #d1d5db;
  border-radius: 8px;
  color: var(--color-primary);
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 100%;
  margin-bottom: 8px;
}

body.page-template-template-itinerary .add-city-btn:hover {
  background: color-mix(in srgb, var(--color-secondary) 8%, #ffffff);
  border-color: var(--color-secondary);
  border-style: solid;
  color: var(--color-secondary);
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.15);
}

body.page-template-template-itinerary .add-city-btn svg {
  width: 16px;
  height: 16px;
}

/* Interest Tags */
body.page-template-template-itinerary .interest-tags {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

body.page-template-template-itinerary .interest-tag {
  display: flex;
  cursor: pointer;
  position: relative;
  height: 100%;
}

body.page-template-template-itinerary .interest-tag input[type="checkbox"] {
  display: none;
}

body.page-template-template-itinerary .interest-tag span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  padding: 16px 20px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  letter-spacing: 0.01em;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

body.page-template-template-itinerary .interest-tag span::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: var(--color-secondary);
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: -1;
}

body.page-template-template-itinerary .interest-tag:hover span {
  border-color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.15);
}

body.page-template-template-itinerary .interest-tag input[type="checkbox"]:checked + span {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.2);
  transform: translateY(-1px);
}

body.page-template-template-itinerary .interest-tag input[type="checkbox"]:checked + span::after {
  opacity: 1;
}

/* Avoid Activity Tags */
body.page-template-template-itinerary .avoid-tags {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

body.page-template-template-itinerary .avoid-tag {
  display: flex;
  cursor: pointer;
  position: relative;
  height: 100%;
}

body.page-template-template-itinerary .avoid-tag input[type="checkbox"] {
  display: none;
}

body.page-template-template-itinerary .avoid-tag span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  padding: 16px 20px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  letter-spacing: 0.01em;
  text-align: center;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

body.page-template-template-itinerary .avoid-tag span::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: #dc2626;
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: -1;
}

body.page-template-template-itinerary .avoid-tag:hover span {
  border-color: #dc2626;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(220, 38, 38, 0.15);
}

body.page-template-template-itinerary .avoid-tag input[type="checkbox"]:checked + span {
  background: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(220, 38, 38, 0.2);
  transform: translateY(-1px);
}

body.page-template-template-itinerary .avoid-tag input[type="checkbox"]:checked + span::after {
  opacity: 1;
}

/* Form Actions */
body.page-template-template-itinerary .form-actions {
  margin-top: 32px;
  text-align: center;
}

body.page-template-template-itinerary .submit-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 32px;
  background: var(--color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 1.125rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .submit-button:hover {
  background: #e8850d;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

body.page-template-template-itinerary .submit-button:active {
  transform: translateY(0);
}

body.page-template-template-itinerary .button-spinner svg {
  animation: spin 1s linear infinite;
}

/* Loading State */
body.page-template-template-itinerary .itinerary-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  text-align: center;
}

body.page-template-template-itinerary .spinner-container {
  text-align: center;
}

body.page-template-template-itinerary .spinner {
  width: 60px;
  height: 60px;
  margin: 0 auto 24px;
  border: 5px solid #f3f4f6;
  border-top: 5px solid var(--color-secondary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

body.page-template-template-itinerary .loading-text {
  font-size: 1.125rem;
  color: var(--color-gray-dark);
  font-weight: 500;
}

/* Itinerary Display Header */
body.page-template-template-itinerary .itinerary-display-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 16px;
}

body.page-template-template-itinerary .section-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  letter-spacing: -0.02em;
}

body.page-template-template-itinerary .itinerary-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

body.page-template-template-itinerary .action-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

body.page-template-template-itinerary .action-button:hover {
  background: #e8850d;
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

body.page-template-template-itinerary .action-button svg {
  width: 16px;
  height: 16px;
}

body.page-template-template-itinerary .action-button.secondary {
  background: #ffffff;
  color: var(--color-primary);
  border: 1px solid #e5e7eb;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

body.page-template-template-itinerary .action-button.secondary:hover {
  background: #f9fafb;
  border-color: var(--color-primary);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* Itinerary Summary */
body.page-template-template-itinerary .itinerary-summary {
  text-align: center;
  margin-bottom: 56px;
  padding: 40px 32px;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
}

body.page-template-template-itinerary .itinerary-summary::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);
}

body.page-template-template-itinerary .summary-destination {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0 0 10px 0;
  letter-spacing: -0.03em;
}

body.page-template-template-itinerary .summary-dates {
  font-size: 1.125rem;
  color: var(--color-gray-dark);
  margin: 0 0 24px 0;
  font-weight: 500;
}

body.page-template-template-itinerary .summary-meta {
  display: flex;
  gap: 32px;
  justify-content: center;
  flex-wrap: wrap;
  padding-top: 20px;
  border-top: 1px solid #f3f4f6;
}

body.page-template-template-itinerary .summary-meta .meta-item {
  font-size: 0.95rem;
  color: var(--color-text);
}

body.page-template-template-itinerary .summary-meta .meta-label {
  font-weight: 600;
  color: var(--color-primary);
}

/* Timeline Layout */
body.page-template-template-itinerary .itinerary-timeline {
  position: relative;
  padding-left: 60px;
}

body.page-template-template-itinerary .itinerary-timeline::before {
  content: '';
  position: absolute;
  left: 20px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-secondary), color-mix(in srgb, var(--color-secondary) 40%, transparent));
}

body.page-template-template-itinerary .timeline-day {
  position: relative;
  margin-bottom: 40px;
}

body.page-template-template-itinerary .timeline-day:last-child {
  margin-bottom: 0;
}

body.page-template-template-itinerary .day-marker {
  position: absolute;
  left: -60px;
  top: 0;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-secondary);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #ffffff, 0 0 0 6px color-mix(in srgb, var(--color-secondary) 30%, transparent);
  z-index: 2;
}

body.page-template-template-itinerary .day-number {
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
}

body.page-template-template-itinerary .day-content {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 28px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

body.page-template-template-itinerary .timeline-day.expanded .day-content:hover {
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--color-primary) 20%, transparent);
}

body.page-template-template-itinerary .timeline-day:not(.expanded) .day-content {
  padding: 20px 28px;
  background: #fafbfc;
  cursor: pointer;
}

body.page-template-template-itinerary .timeline-day:not(.expanded) .day-content:hover {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-secondary) 25%, #e5e7eb);
}

body.page-template-template-itinerary .day-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 2px solid #f3f4f6;
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .day-header:hover {
  border-bottom-color: color-mix(in srgb, var(--color-secondary) 30%, #f3f4f6);
}

body.page-template-template-itinerary .day-header:focus {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
  border-radius: 4px;
}

body.page-template-template-itinerary .day-header-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

body.page-template-template-itinerary .day-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  letter-spacing: -0.02em;
}

body.page-template-template-itinerary .day-date {
  font-size: 0.9rem;
  color: var(--color-gray-dark);
  font-weight: 500;
  letter-spacing: 0.01em;
}

body.page-template-template-itinerary .day-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #f9fafb;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

body.page-template-template-itinerary .day-toggle svg {
  transition: transform 0.3s ease;
  color: var(--color-gray-dark);
}

body.page-template-template-itinerary .timeline-day.expanded .day-toggle svg {
  transform: rotate(180deg);
}

body.page-template-template-itinerary .day-header:hover .day-toggle {
  background: color-mix(in srgb, var(--color-secondary) 15%, #f9fafb);
}

body.page-template-template-itinerary .day-header:hover .day-toggle svg {
  color: var(--color-secondary);
}

body.page-template-template-itinerary .day-activities {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin-top 0.3s ease;
}

body.page-template-template-itinerary .timeline-day.expanded .day-activities {
  max-height: 5000px;
  opacity: 1;
  margin-top: 0;
}

body.page-template-template-itinerary .timeline-day:not(.expanded) .day-header {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

/* Activity Cards */
body.page-template-template-itinerary .activity-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 24px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

body.page-template-template-itinerary .activity-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
  opacity: 0;
  transition: opacity 0.3s ease;
}

body.page-template-template-itinerary .activity-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
  border-color: color-mix(in srgb, var(--color-secondary) 30%, transparent);
}

body.page-template-template-itinerary .activity-card:hover::before {
  opacity: 1;
}

body.page-template-template-itinerary .activity-card.time-morning::before {
  background: var(--color-primary);
}

body.page-template-template-itinerary .activity-card.time-afternoon::before {
  background: var(--color-secondary);
}

body.page-template-template-itinerary .activity-card.time-evening::before {
  background: linear-gradient(90deg, var(--color-gray-dark), var(--color-primary));
}

body.page-template-template-itinerary .activity-header {
  margin-bottom: 16px;
}

body.page-template-template-itinerary .activity-time {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-gray-dark);
  background: #f9fafb;
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 10px;
}

body.page-template-template-itinerary .activity-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

body.page-template-template-itinerary .activity-description {
  font-size: 0.95rem;
  color: var(--color-text);
  line-height: 1.7;
  margin: 0 0 16px 0;
}

body.page-template-template-itinerary .activity-meta {
  display: flex;
  gap: 24px;
  padding: 16px 0;
  border-top: 1px solid #f3f4f6;
  border-bottom: 1px solid #f3f4f6;
  margin-bottom: 16px;
}

body.page-template-template-itinerary .meta-detail {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

body.page-template-template-itinerary .meta-detail .meta-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-gray-dark);
}

body.page-template-template-itinerary .meta-detail .meta-value {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-primary);
}

/* Activity Details Section */
body.page-template-template-itinerary .activity-details {
  margin-top: 16px;
  padding: 14px 16px;
  background: #f8f9fa;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.page-template-template-itinerary .activity-details .detail-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.875rem;
  line-height: 1.5;
}

body.page-template-template-itinerary .activity-details .detail-icon {
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 1px;
}

body.page-template-template-itinerary .activity-details .detail-label {
  font-weight: 600;
  color: var(--color-primary);
  flex-shrink: 0;
}

body.page-template-template-itinerary .activity-details .detail-value {
  color: var(--color-text);
}

body.page-template-template-itinerary .activity-details .detail-link {
  color: var(--color-secondary);
  text-decoration: none;
  word-break: break-all;
  transition: color 0.2s ease;
}

body.page-template-template-itinerary .activity-details .detail-link:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

/* Activity Tip Section */
body.page-template-template-itinerary .activity-tip {
  background: color-mix(in srgb, var(--color-accent) 12%, #ffffff);
  padding: 14px 16px;
  border-radius: 8px;
  margin-top: 16px;
}

body.page-template-template-itinerary .activity-tip .tip-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 6px;
}

body.page-template-template-itinerary .activity-tip p {
  font-size: 0.875rem;
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
}

/* Additional Info Section */
body.page-template-template-itinerary .activity-additional-info {
  background: color-mix(in srgb, var(--color-secondary) 8%, #ffffff);
  padding: 14px 16px;
  border-radius: 8px;
  margin-top: 12px;
}

body.page-template-template-itinerary .activity-additional-info .additional-info-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 6px;
}

body.page-template-template-itinerary .activity-additional-info p {
  font-size: 0.875rem;
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
}

/* Share Modal */
body.page-template-template-itinerary .share-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

body.page-template-template-itinerary .share-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

body.page-template-template-itinerary .share-modal-content {
  position: relative;
  background: #ffffff;
  border-radius: 12px;
  max-width: 500px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: modalSlideIn 0.3s ease;
}

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

body.page-template-template-itinerary .share-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 24px 16px;
  border-bottom: 1px solid #e5e7eb;
}

body.page-template-template-itinerary .share-modal-header h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
}

body.page-template-template-itinerary .share-modal-close {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #6b7280;
  transition: all 0.2s ease;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.page-template-template-itinerary .share-modal-close:hover {
  background: #f3f4f6;
  color: var(--color-primary);
}

body.page-template-template-itinerary .share-modal-body {
  padding: 24px;
}

body.page-template-template-itinerary .share-description {
  font-size: 0.95rem;
  color: var(--color-text);
  margin: 0 0 20px;
}

body.page-template-template-itinerary .share-link-container {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}

body.page-template-template-itinerary .share-link-input {
  flex: 1;
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.9rem;
  color: var(--color-primary);
  background: #f8f9fa;
  font-family: monospace;
}

body.page-template-template-itinerary .share-link-input:focus {
  outline: none;
  border-color: var(--color-secondary);
  background: #ffffff;
}

body.page-template-template-itinerary .copy-link-btn {
  padding: 12px 20px;
  background: var(--color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

body.page-template-template-itinerary .copy-link-btn:hover {
  background: #e8850d;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

body.page-template-template-itinerary .copy-link-btn:active {
  transform: translateY(0);
}

body.page-template-template-itinerary .share-social {
  border-top: 1px solid #e5e7eb;
  padding-top: 20px;
}

body.page-template-template-itinerary .share-social-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  margin: 0 0 12px;
}

body.page-template-template-itinerary .share-social-buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

body.page-template-template-itinerary .share-social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .share-social-btn:hover {
  border-color: var(--color-secondary);
  background: color-mix(in srgb, var(--color-secondary) 8%, #ffffff);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.15);
}

body.page-template-template-itinerary .share-social-btn svg {
  flex-shrink: 0;
}

@media (max-width: 768px) {
  body.page-template-template-itinerary .share-modal-content {
    max-width: 100%;
    margin: 0 10px;
  }

  body.page-template-template-itinerary .share-link-container {
    flex-direction: column;
  }

  body.page-template-template-itinerary .copy-link-btn {
    width: 100%;
    justify-content: center;
  }

  body.page-template-template-itinerary .share-social-buttons {
    grid-template-columns: 1fr;
  }
}


/* Responsive Design */
@media (max-width: 768px) {
  body.page-template-template-itinerary .page-title {
    font-size: 2rem;
  }

  body.page-template-template-itinerary .form-row-two-col {
    grid-template-columns: 1fr;
  }

  body.page-template-template-itinerary .trip-type-options {
    grid-template-columns: 1fr;
  }

  body.page-template-template-itinerary .pace-options {
    grid-template-columns: 1fr;
  }

  body.page-template-template-itinerary .itinerary-display-header {
    flex-direction: column;
    align-items: flex-start;
  }

  body.page-template-template-itinerary .itinerary-actions {
    width: 100%;
  }

  body.page-template-template-itinerary .action-button {
    flex: 1;
  }

  body.page-template-template-itinerary .itinerary-timeline {
    padding-left: 40px;
  }

  body.page-template-template-itinerary .itinerary-timeline::before {
    left: 12px;
  }

  body.page-template-template-itinerary .day-marker {
    left: -40px;
    width: 36px;
    height: 36px;
  }

  body.page-template-template-itinerary .day-number {
    font-size: 0.9rem;
  }

  body.page-template-template-itinerary .day-content {
    padding: 20px;
  }

  body.page-template-template-itinerary .day-header {
    align-items: flex-start;
  }

  body.page-template-template-itinerary .day-header-content {
    flex: 1;
  }

  body.page-template-template-itinerary .day-title {
    font-size: 1.25rem;
  }

  body.page-template-template-itinerary .day-toggle {
    margin-top: 4px;
  }

  body.page-template-template-itinerary .summary-destination {
    font-size: 1.5rem;
  }

  body.page-template-template-itinerary .summary-meta {
    flex-direction: column;
    gap: 8px;
    align-items: center;
  }

  body.page-template-template-itinerary .activity-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  body.page-template-template-itinerary .city-item {
    grid-template-columns: 1fr 100px;
    gap: 12px;
    padding: 16px;
  }

  body.page-template-template-itinerary .city-item-number {
    left: -6px;
    top: -10px;
    font-size: 0.7rem;
    min-width: 26px;
    height: 26px;
    padding: 0 6px;
  }

  body.page-template-template-itinerary .city-input-group {
    grid-column: 1 / -1;
  }

  body.page-template-template-itinerary .remove-city-btn {
    position: static;
    width: 100%;
    height: 40px;
    padding: 10px;
    grid-column: 1 / -1;
  }

  body.page-template-template-itinerary .remove-city-btn svg {
    width: 16px;
    height: 16px;
  }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ========================================
   Cost Estimator Page Styles
   ======================================== */

/* Hero Section - Matching Itinerary Design */
body.page-template-template-cost-estimator .cost-estimator-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-cost-estimator .cost-estimator-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-cost-estimator .cost-estimator-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-cost-estimator .cost-estimator-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-cost-estimator .cost-estimator-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-cost-estimator .cost-estimator-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-cost-estimator .cost-estimator-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

/* Cost Estimator Container - Matching Itinerary Layout */
body.page-template-template-cost-estimator .cost-estimator-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

body.page-template-template-cost-estimator .cost-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

/* Form Styles */
body.page-template-template-cost-estimator .form-row {
  margin-bottom: 24px;
}

body.page-template-template-cost-estimator .form-row-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

body.page-template-template-cost-estimator .form-group {
  display: flex;
  flex-direction: column;
}

body.page-template-template-cost-estimator .form-group label {
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 8px;
  font-size: 0.95rem;
}

body.page-template-template-cost-estimator .required {
  color: #dc2626;
}

body.page-template-template-cost-estimator .form-section-subtitle {
  font-size: 0.875rem;
  color: var(--color-gray-dark);
  margin: 0 0 12px 0;
}

body.page-template-template-cost-estimator input[type="text"],
body.page-template-template-cost-estimator input[type="date"],
body.page-template-template-cost-estimator input[type="number"],
body.page-template-template-cost-estimator select,
body.page-template-template-cost-estimator textarea {
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 1rem;
  font-family: inherit;
  transition: all 0.2s ease;
  background: #ffffff;
}

body.page-template-template-cost-estimator input[type="text"]:focus,
body.page-template-template-cost-estimator input[type="date"]:focus,
body.page-template-template-cost-estimator input[type="number"]:focus,
body.page-template-template-cost-estimator select:focus,
body.page-template-template-cost-estimator textarea:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

body.page-template-template-cost-estimator .field-hint {
  font-size: 0.875rem;
  color: #6b7280;
  margin-top: 6px;
  display: block;
}

/* Trip Type Options */
body.page-template-template-cost-estimator .trip-type-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

body.page-template-template-cost-estimator .trip-type-option {
  cursor: pointer;
  display: block;
}

body.page-template-template-cost-estimator .trip-type-option input[type="radio"] {
  display: none;
}

body.page-template-template-cost-estimator .trip-type-card {
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  background: #ffffff;
  transition: all 0.2s ease;
  text-align: center;
}

body.page-template-template-cost-estimator .trip-type-card strong {
  font-size: 1.125rem;
  color: var(--color-primary);
  margin-bottom: 4px;
  display: block;
}

body.page-template-template-cost-estimator .trip-type-card small {
  font-size: 0.875rem;
  color: #6b7280;
}

/* Flight Type Options */
body.page-template-template-cost-estimator .flight-type-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

body.page-template-template-cost-estimator .flight-type-card {
  cursor: pointer;
  display: block;
  position: relative;
}

body.page-template-template-cost-estimator .flight-type-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

body.page-template-template-cost-estimator .flight-type-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  background: #ffffff;
  transition: all 0.2s ease;
  text-align: center;
}

body.page-template-template-cost-estimator .flight-type-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f4f6;
  border-radius: 50%;
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .flight-type-icon svg {
  color: #6b7280;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .flight-type-label {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 4px;
}

body.page-template-template-cost-estimator .flight-type-description {
  font-size: 0.875rem;
  color: #6b7280;
}

body.page-template-template-cost-estimator .flight-type-card:hover .flight-type-content {
  border-color: var(--color-secondary);
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.1);
}

body.page-template-template-cost-estimator .flight-type-card:hover .flight-type-icon {
  background: #fef3e7;
}

body.page-template-template-cost-estimator .flight-type-card:hover .flight-type-icon svg {
  color: var(--color-secondary);
}

body.page-template-template-cost-estimator .flight-type-card input[type="radio"]:checked + .flight-type-content {
  border-color: var(--color-secondary);
  background: #fef9f3;
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

body.page-template-template-cost-estimator .flight-type-card input[type="radio"]:checked + .flight-type-content .flight-type-icon {
  background: var(--color-secondary);
}

body.page-template-template-cost-estimator .flight-type-card input[type="radio"]:checked + .flight-type-content .flight-type-icon svg {
  color: #ffffff;
}

body.page-template-template-cost-estimator .trip-type-option input[type="radio"]:checked + .trip-type-card {
  border-color: var(--color-secondary);
  background: #fffbf5;
  box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

body.page-template-template-cost-estimator .trip-type-card:hover {
  border-color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Trip Duration Display */
body.page-template-template-cost-estimator .trip-duration-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #fffbf5 0%, #fff7ed 100%);
  border-left: 4px solid var(--color-secondary);
  border-radius: 8px;
  font-size: 1rem;
  color: var(--color-primary);
  font-weight: 600;
}

body.page-template-template-cost-estimator .trip-duration-info svg {
  color: var(--color-secondary);
  flex-shrink: 0;
}

/* Traveler Inputs */
body.page-template-template-cost-estimator .traveler-inputs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}

body.page-template-template-cost-estimator .traveler-input-group {
  display: flex;
  flex-direction: column;
}

body.page-template-template-cost-estimator .traveler-input-group label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 6px;
}

body.page-template-template-cost-estimator .traveler-input-group input[type="number"] {
  padding: 10px 12px;
  text-align: center;
  font-size: 1.125rem;
  font-weight: 600;
}

body.page-template-template-cost-estimator .total-travelers-display {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 20px;
  background: #f8f9fa;
  border-radius: 8px;
  font-size: 1rem;
}

body.page-template-template-cost-estimator .total-label {
  color: #6b7280;
  font-weight: 500;
}

body.page-template-template-cost-estimator .total-value {
  color: var(--color-secondary);
  font-size: 1.5rem;
  font-weight: 700;
}

/* Cost Categories */
body.page-template-template-cost-estimator .cost-categories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

body.page-template-template-cost-estimator .category-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .category-checkbox:hover {
  border-color: var(--color-secondary);
  background: #fffbf5;
}

body.page-template-template-cost-estimator .category-checkbox input[type="checkbox"] {
  width: 20px;
  height: 20px;
  cursor: pointer;
  accent-color: var(--color-secondary);
}

body.page-template-template-cost-estimator .category-checkbox span {
  font-size: 0.95rem;
  color: var(--color-primary);
  font-weight: 500;
}

body.page-template-template-cost-estimator .category-checkbox input[type="checkbox"]:checked + span {
  color: var(--color-secondary);
  font-weight: 600;
}

/* Multi-City List */
body.page-template-template-cost-estimator .city-item {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 120px 42px;
  gap: 12px;
  align-items: end;
  padding: 16px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  margin-bottom: 12px;
}

body.page-template-template-cost-estimator .city-item-number {
  position: absolute;
  left: -8px;
  top: -12px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-secondary);
  color: #ffffff;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(248, 150, 30, 0.3);
  z-index: 1;
}

body.page-template-template-cost-estimator .city-input-group,
body.page-template-template-cost-estimator .city-days-group {
  display: flex;
  flex-direction: column;
}

body.page-template-template-cost-estimator .city-input-group label,
body.page-template-template-cost-estimator .city-days-group label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 6px;
}

body.page-template-template-cost-estimator .city-name-input,
body.page-template-template-cost-estimator .city-days-input {
  padding: 10px 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 0.95rem;
  height: 42px;
  box-sizing: border-box;
}

body.page-template-template-cost-estimator .city-days-input {
  text-align: center;
  font-weight: 600;
}

body.page-template-template-cost-estimator .remove-city-btn {
  align-self: end;
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fee2e2;
  border: none;
  border-radius: 6px;
  color: #dc2626;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
  flex-shrink: 0;
  box-sizing: border-box;
}

body.page-template-template-cost-estimator .remove-city-btn svg {
  display: block;
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

body.page-template-template-cost-estimator .remove-city-btn:hover {
  background: #dc2626;
  color: #ffffff;
  transform: scale(1.05);
}

body.page-template-template-cost-estimator .add-city-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  background: #ffffff;
  border: 2px dashed #d1d5db;
  border-radius: 8px;
  color: var(--color-primary);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-top: 8px;
}

body.page-template-template-cost-estimator .add-city-btn:hover {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  background: #fffbf5;
}

/* Submit Button */
body.page-template-template-cost-estimator .form-actions {
  margin-top: 32px;
  text-align: center;
}

body.page-template-template-cost-estimator .submit-button {
  padding: 16px 48px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #e8850d 100%);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 1.125rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

body.page-template-template-cost-estimator .submit-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(248, 150, 30, 0.4);
}

body.page-template-template-cost-estimator .submit-button:active {
  transform: translateY(0);
}

body.page-template-template-cost-estimator .button-spinner svg {
  animation: spin 1s linear infinite;
}

/* Loading State */
body.page-template-template-cost-estimator .cost-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  padding: 60px 20px;
}

body.page-template-template-cost-estimator .spinner-container {
  text-align: center;
}

body.page-template-template-cost-estimator .spinner {
  width: 60px;
  height: 60px;
  border: 4px solid #f3f4f6;
  border-top-color: var(--color-secondary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 20px;
}

body.page-template-template-cost-estimator .loading-text {
  font-size: 1.125rem;
  color: var(--color-gray-dark);
  margin: 0;
}

/* Cost Display Section */
body.page-template-template-cost-estimator .cost-display-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}

body.page-template-template-cost-estimator .cost-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

body.page-template-template-cost-estimator .action-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, #e8850d 100%);
  color: #ffffff;
  border: none;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.2);
}

body.page-template-template-cost-estimator .action-button.secondary {
  background: #ffffff;
  color: var(--color-primary);
  border: 2px solid #e5e7eb;
  box-shadow: none;
}

body.page-template-template-cost-estimator .action-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

body.page-template-template-cost-estimator .action-button.secondary:hover {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  background: #fffbf5;
}

/* Cost Summary */
body.page-template-template-cost-estimator .cost-summary {
  background: linear-gradient(135deg, #fffbf5 0%, #fff7ed 100%);
  border: 2px solid var(--color-secondary);
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
}

body.page-template-template-cost-estimator .summary-destination {
  font-size: 2rem;
  color: var(--color-primary);
  margin: 0 0 8px 0;
  font-weight: 700;
  text-align: center;
}

body.page-template-template-cost-estimator .summary-dates {
  text-align: center;
  color: #6b7280;
  font-size: 1.125rem;
  margin: 0 0 24px 0;
}

body.page-template-template-cost-estimator .summary-totals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 24px;
}

body.page-template-template-cost-estimator .total-cost-card,
body.page-template-template-cost-estimator .budget-range-card {
  background: #ffffff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

body.page-template-template-cost-estimator .total-label,
body.page-template-template-cost-estimator .range-label {
  font-size: 0.875rem;
  color: #6b7280;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0px;
}

body.page-template-template-cost-estimator .total-amount {
  font-size: 2.5rem;
  color: var(--color-secondary);
  font-weight: 700;
  margin-bottom: 4px;
}

body.page-template-template-cost-estimator .per-person {
  font-size: 0.95rem;
  color: #6b7280;
}

body.page-template-template-cost-estimator .range-values {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

body.page-template-template-cost-estimator .range-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
}

body.page-template-template-cost-estimator .range-item:last-child {
  border-bottom: none;
}

body.page-template-template-cost-estimator .range-type {
  font-size: 0.95rem;
  color: #6b7280;
  font-weight: 500;
}

body.page-template-template-cost-estimator .range-amount {
  font-size: 1.125rem;
  color: var(--color-primary);
  font-weight: 700;
}

/* Cost Breakdown */
body.page-template-template-cost-estimator .cost-breakdown {
  margin-bottom: 32px;
}

body.page-template-template-cost-estimator .breakdown-title {
  font-size: 1.75rem;
  color: var(--color-primary);
  margin: 0 0 24px 0;
  font-weight: 700;
}

body.page-template-template-cost-estimator .breakdown-grid {
  display: grid;
  gap: 20px;
}

body.page-template-template-cost-estimator .cost-category-card {
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .cost-category-card:hover {
  border-color: var(--color-secondary);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

body.page-template-template-cost-estimator .category-header {
  background: linear-gradient(135deg, var(--color-secondary) 0%, #e8850d 100%);
  color: #ffffff;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

body.page-template-template-cost-estimator .category-name {
  font-size: 1.25rem;
  margin: 0;
  font-weight: 700;
}

body.page-template-template-cost-estimator .category-total {
  font-size: 1.5rem;
  font-weight: 700;
}

body.page-template-template-cost-estimator .category-items {
  padding: 20px;
}

body.page-template-template-cost-estimator .cost-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f3f4f6;
}

body.page-template-template-cost-estimator .cost-item:last-child {
  border-bottom: none;
}

body.page-template-template-cost-estimator .item-name {
  font-size: 0.95rem;
  color: #4b5563;
}

body.page-template-template-cost-estimator .item-cost {
  font-size: 1rem;
  color: var(--color-primary);
  font-weight: 600;
}

body.page-template-template-cost-estimator .category-notes {
  padding: 12px 20px;
  background: #f8f9fa;
  font-size: 0.875rem;
  color: #6b7280;
  font-style: italic;
}

body.page-template-template-cost-estimator .savings-tips {
  padding: 16px 20px;
  background: #fffbeb;
  border-top: 2px solid #fef3c7;
}

body.page-template-template-cost-estimator .tips-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #92400e;
  margin-bottom: 8px;
}

body.page-template-template-cost-estimator .tips-list {
  margin: 0;
  padding-left: 20px;
}

body.page-template-template-cost-estimator .tips-list li {
  font-size: 0.875rem;
  color: #78350f;
  margin: 4px 0;
}

/* Daily Average */
body.page-template-template-cost-estimator .daily-average-section {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 24px;
  text-align: center;
  margin-bottom: 24px;
}

body.page-template-template-cost-estimator .daily-average-section h3 {
  font-size: 1.125rem;
  color: var(--color-primary);
  margin: 0 0 12px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .daily-amount {
  font-size: 2rem;
  color: var(--color-secondary);
  font-weight: 700;
}

/* Currency Info */
body.page-template-template-cost-estimator .currency-info {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1px solid #bae6fd;
  border-left: 4px solid #0ea5e9;
  border-radius: 12px;
  padding: 20px 24px;
  margin-top: 24px;
  box-shadow: 0 2px 8px rgba(14, 165, 233, 0.08);
  position: relative;
  overflow: hidden;
}

body.page-template-template-cost-estimator .currency-info::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(14, 165, 233, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(40%, -40%);
}

body.page-template-template-cost-estimator .currency-info h4 {
  font-size: 1.05rem;
  color: #0c4a6e;
  margin: 0 0 12px 0;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 1;
}

body.page-template-template-cost-estimator .currency-info h4::before {
  content: '$';
  font-size: 1.5rem;
  font-weight: 700;
  display: inline-block;
  margin-right: 10px;
  color: #0ea5e9;
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

body.page-template-template-cost-estimator .currency-info p {
  font-size: 0.95rem;
  color: #075985;
  margin: 0;
  line-height: 1.6;
  position: relative;
  z-index: 1;
}

body.page-template-template-cost-estimator .currency-info p strong {
  color: #0c4a6e;
  font-weight: 600;
}

body.page-template-template-cost-estimator .currency-info a {
  color: #0ea5e9;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s ease;
}

body.page-template-template-cost-estimator .currency-info a:hover {
  color: #0284c7;
  text-decoration: underline;
}

body.page-template-template-cost-estimator .currency-info .exchange-rate-highlight {
  display: inline-block;
  color: #0c4a6e;
  font-weight: 600;
  margin-top: 4px;
}

body.page-template-template-cost-estimator .currency-info .rate-value {
  display: inline-block;
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
  color: #ffffff;
  padding: 4px 12px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  box-shadow: 0 2px 4px rgba(14, 165, 233, 0.2);
  margin-left: 4px;
}

body.page-template-template-cost-estimator .currency-info small {
  display: block;
  color: #64748b;
  font-size: 0.85rem;
  margin-top: 8px;
  font-style: italic;
}

/* Share Modal (reuse itinerary styles) */
body.page-template-template-cost-estimator .share-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

body.page-template-template-cost-estimator .share-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

body.page-template-template-cost-estimator .share-modal-content {
  position: relative;
  background: #ffffff;
  border-radius: 12px;
  max-width: 500px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: slideIn 0.3s ease-out;
}

body.page-template-template-cost-estimator .share-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 24px 16px;
  border-bottom: 2px solid #f3f4f6;
}

body.page-template-template-cost-estimator .share-modal-header h3 {
  font-size: 1.5rem;
  color: var(--color-primary);
  margin: 0;
  font-weight: 700;
}

body.page-template-template-cost-estimator .share-modal-close {
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #6b7280;
  transition: all 0.2s ease;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.page-template-template-cost-estimator .share-modal-close:hover {
  background: #f3f4f6;
  color: var(--color-primary);
}

body.page-template-template-cost-estimator .share-modal-body {
  padding: 24px;
}

body.page-template-template-cost-estimator .share-description {
  font-size: 0.95rem;
  color: #6b7280;
  margin: 0 0 20px 0;
}

body.page-template-template-cost-estimator .share-link-container {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}

body.page-template-template-cost-estimator .share-link-input {
  flex: 1;
  padding: 12px 16px;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.95rem;
  background: #f8f9fa;
}

body.page-template-template-cost-estimator .copy-link-btn {
  padding: 12px 20px;
  background: var(--color-secondary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
}

body.page-template-template-cost-estimator .copy-link-btn:hover {
  background: #e8850d;
  transform: translateY(-2px);
}

body.page-template-template-cost-estimator .share-social-label {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 12px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .share-social-buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

body.page-template-template-cost-estimator .share-social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  color: var(--color-primary);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .share-social-btn:hover {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  background: #fffbf5;
  transform: translateY(-2px);
}

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

/* Responsive Styles for Cost Estimator */
@media (max-width: 768px) {
  body.page-template-template-cost-estimator .cost-estimator-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile for performance */
  }

  body.page-template-template-cost-estimator .cost-estimator-hero .hero-container {
    padding: 0 18px 28px 18px;
  }

  body.page-template-template-cost-estimator .cost-section {
    padding: 20px;
    border-radius: 8px;
  }

  body.page-template-template-cost-estimator .form-row-split {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .trip-type-options {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .flight-type-options {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .traveler-inputs {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .cost-categories {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .city-item {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  body.page-template-template-cost-estimator .city-input-group,
  body.page-template-template-cost-estimator .city-days-group {
    width: 100%;
  }

  body.page-template-template-cost-estimator .remove-city-btn {
    width: 100%;
    height: 40px;
  }

  body.page-template-template-cost-estimator .cost-display-header {
    flex-direction: column;
    align-items: flex-start;
  }

  body.page-template-template-cost-estimator .currency-info {
    padding: 16px 18px;
    border-radius: 10px;
  }

  body.page-template-template-cost-estimator .currency-info h4 {
    font-size: 1rem;
  }

  body.page-template-template-cost-estimator .currency-info p {
    font-size: 0.9rem;
  }

  body.page-template-template-cost-estimator .currency-info .rate-value {
    font-size: 0.95rem;
    padding: 3px 10px;
    display: block;
    margin-top: 6px;
    margin-left: 0;
    text-align: center;
  }

  body.page-template-template-cost-estimator .currency-info .exchange-rate-highlight {
    display: block;
    margin-top: 8px;
  }

  body.page-template-template-cost-estimator .cost-actions {
    width: 100%;
    flex-direction: column;
  }

  body.page-template-template-cost-estimator .action-button {
    width: 100%;
    justify-content: center;
  }

  body.page-template-template-cost-estimator .summary-totals {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .summary-destination {
    font-size: 1.5rem;
  }

  body.page-template-template-cost-estimator .total-amount {
    font-size: 2rem;
  }

  body.page-template-template-cost-estimator .share-social-buttons {
    grid-template-columns: 1fr;
  }

  body.page-template-template-cost-estimator .share-link-container {
    flex-direction: column;
  }

  body.page-template-template-cost-estimator .copy-link-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ========================================
   ITINERARY - SEO CONTENT SECTIONS
   ======================================== */

/* Container for all content sections */
body.page-template-template-itinerary .itinerary-content-sections {
  max-width: 960px;
  margin: 48px auto 0;
  padding: 0;
}

/* Individual content section */
body.page-template-template-itinerary .content-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 48px 40px;
  margin-bottom: 32px;
}

body.page-template-template-itinerary .content-section h2 {
  font-size: 2rem;
  color: #1f2937;
  margin: 0 0 32px 0;
  font-weight: 700;
  text-align: center;
}

body.page-template-template-itinerary .content-section .section-intro {
  text-align: center;
  font-size: 1.125rem;
  color: #6b7280;
  margin: -16px 0 32px 0;
  line-height: 1.6;
}

/* Benefits Grid */
body.page-template-template-itinerary .benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-itinerary .benefit-card {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 24px;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .benefit-card:hover {
  border-color: #f8961e;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.1);
  transform: translateY(-2px);
}

body.page-template-template-itinerary .benefit-icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

body.page-template-template-itinerary .benefit-icon svg {
  stroke: #ffffff;
}

body.page-template-template-itinerary .benefit-card h3 {
  font-size: 1.25rem;
  color: #1f2937;
  margin: 0 0 12px 0;
  font-weight: 600;
}

body.page-template-template-itinerary .benefit-card p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Steps Container */
body.page-template-template-itinerary .steps-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

body.page-template-template-itinerary .step-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

body.page-template-template-itinerary .step-number {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: #ffffff;
}

body.page-template-template-itinerary .step-content h3 {
  font-size: 1.25rem;
  color: #1f2937;
  margin: 0 0 8px 0;
  font-weight: 600;
}

body.page-template-template-itinerary .step-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Categories Grid */
body.page-template-template-itinerary .categories-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

body.page-template-template-itinerary .category-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .category-item:hover {
  border-color: #f8961e;
  background: #fffbf5;
}

body.page-template-template-itinerary .category-item svg {
  flex-shrink: 0;
  stroke: #f8961e;
  margin-top: 2px;
}

body.page-template-template-itinerary .category-item h4 {
  font-size: 1rem;
  color: #1f2937;
  margin: 0 0 6px 0;
  font-weight: 600;
}

body.page-template-template-itinerary .category-item p {
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}

/* Tips Grid */
body.page-template-template-itinerary .tips-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-itinerary .tip-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 24px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-itinerary .tip-card:hover {
  border-color: #f8961e;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.1);
}

body.page-template-template-itinerary .tip-number {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
}

body.page-template-template-itinerary .tip-content h3 {
  font-size: 1.125rem;
  color: #1f2937;
  margin: 0 0 8px 0;
  font-weight: 600;
}

body.page-template-template-itinerary .tip-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Mobile Responsive for SEO Sections */
@media (max-width: 767px) {
  body.page-template-template-itinerary .itinerary-content-sections {
    margin-top: 32px;
  }

  body.page-template-template-itinerary .content-section {
    padding: 32px 24px;
    margin-bottom: 24px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  body.page-template-template-itinerary .content-section h2 {
    font-size: 1.5rem;
    margin-bottom: 24px;
  }

  body.page-template-template-itinerary .benefits-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-itinerary .benefit-card {
    padding: 20px;
  }

  body.page-template-template-itinerary .step-item {
    gap: 16px;
  }

  body.page-template-template-itinerary .step-number {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
  }

  body.page-template-template-itinerary .categories-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-itinerary .category-item {
    padding: 16px;
  }

  body.page-template-template-itinerary .tips-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-itinerary .tip-card {
    padding: 20px;
  }
}

/* ========================================
   COST ESTIMATOR - SEO CONTENT SECTIONS
   ======================================== */

/* Container for all content sections */
body.page-template-template-cost-estimator .cost-content-sections {
  max-width: 960px;
  margin: 48px auto 0;
  padding: 0;
}

/* Individual content section */
body.page-template-template-cost-estimator .content-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 48px 40px;
  margin-bottom: 32px;
}

body.page-template-template-cost-estimator .content-section h2 {
  font-size: 2rem;
  color: #1f2937;
  margin: 0 0 32px 0;
  font-weight: 700;
  text-align: center;
}

body.page-template-template-cost-estimator .content-section .section-intro {
  text-align: center;
  font-size: 1.125rem;
  color: #6b7280;
  margin: -16px 0 32px 0;
  line-height: 1.6;
}

/* Benefits Grid */
body.page-template-template-cost-estimator .benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-cost-estimator .benefit-card {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 24px;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .benefit-card:hover {
  border-color: #f8961e;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.1);
  transform: translateY(-2px);
}

body.page-template-template-cost-estimator .benefit-icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

body.page-template-template-cost-estimator .benefit-icon svg {
  stroke: #ffffff;
}

body.page-template-template-cost-estimator .benefit-card h3 {
  font-size: 1.25rem;
  color: #1f2937;
  margin: 0 0 12px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .benefit-card p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Steps Container */
body.page-template-template-cost-estimator .steps-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

body.page-template-template-cost-estimator .step-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

body.page-template-template-cost-estimator .step-number {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: #ffffff;
}

body.page-template-template-cost-estimator .step-content h3 {
  font-size: 1.25rem;
  color: #1f2937;
  margin: 0 0 8px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .step-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Categories Grid */
body.page-template-template-cost-estimator .categories-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

body.page-template-template-cost-estimator .category-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .category-item:hover {
  border-color: #f8961e;
  background: #fffbf5;
}

body.page-template-template-cost-estimator .category-item svg {
  flex-shrink: 0;
  stroke: #f8961e;
  margin-top: 2px;
}

body.page-template-template-cost-estimator .category-item h4 {
  font-size: 1rem;
  color: #1f2937;
  margin: 0 0 6px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .category-item p {
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}

/* Tips Grid */
body.page-template-template-cost-estimator .tips-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-cost-estimator .tip-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 24px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-cost-estimator .tip-card:hover {
  border-color: #f8961e;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.1);
}

body.page-template-template-cost-estimator .tip-number {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
}

body.page-template-template-cost-estimator .tip-content h3 {
  font-size: 1.125rem;
  color: #1f2937;
  margin: 0 0 8px 0;
  font-weight: 600;
}

body.page-template-template-cost-estimator .tip-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Mobile Responsive for SEO Sections */
@media (max-width: 767px) {
  body.page-template-template-cost-estimator .cost-content-sections {
    margin-top: 32px;
  }

  body.page-template-template-cost-estimator .content-section {
    padding: 32px 24px;
    margin-bottom: 24px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  body.page-template-template-cost-estimator .content-section h2 {
    font-size: 1.5rem;
    margin-bottom: 24px;
  }

  body.page-template-template-cost-estimator .benefits-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-cost-estimator .benefit-card {
    padding: 20px;
  }

  body.page-template-template-cost-estimator .step-item {
    gap: 16px;
  }

  body.page-template-template-cost-estimator .step-number {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
  }

  body.page-template-template-cost-estimator .categories-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-cost-estimator .category-item {
    padding: 16px;
  }

  body.page-template-template-cost-estimator .tips-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  body.page-template-template-cost-estimator .tip-card {
    padding: 20px;
  }
}

/* ========================================
   DESTINATION COMPARISON TOOL STYLES
   ======================================== */

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.breadcrumbs {
    margin: 16px 0;
    padding: 0;
    font-size: 14px;
    overflow: hidden;
}

/* Comparison page breadcrumbs alignment */
body.page-template-template-destination-comparison .breadcrumbs {
    max-width: 1200px;
    margin: 16px auto;
    /* padding: 0 24px; */
}

.breadcrumb-list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 8px;
    min-width: 0;
}

.breadcrumb-item {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    min-width: 0;
}

.breadcrumb-item a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #6b7280;
    text-decoration: none;
    transition: color 0.2s ease;
    white-space: nowrap;
}

.breadcrumb-item a:hover {
    color: var(--color-primary);
}

.breadcrumb-item a svg {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}

.breadcrumb-item.active {
    color: #111827;
    font-weight: 500;
    flex-shrink: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 300px;
    display: block;
}

.breadcrumb-separator {
    color: #d1d5db;
    user-select: none;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .breadcrumbs {
        margin: 12px 0;
        font-size: 13px;
    }

    .breadcrumb-item a svg {
        width: 12px;
        height: 12px;
    }

    .breadcrumb-item.active {
        max-width: 140px;
    }
}

@media (max-width: 480px) {
    .breadcrumb-item.active {
        max-width: 100px;
    }
}

/* Hero Section - Matching Itinerary/Cost Estimator Design */
body.page-template-template-destination-comparison .comparison-hero-wrapper {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.page-template-template-destination-comparison .comparison-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-destination-comparison .comparison-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-destination-comparison .comparison-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-destination-comparison .comparison-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-destination-comparison .comparison-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-destination-comparison .comparison-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}


/* Hero Collage (Comparison Details Page) */
body.page-template-template-destination-comparison .comparison-hero .hero-collage {
  position: absolute;
  inset: 0;
  display: flex;
  width: 100%;
  height: 100%;
  z-index: 0; /* Behind the hero overlay and content */
}

body.page-template-template-destination-comparison .comparison-hero .comparison-image-half {
  position: relative;
  flex: 1;
  overflow: hidden;
  background: #e5e7eb;
}

body.page-template-template-destination-comparison .comparison-hero .comparison-image-half img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body.page-template-template-destination-comparison .comparison-hero .comparison-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.5), transparent 60%);
}

body.page-template-template-destination-comparison .comparison-hero .comparison-destination-label {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  color: #ffffff;
  font-weight: 700;
  font-size: clamp(0.9rem, 1.6vw, 1.125rem);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
  z-index: 1;
}

body.page-template-template-destination-comparison .comparison-hero .comparison-vs-divider {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

body.page-template-template-destination-comparison .comparison-hero .vs-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: #f8961e;
  color: #ffffff;
  font-weight: 700;
  font-size: 0.95rem;
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(248, 150, 30, 0.4);
}

@media (max-width: 768px) {
  body.page-template-template-destination-comparison .comparison-hero .vs-badge {
    width: 48px;
    height: 48px;
    font-size: 0.85rem;
  }
}

/* Comparison Container */
body.page-template-template-destination-comparison .comparison-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

body.page-template-template-destination-comparison .comparison-section {
  margin-bottom: 32px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

/* Form Section Styling */
body.page-template-template-destination-comparison #comparison-form-section {
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: 40px;
}

/* Form Styles */
body.page-template-template-destination-comparison .form-intro {
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 2px solid #f3f4f6;
}

body.page-template-template-destination-comparison .section-title {
  font-size: 1.875rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 12px 0;
}

body.page-template-template-destination-comparison .section-description {
  font-size: 1.0625rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.7;
}

body.page-template-template-destination-comparison .form-row {
  margin-bottom: 28px;
}

/* Destinations Row - Side by Side on Desktop */
body.page-template-template-destination-comparison .destinations-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 28px;
}

body.page-template-template-destination-comparison .form-group {
  margin-bottom: 0;
}

body.page-template-template-destination-comparison .form-group label {
  display: block;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 10px;
  font-size: 1rem;
}

body.page-template-template-destination-comparison .required {
  color: #dc2626;
  margin-left: 4px;
}

body.page-template-template-destination-comparison .optional-label {
  font-weight: 400;
  color: #9ca3af;
  font-size: 0.875rem;
  margin-left: 6px;
}

body.page-template-template-destination-comparison .form-control {
  width: 100%;
  padding: 14px 18px;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  font-size: 1rem;
  transition: all 0.2s ease;
  background: #ffffff;
  font-family: inherit;
}

body.page-template-template-destination-comparison .form-control:hover {
  border-color: #fed7aa;
}

body.page-template-template-destination-comparison .form-control:focus {
  outline: none;
  border-color: #f8961e;
  box-shadow: 0 0 0 4px rgba(248, 150, 30, 0.1);
  background: #fffbf5;
}

body.page-template-template-destination-comparison .form-control::placeholder {
  color: #9ca3af;
}

body.page-template-template-destination-comparison .form-help-text {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 8px 0 0 0;
}

/* Submit Button */
body.page-template-template-destination-comparison .form-actions {
  margin-top: 40px;
  display: flex;
  justify-content: center;
}

body.page-template-template-destination-comparison .submit-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 40px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  color: #ffffff;
  border: none;
  border-radius: 10px;
  font-size: 1.0625rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(248, 150, 30, 0.3);
}

body.page-template-template-destination-comparison .submit-button:hover {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(248, 150, 30, 0.4);
}

body.page-template-template-destination-comparison .submit-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: 0 4px 16px rgba(248, 150, 30, 0.2);
}

body.page-template-template-destination-comparison .button-spinner svg {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Loading Section - Full Screen Overlay */
body.page-template-template-destination-comparison .comparison-loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(8px);
  z-index: 99999;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
}

/* When loading overlay is visible, use flex display */
body.page-template-template-destination-comparison .comparison-loading-overlay[style*="display: block"],
body.page-template-template-destination-comparison .comparison-loading-overlay[style*="display: flex"] {
  display: flex !important;
}

body.page-template-template-destination-comparison .loading-content {
  text-align: center;
  max-width: 500px;
  padding: 40px;
  margin: 0 auto;
}

body.page-template-template-destination-comparison .loading-spinner {
  display: inline-block;
  margin-bottom: 24px;
}

body.page-template-template-destination-comparison .loading-spinner svg {
  width: 64px;
  height: 64px;
  color: #f8961e;
  animation: spin 1s linear infinite;
}

body.page-template-template-destination-comparison .loading-content h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 12px 0;
}

body.page-template-template-destination-comparison .loading-content p {
  font-size: 1rem;
  color: #6b7280;
  margin: 0;
}

/* SEO Title */
body.page-template-template-destination-comparison .comparison-seo-title {
  text-align: center;
  margin-bottom: 32px;
  padding: 24px;
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  border-radius: 12px;
  /* border-left: 4px solid #f8961e; */
}

body.page-template-template-destination-comparison .comparison-seo-title h2 {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  color: #1f2937;
  line-height: 1.3;
}

/* Destination Galleries */
/* Tabbed Interface */
body.page-template-template-destination-comparison .comparison-tabs {
  margin: 0;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  overflow: hidden;
}

body.page-template-template-destination-comparison .tab-nav {
  display: flex;
  gap: 8px;
  border-bottom: 1px solid #e5e7eb;
  background: transparent;
  padding: 16px 20px;
  overflow-x: visible;
}

body.page-template-template-destination-comparison .tab-button {
  flex: 1; /* This makes buttons span full width equally */
  padding: 12px 16px; /* Increased padding */
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #374151;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 8px;
  letter-spacing: 0;
  box-shadow: none;
  transition: none;
  cursor: pointer;
  white-space: nowrap;
  text-align: center;
  min-width: 0; /* Allow flex items to shrink below content size */
}

body.page-template-template-destination-comparison .tab-button:hover:not(.active) {
  background: #e9ecef;
  border-color: #e5e7eb;
  color: #111827;
}

body.page-template-template-destination-comparison .tab-button.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #ffffff;
  transform: none;
  box-shadow: none;
}

body.page-template-template-destination-comparison .tab-content-container {
  position: relative;
  padding: 0;
  min-height: 400px;
}

body.page-template-template-destination-comparison .tab-content {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

body.page-template-template-destination-comparison .tab-content.active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.page-template-template-destination-comparison .tab-content-inner {
  padding: 20px;
}

@media (max-width: 768px) {
  body.page-template-template-destination-comparison .tab-content-inner {
    padding: 16px;
  }
}

@media (max-width: 480px) {
  body.page-template-template-destination-comparison .tab-content-inner {
    padding: 12px;
  }
}

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

body.page-template-template-destination-comparison .comparison-galleries {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

body.page-template-template-destination-comparison .destination-gallery-section {
  width: 100%;
}

body.page-template-template-destination-comparison .destination-gallery-section .gallery-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 24px 0;
  padding-bottom: 12px;
  border-bottom: 3px solid #f8961e;
}

body.page-template-template-destination-comparison .destination-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

body.page-template-template-destination-comparison .destination-gallery li {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.page-template-template-destination-comparison .destination-gallery .gallery-item,
body.page-template-template-destination-comparison .destination-gallery .ts-gallery-item {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: block;
  cursor: pointer;
}

body.page-template-template-destination-comparison .destination-gallery .gallery-item:hover,
body.page-template-template-destination-comparison .destination-gallery .ts-gallery-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

body.page-template-template-destination-comparison .destination-gallery .gallery-item img,
body.page-template-template-destination-comparison .destination-gallery .ts-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

body.page-template-template-destination-comparison .destination-gallery .image-credit {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
  padding: 24px 12px 8px;
  opacity: 0;
  transition: opacity 0.3s ease;
}

body.page-template-template-destination-comparison .destination-gallery .gallery-item:hover .image-credit,
body.page-template-template-destination-comparison .destination-gallery .ts-gallery-item:hover .image-credit {
  opacity: 1;
}

body.page-template-template-destination-comparison .destination-gallery .image-credit span {
  font-size: 0.75rem;
  color: #fff;
}

body.page-template-template-destination-comparison .destination-gallery .image-credit a {
  color: #fbbf24;
  text-decoration: none;
  font-weight: 500;
}

body.page-template-template-destination-comparison .destination-gallery .image-credit a:hover {
  text-decoration: underline;
}

/* Reviews Section */
body.page-template-template-destination-comparison .comparison-reviews-section {
  max-width: 900px;
  margin: 0 auto;
}

body.page-template-template-destination-comparison .reviews-title {
  font-size: 2rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 32px 0;
  text-align: center;
  display: none;
}

body.page-template-template-destination-comparison .reviews-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

body.page-template-template-destination-comparison .review-item {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  transition: box-shadow 0.3s ease;
}

body.page-template-template-destination-comparison .review-item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

body.page-template-template-destination-comparison .review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 16px;
}

body.page-template-template-destination-comparison .review-author {
  flex: 1;
}

body.page-template-template-destination-comparison .author-name {
  font-size: 1.125rem;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 4px;
}

body.page-template-template-destination-comparison .author-location {
  font-size: 0.875rem;
  color: #6b7280;
}

body.page-template-template-destination-comparison .review-meta {
  text-align: right;
}

/* Star rating styles removed - comments are not ratings */

body.page-template-template-destination-comparison .review-date {
  font-size: 0.875rem;
  color: #6b7280;
}

body.page-template-template-destination-comparison .review-comment {
  font-size: 1rem;
  line-height: 1.6;
  color: #374151;
}

/* User Comment Styles */
body.page-template-template-destination-comparison .review-item.user-comment {
  border-left: 4px solid var(--color-secondary);
  background: #fffbf5;
}

body.page-template-template-destination-comparison .review-item.ai-comment {
  background: #ffffff;
}

body.page-template-template-destination-comparison .comment-user-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  background: var(--color-secondary);
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

body.page-template-template-destination-comparison .comment-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 8px;
}

body.page-template-template-destination-comparison .comment-rating .star {
  font-size: 1rem;
  color: #d1d5db;
}

body.page-template-template-destination-comparison .comment-rating .star.filled {
  color: #f59e0b;
}

body.page-template-template-destination-comparison .comment-rating .star.half {
  color: #f59e0b;
  opacity: 0.5;
}

body.page-template-template-destination-comparison .comment-rating .rating-number {
  font-size: 0.875rem;
  font-weight: 600;
  color: #6b7280;
  margin-left: 4px;
}

body.page-template-template-destination-comparison .comment-actions {
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
}

body.page-template-template-destination-comparison .comment-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: transparent;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  color: #6b7280;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}

body.page-template-template-destination-comparison .comment-action-btn:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
  color: #374151;
}

body.page-template-template-destination-comparison .comment-action-btn.delete {
  color: #dc2626;
  border-color: #fca5a5;
}

body.page-template-template-destination-comparison .comment-action-btn.delete:hover {
  background: #fef2f2;
  border-color: #dc2626;
}

body.page-template-template-destination-comparison .comment-images {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 12px;
  margin-top: 16px;
}

body.page-template-template-destination-comparison .comment-image {
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 1;
}

body.page-template-template-destination-comparison .comment-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

body.page-template-template-destination-comparison .comment-image:hover img {
  transform: scale(1.05);
}

body.page-template-template-destination-comparison .no-reviews {
  text-align: center;
  padding: 48px 24px;
  color: #6b7280;
}

/* Responsive gallery */
@media (max-width: 1024px) {
  body.page-template-template-destination-comparison .destination-gallery {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  body.page-template-template-destination-comparison .destination-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  body.page-template-template-destination-comparison .destination-gallery-section .gallery-title {
    font-size: 1.5rem;
    margin-bottom: 16px;
  }

  body.page-template-template-destination-comparison .comparison-galleries {
    gap: 32px;
  }

  body.page-template-template-destination-comparison .comparison-tabs {
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
  }

  body.page-template-template-destination-comparison .tab-nav {
    width: 100%;
    padding: 12px 16px;
    gap: 6px;
    overflow-x: visible;
  }

  body.page-template-template-destination-comparison .tab-button {
    padding: 10px 14px;
    font-size: 0.8125rem;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
  }

  body.page-template-template-destination-comparison .review-header {
    flex-direction: column;
    gap: 12px;
  }

  body.page-template-template-destination-comparison .review-meta {
    text-align: left;
  }

  body.page-template-template-destination-comparison .reviews-title {
    font-size: 1.5rem;
  }
}

@media (max-width: 480px) {
  body.page-template-template-destination-comparison .destination-gallery {
    grid-template-columns: 1fr;
  }
}

/* Comparison Summary Section */
body.page-template-template-destination-comparison .comparison-summary-section {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  border: 2px solid #fed7aa;
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 40px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

body.page-template-template-destination-comparison .summary-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: #f8961e;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
}

body.page-template-template-destination-comparison .summary-icon svg {
  width: 24px;
  height: 24px;
}

body.page-template-template-destination-comparison .summary-content {
  flex: 1;
}

body.page-template-template-destination-comparison .summary-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 16px 0;
}

body.page-template-template-destination-comparison .summary-text {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: #374151;
  margin: 0;
}

/* Final Recommendations Section */
body.page-template-template-destination-comparison .comparison-recommendations-section {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  border: 2px solid #fed7aa;
  border-radius: 16px;
  padding: 40px;
  margin-top: 32px;
  box-shadow: 0 4px 16px rgba(248, 150, 30, 0.1);
}

body.page-template-template-destination-comparison .recommendations-header {
  text-align: center;
  margin-bottom: 32px;
}

body.page-template-template-destination-comparison .recommendations-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 16px;
  margin-bottom: 16px;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.3);
}

body.page-template-template-destination-comparison .recommendations-icon svg {
  width: 32px;
  height: 32px;
  color: #ffffff;
}

body.page-template-template-destination-comparison .recommendations-title {
  font-size: 2rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 8px 0;
}

body.page-template-template-destination-comparison .recommendations-subtitle {
  font-size: 1.0625rem;
  color: #6b7280;
  margin: 0;
}

body.page-template-template-destination-comparison .recommendations-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

body.page-template-template-destination-comparison .recommendation-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: #ffffff;
  border: 2px solid #fed7aa;
  border-radius: 12px;
  padding: 24px;
  transition: all 0.2s ease;
}

body.page-template-template-destination-comparison .recommendation-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(248, 150, 30, 0.15);
  border-color: #fdba74;
}

body.page-template-template-destination-comparison .recommendation-number {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  color: #ffffff;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.3);
}

body.page-template-template-destination-comparison .recommendation-text {
  flex: 1;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: #1f2937;
  font-weight: 500;
}

/* Display Section Header */
body.page-template-template-destination-comparison .comparison-display-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 2px solid #f3f4f6;
  flex-wrap: wrap;
  gap: 16px;
}

body.page-template-template-destination-comparison .comparison-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

body.page-template-template-destination-comparison .action-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
  font-family: inherit;
}

body.page-template-template-destination-comparison .action-button.primary {
  background: var(--color-secondary);
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(255, 107, 0, 0.25);
}

body.page-template-template-destination-comparison .action-button.primary:hover {
  background: #e65f00;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 107, 0, 0.35);
}

body.page-template-template-destination-comparison .action-button.secondary {
  background: #ffffff;
  color: #374151;
  border: 2px solid #e5e7eb;
}

body.page-template-template-destination-comparison .action-button.secondary:hover {
  background: #f9fafb;
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(255, 107, 0, 0.1);
}

body.page-template-template-destination-comparison .action-button svg {
  width: 16px;
  height: 16px;
}

/* Comparison Headers */
body.page-template-template-destination-comparison .comparison-headers {
  display: grid;
  grid-template-columns: 200px 1fr 1fr;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid #e5e7eb;
}



body.page-template-template-destination-comparison .comparison-category-header {
  /* Empty cell for alignment */
}

body.page-template-template-destination-comparison .comparison-destination-header {
  text-align: center;
  padding: 20px;
  background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(248, 150, 30, 0.25);
}

body.page-template-template-destination-comparison .comparison-destination-header h3 {
  color: #ffffff;
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 12px 0;
}

body.page-template-template-destination-comparison .learn-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
  backdrop-filter: blur(10px);
}

body.page-template-template-destination-comparison .learn-more-btn:hover {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.5);
  transform: translateY(-2px);
}

body.page-template-template-destination-comparison .learn-more-btn svg {
  width: 14px;
  height: 14px;
}

/* Comparison Table */
body.page-template-template-destination-comparison .comparison-table {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.page-template-template-destination-comparison .comparison-row {
  display: grid;
  grid-template-columns: 200px 1fr 1fr;
  gap: 16px;
  align-items: start;
}



body.page-template-template-destination-comparison .comparison-category-label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  border: 1px solid #fed7aa;
  border-radius: 8px;
  font-weight: 600;
  color: #1f2937;
  position: sticky;
  top: 80px;
}

body.page-template-template-destination-comparison .category-icon {
  font-size: 1.5rem;
}

body.page-template-template-destination-comparison .category-name {
  font-size: 0.95rem;
}

body.page-template-template-destination-comparison .comparison-cell {
  padding: 18px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-destination-comparison .comparison-cell:hover {
  border-color: #f8961e;
  box-shadow: 0 2px 8px rgba(248, 150, 30, 0.15);
  transform: translateY(-1px);
}

body.page-template-template-destination-comparison .cell-content {
  font-size: 0.95rem;
  color: #374151;
  line-height: 1.6;
}

body.page-template-template-destination-comparison .cell-content p {
  margin: 0;
}

/* Hide mobile destination name on desktop */
body.page-template-template-destination-comparison .mobile-destination-name {
  display: none;
}

body.page-template-template-destination-comparison .cell-list {
  margin: 0;
  padding-left: 20px;
  list-style-type: disc;
}

body.page-template-template-destination-comparison .cell-list li {
  margin-bottom: 6px;
  color: #374151;
}

body.page-template-template-destination-comparison .na-text {
  color: #9ca3af;
  font-style: italic;
}

/* Affordability Rating */
body.page-template-template-destination-comparison .affordability-rating {
  text-align: center;
}

body.page-template-template-destination-comparison .dollar-signs {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: #f8961e;
  margin-bottom: 8px;
}

body.page-template-template-destination-comparison .affordability-note {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
}

/* Safety Rating */
body.page-template-template-destination-comparison .safety-rating {
  text-align: center;
}

body.page-template-template-destination-comparison .rating-badge {
  display: inline-block;
  padding: 8px 14px;
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  color: #c2410c;
  border: 1px solid #fed7aa;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.875rem;
  margin-bottom: 8px;
}

body.page-template-template-destination-comparison .safety-notes {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 8px 0 0 0;
}

/* Share Modal - Reusing existing styles from itinerary/cost estimator */
body.page-template-template-destination-comparison .share-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

body.page-template-template-destination-comparison .share-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
}

body.page-template-template-destination-comparison .share-modal-content {
  position: relative;
  background: #ffffff;
  border-radius: 16px;
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  z-index: 10000;
}

body.page-template-template-destination-comparison .share-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 24px 16px 24px;
  border-bottom: 1px solid #e5e7eb;
}

body.page-template-template-destination-comparison .share-modal-header h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
}

body.page-template-template-destination-comparison .share-modal-close {
  background: none;
  border: none;
  color: #6b7280;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  transition: all 0.2s ease;
}

body.page-template-template-destination-comparison .share-modal-close:hover {
  background: #f3f4f6;
  color: #1f2937;
}

body.page-template-template-destination-comparison .share-modal-body {
  padding: 24px;
}

body.page-template-template-destination-comparison .share-description {
  font-size: 0.95rem;
  color: #6b7280;
  margin: 0 0 20px 0;
}

body.page-template-template-destination-comparison .share-link-container {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
}

body.page-template-template-destination-comparison .share-link-input {
  flex: 1;
  padding: 12px 16px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.95rem;
  background: #f9fafb;
}

body.page-template-template-destination-comparison .copy-link-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  background: #3b82f6;
  color: #ffffff;
  border: none;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

body.page-template-template-destination-comparison .copy-link-btn:hover {
  background: #2563eb;
}

body.page-template-template-destination-comparison .share-social-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #6b7280;
  margin: 0 0 12px 0;
}

body.page-template-template-destination-comparison .share-social-buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

body.page-template-template-destination-comparison .share-social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  background: #f3f4f6;
  color: #374151;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

body.page-template-template-destination-comparison .share-social-btn:hover {
  background: #e5e7eb;
  border-color: #9ca3af;
}

/* Tablet Responsive Styles */
@media (max-width: 1024px) {
  body.page-template-template-destination-comparison .comparison-headers,
  body.page-template-template-destination-comparison .comparison-row {
    grid-template-columns: 180px 1fr 1fr;
  }

  body.page-template-template-destination-comparison .comparison-destination-header {
    padding: 16px;
  }

  body.page-template-template-destination-comparison .comparison-destination-header h3 {
    font-size: 1.125rem;
  }
}

/* Mobile Responsive Styles */
@media (max-width: 768px) {
  /* Prevent horizontal overflow on mobile - root level fix */
  html {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  body {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  /* Comparison page specific mobile fixes */
  body.page-template-template-destination-comparison {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  /* Layout containers */
  body.page-template-template-destination-comparison .content-sidebar-wrap {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  body.page-template-template-destination-comparison .main-content {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* Hero wrapper - full bleed on mobile */
  body.page-template-template-destination-comparison .comparison-hero-wrapper {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.page-template-template-destination-comparison .comparison-hero {
    width: 100% !important;
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile for performance */
    margin: 0 !important;
    border-radius: 0 !important;
  }

  body.page-template-template-destination-comparison .comparison-hero .hero-container {
    padding: 0 18px 28px 18px;
    max-width: 100%;
  }

  /* Content area - constrained width with padding */
  body.page-template-template-destination-comparison .site-content {
    overflow-x: hidden !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Main containers */
  body.page-template-template-destination-comparison .comparison-container {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 16px !important;
    margin: 0 !important;
  }

  body.page-template-template-destination-comparison .comparison-section {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px 0 !important;
    border-radius: 0 !important;
    margin: 0 0 24px 0 !important;
  }

  /* Tabs container */
  body.page-template-template-destination-comparison .comparison-tabs {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  body.page-template-template-destination-comparison .tab-content-container,
  body.page-template-template-destination-comparison .tab-content-inner {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Breadcrumbs - ensure they don't overflow */
  body.page-template-template-destination-comparison .breadcrumbs {
    margin: 12px auto !important;
    padding: 0 16px !important;
  }

  body.page-template-template-destination-comparison .breadcrumb-item.active {
    max-width: 120px !important;
  }

  /* Form section */
  body.page-template-template-destination-comparison #comparison-form-section {
    padding: 20px 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.page-template-template-destination-comparison .form-intro {
    margin-bottom: 28px;
    padding-bottom: 24px;
  }

  body.page-template-template-destination-comparison .section-title {
    font-size: 1.5rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  body.page-template-template-destination-comparison .section-description {
    font-size: 0.9375rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  /* SEO Title - Mobile */
  body.page-template-template-destination-comparison .comparison-seo-title {
    padding: 16px 0;
    margin-bottom: 20px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.page-template-template-destination-comparison .comparison-seo-title h2 {
    font-size: 1.25rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  /* Stack destination inputs vertically on mobile */
  body.page-template-template-destination-comparison .destinations-row {
    grid-template-columns: 1fr;
    gap: 20px;
    width: 100%;
    max-width: 100%;
  }

  body.page-template-template-destination-comparison .form-control {
    padding: 12px 16px;
    font-size: 16px; /* Prevents zoom on iOS */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.page-template-template-destination-comparison .submit-button {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    padding: 14px 32px;
    font-size: 1rem;
    box-sizing: border-box;
  }

  body.page-template-template-destination-comparison .comparison-display-header {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    max-width: 100%;
  }

  body.page-template-template-destination-comparison .comparison-actions {
    width: 100%;
    max-width: 100%;
    flex-direction: column;
    gap: 12px;
  }

  body.page-template-template-destination-comparison .action-button {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }

  /* Hide desktop destination headers on mobile */
  body.page-template-template-destination-comparison .comparison-headers {
    display: none !important;
  }

  /* Stack comparison rows vertically */
  body.page-template-template-destination-comparison .comparison-row {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 24px;
    border: 2px solid #fed7aa;
    border-radius: 12px;
    overflow: hidden;
  }

  /* Category label: full width header */
  body.page-template-template-destination-comparison .comparison-category-label {
    position: static;
    background: linear-gradient(135deg, #f8961e 0%, #f59e0b 100%);
    color: #ffffff;
    font-weight: 700;
    justify-content: center;
    border: none;
    width: 100%;
    padding: 14px;
    border-radius: 0;
  }

  body.page-template-template-destination-comparison .category-icon {
    font-size: 1.25rem;
  }

  body.page-template-template-destination-comparison .category-name {
    font-size: 1rem;
  }

  /* Comparison cells: stack with destination name */
  body.page-template-template-destination-comparison .comparison-cell {
    border: none;
    border-top: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 16px;
  }

  body.page-template-template-destination-comparison .comparison-cell:first-of-type {
    border-top: none;
  }

  body.page-template-template-destination-comparison .comparison-cell:hover {
    transform: none;
    border-color: #e5e7eb;
    box-shadow: none;
    background: #f9fafb;
  }

  /* Show destination name in each cell on mobile */
  body.page-template-template-destination-comparison .mobile-destination-name {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    color: #f8961e;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 2px solid #fed7aa;
  }

  /* Summary section */
  body.page-template-template-destination-comparison .comparison-summary-section {
    flex-direction: column;
    padding: 16px;
    gap: 16px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
  }

  body.page-template-template-destination-comparison .summary-icon {
    width: 40px;
    height: 40px;
  }

  body.page-template-template-destination-comparison .summary-title {
    font-size: 1.125rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  body.page-template-template-destination-comparison .summary-text {
    font-size: 0.9375rem;
    line-height: 1.6;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  body.page-template-template-destination-comparison .share-link-container {
    flex-direction: column;
  }

  body.page-template-template-destination-comparison .copy-link-btn {
    width: 100%;
    justify-content: center;
  }

  body.page-template-template-destination-comparison .share-social-buttons {
    grid-template-columns: 1fr;
  }

  /* Recommendations Section - Mobile */
  body.page-template-template-destination-comparison .comparison-recommendations-section {
    padding: 16px;
    margin-top: 20px;
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
  }

  body.page-template-template-destination-comparison .recommendations-header {
    margin-bottom: 20px;
  }

  body.page-template-template-destination-comparison .recommendations-icon {
    width: 48px;
    height: 48px;
  }

  body.page-template-template-destination-comparison .recommendations-title {
    font-size: 1.25rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  body.page-template-template-destination-comparison .recommendations-subtitle {
    font-size: 0.875rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  body.page-template-template-destination-comparison .recommendation-item {
    padding: 14px;
    gap: 12px;
  }

  body.page-template-template-destination-comparison .recommendation-number {
    width: 32px;
    height: 32px;
    font-size: 1rem;
    flex-shrink: 0;
  }

  body.page-template-template-destination-comparison .recommendation-text {
    font-size: 0.875rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }
}

/* ========================================
   Comparison Page - SEO Content Sections
   ======================================== */

/* Container for all content sections */
body.page-template-template-destination-comparison .comparison-content-sections {
  max-width: 960px;
  margin: 48px auto 0;
  padding: 0;
}

/* Individual content section */
body.page-template-template-destination-comparison .content-section {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 40px 32px;
  margin-bottom: 32px;
}

body.page-template-template-destination-comparison .content-section h2 {
  font-size: 1.75rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 32px;
  text-align: center;
  line-height: 1.3;
}

body.page-template-template-destination-comparison .section-intro {
  text-align: center;
  font-size: 1.0625rem;
  color: #4b5563;
  margin-bottom: 32px;
  line-height: 1.6;
}

/* Benefits Grid */
body.page-template-template-destination-comparison .benefits-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-destination-comparison .benefit-card {
  text-align: center;
  padding: 24px 16px;
}

body.page-template-template-destination-comparison .benefit-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, #f8961e 0%, #ff9a00 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
}

body.page-template-template-destination-comparison .benefit-card h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 12px;
  line-height: 1.4;
}

body.page-template-template-destination-comparison .benefit-card p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* How It Works Steps */
body.page-template-template-destination-comparison .steps-container {
  max-width: 700px;
  margin: 0 auto;
}

body.page-template-template-destination-comparison .step-item {
  display: flex;
  gap: 20px;
  margin-bottom: 32px;
  align-items: flex-start;
}

body.page-template-template-destination-comparison .step-item:last-child {
  margin-bottom: 0;
}

body.page-template-template-destination-comparison .step-number {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #f8961e 0%, #ff9a00 100%);
  color: #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
}

body.page-template-template-destination-comparison .step-content h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 8px;
  line-height: 1.4;
}

body.page-template-template-destination-comparison .step-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Categories Grid */
body.page-template-template-destination-comparison .categories-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-destination-comparison .category-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px;
  background: #f9fafb;
  border-radius: 8px;
  transition: all 0.2s ease;
}

body.page-template-template-destination-comparison .category-item:hover {
  background: #fff7ed;
  transform: translateY(-2px);
}

body.page-template-template-destination-comparison .category-item svg {
  flex-shrink: 0;
  color: #f8961e;
  margin-top: 2px;
}

body.page-template-template-destination-comparison .category-item h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 4px;
  line-height: 1.4;
}

body.page-template-template-destination-comparison .category-item p {
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}

/* Tips List */
body.page-template-template-destination-comparison .tips-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-template-template-destination-comparison .tip-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px;
  background: #f9fafb;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}

body.page-template-template-destination-comparison .tip-icon {
  flex-shrink: 0;
  font-size: 2rem;
  line-height: 1;
}

body.page-template-template-destination-comparison .tip-content h4 {
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
  margin-bottom: 8px;
  line-height: 1.4;
}

body.page-template-template-destination-comparison .tip-content p {
  font-size: 0.9375rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
}

/* Mobile Responsive for SEO Sections */
@media (max-width: 767px) {
  body.page-template-template-destination-comparison .comparison-content-sections {
    margin-top: 32px;
  }

  body.page-template-template-destination-comparison .content-section {
    padding: 32px 24px;
    margin-bottom: 24px;
    border-radius: 0;
    border-left: none;
    border-right: none;
  }

  body.page-template-template-destination-comparison .content-section h2 {
    font-size: 1.5rem;
    margin-bottom: 24px;
  }

  body.page-template-template-destination-comparison .benefits-grid,
  body.page-template-template-destination-comparison .categories-grid,
  body.page-template-template-destination-comparison .tips-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  body.page-template-template-destination-comparison .benefit-card {
    padding: 20px 12px;
  }

  body.page-template-template-destination-comparison .step-item {
    gap: 16px;
    margin-bottom: 24px;
  }

  body.page-template-template-destination-comparison .step-number {
    width: 40px;
    height: 40px;
    font-size: 1.125rem;
  }

  body.page-template-template-destination-comparison .step-content h3,
  body.page-template-template-destination-comparison .benefit-card h3 {
    font-size: 1.0625rem;
  }

  body.page-template-template-destination-comparison .category-item,
  body.page-template-template-destination-comparison .tip-item {
    padding: 16px;
  }

  body.page-template-template-destination-comparison .section-intro {
    font-size: 1rem;
    margin-bottom: 24px;
  }
}

/* ========================================
   Blog Page Template Styles
   ======================================== */

/* Blog Hero Section */
body.page-template-template-blog .blog-hero-wrapper {
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

body.page-template-template-blog .blog-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax effect */
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-blog .blog-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-blog .blog-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-blog .blog-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-blog .blog-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-blog .blog-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-blog .blog-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll; /* Disable parallax on mobile for performance */
  }

  body.page-template-template-blog .blog-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Blog Container */
.blog-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 1rem;
}

/* Blog Grid */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2rem;
}

/* ========================================
   BLOG CARD - REBUILT FROM SCRATCH
   ======================================== */

.ts-blog-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: rgba(255, 152, 0, 0.04);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(255, 152, 0, 0.15);
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.ts-blog-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 152, 0, 0.3);
}

/* Image */
.ts-blog-card__image {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
    flex-shrink: 0;
}

.ts-blog-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.3s ease;
}

.ts-blog-card:hover .ts-blog-card__image img {
    transform: scale(1.05);
}

.ts-blog-card__category {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 5px 12px;
    background: rgba(255, 152, 0, 0.25);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 16px;
    border: 1px solid rgba(255, 152, 0, 0.4);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Body - grows to fill space and pushes button down */
.ts-blog-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.25rem;
    padding-bottom: 0;
}

/* Title */
.ts-blog-card__title {
    margin: 0 0 0.625rem 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
}

.ts-blog-card__title a {
    color: #1f2937;
    text-decoration: none;
    transition: color 0.3s ease;
}

.ts-blog-card__title a:hover,
.ts-blog-card__title a:focus {
    color: var(--color-secondary);
    outline: none;
}

/* Excerpt */
.ts-blog-card__excerpt {
    margin: 0 0 0.625rem 0;
    color: #6b7280;
    font-size: 0.9375rem;
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Meta - stays right under excerpt */
.ts-blog-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 1.25rem 0;
    font-size: 0.8125rem;
    color: #6b7280;
}

.ts-blog-card__date {
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 500;
}

.ts-blog-card__date svg {
    opacity: 0.7;
}

.ts-blog-card__reading-time {
    color: #9ca3af;
    font-weight: 500;
}

/* Button - at card bottom */
.ts-blog-card__button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 16px;
    background: var(--color-secondary);
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
    margin: 16px;
    border-radius: 5px;

}

.ts-blog-card__button:hover,
.ts-blog-card__button:focus {
    background: #cc7a00;
    color: #fff;
    gap: 12px;
    outline: none;
}

.ts-blog-card__button svg {
    transition: transform 0.3s ease;
}

.ts-blog-card__button:hover svg {
    transform: translateX(3px);
}

/* Blog Pagination */
.blog-pagination {
    margin-top: 3rem;
    display: flex;
    justify-content: center;
}

.blog-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.blog-pagination .page-numbers li {
    list-style: none;
}

.blog-pagination a,
.blog-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 1rem;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
}

.blog-pagination a:hover {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #ffffff;
}

.blog-pagination .current {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #ffffff;
}

.blog-pagination .prev,
.blog-pagination .next {
    gap: 8px;
}

.blog-pagination svg {
    width: 16px;
    height: 16px;
}

/* No Posts State */
.blog-no-posts {
    text-align: center;
    padding: 4rem 2rem;
    background: #f9fafb;
    border-radius: 12px;
    margin: 2rem 0;
}

.no-posts-icon {
    margin-bottom: 1.5rem;
    color: #9ca3af;
}

.blog-no-posts h2 {
    font-size: 1.75rem;
    color: var(--color-primary);
    margin: 0 0 1rem 0;
}

.blog-no-posts p {
    font-size: 1.125rem;
    color: #6b7280;
    margin: 0;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    body.page-template-template-blog .blog-container {
        padding: 1rem 0.75rem;
    }

    body.page-template-template-blog .blog-grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    body.page-template-template-blog .ts-blog-card__title {
        font-size: 1.25rem;
    }

    body.page-template-template-blog .blog-pagination a,
    body.page-template-template-blog .blog-pagination span {
        min-width: 40px;
        height: 40px;
        padding: 0 0.75rem;
        font-size: 0.875rem;
    }
}

/* ========================================
   SINGLE POST - SOCIAL SHARING
   ======================================== */

.ts-social-share {
    margin: 3rem 0;
    padding: 2rem;
    background: rgba(255, 152, 0, 0.04);
    border: 1px solid rgba(255, 152, 0, 0.15);
    border-radius: 12px;
}

.ts-social-share__title {
    margin: 0 0 1.5rem 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #1f2937;
}

.ts-social-share__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ts-social-share__button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: #374151;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.ts-social-share__button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    outline: none;
}

.ts-social-share__button--facebook:hover {
    background: #1877f2;
    border-color: #1877f2;
    color: #fff;
}

.ts-social-share__button--twitter:hover {
    background: #000;
    border-color: #000;
    color: #fff;
}

.ts-social-share__button--linkedin:hover {
    background: #0a66c2;
    border-color: #0a66c2;
    color: #fff;
}

.ts-social-share__button--email:hover {
    background: #6b7280;
    border-color: #6b7280;
    color: #fff;
}

.ts-social-share__button--copy:hover {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
}

.ts-social-share__button--copied {
    background: #10b981 !important;
    border-color: #10b981 !important;
    color: #fff !important;
}

/* ========================================
   SINGLE POST - POST NAVIGATION
   ======================================== */

.ts-post-navigation {
    margin: 3rem 0;
}

.ts-post-navigation__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.ts-post-navigation__item {
    display: flex;
    gap: 1rem;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid rgba(255, 152, 0, 0.15);
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.ts-post-navigation__item:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 152, 0, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.ts-post-navigation__item--empty {
    visibility: hidden;
}

.ts-post-navigation__image {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    background-size: cover;
    background-position: center;
    border-radius: 8px;
}

.ts-post-navigation__content {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.ts-post-navigation__label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ts-post-navigation__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    color: #1f2937;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* ========================================
   SINGLE POST - RELATED POSTS
   ======================================== */

.ts-related-posts {
    margin: 3rem 0;
    padding: 2.5rem 0;
    border-top: 2px solid rgba(255, 152, 0, 0.15);
}

.ts-related-posts__title {
    margin: 0 0 2rem 0;
    font-size: 1.75rem;
    font-weight: 700;
    color: #1f2937;
}

.ts-related-posts__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.ts-related-post {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(255, 152, 0, 0.15);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.ts-related-post:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 152, 0, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.ts-related-post__image-link {
    display: block;
}

.ts-related-post__image {
    position: relative;
    width: 100%;
    height: 180px;
    background-size: cover;
    background-position: center;
}

.ts-related-post__category {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 5px 12px;
    background: rgba(255, 152, 0, 0.25);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 16px;
    border: 1px solid rgba(255, 152, 0, 0.4);
}

.ts-related-post__content {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ts-related-post__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
}

.ts-related-post__title a {
    color: #1f2937;
    text-decoration: none;
    transition: color 0.3s ease;
}

.ts-related-post__title a:hover,
.ts-related-post__title a:focus {
    color: var(--color-secondary);
    outline: none;
}

.ts-related-post__excerpt {
    margin: 0;
    color: #6b7280;
    font-size: 0.875rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ts-related-post__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.8125rem;
    color: #6b7280;
    margin-top: auto;
}

.ts-related-post__date {
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 500;
}

.ts-related-post__date svg {
    opacity: 0.7;
}

.ts-related-post__reading-time {
    color: #9ca3af;
    font-weight: 500;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .ts-social-share__buttons {
        flex-direction: column;
    }

    .ts-social-share__button {
        width: 100%;
        justify-content: center;
    }

    .ts-post-navigation__inner {
        grid-template-columns: 1fr;
    }

    .ts-post-navigation__item--next {
        order: -1;
    }

    .ts-related-posts__grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   Search Modal Styles
   ======================================== */

.search-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 60px 20px 20px;
}

.search-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
}

.search-modal-container {
    position: relative;
    width: 100%;
    max-width: 800px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-height: calc(100vh - 120px);
    display: flex;
    flex-direction: column;
    animation: searchModalSlideIn 0.3s ease-out;
}

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

.search-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 24px 16px;
    border-bottom: 1px solid #e5e7eb;
}

.search-modal-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

.search-modal-close {
    background: transparent;
    border: none;
    color: #6b7280;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search-modal-close:hover {
    background: #f3f4f6;
    color: #111827;
}

.search-modal-body {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.search-modal-form {
    padding: 20px 24px;
}

.search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.search-modal-input {
    width: 100%;
    padding: 14px 48px 14px 16px;
    font-size: 1rem;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    outline: none;
    transition: all 0.2s ease;
    background: #ffffff;
}

.search-modal-input:focus {
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(248, 150, 30, 0.1);
}

.search-input-clear {
    position: absolute;
    right: 12px;
    background: transparent;
    border: none;
    color: #9ca3af;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.search-input-clear:hover {
    background: #f3f4f6;
    color: #111827;
}

.search-modal-results {
    flex: 1;
    overflow-y: auto;
    padding: 0 24px 24px;
}

.search-modal-placeholder,
.search-modal-loading,
.search-modal-no-results,
.search-modal-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    text-align: center;
    color: #6b7280;
}

.search-modal-placeholder svg,
.search-modal-loading svg,
.search-modal-no-results svg {
    margin-bottom: 16px;
    opacity: 0.5;
}

.search-modal-loading .loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid #e5e7eb;
    border-top-color: var(--color-secondary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin-bottom: 16px;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.search-results-summary {
    padding: 16px 0;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 20px;
}

.search-results-summary p {
    margin: 0;
    font-size: 0.875rem;
    color: #6b7280;
    font-weight: 500;
}

.search-results-section {
    margin-bottom: 32px;
}

.search-section-title {
    font-size: 1rem;
    font-weight: 600;
    color: #111827;
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-secondary);
    display: inline-block;
}

.search-results-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.search-result-item {
    display: flex;
    flex-direction: column;
    padding: 12px;
    background: #ffffff;
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.2s ease;
    border: 1px solid #e5e7eb;
    outline: none !important;
}

.search-result-item:hover,
.search-result-item:focus {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    outline: none !important;
}

.search-result-item:hover .search-result-title {
    color: var(--color-secondary);
}

.search-result-thumbnail {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 6px;
    margin-bottom: 10px;
}

.search-result-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 6px;
}

.search-result-badge {
    display: inline-block;
    padding: 2px 8px;
    background: transparent;
    color: #9ca3af;
    font-size: 0.6875rem;
    font-weight: 500;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 1px solid #e5e7eb;
}

.search-result-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #111827;
    margin: 0;
    line-height: 1.4;
}

.search-result-title:hover,
.search-result-title:focus {
    outline: none !important;
}

.search-result-excerpt {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0 0 6px 0;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.search-result-meta {
    font-size: 0.6875rem;
    color: #9ca3af;
}

.region-badge {
    display: inline-block;
    padding: 2px 8px;
    background: #e5e7eb;
    color: #4b5563;
    border-radius: 4px;
    font-weight: 500;
}

body.search-modal-open {
    overflow: hidden;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .search-modal {
        padding: 20px 10px 10px;
    }

    .search-modal-container {
        max-height: calc(100vh - 40px);
        border-radius: 12px;
    }

    .search-modal-header {
        padding: 16px 16px 12px;
    }

    .search-modal-form {
        padding: 16px;
    }

    .search-modal-results {
        padding: 0 16px 16px;
    }

    .search-results-list {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   Search Results Page Styles
   ======================================== */

.search-results-page {
    padding: 40px 0;
}

.search-header {
    margin-bottom: 40px;
    text-align: center;
}

.search-title {
    font-size: 2rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 24px 0;
}

.search-query {
    color: var(--color-secondary);
}

.search-form-container {
    max-width: 600px;
    margin: 0 auto;
}

.search-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
}

.loading-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #e5e7eb;
    border-top-color: var(--color-secondary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin-bottom: 20px;
}

.search-results-container {
    margin-top: 40px;
}

.search-summary {
    padding: 20px 0;
    border-bottom: 2px solid #e5e7eb;
    margin-bottom: 32px;
}

.results-count {
    font-size: 1.125rem;
    font-weight: 600;
    color: #4b5563;
    margin: 0;
}

.search-section {
    margin-bottom: 48px;
}

.search-section .section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 24px 0;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-secondary);
}

.search-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.search-result-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    transition: all 0.3s ease;
    position: relative;
}

.search-result-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.search-result-card:hover .result-title a {
    color: var(--color-secondary);
}

.result-title a {
    outline: none !important;
}

.result-title a:hover,
.result-title a:focus {
    color: var(--color-secondary);
    outline: none !important;
}

.search-result-card .search-result-thumbnail {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 6px;
    margin-bottom: 12px;
}

.result-type-badge {
    display: inline-block;
    padding: 3px 10px;
    background: transparent;
    color: #9ca3af;
    font-size: 0.6875rem;
    font-weight: 500;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    border: 1px solid #e5e7eb;
}

.result-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 8px 0;
    line-height: 1.4;
}

.result-title a {
    color: #111827;
    text-decoration: none;
    transition: color 0.2s ease;
}

.result-title a:hover,
.result-title a:focus {
    color: var(--color-secondary);
    outline: none !important;
}

.result-excerpt {
    font-size: 0.875rem;
    color: #6b7280;
    line-height: 1.5;
    margin: 0 0 8px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.result-meta {
    font-size: 0.75rem;
    color: #9ca3af;
}

.no-results,
.no-search-query {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    text-align: center;
}

.no-results svg,
.no-search-query svg {
    color: #d1d5db;
    margin-bottom: 24px;
}

.no-results h2,
.no-search-query h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin: 0 0 12px 0;
}

.no-results p,
.no-search-query p {
    font-size: 1rem;
    color: #6b7280;
    margin: 0;
}

@media (max-width: 768px) {
    .search-title {
        font-size: 1.5rem;
    }

    .search-results-grid {
        grid-template-columns: 1fr;
    }

    .search-section .section-title {
        font-size: 1.25rem;
    }
}


/* ========================================
   City Autocomplete Styles
   ======================================== */

.city-autocomplete-wrapper {
    position: relative;
    width: 100%;
}

.city-autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-top: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}

.city-autocomplete-item {
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    border-bottom: 1px solid #f3f4f6;
}

.city-autocomplete-item:last-child {
    border-bottom: none;
}

.city-autocomplete-item:hover,
.city-autocomplete-item.selected {
    background-color: #f9fafb;
}

.city-autocomplete-item strong {
    color: var(--color-primary);
    font-weight: 600;
}

.city-autocomplete-loading,
.city-autocomplete-no-results,
.city-autocomplete-error {
    padding: 12px 16px;
    text-align: center;
    color: #6b7280;
    font-size: 14px;
}

.city-autocomplete-error {
    color: #dc2626;
}

/* Ensure input has proper styling when wrapped */
.city-autocomplete-wrapper input {
    width: 100%;
    border-radius: 8px;
}

.city-autocomplete-wrapper input:focus {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.city-autocomplete-wrapper input:focus + .city-autocomplete-dropdown {
    border-color: var(--color-secondary);
}

/* Validation states */
.city-autocomplete-valid {
    border-color: #10b981 !important;
}

.city-autocomplete-invalid {
    border-color: #dc2626 !important;
}

.city-autocomplete-error-message {
    color: #dc2626;
    font-size: 13px;
    margin-top: 4px;
    display: none;
}

.city-autocomplete-error-message.show {
    display: block;
}

/* ========================================
   Wedding Calculator Styles - Clean Design
   ======================================== */
.wedding-estimate-results {
    background: var(--color-white);
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin: 30px 0;
    border: 1px solid var(--color-gray-medium);
    max-width: 100%;
}

.estimate-header {
    background: linear-gradient(135deg, var(--color-primary) 0%, #1a1c2e 100%);
    color: var(--color-white);
    padding: 30px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.estimate-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--color-secondary);
}

.header-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: flex-end;
    align-self: flex-end;
}

.header-content {
    text-align: center;
}

.estimate-header h2 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-white);
}

.estimate-header .destination-name {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-top: 8px;
    color: var(--color-accent);
    font-weight: 500;
}

.location-info-section {
    background: var(--color-gray-light);
    padding: 30px;
    border-bottom: 1px solid var(--color-gray-medium);
}

.location-info-section h3 {
    color: var(--color-primary);
    font-size: 1.4rem;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.location-info-section h3::before {
    content: '📍';
    font-size: 1.2em;
}

.location-description {
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: 30px;
    font-size: 1rem;
}

.location-detail-item {
    background: var(--color-white);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
    border: 1px solid var(--color-gray-medium);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.location-detail-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    border-color: var(--color-secondary);
}

.location-detail-item:last-child {
    margin-bottom: 0;
}

.location-detail-item strong {
    color: var(--color-primary);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.location-detail-item ul {
    margin: 8px 0 0 0;
    padding-left: 20px;
    color: var(--color-text);
}

.location-detail-item li {
    margin-bottom: 6px;
    line-height: 1.5;
}

.estimate-summary {
    padding: 30px;
    text-align: center;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-gray-medium);
}

.total-cost h3 {
    color: var(--color-primary);
    font-size: 1.2rem;
    margin-bottom: 16px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.cost-amount {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--color-secondary);
    margin-bottom: 8px;
}

.cost-range {
    font-size: 1rem;
    color: var(--color-gray-dark);
    margin-bottom: 16px;
}

.estimate-summary p {
    color: var(--color-gray-dark);
    font-size: 1rem;
    margin: 0;
}

.cost-breakdown {
    padding: 30px;
    background: var(--color-white);
}

.cost-breakdown h3 {
    color: var(--color-primary);
    font-size: 1.4rem;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.cost-breakdown h3::before {
    content: '📊';
    font-size: 1.2em;
}

.breakdown-container {
    display: block;
}

.breakdown-chart {
    background: var(--color-gray-light);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 30px;
    text-align: center;
}

.breakdown-chart canvas {
    max-width: 100%;
    height: auto !important;
    max-height: 400px;
}

.breakdown-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.breakdown-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 16px 20px;
    background: var(--color-gray-light);
    border-radius: 8px;
    border: 1px solid var(--color-gray-medium);
    transition: all 0.3s ease;
}

.breakdown-item:hover {
    background: var(--color-white);
    border-color: var(--color-secondary);
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(248, 150, 30, 0.15);
}

.breakdown-item:last-child {
    margin-bottom: 0;
}

.item-details {
    flex: 1;
}

.item-name {
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 4px;
    display: block;
}

.item-description {
    font-size: 0.9rem;
    color: var(--color-gray-dark);
    line-height: 1.4;
    display: block;
}

.item-cost {
    font-weight: 700;
    color: var(--color-secondary);
    font-size: 1.1rem;
    margin-left: 16px;
    flex-shrink: 0;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .wedding-estimate-results {
        margin: 20px 0;
        border-radius: 8px;
    }

    .estimate-header {
        padding: 25px 20px;
        gap: 15px;
    }

    .estimate-header h2 {
        font-size: 1.5rem;
    }

    .estimate-header .destination-name {
        font-size: 1rem;
    }

    .header-actions {
        justify-content: center;
        gap: 10px;
        align-self: center;
    }

    .location-info-section,
    .estimate-summary,
    .cost-breakdown {
        padding: 20px;
    }

    .location-detail-item {
        padding: 16px;
        margin-bottom: 12px;
    }

    .cost-amount {
        font-size: 2rem;
    }

    .breakdown-chart {
        padding: 15px;
        margin-bottom: 20px;
    }

    .breakdown-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        padding: 14px 16px;
    }

    .item-cost {
        margin-left: 0;
        align-self: flex-end;
    }

    .breakdown-item:hover {
        transform: translateX(2px);
    }
}

@media (max-width: 480px) {
    .wedding-estimate-results {
        margin: 15px 0;
    }

    .estimate-header {
        padding: 20px 15px;
    }

    .estimate-header h2 {
        font-size: 1.3rem;
    }

    .location-info-section,
    .estimate-summary,
    .cost-breakdown {
        padding: 15px;
    }

    .cost-amount {
        font-size: 1.8rem;
    }

    .breakdown-chart {
        padding: 10px;
    }
}

/* Wedding Display Header Styles */
.wedding-display-header {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center;
    margin-bottom: 20px;
    padding: 0 20px;
    width: 100%;
}

.wedding-actions {
    display: flex !important;
    gap: 12px;
    margin-left: auto !important;
}

.action-button {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    white-space: nowrap;
}

.action-button.secondary {
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.action-button.secondary:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
}

.action-button.primary {
    background: var(--color-secondary);
    color: var(--color-white);
    border: 1px solid var(--color-secondary);
}

.action-button.primary:hover {
    background: #e6851a;
    border-color: #e6851a;
}

.action-button svg {
    width: 16px;
    height: 16px;
}

/* Additional specificity for button alignment */
#wedding-display-section .wedding-display-header {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    text-align: right !important;
}

#wedding-display-section .wedding-actions {
    display: flex !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
}

@media (max-width: 768px) {
    .wedding-display-header {
        padding: 0 10px;
        justify-content: flex-end !important;
    }

    .wedding-actions {
        gap: 8px;
        margin-left: auto !important;
    }

    .action-button {
        padding: 8px 12px;
        font-size: 13px;
    }

    .action-button svg {
        width: 14px;
        height: 14px;
    }
}

/* Privacy Policy Page Content Styles */
body.page-template-template-privacy-policy .privacy-policy-content {
  max-width: 100%;
  margin: 0 auto;
}

body.page-template-template-privacy-policy .privacy-introduction {
  background: #f9fafb;
  border: 1px solid var(--color-secondary);
  padding: 24px;
  margin-bottom: 32px;
  border-radius: 8px;
}

body.page-template-template-privacy-policy .privacy-introduction p {
  margin: 0 0 12px 0;
  line-height: 1.7;
}

body.page-template-template-privacy-policy .privacy-introduction p:last-child {
  margin-bottom: 0;
}

body.page-template-template-privacy-policy .privacy-toc {
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 40px;
}

body.page-template-template-privacy-policy .privacy-toc h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 20px 0;
}

body.page-template-template-privacy-policy .privacy-toc ol {
  margin: 0;
  padding-left: 24px;
  line-height: 2;
}

body.page-template-template-privacy-policy .privacy-toc a {
  color: #f59e0b;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

body.page-template-template-privacy-policy .privacy-toc a:hover {
  color: #d97706;
  text-decoration: underline;
}

body.page-template-template-privacy-policy .privacy-section {
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid #e5e7eb;
}

body.page-template-template-privacy-policy .privacy-section:last-child {
  border-bottom: none;
}

body.page-template-template-privacy-policy .privacy-section h2 {
  font-size: 1.875rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 20px 0;
  padding-top: 20px;
}

body.page-template-template-privacy-policy .privacy-section h3 {
  font-size: 1.375rem;
  font-weight: 600;
  color: #374151;
  margin: 24px 0 16px 0;
}

body.page-template-template-privacy-policy .privacy-section p {
  line-height: 1.8;
  color: #4b5563;
  margin-bottom: 16px;
}

body.page-template-template-privacy-policy .privacy-section ul {
  margin: 16px 0;
  padding-left: 24px;
  line-height: 1.8;
}

body.page-template-template-privacy-policy .privacy-section li {
  margin-bottom: 12px;
  color: #4b5563;
}

body.page-template-template-privacy-policy .privacy-section a {
  color: #f59e0b;
  text-decoration: none;
  font-weight: 500;
}

body.page-template-template-privacy-policy .privacy-section a:hover {
  color: #d97706;
  text-decoration: underline;
}

body.page-template-template-privacy-policy .contact-info {
  background: #f9fafb;
  padding: 20px;
  border-radius: 8px;
  margin-top: 16px;
}

body.page-template-template-privacy-policy .contact-info p {
  margin: 8px 0;
}

body.page-template-template-privacy-policy .section-divider {
  border: none;
  border-top: 2px solid #e5e7eb;
  margin: 32px 0;
}

@media (max-width: 768px) {
  body.page-template-template-privacy-policy .hero-title {
    font-size: 2rem;
  }

  body.page-template-template-privacy-policy .hero-subtitle {
    font-size: 1rem;
  }

  body.page-template-template-privacy-policy .privacy-section h2 {
    font-size: 1.5rem;
  }

  body.page-template-template-privacy-policy .privacy-section h3 {
    font-size: 1.25rem;
  }

  body.page-template-template-privacy-policy .privacy-toc {
    padding: 20px;
  }
}

/* Contact Page Hero Styles */
body.page-template-template-contact .contact-hero-wrapper {
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

body.page-template-template-contact .contact-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-contact .contact-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-contact .contact-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-contact .contact-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-contact .contact-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-contact .contact-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-contact .contact-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll;
  }

  body.page-template-template-contact .contact-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Privacy Policy Page Hero Styles */
body.page-template-template-privacy-policy .privacy-hero-wrapper {
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

body.page-template-template-privacy-policy .privacy-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-privacy-policy .privacy-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-privacy-policy .privacy-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-privacy-policy .privacy-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-privacy-policy .privacy-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-privacy-policy .privacy-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-privacy-policy .privacy-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll;
  }

  body.page-template-template-privacy-policy .privacy-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

/* Terms of Service Page Styles */
body.page-template-template-terms-of-service .terms-hero-wrapper {
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

body.page-template-template-terms-of-service .terms-hero {
  position: relative;
  width: 100%;
  height: 55vh; /* Increased from 48vh for better aspect ratio */
  min-height: 400px; /* Increased from 304px */
  max-height: 650px; /* Increased from 512px */
  background-size: cover;
  background-position: center 35%; /* Better default for landscape photos */
  background-repeat: no-repeat;
  background-attachment: fixed;
  border-radius: 0;
  overflow: hidden;
  margin: 0;
  box-shadow: none;
}

body.page-template-template-terms-of-service .terms-hero .hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.45) 60%, rgba(0,0,0,0.65) 100%);
  z-index: 1;
}

body.page-template-template-terms-of-service .terms-hero .hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
}

body.page-template-template-terms-of-service .terms-hero .hero-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px 44px 24px;
}

body.page-template-template-terms-of-service .terms-hero .hero-title {
  color: #fff;
  margin: 0 0 10px 0;
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 30px rgba(0,0,0,0.45);
}

body.page-template-template-terms-of-service .terms-hero .hero-subtitle {
  color: rgba(255,255,255,0.95);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  margin: 0;
}

@media (max-width: 768px) {
  body.page-template-template-terms-of-service .terms-hero {
    height: 42vh; /* Increased from 36.8vh for better mobile aspect ratio */
    min-height: 300px; /* Increased from 256px */
    background-attachment: scroll;
  }

  body.page-template-template-terms-of-service .terms-hero .hero-container {
    padding: 0 18px 28px 18px;
  }
}

body.page-template-template-terms-of-service .terms-content {
  max-width: 100%;
  margin: 0 auto;
}

body.page-template-template-terms-of-service .terms-introduction {
  background: #fef3c7;
  /* border: 4px solid #f59e0b; */
  padding: 24px;
  margin-bottom: 32px;
  border-radius: 8px;
}

body.page-template-template-terms-of-service .terms-introduction p {
  margin: 0 0 12px 0;
  line-height: 1.7;
  color: #78350f;
}

body.page-template-template-terms-of-service .terms-introduction p:last-child {
  margin-bottom: 0;
}

body.page-template-template-terms-of-service .terms-toc {
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 40px;
}

body.page-template-template-terms-of-service .terms-toc h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 20px 0;
}

body.page-template-template-terms-of-service .terms-toc ol {
  margin: 0;
  padding-left: 24px;
  line-height: 2;
}

body.page-template-template-terms-of-service .terms-toc a {
  color: #f59e0b;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

body.page-template-template-terms-of-service .terms-toc a:hover {
  color: #d97706;
  text-decoration: underline;
}

body.page-template-template-terms-of-service .terms-section {
  margin-bottom: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid #e5e7eb;
}

body.page-template-template-terms-of-service .terms-section:last-child {
  border-bottom: none;
}

body.page-template-template-terms-of-service .terms-section h2 {
  font-size: 1.875rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 20px 0;
  padding-top: 20px;
}

body.page-template-template-terms-of-service .terms-section h3 {
  font-size: 1.375rem;
  font-weight: 600;
  color: #374151;
  margin: 24px 0 16px 0;
}

body.page-template-template-terms-of-service .terms-section p {
  line-height: 1.8;
  color: #4b5563;
  margin-bottom: 16px;
}

body.page-template-template-terms-of-service .terms-section ul {
  margin: 16px 0;
  padding-left: 24px;
  line-height: 1.8;
}

body.page-template-template-terms-of-service .terms-section li {
  margin-bottom: 12px;
  color: #4b5563;
}

body.page-template-template-terms-of-service .terms-section a {
  color: #f59e0b;
  text-decoration: none;
  font-weight: 500;
}

body.page-template-template-terms-of-service .terms-section a:hover {
  color: #d97706;
  text-decoration: underline;
}

body.page-template-template-terms-of-service .contact-info {
  background: #f9fafb;
  padding: 20px;
  border-radius: 8px;
  margin-top: 16px;
}

body.page-template-template-terms-of-service .contact-info p {
  margin: 8px 0;
}

body.page-template-template-terms-of-service .section-divider {
  border: none;
  border-top: 2px solid #e5e7eb;
  margin: 32px 0;
}

@media (max-width: 768px) {
  body.page-template-template-terms-of-service .hero-title {
    font-size: 2rem;
  }

  body.page-template-template-terms-of-service .hero-subtitle {
    font-size: 1rem;
  }

  body.page-template-template-terms-of-service .terms-section h2 {
    font-size: 1.5rem;
  }

  body.page-template-template-terms-of-service .terms-section h3 {
    font-size: 1.25rem;
  }

  body.page-template-template-terms-of-service .terms-toc {
    padding: 20px;
  }
}


/* 404 Page - Simple, Clean, Elegant */
body.error404 .error-404 {
  max-width: 800px;
  margin: 4rem auto;
  padding: 2rem;
  text-align: center;
}

body.error404 .page-header {
  margin-bottom: 2rem;
  border-bottom: none;
  padding-bottom: 0;
}

body.error404 .error-code {
  font-size: clamp(6rem, 15vw, 10rem);
  font-weight: 900;
  color: var(--color-secondary);
  margin: 0 0 1rem 0;
  line-height: 1;
  letter-spacing: -0.02em;
}

body.error404 .page-title {
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 700;
  color: #4a5568;
  margin: 0;
  line-height: 1.2;
}

body.error404 .page-content {
  color: #4a5568;
  font-size: 1.125rem;
  line-height: 1.7;
}

body.error404 .page-content p {
  margin-bottom: 2.5rem;
  font-size: 1.125rem;
}

body.error404 .page-content .popular-pages-section {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #e2e8f0;
}

body.error404 .page-content h2 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #2d3748;
  margin-bottom: 1.25rem;
}

body.error404 .page-content .menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

body.error404 .page-content .menu li {
  margin: 0;
}

body.error404 .page-content .menu a {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: #f7fafc;
  color: #2d3748;
  text-decoration: none;
  border-radius: 6px;
  transition: all 0.2s ease;
  font-weight: 500;
}

body.error404 .page-content .menu a:hover {
  background: #edf2f7;
  color: #1a202c;
  transform: translateY(-2px);
}

@media (max-width: 768px) {
  body.error404 .error-404 {
    margin: 2rem auto;
    padding: 1.5rem;
  }

  body.error404 .page-title {
    font-size: 2rem;
  }

  body.error404 .page-content {
    font-size: 1rem;
  }

  body.error404 .page-content p {
    font-size: 1rem;
  }

  body.error404 .page-content .menu {
    flex-direction: column;
    align-items: stretch;
  }

  body.error404 .page-content .menu a {
    text-align: center;
  }
}


/* Ensure stable scrollbar on 404 */
body.error404 { scrollbar-gutter: stable both-edges; }
/* Footer styles now handled by css/footer.css */

/* End of TravelSuggest Theme Styles */
