*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body {
    font-family: 'Montserrat', sans-serif;
    background: #f4f4f4;
}


.navbar{
    position:fixed;
    top:0;
    width:100%;
    background:#111c44;
    color:white;
    padding:18px 60px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    z-index:999;
}

.nav-logo{
    font-family: "Trajan Pro", "Times New Roman", serif;
    font-weight:400;
    letter-spacing:3px;
}

.nav-links{
    list-style:none;
    display:flex;
    gap:30px;
    font-size:15px;
    letter-spacing:2px;
    font-family: "Trajan Pro", "Times New Roman", serif;
}

.nav-links li{
    cursor:pointer;
    transition:0.3s;
}

.nav-links li:hover{
    color:#c6a85b;
}

.active-nav{
    color:#c6a85b;
}


.section {
    display: none;
    min-height: 100vh;
    padding-top:80px;
}

.active {
    display: block;
}

.center {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}


.hero {
    position: relative;
    width: 100%;
    background: url('../hero-bg.jpg') center/cover no-repeat;
    color: white; 
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    bottom: 0;
    background: rgba(0,0,0,0.4);
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 2; 
    color: white; 
    padding: 100px 20px;
    text-align: center;
}


.hero h1 {
    font-family:'Playfair Display', serif;
    font-weight:400;
    font-size:60px;
    letter-spacing:4px;
    margin-bottom:20px;
}

.hero p{
    letter-spacing:2px;
    margin-bottom:40px;
}

.btn-gold {
    background: #c6a85b;
    color: white;
    padding: 14px 40px;
    font-size: 14px;
    border: none;
    letter-spacing: 1px;
    cursor: pointer;
    transition:0.3s;
}

.btn-gold:hover{
    background:#a98c45;
}

.btn-light{
    background:transparent;
    border:2px solid white;
    color:white;
    padding:14px 40px;
    font-size:14px;
    letter-spacing:1px;
    cursor:pointer;
    transition:0.3s;
}

.btn-light:hover{
    background:white;
    color:#111c44;
}


.tabs-container {
    padding: 100px 60px;
    text-align: center;
    background: white;
}

.tabs {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-bottom: 50px;
}

.tab {
    padding: 20px 60px;
    border: 1px solid #c6a85b;
    cursor: pointer;
    font-size: 18px;
    transition:0.3s;
}

.tab:hover {
    background: #c6a85b;
    color: white;
}

.tab-content {
    display: grid;
    grid-template-columns: repeat(5, 120px);
    gap: 15px;
    justify-content: center;
}

.sample-box {
    background: #eaeaea;
    padding: 40px;
    cursor: pointer;
    border: 1px solid #ddd;
    transition:0.3s;
}

.sample-box:hover {
    background: #c6a85b;
    color: white;
}

