:root {
     --primary-color: #000000;
     --secondary-color: #ffffff;
     --accent-color: #E60122;
     /* Tomei Red */
     --text-color: #333333;
     --text-muted: #666666;
     --bg-color: #ffffff;
     --section-bg: #f9f9f9;
     --border-color: #eeeeee;
     --font-main: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", "Inter", sans-serif;
     --font-heading: "Outfit", sans-serif;
     --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

* {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
}

body {
     font-family: var(--font-main);
     color: var(--text-color);
     background-color: var(--bg-color);
     line-height: 1.6;
     overflow-x: hidden;
}

/* Header */
header {
     background: #fff;
     padding: 10px 40px;
     display: flex;
     justify-content: space-between;
     align-items: center;
     border-bottom: 1px solid #ddd;
     position: sticky;
     top: 0;
     z-index: 1000;
}

.nav-menu {
     display: flex;
     gap: 15px;
     list-style: none;
}

.nav-menu li a {
     text-transform: uppercase;
     font-size: 13px;
     font-weight: 700;
     color: #333;
     letter-spacing: 0.5px;
}

.nav-menu li a:hover {
     color: var(--accent-color);
}

/* Hero Slider */
.hero {
     height: 60vh;
     background: #000;
     position: relative;
     overflow: hidden;
}

.hero video {
     width: 100%;
     height: 100%;
     object-fit: cover;
}

/* Search Bar Section */
.part-search {
     background: #1a1a1a;
     padding: 30px 0;
     color: #fff;
     text-align: center;
}

.search-container {
     display: flex;
     justify-content: center;
     gap: 10px;
     margin-top: 15px;
}

.search-container input {
     width: 400px;
     padding: 10px 15px;
     background: #fff;
     border: none;
}

.search-container button {
     padding: 10px 25px;
     background: #555;
     color: #fff;
     border: none;
     text-transform: uppercase;
     font-weight: 700;
     cursor: pointer;
}

/* Search Status */
.search-status {
     margin-top: 20px;
     font-size: 14px;
     font-weight: 700;
     min-height: 20px;
     text-transform: uppercase;
     letter-spacing: 1px;
     color: #fff;
}

.search-status.error {
     color: var(--accent-color);
     animation: shake 0.5s ease-in-out;
}

/* Grid Menu */
.menu-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: 20px;
     padding: 40px;
}

.menu-card {
     position: relative;
     aspect-ratio: 16/9;
     overflow: hidden;
     background: #000;
     display: flex;
     align-items: center;
     justify-content: center;
     transition: var(--transition);
     cursor: pointer;
}

.menu-card img {
     position: absolute;
     width: 100%;
     height: 100%;
     object-fit: cover;
     opacity: 0.8;
     transition: var(--transition);
}

.menu-card:hover img {
     opacity: 1;
     transform: scale(1.05);
}

.menu-label {
     position: absolute;
     bottom: 20px;
     left: 20px;
     color: #fff;
     font-weight: 900;
     text-transform: uppercase;
     font-size: 18px;
     z-index: 2;
     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

/* Instagram Feed mockup */
.social-feed-section {
     padding: 60px 40px;
     background: #fff;
}

.social-feed-title {
     text-align: center;
     margin-bottom: 40px;
     font-size: 24px;
     font-weight: 900;
}

.insta-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 20px;
}

.insta-item {
     aspect-ratio: 1;
     overflow: hidden;
     background: #eee;
}

.insta-item img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.5s ease;
}

.insta-item:hover img {
     transform: scale(1.1);
}

/* Footer Section */
footer {
     background: #000;
     color: #fff;
     padding: 40px;
}

.copyright-bar {
     text-align: center;
     padding-top: 20px;
     border-top: 1px solid #333;
     font-size: 12px;
     color: #666;
}

/* Modal Styles */
.modal {
     display: none;
     position: fixed;
     z-index: 2000;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     overflow: auto;
     background-color: rgba(0, 0, 0, 0.85);
     backdrop-filter: blur(10px);
}

.modal-content {
     background-color: #fff;
     margin: 5% auto;
     padding: 60px;
     border: none;
     width: 80%;
     max-width: 800px;
     position: relative;
     box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
     border-top: 6px solid var(--accent-color);
     color: #333;
}

.modal-content h2 {
     margin-bottom: 20px;
     color: #000;
     font-family: var(--font-heading);
}

.modal-content p {
     margin-bottom: 15px;
     line-height: 1.8;
}

.close-modal {
     color: #000;
     position: absolute;
     right: 30px;
     top: 20px;
     font-size: 40px;
     font-weight: 900;
     cursor: pointer;
     transition: var(--transition);
}

@keyframes shake {

     0%,
     100% {
          transform: translateX(0);
     }

     25% {
          transform: translateX(-10px);
     }

     75% {
          transform: translateX(10px);
     }
}

/* Diverse Modal Content Styles */
.modal-grid-2 {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 30px;
     align-items: center;
}

.product-list-sim .p-item {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 15px;
     border-bottom: 1px solid #eee;
}

.p-item button,
.dl-card button,
.manual-list button {
     padding: 5px 15px;
     background: #333;
     color: #fff;
     border: none;
     font-size: 12px;
     cursor: pointer;
     text-transform: uppercase;
}

.dealer-table table {
     width: 100%;
     border-collapse: collapse;
}

.dealer-table th,
.dealer-table td {
     padding: 15px;
     text-align: left;
     border-bottom: 1px solid #eee;
}

.dealer-table th {
     background: #f9f9f9;
}

.video-player-sim .video-main {
     position: relative;
     width: 100%;
     background: #000;
     margin-bottom: 15px;
}

.video-main img {
     width: 100%;
     display: block;
     opacity: 0.6;
}

.play-btn {
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     font-size: 60px;
     color: #fff;
     cursor: pointer;
}

.download-grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 20px;
}

.dl-card {
     padding: 20px;
     background: #f9f9f9;
     display: flex;
     flex-direction: column;
     gap: 15px;
     border-left: 4px solid var(--accent-color);
}

.shop-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 20px;
}

.shop-item {
     text-align: center;
     border: 1px solid #eee;
     padding: 15px;
}

.shop-img {
     height: 150px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 50px;
     margin-bottom: 10px;
}

.buy-btn {
     width: 100%;
     padding: 10px;
     background: var(--accent-color);
     color: #fff;
     border: none;
     margin-top: 10px;
     cursor: pointer;
     font-weight: 700;
}

.manual-list {
     list-style: none;
}

.manual-list li {
     display: flex;
     justify-content: space-between;
     padding: 12px 0;
     border-bottom: 1px dotted #ccc;
}

/* Success & Progress States */
.btn-success {
     background: #28a745 !important;
     pointer-events: none;
}

.progress-bar-container {
     width: 100%;
     height: 6px;
     background: #eee;
     margin-top: 10px;
     display: none;
     overflow: hidden;
}

.progress-bar-fill {
     height: 100%;
     background: var(--accent-color);
     width: 0%;
     transition: width 0.1s linear;
}

.specs-panel {
     background: #f4f4f4;
     padding: 20px;
     margin-top: 15px;
     border: 1px solid #ddd;
     display: none;
     font-size: 13px;
}

.specs-panel h4 {
     margin-bottom: 10px;
     color: var(--accent-color);
}

.specs-grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 10px;
}

@media (max-width: 1024px) {
     .menu-grid {
          grid-template-columns: repeat(2, 1fr);
     }
}

@media (max-width: 768px) {
     .container {
          padding: 0 20px;
     }

     .nav-menu {
          display: none;
     }

     .menu-grid {
          grid-template-columns: 1fr;
     }
}