        :root {
            --rich-coral: #D74B76;
            --ivory: #F5F5DC;
            --powder-blue: #B7CADB;
            --text-dark: #1a1a1a;
            --transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }

        body {
            font-family: 'Anaheim', sans-serif;
            background-color: var(--ivory);
            color: var(--text-dark);
            line-height: 1.8;
            overflow-x: hidden;
        }

        .mono { font-family: 'Major Mono Display', monospace; text-transform: lowercase; }

        /* --- Animations --- */
        @keyframes slideInLeft {
            from { opacity: 0; transform: translateX(-60px); }
            to { opacity: 1; transform: translateX(0); }
        }
        @keyframes bgPan {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        .reveal { opacity: 0; transform: translateY(40px); transition: var(--transition); }
        .reveal.visible { opacity: 1; transform: translateY(0); }

        /* --- Header --- */
        header {
            position: sticky; top: 0; width: 100%; z-index: 1000;
            background: var(--rich-coral);
            padding: 0 5%; height: 80px;
            display: flex; justify-content: space-between; align-items: center;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }

        .logo-container { display: flex; align-items: center; cursor: pointer; }
        .logo-svg { width: 40px; height: 40px; fill: var(--ivory); margin-right: 12px; }
        .logo-text { color: var(--ivory); font-weight: bold; font-size: 1.4rem; letter-spacing: 1px; }

        nav { display: flex; gap: 25px; }
        nav a {
            text-decoration: none; color: var(--ivory); font-size: 0.85rem;
            text-transform: uppercase; font-weight: 700; transition: var(--transition);
            padding: 8px 0; border-bottom: 2px solid transparent;
        }
        nav a:hover, nav a.active { color: var(--powder-blue); border-bottom-color: var(--powder-blue); }

        /* --- Hero Section --- */
        .hero {
            height: 90vh; position: relative; display: flex; align-items: center;
            padding: 0 10%; overflow: hidden;
            background: linear-gradient(rgba(245, 245, 220, 0.85), rgba(245, 245, 220, 0.85)), 
                        url('https://images.unsplash.com/photo-1488646953014-85cb44e25828?auto=format&fit=crop&q=80&w=2000');
            background-size: cover; background-position: center;
        }
        .hero::before {
            content: ''; position: absolute; inset: 0;
            background-image: radial-gradient(var(--powder-blue) 1px, transparent 1px);
            background-size: 40px 40px; opacity: 0.3; pointer-events: none;
        }
        .hero-content { max-width: 850px; animation: slideInLeft 1.2s ease-out forwards; }
        .hero h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1.1; margin-bottom: 25px; }
        .hero p { font-size: 1.25rem; margin-bottom: 40px; color: #444; }

        .btn {
            display: inline-block; padding: 18px 45px; background: var(--rich-coral);
            color: var(--ivory); text-decoration: none; text-transform: uppercase;
            font-weight: 900; letter-spacing: 2px; border: none; cursor: pointer;
            transition: var(--transition); font-family: 'Anaheim'; margin-right: 15px;
        }
        .btn:hover { background: #c03d65; transform: translateY(-3px); box-shadow: 0 10px 25px rgba(215,75,118,0.3); }
        .btn-blue { background: var(--powder-blue); color: var(--text-dark); }
        .btn-blue:hover { background: #a2b8cc; }

        /* --- Layout Sections --- */
        section { padding: 120px 10%; position: relative; }
        .bg-blue { background-color: var(--powder-blue); }
        .bg-ivory { background-color: var(--ivory); }

        .section-header { margin-bottom: 80px; }
        .section-header h2 { font-size: 2.8rem; border-left: 8px solid var(--rich-coral); padding-left: 25px; }

        .editorial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 50px; }
        .content-card { background: white; padding: 40px; border: 1px solid var(--powder-blue); transition: var(--transition); }
        .content-card:hover { border-color: var(--rich-coral); box-shadow: 20px 20px 0 var(--powder-blue); }
        .card-img { width: 100%; height: 250px; object-fit: cover; margin-bottom: 25px; background: #eee; }

        /* --- Itineraries / Expandables --- */
        .itinerary-container { max-width: 1000px; margin: 0 auto; }
        .panel { border: 2px solid var(--rich-coral); margin-bottom: 15px; background: var(--ivory); }
        .panel-header { 
            padding: 25px; cursor: pointer; display: flex; justify-content: space-between; 
            align-items: center; font-weight: bold; background: white;
        }
        .panel-content { 
            max-height: 0; overflow: hidden; transition: max-height 0.4s ease; 
            padding: 0 25px; line-height: 1.8;
        }
        .panel.active .panel-content { max-height: 1200px; padding: 25px; border-top: 1px solid var(--powder-blue); }

        .pro-tip { background: var(--rich-coral); color: white; padding: 30px; margin: 40px 0; position: relative; }
        .pro-tip::after { content: 'PRO TIP'; position: absolute; top: -15px; left: 20px; background: var(--powder-blue); color: var(--text-dark); padding: 5px 15px; font-weight: bold; font-size: 0.7rem; }

        /* --- Policies Sidebar Layout --- */
        .policy-wrapper { display: grid; grid-template-columns: 300px 1fr; gap: 60px; }
        .policy-nav { position: sticky; top: 120px; height: fit-content; }
        .policy-nav ul { list-style: none; }
        .policy-nav li { 
            padding: 15px 20px; border-bottom: 1px solid #ddd; cursor: pointer; 
            transition: 0.3s; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 1px;
        }
        .policy-nav li:hover, .policy-nav li.active { background: var(--rich-coral); color: white; border-color: var(--rich-coral); }
        .policy-content { text-align: justify; }

        /* --- Newsletter & Contact --- */
        .contact-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 80px; }
        input, textarea { 
            width: 100%; padding: 18px; margin-bottom: 20px; border: 2px solid var(--powder-blue); 
            background: transparent; font-family: 'Anaheim'; font-size: 1rem;
        }
        input:focus { outline: none; border-color: var(--rich-coral); }

        /* --- Footer --- */
        footer { background: var(--rich-coral); color: var(--ivory); padding: 100px 10% 50px; }
        .footer-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 60px; margin-bottom: 80px; }
        .footer-cols h4 { margin-bottom: 30px; font-size: 1.2rem; border-bottom: 2px solid var(--powder-blue); display: inline-block; padding-bottom: 5px; }
        .footer-cols ul { list-style: none; }
        .footer-cols li { margin-bottom: 12px; opacity: 0.8; cursor: pointer; transition: 0.3s; }
        .footer-cols li:hover { opacity: 1; transform: translateX(5px); }

        /* --- Single Page App States --- */
        .page { display: none; }
        .page.active { display: block; }

        #toast {
            position: fixed; bottom: 30px; right: 30px; background: #333; color: white;
            padding: 15px 35px; border-radius: 4px; display: none; z-index: 9999;
        }

        @media (max-width: 900px) {
            .policy-wrapper, .contact-grid { grid-template-columns: 1fr; }
            .hero { height: auto; padding: 150px 5% 100px; }
            nav { display: none; }
        }
    /* Hamburger styling */
    #hamburger {
        display: none;
        flex-direction: column;
        justify-content: space-between;
        width: 28px;
        height: 22px;
        cursor: pointer;
    }
    #hamburger .bar {
        height: 3px;
        width: 100%;
        background-color: var(--ivory);
        border-radius: 2px;
        transition: var(--transition);
    }

    /* Mobile menu styles */
    @media (max-width: 900px) {
        nav {
            display: none;
            position: absolute;
            top: 80px;
            right: 0;
            width: 100%;
            background: var(--rich-coral);
            flex-direction: column;
            gap: 0;
        }
        nav a {
            padding: 18px 20px;
            border-bottom: 1px solid rgba(255,255,255,0.2);
            text-align: center;
        }
        nav.active {
            display: flex;
        }
        #hamburger { display: flex; }
    }

    /* Hamburger animation when active */
    #hamburger.active .bar:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }
    #hamburger.active .bar:nth-child(2) {
        opacity: 0;
    }
    #hamburger.active .bar:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -5px);
    }
