:root { --primary: #722F37; --primary-light: #964B53; --accent: #D4AF37; --bg-body: #F9F7F2; --bg-card: #FFFFFF; --text-main: #2C2C2C; --text-muted: #6B6B6B; --shadow: 0 10px 40px -10px rgba(114, 47, 55, 0.15); --radius: 20px; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Lato', sans-serif; background-color: var(--bg-body); color: var(--text-main); min-height: 100vh; display: flex; flex-direction: column; }
h1, h2, h3 { font-family: 'Playfair Display', serif; }
.navbar { padding: 20px 0; }
.nav-content { max-width: 800px; margin: 0 auto; padding: 0 20px; display: flex; justify-content: space-between; align-items: center; }
.logo { display: flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; color: var(--primary); font-family: 'Playfair Display', serif; text-decoration: none; }
.logo-img { height: 40px; width: auto; transition: transform 0.3s ease; }
.logo:hover .logo-img { transform: rotate(-10deg); }
.dot { color: var(--accent); }
.nav-right { display: flex; gap: 15px; align-items: center; }
.lang-dropdown { position: relative; display: flex; align-items: center; cursor: pointer; z-index: 200; height: 40px; }
.selected-lang img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; border: 2px solid #E0E0E0; transition: 0.3s; display: block; }
.selected-lang:hover img { border-color: var(--primary); transform: scale(1.05); }
.lang-list { position: absolute; top: 100%; right: -8px; background: white; padding: 10px; border-radius: 25px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); width: 54px; flex-direction: column; gap: 12px; align-items: center; border: 1px solid #F0F0F0; opacity: 0; visibility: hidden; transform: translateY(10px); transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); display: flex; }
.lang-list::before { content: ''; position: absolute; top: -20px; left: 0; width: 100%; height: 20px; background: transparent; }
.lang-dropdown:hover .lang-list { opacity: 1; visibility: visible; transform: translateY(15px); }
.lang-list img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; cursor: pointer; border: 2px solid transparent; transition: all 0.2s; }
.lang-list img:hover { transform: scale(1.15); border-color: var(--primary); z-index: 10; }
.btn-coffee { background: white; border: 1px solid #E0E0E0; padding: 8px 16px; border-radius: 50px; text-decoration: none; color: var(--text-main); font-weight: 700; font-size: 14px; display: flex; align-items: center; gap: 8px; transition: all 0.3s ease; }
.btn-coffee:hover { border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }
.container { max-width: 700px; margin: 40px auto; padding: 0 20px; flex: 1; width: 100%; }
.sommelier-box { background: var(--bg-card); padding: 40px; border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; border: 1px solid rgba(114, 47, 55, 0.05); width: 100%; box-sizing: border-box; min-height: 450px; display: flex; flex-direction: column; align-items: center; }
.header-section { width: 100%; }
.header-section h1 { font-size: 2.2rem; color: var(--primary); margin-bottom: 10px; }
.subtitle { color: var(--text-muted); font-size: 1.1rem; margin-bottom: 30px; }
.mode-switch-wrapper { display: flex; justify-content: center; margin-bottom: 30px; width: 100%; }
.mode-switch { position: relative; display: flex; width: 320px; height: 54px; background: #F0F0F0; border-radius: 50px; padding: 4px; box-sizing: border-box; flex-shrink: 0; }
.mode-switch input { display: none; }
.switch-label { flex: 0 0 50%; width: 50%; z-index: 2; cursor: pointer; font-weight: 700; color: #999; transition: color 0.3s; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; user-select: none; }
.slider { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); background: white; border-radius: 50px; transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1); box-shadow: 0 2px 5px rgba(0,0,0,0.1); z-index: 1; }
#mode-wine:checked ~ .slider { transform: translateX(100%); }
#mode-food:checked + label, #mode-wine:checked + label { color: var(--primary); }
.input-area { margin-top: 10px; position: relative; width: 100%; }
.textarea-wrapper { position: relative; width: 100%; }
textarea { width: 100%; min-height: 70px; border: 2px solid #EEE; border-radius: 16px; padding: 20px 60px 20px 20px; font-family: 'Lato', sans-serif; font-size: 16px; resize: none; outline: none; transition: all 0.3s; background: #FAFAFA; box-sizing: border-box; }
textarea:focus { border-color: var(--primary); background: white; min-height: 100px; }
.btn-scan { position: absolute; right: 12px; bottom: 12px; background: var(--primary); color: white; border: none; width: 44px; height: 44px; border-radius: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease-in-out; box-shadow: 0 4px 10px rgba(114, 47, 55, 0.2); }
.btn-scan:hover { background: var(--primary-light); transform: translateY(2px); box-shadow: 0 2px 5px rgba(114, 47, 55, 0.2); }
.btn-scan:active { transform: translateY(4px); }
.input-hint { font-size: 12px; color: #AAA; margin-top: 8px; font-style: italic; }
.quick-tags { margin-top: 25px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; width: 100%; }
.tag { background: #F5F5F5; padding: 8px 14px; border-radius: 12px; font-size: 13px; color: #555; cursor: pointer; border: 1px solid transparent; transition: all 0.2s; }
.tag:hover { background: white; border-color: var(--primary); color: var(--primary); }
.loader-container { text-align: center; margin: 40px 0; width: 100%; }
.wine-spinner { font-size: 40px; color: var(--primary); animation: spin 1s linear infinite; display: inline-block; }
@keyframes spin { 100% { transform: rotate(360deg); } }
#loader-text { margin-top: 10px; color: var(--text-muted); font-size: 14px; }
.results-grid { width: 100%; }
.result-card { background: white; border-radius: 16px; overflow: hidden; margin-top: 30px; box-shadow: 0 5px 20px rgba(0,0,0,0.08); border: 1px solid #EEE; animation: slideUp 0.6s ease forwards; }
.card-image-container { height: 200px; width: 100%; overflow: hidden; position: relative; background: #f0f0f0; }
.card-img { width: 100%; height: 100%; object-fit: cover; }
.card-body { padding: 25px; }
.card-badge { text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: 1px; color: var(--accent); margin-bottom: 8px; display: block; }
.card-title { font-size: 1.4rem; color: var(--text-main); margin-bottom: 10px; }
.card-desc { font-size: 0.95rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 20px; }
.card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #F5F5F5; padding-top: 15px; }
.score { font-weight: 700; color: var(--primary); font-size: 14px; }
.btn-shop { text-decoration: none; color: var(--text-main); font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 4px; }
.btn-shop:hover { color: var(--primary); }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.footer { text-align: center; padding: 30px; color: #BBB; font-size: 12px; margin-top: auto; }
.modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(44, 44, 44, 0.95); backdrop-filter: blur(8px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.modal-box { background: white; width: 100%; max-width: 400px; padding: 40px 30px; border-radius: 20px; text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,0.5); border: 1px solid var(--primary); }
.modal-icon { font-size: 48px; color: var(--primary); margin-bottom: 20px; }
.modal-box h2 { color: var(--primary); margin-bottom: 15px; font-size: 1.8rem; }
.modal-box p { color: var(--text-muted); font-size: 14px; line-height: 1.5; margin-bottom: 10px; }
.modal-buttons { display: flex; gap: 15px; justify-content: center; margin-top: 20px; }
.btn-age-yes { flex: 1; padding: 12px; background: var(--primary); color: white; border: none; border-radius: 50px; font-weight: 700; cursor: pointer; transition: 0.3s; }
.btn-age-yes:hover { background: var(--primary-light); transform: translateY(-2px); }
.btn-age-no { flex: 1; padding: 12px; background: transparent; color: var(--text-muted); border: 2px solid #EEE; border-radius: 50px; font-weight: 700; cursor: pointer; transition: 0.3s; }
.btn-age-no:hover { border-color: var(--text-muted); color: var(--text-main); }
.modal-disclaimer { font-size: 10px !important; color: #AAA !important; margin-top: 20px; margin-bottom: 0 !important; }
.cookie-banner { position: fixed; bottom: 0; left: 0; width: 100%; background: white; border-top: 1px solid #EEE; padding: 15px 20px; box-shadow: 0 -5px 20px rgba(0,0,0,0.05); z-index: 9990; display: none; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; }
.cookie-content { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text-muted); max-width: 600px; }
.cookie-icon { color: var(--accent); }
.btn-cookie-ok { background: var(--text-main); color: white; border: none; padding: 8px 24px; border-radius: 50px; font-size: 12px; font-weight: 700; cursor: pointer; transition: 0.2s; white-space: nowrap; }
.btn-cookie-ok:hover { background: var(--primary); }
@media (max-width: 600px) { .sommelier-box { padding: 25px 15px; } .header-section h1 { font-size: 1.8rem; } .mode-switch { width: 100%; } .coffee-text-desktop { display: none; } .cookie-banner { flex-direction: column; text-align: center; gap: 15px; } .btn-cookie-ok { width: 100%; } }
.footer { padding: 40px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.btn-install { display: none; background-color: #722F37; color: #ffffff; padding: 12px 24px; border: none; border-radius: 50px; font-weight: 400; text-transform: uppercase; cursor: pointer; align-items: center; justify-content: center; gap: 8px; font-family: 'Lato', sans-serif; font-size: 14px; transition: background-color 0.3s ease, transform 0.2s ease; }
.btn-install:active { transform: scale(0.95); }
.btn-install .material-symbols-outlined { font-size: 20px; }
@media (min-width: 768px) { #install-btn { display: none !important; } }
.modal-overlay { display: none; }