*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}

html {
scroll-behavior: smooth;
}

body {
font-family: 'Sora', sans-serif;
background: #ffffff;
color: #000000;
overflow-x: hidden;
}

a {
text-decoration: none;
color: inherit;
}

ul {
list-style: none;
}

img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 12px;
}

input,
select,
button {
font-family: 'Sora', sans-serif;
}

@keyframes slideInLeft {
from {
opacity: 0;
transform: translateX(-30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}

@keyframes slideInRight {
from {
opacity: 0;
transform: translateX(40px);
}
to {
opacity: 1;
transform: translateX(0);
}
}

.load-animate-left {
animation: slideInLeft 0.8s ease forwards;
}

.load-animate-right {
animation: slideInRight 0.8s ease forwards;
}

.navbar {
position: sticky;
top: 0;
z-index: 999;
background: #ffffff;
padding: 15px 40px;
border-bottom: 1px solid #e2e2e2;
display: flex;
justify-content: space-between;
align-items: center;
}

.nav-left {
display: flex;
align-items: center;
}

.logo {
font-size: 26px;
font-weight: 700;
letter-spacing: -1px;
color: #000000;
margin-right: 32px;
}

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

.nav-links a {
font-size: 14px;
font-weight: 500;
color: #444444;
}

.nav-right {
display: flex;
align-items: center;
gap: 16px;
}

.nav-icon {
font-size: 14px;
color: #444444;
}

.btn-login {
font-size: 14px;
font-weight: 500;
color: #000000;
padding: 8px 16px;
border-radius: 999px;
}

.btn-signup {
font-size: 14px;
font-weight: 600;
background: #000000;
color: #ffffff;
padding: 8px 18px;
border-radius: 999px;
}

.hero {
display: flex;
align-items: center;
gap: 40px;
padding: 80px 80px 60px;
background: #ffffff;
}

.hero-content {
flex: 1;
}

.hero-content h1 {
font-size: 45px;
font-weight: 700;
line-height: 1.15;
letter-spacing: -1.5px;
margin-bottom: 28px;
}

.hero-tabs button {
display: block;
padding: 8px 18px;
border-radius: 999px;
border: 1px solid #e2e2e2;
font-size: 14px;
font-weight: 500;
cursor: pointer;
background: #ffffff;
margin-bottom: 20px;
}

.tab-btn.active {
background: #000000;
color: #ffffff;
border-color: #000000;
}

.hero-form {
background: #ffffff;
border: 1px solid #e2e2e2;
border-radius: 12px;
padding: 16px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}

.input-group {
background: #f6f6f6;
border-radius: 8px;
padding: 12px 14px;
margin-bottom: 10px;
display: flex;
align-items: center;
}

.dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 12px;
flex-shrink: 0;
}

.dot.green {
background: #48bb78;
}

.dot.black {
background: #000000;
}

.input-group input {
border: none;
background: transparent;
width: 100%;
font-size: 14px;
color: #000000;
outline: none;
}

.form-row {
display: flex;
gap: 10px;
}

.form-row select.select-now {
flex: 3;
border: 1px solid #e2e2e2;
border-radius: 8px;
padding: 12px;
font-size: 14px;
background: #ffffff;
outline: none;
}

.btn-search {
flex: 7;
background: #000000;
color: #ffffff;
border: none;
border-radius: 8px;
padding: 13px 20px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
}

.activity-link {
display: block;
margin-top: 16px;
font-size: 13px;
color: #444444;
text-decoration: underline;
}

.hero-image {
flex: 1;
position: relative;
height: 360px;
}

.hero-badge {
position: absolute;
bottom: 20px;
left: 20px;
background: rgba(255, 255, 255, 0.92);
border-radius: 999px;
padding: 8px 16px;
font-size: 13px;
font-weight: 600;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

.suggestions {
padding: 60px 80px;
}

.section-title {
font-size: 24px;
font-weight: 700;
margin-bottom: 28px;
}

.cards-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}

.suggestion-card {
background: #f6f6f6;
border-radius: 12px;
padding: 20px 16px;
border: 1px solid #eeeeee;
display: flex;
align-items: center;
justify-content: space-between;
gap: 15px;
}

.card-info {
flex: 65%;
}

.card-img {
flex: 35%;
}

.card-img img {
width: 90px;
height: 70px;
margin-left: auto;
}

.card-info h3 {
font-size: 16px;
margin-bottom: 6px;
}

.card-info p {
font-size: 12px;
color: #444444;
margin-bottom: 12px;
}

.card-info a {
font-size: 12px;
font-weight: 600;
text-decoration: underline;
}

.login-banner {
display: flex;
align-items: center;
gap: 40px;
padding: 60px 80px;
background: #f6f6f6;
}

.login-text {
flex: 60%;
}

.login-image {
flex: 40%;
}

.login-image img {
width: 260px;
height: 200px;
margin-left: auto;
}

.login-text h2 {
font-size: 29px;
margin-bottom: 14px;
}

.login-text p {
font-size: 14px;
color: #444444;
margin-bottom: 24px;
}

.login-btns {
display: flex;
gap: 12px;
}

.plan-later {
padding: 60px 80px;
}

.eyebrow {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
display: block;
margin-bottom: 24px;
}

.reserve-card {
display: flex;
background: #f6f6f6;
border-radius: 20px;
padding: 48px;
border: 1px solid #eeeeee;
gap: 40px;
}

.reserve-left {
flex: 55%;
}

.reserve-right {
flex: 45%;
position: relative;
}

.reserve-left h2 {
font-size: 27px;
margin-bottom: 12px;
}

.reserve-left p {
font-size: 14px;
color: #444444;
margin-bottom: 20px;
}

.reserve-inputs {
display: flex;
gap: 10px;
margin-bottom: 14px;
}

.input-half {
flex: 1;
border: 1px solid #e2e2e2;
border-radius: 8px;
padding: 10px 14px;
background: #ffffff;
}

.reserve-features li {
display: block;
font-size: 14px;
color: #444444;
margin-bottom: 10px;
}

.see-details {
font-size: 14px;
font-weight: 600;
text-decoration: underline;
}

.watch-img {
position: absolute;
right: 0;
top: -20px;
width: 100px;
height: 140px;
border-radius: 50px;
overflow: hidden;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
}

.feature-row {
display: flex;
align-items: center;
gap: 40px;
padding: 60px 80px;
background: #ffffff;
}

.feature-text {
flex: 1;
}

.feature-image {
flex: 1;
height: 320px;
}

.feature-row.reverse {
flex-direction: row-reverse;
}

.feature-text h2 {
font-size: 32px;
margin-bottom: 16px;
line-height: 1.2;
}

.feature-text p {
font-size: 14px;
color: #444444;
margin-bottom: 28px;
line-height: 1.7;
}

.btn-group {
display: flex;
gap: 12px;
}

.btn-dark {
background: #000000;
color: #ffffff;
border-radius: 999px;
padding: 12px 22px;
font-size: 14px;
font-weight: 600;
}

.btn-outline {
border: 1px solid #e2e2e2;
border-radius: 999px;
padding: 12px 22px;
font-size: 14px;
font-weight: 500;
color: #000000;
}

.btn-outline-dark {
border: 2px solid #000000;
border-radius: 999px;
padding: 11px 22px;
font-size: 14px;
font-weight: 600;
color: #000000;
}

.app-section {
padding: 80px;
background: #f6f6f6;
text-align: center;
}

.app-section h2 {
font-size: 29px;
margin-bottom: 40px;
}

.app-cards {
display: flex;
justify-content: center;
gap: 24px;
}

.app-card {
width: 280px;
background: #ffffff;
border: 1px solid #e2e2e2;
border-radius: 12px;
padding: 24px;
text-align: left;
display: flex;
align-items: center;
}

.qr-placeholder {
width: 80px;
height: 80px;
margin-right: 20px;
flex-shrink: 0;
}

.app-info {
flex: 1;
}

.app-info p {
font-size: 14px;
font-weight: 600;
margin-bottom: 4px;
}

.app-link {
font-size: 12px;
color: #444444;
text-decoration: underline;
}

.footer {
background: #000000;
color: #ffffff;
padding: 60px 80px 40px;
}

.footer-logo {
font-size: 26px;
font-weight: 700;
margin-bottom: 40px;
}

.footer-links {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 40px;
}

.footer-col h4 {
font-size: 13px;
margin-bottom: 16px;
color: #ffffff;
}

.footer-col li {
margin-bottom: 10px;
}

.footer-col a {
font-size: 13px;
color: #999999;
}

.footer-bottom {
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px solid #222222;
padding-top: 28px;
margin-bottom: 24px;
margin-top: 40px;
}

.footer-social {
display: flex;
gap: 16px;
}

.footer-social a {
font-size: 18px;
}

.footer-store {
display: flex;
gap: 12px;
}

.store-btn {
font-size: 12px;
color: #ffffff;
background: #222222;
padding: 8px 16px;
border-radius: 999px;
}

.footer-legal {
display: flex;
justify-content: space-between;
align-items: center;
}

.copyright {
font-size: 12px;
color: #999999;
}

.legal-links {
display: flex;
gap: 20px;
}

.legal-links a {
font-size: 12px;
color: #999999;
}

@media (max-width: 900px) {
.navbar,
.hero,
.login-banner,
.reserve-card,
.feature-row,
.app-cards,
.footer-bottom,
.footer-legal {
flex-direction: column;
align-items: stretch;
}

.form-row,
.reserve-inputs,
.login-btns,
.btn-group {
flex-direction: column;
}

.footer-links {
grid-template-columns: 1fr;
gap: 30px;
}

.navbar,
.hero,
.suggestions,
.login-banner,
.plan-later,
.feature-row,
.app-section,
.footer {
padding: 40px 24px;
}

.nav-links,
.nav-right .nav-icon,
.watch-img {
display: none;
}

.nav-left {
justify-content: center;
margin-bottom: 15px;
}

.logo {
margin-right: 0;
margin-bottom: 15px;
text-align: center;
width: 100%;
}

.btn-login,
.btn-signup {
width: 100%;
text-align: center;
margin-left: 0;
}

.hero-content {
margin-bottom: 40px;
}

.hero-content h1 {
font-size: 32px;
text-align: center;
}

.hero-tabs button {
margin: 0 auto 20px;
}

.hero-image {
height: 240px;
}

.form-row select.select-now {
width: 100%;
}

.suggestion-card {
flex-direction: column;
align-items: flex-start;
padding: 20px;
}

.card-img img {
margin-left: 0;
}

.login-image img {
margin-left: 0;
}

.reserve-card {
padding: 24px;
}

.reserve-right {
margin-top: 30px;
}

.feature-row.reverse {
flex-direction: column;
}

.feature-image {
height: 220px;
margin-top: 15px;
}

.app-card {
width: 100%;
flex-direction: column;
align-items: flex-start;
}

.qr-placeholder {
margin-right: 0;
margin-bottom: 10px;
}

.footer-bottom {
gap: 20px;
}

.footer-social,
.footer-store,
.legal-links {
justify-content: flex-start;
flex-wrap: wrap;
gap: 10px;
}

.store-btn,
.legal-links a {
margin-left: 0;
}
}