.modal {
    padding: 100px 60px;
    background: linear-gradient(to bottom, #ffffff, #f3f3f3);
}

#vaultGrid {
    background: linear-gradient(145deg, #ececec, #dadada);
    padding: 30px;
    border-radius: 18px;
    box-shadow: inset 0 8px 25px rgba(0,0,0,0.08);
}

.grid {
    display: grid;
    gap: 14px;
    margin: 50px auto;
    max-width: 950px;
    justify-content: center;
}

.cell {
    height: 65px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease;
    border: 1px solid rgba(0,0,0,0.05);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}


.available {
    background: linear-gradient(145deg, #6fbf73, #4CAF50);
    color: white;
}

.reserved {
    background: #dcdcdc;
    color: #555;
    cursor: not-allowed;
}


.sold {
    background: linear-gradient(145deg, #d4b86a, #b8963f);
    color: white;
    cursor: not-allowed;
}


.cell.available:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 16px rgba(0,0,0,0.15);
}


.selected {
    border: 2px solid #111c44;
    transform: scale(1.05);
}

.legend {
    display: flex;
    gap: 30px;
    margin-bottom: 30px;
}

.buttons {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
}

.btn-gray {
    background: #e0e0e0;
    padding: 12px 30px;
    border: none;
}


.tooltip {
    position: absolute;
    display: flex;
    gap: 24px;                   
    background: rgba(22, 22, 35, 0.95);
    color: #f8f8f8;
    padding: 24px;               
    font-size: 16px;            
    border-radius: 12px;
    pointer-events: none;
    z-index: 9999;
    letter-spacing: 0.5px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5);
    transition: all 0.15s ease;
    max-width: 450px;              
}

.tooltip img {
    width: 180px;
    height: 180px;
    object-fit: contain;   
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    background: #000;      
}


.tooltip .tooltip-details {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}

.tooltip strong {
    color: #c6a85b;
    font-size: 17px;
}


.step-header {
    display: flex;
    background: #dcdcdc;
    height: 60px;
    font-size: 14px;
    font-family: "Trajan Pro", serif;
}

.step {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    letter-spacing: 1px;
}

.step.active-step {
    background: #b8963f;
    color: white;
}


.category-tabs {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin: 40px 0;
}

.category-tab {
    padding: 15px 80px;
    border: 1px solid #b8963f;
    font-family: "Trajan Pro", serif;
    font-size: 20px;
    cursor: pointer;
    background: #f8f8f8;
    transition: 0.3s;
}

.category-tab.active-category {
    background: #b8963f;
    color: white;
}


.cart-box {
    width: 90%;
    margin: auto;
    border: 1px solid #ddd;
    border-collapse: collapse;
    margin-bottom: 40px;
}

.cart-row {
    display: grid;
    grid-template-columns: 1fr 150px;
    border-bottom: 1px solid #eee;
    padding: 12px 20px;
}

.cart-header {
    background: #f2f2f2;
    font-weight: 600;
}

.cart-empty {
    text-align: center;
    padding: 20px;
    color: #777;
}

.cart-total {
    text-align: right;
    padding: 15px 20px;
    font-weight: 600;
}


.floor-layout {
    width: 90%;
    margin: auto;
    border-top: 1px solid #ddd;
    padding-top: 40px;
}

.layout-title {
    display: flex;
    justify-content: space-around;
    font-family: "Trajan Pro", serif;
    font-size: 22px;
    margin-bottom: 30px;
}

.layout-grid{
    display:grid;
    grid-template-columns: 1fr 250px 1fr;
    gap:40px;
    align-items:start;
    justify-items:center;
    margin-top:40px;
    min-height:400px;
}


.column{
    display:grid;
    gap:8px;
}

.small-cell {
    width: 35px;
    height: 28px;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #ccc;
    background: #f7f7f7;
}

.center-structure{
    width:160px;
    height:260px;
    background:#d6c7a1;
    border-radius:8px;
}



@media (max-width: 768px){

    .navbar{
        padding:15px 20px;
        flex-direction:column;
        gap:10px;
    }

    .nav-links{
        flex-wrap:wrap;
        justify-content:center;
        gap:15px;
        font-size:12px;
    }

    .hero h1{
        font-size:32px;
    }

    .category-tabs{
        flex-direction:column;
        align-items:center;
        gap:15px;
    }

    .grid{
        grid-template-columns: repeat(5, 1fr);
    }

    .layout-grid{
        overflow-x:auto;
    }

    .letter-selection {
    padding: 20px;
}
}

@media (max-width: 480px){
    .letter-selection {
        padding: 15px;
    }
}

.floor-tabs{
    display:flex;
    justify-content:center;
    gap:30px;
    margin:40px 0 10px 0;
}

.floor-tab{
    padding:12px 50px;
    border:1px solid #b8963f;
    font-family:"Trajan Pro", serif;
    cursor:pointer;
    background:#f8f8f8;
    transition:0.3s;
}

.floor-tab.active-floor{
    background:#b8963f;
    color:white;
}

.wall-zone{
    background:#efefef;
    padding:15px;
    border-radius:6px;
    box-shadow:inset 0 0 10px rgba(0,0,0,0.05);
}

.premium-room-card{
    width:150px;
    padding:20px;
    background:white;
    border:1px solid #ddd;
    text-align:center;
    cursor:pointer;
    transition:0.3s;
    border-radius:6px;
    box-shadow:0 5px 15px rgba(0,0,0,0.05);
}

.premium-room-card:hover{
    background:#b8963f;
    color:white;
}


.type-selection { display:flex; flex-direction:column; align-items:center; gap:30px; }
.type-cards { display:flex; gap:30px; flex-wrap:wrap; justify-content:center; }
.type-card { width:200px; background:white; border:1px solid #ddd; border-radius:8px; text-align:center; cursor:pointer; transition:0.3s; }
.type-card:hover { box-shadow:0 5px 15px rgba(0,0,0,0.2); }
.type-card img { width:100%; height:150px; object-fit:cover; border-radius:8px 8px 0 0; }
.type-card h3{ margin:10px 0; }
.type-card p{ font-size:13px; margin:5px 0; }



.type-card .btn-gold {
    border-radius: 25px;             
    padding: 14px 40px 20px 40px;   
    margin-top: 10px;               
    margin-bottom: 10px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.type-card .btn-gold:hover {
    background: #a98c45;
    transform: translateY(-2px);    
}


.btn-back {
    background: #f0f0f0;
    padding: 10px 22px;
    border-radius: 25px;
    font-size: 14px;
    cursor: pointer;
    border: none;
    transition: 0.3s;
    box-shadow: 0 3px 6px rgba(0,0,0,0.1);
}

.btn-back:hover {
    background: #e0e0e0;
}


.selection-header {
    text-align: center;
    margin-bottom: 20px;
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    color: #333;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.5;
}


.selection-legend {
    display: flex;
    justify-content: center;
    gap: 25px;
    margin-bottom: 30px;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-family: 'Montserrat', sans-serif;
    color: #555;
}

.legend-color {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    border: 1px solid #ccc;
}
.legend-sold { background: #c6a85b; }
.legend-available { background: #6aa84f; }
.legend-reserved { background: #c9c9c9; }

.floorplan-container {
    text-align: center;
    margin-bottom: 30px;
}

.floorplan-img {
    max-width: 500px;
    width: 100%;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}


.letter-buttons {
    display: grid;
    gap: 25px;
    margin-top: 40px;

    width: max-content;  
    min-width: max-content;       
    padding: 20px;
}

.btn-letter {
     background: linear-gradient(
        to bottom,
        #f2f2f2 0%,
        #e0e0e0 50%,
        #d6d6d6 100%
    );

    border: 3px solid #b8963f;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    padding: 0 16px;
    cursor: pointer;
    transition: 0.25s ease;
    display: flex;
    align-items: center;        
    justify-content: space-between; 
    height: 50px;              
    width: 100%;
    box-sizing: border-box;
    position: relative;
      z-index: 2;
}



.btn-letter:hover {
    transform: translateY(-6px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.18);
}


.btn-letter:active {
    transform: scale(0.97);
}

.letter-title {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 2px;
    margin: 0;
}

.letter-availability {
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px;
}



.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.dot-green {
    background: #4CAF50;
}

.dot-red {
    background: #ff4d4d;
}


.btn-letter.disabled {
    background: #dcdcdc;
    color: #66666646;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}


.letter-selection {
    background: linear-gradient(145deg, #f9fafc, #eef1f6);
    padding: 40px;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    margin-top: 30px;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.grid-header {
    text-align: center;
    margin-top: 20px;
}

.grid-header h2 {
    font-family: "Playfair Display", serif;
    font-size: 28px;
    margin-bottom: 6px;
    color: #111c44;
}

.grid-header p {
    font-size: 14px;
    color: #777;
    letter-spacing: 0.5px;
}

.selection-legend {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 18px 30px;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.06);
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    color: #333;
}

.legend-color {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}


.legend-sold {
    background: linear-gradient(145deg, #d4b86a, #b8963f);
}

.legend-available {
    background: linear-gradient(145deg, #6fbf73, #4CAF50);
}

.legend-reserved {
    background: #dcdcdc;
}

.grid-buttons {
    display: flex;
    justify-content: center; 
    gap: 20px;
    margin-top: 30px;
    margin-bottom: 60px;
}


.btn-gold {
    background: linear-gradient(145deg, #d4b86a, #b8963f);
    color: white;
    padding: 14px 40px;
    border-radius: 30px;
    border: none;
    font-weight: 600;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 6px 14px rgba(0,0,0,0.15);
}

.btn-gold:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px rgba(0,0,0,0.2);
}

.btn-gold:active {
    transform: scale(0.96);
}


.btn-gray {
    background: #f0f0f0;
    padding: 14px 40px;
    border-radius: 30px;
    border: none;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

.btn-gray:hover {
    background: #e0e0e0;
    transform: translateY(-2px);
}

.btn-gray:active {
    transform: scale(0.97);
}

.grid-btn {
    background: linear-gradient(145deg, #d4b86a, #b8963f);
    color: white;
    padding: 14px 40px;
    border-radius: 30px;
    border: none;
    font-weight: 600;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 6px 14px rgba(0,0,0,0.15);
}

.grid-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px rgba(0,0,0,0.2);
}

.grid-btn:active {
    transform: scale(0.96);
}


.hero-btn {
    background: #c6a85b;
    color: white;
    padding: 14px 40px;
    font-size: 14px;
    border: none;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.hero-btn:hover {
    background: #a98c45;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0,0,0,0.2);
}

.hero-btn:active {
    transform: scale(0.97);
}

.letter-layout-container {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

.letter-layout-grid {
    display: grid;
    grid-template-columns: repeat(6, 140px);
    grid-template-rows: repeat(5, 80px);
    gap: 20px;
}

.letter-block {
    background: #f4f6f8;
    border-radius: 8px;
    border: 1px solid #ccc;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: 0.2s ease;
}

.letter-block:hover {
    background: #e3f2fd;
    transform: translateY(-3px);
}

.letter-title {
    font-size: 18px;
    font-weight: bold;
}

.letter-count {
    font-size: 13px;
    margin-top: 5px;
    color: #666;
}

.floor-decor {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 26px;
    opacity: 0.7;
}


.hallway {
    background: repeating-linear-gradient(
        90deg,
        #f5f5f5,
        #f5f5f5 10px,
        #e3e3e3 10px,
        #e3e3e3 20px
    );
    border-radius: 4px;
    height: 50px; 
}

.hallway,
.floor-decor,
.floor-marker {
    z-index: 1;
}

.hallway.vertical {
    width: 50px;
    height: 100%;
}

.floor-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    border-radius: 10px;
    padding: 8px 10px;
    width: fit-content;
    height: auto;
    justify-self: center;
    align-self: center;
}


.entrance {
    background: linear-gradient(145deg, #111c44, #1f2c66);
    color: white;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    font-size: 9px;
}


.window {
    background: rgba(179, 217, 255, 0.6);
    color: #003366;
    font-size: 9px;
    padding: 6px 8px;
    border: 1px solid rgba(0, 51, 102, 0.2);
}



.floor-legend {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-top: 40px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.legend-hallway {
    background: repeating-linear-gradient(
        90deg,
        #f5f5f5,
        #f5f5f5 6px,
        #e3e3e3 6px,
        #e3e3e3 12px
    );
    width: 22px;
    height: 22px;
    border-radius: 4px;
}

.legend-window {
    background: #b3d9ff;
    width: 22px;
    height: 22px;
    border-radius: 4px;
}

.legend-entrance {
    background: #111c44;
    width: 22px;
    height: 22px;
    border-radius: 4px;
}






