body {
    position: relative;
    margin: 0;
    padding: 0;
    min-height: 100vh;
    color: #111827; 
    background-color: #f9fafb; 
}

/* The background overlay layer */
body::before {
    content: "";
    position: fixed; /* Keeps background fixed during scroll */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Add your image pathway here */
    background-image: url('../images/bg.png'); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    
    /* Set the exact opacity you want */
    opacity: 0.4; 
    
    /* Sends the image layer behind the main content */
    z-index: -1; 
}

/******* Header & Navigation Styling *******/



/* Header */
    header {
      background: rgba(255, 250, 245, 0.92);
      background: #ffffff;
      backdrop-filter: blur(14px);
      position: sticky;
      top: 0;
      z-index: 50;
      border-bottom: 2px solid rgba(217, 119, 70, 0.2);
      padding: 14px 0;
      box-shadow: 0 4px 20px rgba(0,0,0,0.04);
    }

    .header-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
    max-width: 1280px;
    width: 98%;
    margin: 0 auto;
    }

    .logo {
      font-family: 'Playfair Display', serif;
      font-size: 2rem;
      font-weight: 700;
      color: #3b2e24;
      display: flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
    }

    .logo-icon {
      background: linear-gradient(135deg, #d97746, #b85f34);
      color: white;
      width: 44px;
      height: 44px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      box-shadow: 0 4px 12px rgba(217, 119, 70, 0.3);
    }

    .logo-text {
      display: flex;
      flex-direction: column;
    }

    .logo-main {
      font-size: 1.6rem;
      line-height: 1.1;
      color: #3b2e24;
    }

    .logo-tagline {
      font-family: 'Inter', sans-serif;
      font-size: 0.7rem;
      font-weight: 500;
      color: #d97746;
      letter-spacing: 1.5px;
      text-transform: uppercase;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 28px;
    }

    .nav-links a {
      text-decoration: none;
      color: #3b2e24;
      font-weight: 500;
      font-size: 0.95rem;
      position: relative;
      transition: all 0.25s ease;
      padding: 6px 0;
    }

    .nav-links a:hover {
      color: #d97746;
    }

    .nav-links a.active {
      color: #d97746;
      font-weight: 600;
    }

    .nav-links a.active::after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 100%;
      height: 3px;
      background: linear-gradient(90deg, #d97746, #f0a878);
      border-radius: 4px;
    }

    .nav-cta {
      background: linear-gradient(135deg, #d97746, #c4683a);
      color: white !important;
      padding: 10px 22px !important;
      border-radius: 30px;
      font-weight: 600 !important;
    }

    .nav-cta:hover {
      background: linear-gradient(135deg, #b85f34, #a04f2a);
      transform: translateY(-2px);
      color: white !important;
    }

    .nav-cta::after {
      display: none !important;
    }

    .mobile-menu-toggle {
      display: none;
      background: none;
      border: none;
      font-size: 1.8rem;
      color: #3b2e24;
      cursor: pointer;
    }



      /* Mobile bottom booking bar */
    .mobile-book-bar {
      display: none;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: white;
      padding: 14px 20px;
      z-index: 40;
      box-shadow: 0 -4px 20px rgba(0,0,0,0.1);
      justify-content: space-between;
      align-items: center;
      border-radius: 20px 20px 0 0;
    }

.header-spacer {
    /* Must match the initial default layout height of your header 
       so your page content doesn't snap up or get hidden beneath it. */
    height: 100px; 
}









/* --- Base Header Setup --- */
  
 



/* --- Crucial Base Spacer --- */


 /* --- Carousel Core Viewport Wrapper --- */
        .carousel-viewport {
            position: relative;
            max-width: 1200px;
            margin: 40px auto;
            padding: 0 40px; /* Leave comfortable room for floating button tracks */
            box-sizing: border-box;
        }

        .carousel-track-container {
            overflow: hidden;
            width: 100%;
        }

        .carousel-slider-track {
            display: flex;
            gap: 24px;
            transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
            will-change: transform;
        }

        /* --- Custom Horizontal Split-Card Styling --- */
        .post-split-card {
            flex: 0 0 calc(50% - 12px); /* Displays exactly 2 cards per view frame window */
            min-width: calc(50% - 12px);
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            overflow: hidden;
            display: flex; /* Forces image left, details right side-by-side */
            height: 300px; /* Absolute clean layout height boundaries matching your crops */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
            box-sizing: border-box;
        }

        /* Left Side: Thumbnail Panel */
        .card-left-panel {
            width: 140px;
            min-width: 140px;
            height: 100%;
            background: #f3f4f6;
            overflow: hidden;
            position: relative;
        }

        .card-left-panel img {
            width: 100%;
            height: 100%;
            object-fit: contain; /* Centers the vertical 9:16 thumb crisply inside horizontal pane */
        }

        .no-image-box {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.8rem;
            color: #9ca3af;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            text-align: center;
            padding: 10px;
            box-sizing: border-box;
        }

        /* Right Side: Title & Quick Notes Panel */
        .card-right-panel {
            padding: 20px;
            display: flex;
            flex-direction: column;
            flex: 1;
            overflow: hidden; /* Encapsulates rich content overflows */
        }

        .card-right-panel h2 {
            margin: 0 0 8px 0;
            font-size: 1.2rem;
            font-weight: 700;
            line-height: 1.3;
            display: -webkit-box;
            -webkit-line-clamp: 2; /* Truncates long titles automatically to 2 lines maximum */
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .card-right-panel h2 a {
            color: #111827;
            text-decoration: none;
            transition: color 0.2s;
        }

        .card-right-panel h2 a:hover {
            color: #e11d48;
        }

        /* Displays user parsed HTML Quick Notes block cleanly */
        .card-quick-notes {
            color: #4b5563;
            font-size: 0.9rem;
            line-height: 1.4;
            margin: 0;
            flex: 1;
            overflow: hidden;
            display: -webkit-box;
            -webkit-line-clamp: 4; /* Clamps paragraphs gracefully at 4 lines */
            -webkit-box-orient: vertical;
        }

        /* --- Navigation Action Anchors --- */
        .nav-trigger {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: #ffffff;
            border: 1px solid #e5e7eb;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            cursor: pointer;
            font-size: 1.5rem;
            font-weight: bold;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.08);
            z-index: 10;
            color: #111827;
            transition: all 0.2s;
        }
        .nav-trigger:hover {
            background: #e11d48;
            color: #ffffff;
            border-color: #e11d48;
        }
        .nav-trigger-left { left: -10px; }
        .nav-trigger-right { right: -10px; }

        /* Responsive Breakpoint Matrix */
        @media (max-width: 900px) {
            .post-split-card {
                flex: 0 0 100%;
                min-width: 100%; /* Shows 1 card per frame layout on tablets/mobile screens */
            }
        }


        /* --- Full Screen Split-Viewport Architecture --- */
    .split-viewport {
        display: flex;
        width: 100%;
        min-height: 100vh;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* Left Frame Setup (35% Fixed width) */
    .showcase-pane {
        position: fixed;
        top: 0;
        left: 0;
        width: 35%;
        height: 100vh;
        background-color: #111827;
        z-index: 10;
        overflow: hidden;
    }

    .showcase-img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .showcase-placeholder {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #1e1b4b, #31102f);
        color: #e11d48;
        font-size: 2rem;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    /* Right Frame Setup (65% Scrollable text stream) */
    .content-pane {
        margin-left: 35%; /* Pushes content clear out of the fixed column layer bounds */
        width: 65%;
        min-height: 100vh;
        padding: 60px 50px;
        box-sizing: border-box;
        background-color: #ffffff;
    }

    /* --- Core Article Elements --- */
    .article-wrapper {
        max-width: 800px;
        margin: 0 auto;
    }

    .article-title {
        font-size: 2.8rem;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: -1px;
        margin: 0 0 12px 0;
        color: #111827;
    }

    .article-meta {
        font-size: 0.95rem;
        color: #6b7280;
        margin-bottom: 30px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    /* Premium Quick Notes Styling layout block */
    .quick-notes-box {
        background-color: #fff1f2; /* Subtle Crimson background tint */
        border-left: 4px solid #e11d48;
        border-radius: 0 12px 12px 0;
        padding: 24px;
        margin-bottom: 35px;
        box-shadow: 0 1px 3px rgba(0,0,0,0.02);
    }

    .quick-notes-badge {
        font-size: 0.75rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: 1px;
        color: #e11d48;
        margin-bottom: 10px;
    }

    .article-content {
        font-size: 1.15rem;
        line-height: 1.85;
        color: #374151;
    }

    .article-content p {
        margin-bottom: 24px;
    }

    /* --- Recommended Carousel Section --- */
    .related-carousel-section {
        max-width: 800px;
        margin: 60px auto 0;
        border-top: 1px solid #e5e7eb;
        padding-top: 40px;
    }

    .carousel-section-title {
        font-size: 1.5rem;
        font-weight: 700;
        margin-bottom: 25px;
        color: #111827;
    }

    /* Reusing your signature horizontal carousel layout configuration models */
    .carousel-viewport {
        position: relative;
        width: 100%;
        box-sizing: border-box;
    }

    .carousel-track-container {
        overflow: hidden;
        width: 100%;
    }

    .carousel-slider-track {
        display: flex;
        gap: 20px;
        transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
        will-change: transform;
    }

    .related-posts .post-split-card {
        flex: 0 0 100%; /* Displays exactly 1 card completely matching your text layouts columns width */
        min-width: 100%;
        background: #ffffff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        overflow: hidden;
        display: flex;
        height: 160px; /* Sightly trimmer card model for related recommendations footprint */
        box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    }

    .card-left-panel { width: 208px; min-width: 120px; height: 100%; background: #f3f4f6; overflow: hidden; }
    .card-left-panel img { width: 100%; height: 100%; object-fit: cover; }
    .no-image-box { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; color: #9ca3af; font-weight: 600; text-align: center; }
    
    .card-right-panel { padding: 16px 20px; display: flex; flex-direction: column; flex: 1; overflow: hidden; }
    .card-right-panel h3 { margin: 0 0 6px 0; font-size: 1.1rem; font-weight: 700; line-height: 1.3; }
    .card-right-panel h3 a { color: #111827; text-decoration: none; }
    .card-right-panel h3 a:hover { color: #e11d48; }

    .card-quick-notes {
        color: #4b5563;
        font-size: 0.85rem;
        line-height: 1.4;
        margin: 0;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }
    .card-quick-notes li{
        overflow: hidden;
    }

    .nav-trigger {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: #ffffff;
        border: 1px solid #e5e7eb;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        cursor: pointer;
        font-size: 1.2rem;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: 0 2px 6px rgba(0,0,0,0.06);
        z-index: 10;
        color: #111827;
    }
    .nav-trigger:hover { background: #e11d48; color: #ffffff; border-color: #e11d48; }
    .nav-trigger-left { left: -18px; }
    .nav-trigger-right { right: -18px; }

    /* Responsive scaling alignment optimization rule for smaller displays */
    @media (max-width: 768px) {
        .split-viewport { flex-direction: column; }
        .showcase-pane { position: relative; width: 100%; height: 40vh; }
        .content-pane { margin-left: 0; width: 100%; padding: 30px 20px; }
        .article-title { font-size: 2rem; }
    }


     @media (max-width: 900px) {
      .detail-layout {
        grid-template-columns: 1fr;
      }

      .sidebar {
        position: static;
      }

      .nav-links {
        display: none;
        flex-direction: column;
        width: 100%;
        background: #fffaf5;
        padding: 20px 0;
        gap: 16px;
        margin-top: 15px;
        border-radius: 16px;
      }

      .nav-links.show {
        display: flex;
      }

      .mobile-menu-toggle {
        display: block;
      }

      .mobile-book-bar {
        display: flex;
      }

      .feature-list {
        grid-template-columns: 1fr;
      }

      .swiper-gallery {
        height: 300px;
      }
    }



/* Admin CSS ****/
  body { margin: 0; font-family: Arial, sans-serif; background: #f3f4f6; color: #111827; }
        .admin-wrap { display: flex; min-height: 100vh; }
        .admin-sidebar { width: 260px; background: #111827; color: #f9fafb; padding: 30px 20px; box-sizing: border-box; }
        .admin-sidebar h2 { margin: 0 0 24px; font-size: 1.5rem; letter-spacing: 0.03em; }
        .admin-sidebar nav a { display: block; margin-bottom: 12px; color: #e5e7eb; text-decoration: none; padding: 11px 14px; border-radius: 8px; transition: background 0.2s ease; }
        .admin-sidebar nav a:hover, .admin-sidebar nav a.active { background: rgba(255, 255, 255, 0.08); color: #ffffff; }
        .admin-sidebar .sidebar-footer { margin-top: 40px; font-size: 0.95rem; color: #9ca3af; }
        .admin-main { flex: 1; padding: 36px 40px; box-sizing: border-box; }
        .admin-main header { display: flex; justify-content: space-between;
             align-items: flex-start; margin-bottom: 30px;
            background: #fff;
    padding: 30px;
    box-shadow: 3px 3px 3px #999;
            }
        .admin-main header h1 { margin: 0; font-size: 2rem; }
        .admin-main header p { margin: 6px 0 0; color: #4b5563; }
        .dashboard-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
        .dashboard-card { padding: 24px; border-radius: 18px; background: #ffffff; border: 1px solid #e5e7eb; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05); }
        .dashboard-card h3 { margin: 0 0 12px; font-size: 1.1rem; }
        .dashboard-card p { margin: 0; color: #6b7280; }
        .admin-main .quick-actions { margin-top: 32px; }
        .quick-actions .action-list { display: grid; gap: 16px; }
        .quick-actions a { display: inline-flex; align-items: center; justify-content: center; padding: 14px 18px; border-radius: 12px; text-decoration: none; color: #ffffff; background: #e11d48; transition: background 0.2s ease; }
        .quick-actions a:hover { background: #be123c; }

        .card { background: #ffffff; padding: 28px; border-radius: 18px; border: 1px solid #e5e7eb; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05); }
        .form-group { margin-bottom: 18px; }
        .form-group label { display: block; margin-bottom: 8px; font-weight: 600; }
        .form-group input, .form-group textarea { width: 100%; padding: 14px 16px; border: 1px solid #d1d5db; border-radius: 10px; font-size: 1rem; box-sizing: border-box; }
        .form-group textarea { min-height: 180px; resize: vertical; }
        .button-row { margin-top: 20px; }
        .button-row button { background: #e11d48; color: #ffffff; border: none; padding: 14px 20px; border-radius: 10px; cursor: pointer; font-weight: 700; }
        .button-row button:hover { background: #be123c; }







    /* Responsive scaling alignment optimization rule for smaller displays */
    @media (max-width: 768px) {

        .split-viewport { flex-direction: column; }
        .showcase-pane { position: relative; width: 100%; height: 40vh; }
        .content-pane { margin-left: 0; width: 100%; padding: 30px 20px; }
        .article-title { font-size: 2rem; }

        
    .site-header {
    padding: 10px 0;
    }
    .header-nav{
            position: fixed;
    top: 52px;
    z-index: 999999999999;
    background: #ddd;
    padding: 4px;
    width: 100%;
    }


    }


    


    /* Responsive scaling alignment optimization rule for smaller displays */
    @media (max-width: 480px) {

    .site-header {
    padding: 2px 0;
    }
    .header-nav{
            position: fixed;
    top: 52px;
    z-index: 999999999999;
    background: #ddd;
    padding: 4px;
    width: 100%;
    }
        
    }