:root { --primary-dark: #231912; --accent-warm: #B87333; --bg-cream: #FDFBF7; --text-main: #3D342E; --text-muted: #786C64; --white: #FFFFFF; --font-serif: 'Playfair Display', Georgia, serif; --font-sans: 'Poppins', sans-serif; } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: var(--font-sans); background-color: var(--bg-cream); color: var(--text-main); line-height: 1.6; } .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; } h1, h2, h3 { font-family: var(--font-serif); color: var(--primary-dark); } .btn { display: inline-block; padding: 12px 32px; border-radius: 50px; text-decoration: none; font-weight: 500; font-size: 0.95rem; transition: all 0.3s ease; cursor: pointer; border: 2px solid transparent; } .btn-primary { background-color: var(--accent-warm); color: var(--white); } .btn-primary:hover { background-color: transparent; border-color: var(--accent-warm); color: var(--accent-warm); } .btn-secondary { border-color: var(--primary-dark); color: var(--primary-dark); background: transparent; } .btn-secondary:hover { background-color: var(--primary-dark); color: var(--white); } .section-header { text-align: center; margin-bottom: 50px; } .section-header h2 { font-size: 2.5rem; position: relative; display: inline-block; padding-bottom: 10px; } .section-header h2::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 60px; height: 3px; background-color: var(--accent-warm); } header { background-color: rgba(253, 251, 247, 0.95); position: fixed; width: 100%; top: 0; z-index: 1000; box-shadow: 0 2px 20px rgba(0,0,0,0.04); } .navbar { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; } .logo { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 600; color: var(--primary-dark); text-decoration: none; } .logo span { color: var(--accent-warm); } .nav-links { display: flex; list-style: none; gap: 32px; } .nav-links a { text-decoration: none; color: var(--text-main); font-weight: 500; font-size: 0.95rem; transition: color 0.3s ease; } .nav-links a:hover { color: var(--accent-warm); } .hero { padding: 180px 0 100px 0; display: flex; align-items: center; min-height: 90vh; } .hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; } .hero-text h1 { font-size: 3.8rem; line-height: 1.15; margin-bottom: 20px; } .hero-text p { font-size: 1.1rem; color: var(--text-muted); margin-bottom: 35px; max-width: 500px; } .hero-actions { display: flex; gap: 16px; } .hero-image-container { position: relative; } .hero-image { width: 100%; border-radius: 24px; box-shadow: 0 20px 40px rgba(35, 25, 18, 0.15); } .menu-section { padding: 100px 0; background-color: var(--white); } .menu-tabs { display: flex; justify-content: center; gap: 16px; margin-bottom: 40px; } .tab-btn { background: none; border: none; font-family: var(--font-sans); font-size: 1rem; font-weight: 500; padding: 10px 24px; color: var(--text-muted); cursor: pointer; border-radius: 30px; transition: all 0.3s ease; } .tab-btn.active, .tab-btn:hover { background-color: var(--primary-dark); color: var(--white); } .menu-grid-wrapper { display: none; } .menu-grid-wrapper.active { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 60px; } .menu-item { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 20px; border-bottom: 1px dashed #E2DCD5; } .menu-item-details h3 { font-size: 1.25rem; margin-bottom: 6px; } .menu-item-details p { font-size: 0.9rem; color: var(--text-muted); } .menu-item-price { font-family: var(--font-serif); font-weight: 600; font-size: 1.25rem; color: var(--accent-warm); } .reservation-section { padding: 100px 0; background-color: var(--bg-cream); } .booking-card { background-color: var(--white); border-radius: 24px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); padding: 50px; max-width: 800px; margin: 0 auto; } .booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } .form-group { display: flex; flex-direction: column; gap: 8px; } .form-group.full-width { grid-column: span 2; } .form-group label { font-weight: 500; font-size: 0.9rem; color: var(--primary-dark); } .form-group input, .form-group select { padding: 14px; border: 1px solid #E2DCD5; border-radius: 8px; font-family: var(--font-sans); font-size: 0.95rem; background-color: #FAFAFA; outline: none; transition: border-color 0.3s; } .form-group input:focus, .form-group select:focus { border-color: var(--accent-warm); background-color: var(--white); } #submissionAlert { display: none; grid-column: span 2; padding: 16px; border-radius: 8px; background-color: #E6F4EA; color: #137333; text-align: center; font-weight: 500; } footer { background-color: var(--primary-dark); color: #C5BDB6; padding: 60px 0 30px 0; font-size: 0.95rem; } .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 60px; margin-bottom: 40px; } .footer-brand h3 { color: var(--white); margin-bottom: 16px; font-size: 1.5rem; } .footer-col h4 { color: var(--white); font-family: var(--font-sans); margin-bottom: 20px; font-size: 1.1rem; } .footer-col p { margin-bottom: 10px; } .footer-bottom { border-top: 1px solid #3D342E; padding-top: 30px; text-align: center; font-size: 0.85rem; } @media (max-width: 992px) { .hero-grid { grid-template-columns: 1fr; text-align: center; gap: 40px; } .hero-text h1 { font-size: 3rem; } .hero-text p { margin: 0 auto 35px auto; } .hero-actions { justify-content: center; } .menu-grid-wrapper.active { grid-template-columns: 1fr; } } @media (max-width: 600px) { .navbar { flex-direction: column; gap: 16px; } .booking-form { grid-template-columns: 1fr; } .form-group.full-width { grid-column: span 1; } .footer-grid { grid-template-columns: 1fr; gap: 40px; } } html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; } body { overflow-x: hidden; } .container, .section, main { max-width: 100%; } @media (max-width: 768px) { .btn, .nav-links a, .nav-pills a { min-height: 44px; align-items: center; } .section { padding-block: 3rem; } .form-panel, .form-card, .form-elegant, .inquiry-float { padding: 1.25rem; } .inquiry-sidebar { padding: 2rem 1.25rem; } .form-area { padding: 2rem 1.25rem; } .hero-split { min-height: auto; } .hero-panel { padding: 2.5rem 0; } .hero-visual { min-height: 40vh; } .hero-center { min-height: auto; padding: 6rem 0 2.5rem; } .hero-portal { min-height: auto; padding-bottom: 2rem; } .hero-top { padding-top: 3rem; } .hero-img-wrap img { height: 40vh; min-height: 220px; } .product-row--reverse .product-row-img, .product-row--reverse .product-row-body { order: unset; } .product-num { font-size: 2.5rem; } .stat-pill { min-width: calc(50% - 0.5rem); flex: 1 1 calc(50% - 0.5rem); } .nav-float { top: 0.5rem; } .page-wrap { padding-top: 4.75rem; } .tab-label { flex: 1 1 auto; text-align: center; border-radius: 8px !important; margin-bottom: 0.25rem; } .tab-row { gap: 0.35rem; } } @media (min-width: 1200px) { .container { width: min(100% - 3rem, var(--max)); } } .inquiry-form input, .inquiry-form select, .inquiry-form textarea { max-width: 100%; }
/* QA: mobile navigation */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.5rem;margin-left:auto}
.nav-toggle span{display:block;width:22px;height:2px;background:currentColor}
@media(max-width:768px){
  .nav-toggle{display:flex}
  .nav-container,.nav-container header nav,.nav-container>nav,nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;position:relative}
  .nav-links:not(.is-open){display:none!important}
  .nav-links.is-open,.nav-links.active{display:flex!important;flex-direction:column;width:100%;gap:.75rem;padding:1rem 0;border-top:1px solid rgba(0,0,0,.08)}
  .nav-links.is-open a,.nav-links.active a{margin-left:0!important;min-height:44px;display:inline-flex;align-items:center}
  ul.nav-links.is-open,ul.nav-links.active{list-style:none;padding:1rem 0;margin:0}
  ul.nav-links.is-open li,ul.nav-links.active li{width:100%}
  .hero{min-height:50vh!important;height:auto!important;padding:3rem 1.25rem!important}
  .hero-content h1,.hero h1{font-size:clamp(1.75rem,7vw,2.5rem)!important}
  .info-side,.order-side,.brand-side,.customizer-side{width:100%!important;max-width:100%!important;min-height:auto!important}
  body:has(.info-side){display:flex;flex-direction:column}
  .info-side{order:1;padding:2rem 1.25rem!important}
  .order-side,.customizer-side{order:2;padding:1.25rem!important}
  .brand-side{order:1;padding:2.5rem 1.25rem!important}
  .menu-grid,.info-grid{grid-template-columns:1fr!important}
  .section{padding:3rem 1.25rem!important}
}
