/* Custom styles for icons and animations */
body, html {
    font-size: 20px;
}
/* Responsive tab navigation styles */
.tab-nav {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        justify-content: center;
        align-items: stretch;
}
.tab-nav > * {
        flex: 1 1 120px;
        min-width: 120px;
        max-width: 100%;
        box-sizing: border-box;
}

@media (max-width: 640px) {
    .tab-nav {
        flex-direction: column;
        gap: 0.5rem;
    }
    .tab-nav > * {
        width: 100%;
        min-width: 0;
        margin: 0;
    }
}

/* Mobile ad sizing */
@media (max-width: 768px) {
    .google-ad-banner {
        height: 60px !important;
    }
    .google-ad-banner ins.adsbygoogle {
        height: 60px !important;
    }
}
.icon {
    width: 1rem;
    height: 1rem;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.icon-lg {
    width: 2rem;
    height: 2rem;
}

.tab-transition {
    transition: all 0.2s ease-in-out;
}

.fade-in {
    animation: fadeIn 0.3s ease-in-out;
}

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

.hidden {
    display: none !important;
}

/* Print styles */
@media print {
    html, body {
        width: 8.5in;
        height: 11in;
        /* Force content to fit page */
        overflow: hidden;
        /* Reduce font size for print */
        font-size: 10px;
        /* Remove margins */
        margin: 0;
        padding: 0;
    }
    /* Prevent page breaks inside main sections */
    .header, .trip-info, .assessment, .schedule, .recommendations, .footer {
        page-break-inside: avoid;
    }
    table, tr, td, th {
        page-break-inside: avoid !important;
    }
    /* Optional: scale down content if needed */
    body {
        zoom: 0.9;
    }
}