@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Open+Sans:wght@300;400;500;600;700&display=swap');:root{--color-primary:#C1121F;--color-primary-dark:#9B0E19;--color-secondary:#457B9D;--color-secondary-light:#A8DADC;--color-accent:#FF8C00;--color-neutral-100:#F1F5F9;--color-neutral-200:#E5E7EB;--color-neutral-300:#D1D5DB;--color-neutral-400:#9CA3AF;--color-neutral-500:#6B7280;--color-neutral-600:#4B5563;--color-neutral-700:#374151;--color-neutral-800:#1F2937;--color-neutral-900:#111827;--text-primary:#111827;--text-secondary:#374151;--text-muted:#6B7280;--text-inverse:#F1F5F9;--btn-primary-bg:#C1121F;--btn-secondary-bg:#457B9D;--table-header-bg:#F1F5F9;--list-hover-bg:#E5E7EB;--card-bg:#F1F5F9;--font-heading:'Playfair Display',serif;--font-body:'Open Sans',sans-serif;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:1rem;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--transition-base:0.2s ease-in-out;--transition-slow:0.3s ease-in-out}[data-theme="dark"]{--color-neutral-100:#1F2937;--color-neutral-200:#374151;--color-neutral-300:#4B5563;--table-header-bg:#2D3748;--list-hover-bg:#374151;--card-bg:#2D3748;--text-primary:#F1F5F9;--text-secondary:#E5E7EB;--text-muted:#9CA3AF;--text-inverse:#111827}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:400;line-height:1.6;color:var(--text-primary);background-color:var(--color-neutral-100);transition:background-color var(--transition-base),color var(--transition-base)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--text-primary);margin-bottom:var(--spacing-md)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1.125rem}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}strong,b{font-weight:600;color:var(--text-primary)}blockquote{border-left:4px solid var(--color-primary);padding-left:var(--spacing-lg);margin:var(--spacing-lg) 0;color:var(--text-secondary);font-style:italic;background:rgba(193,18,31,0.05);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-body);font-size:0.875rem;font-weight:500;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden;min-height:2.75rem}.btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,0.2);border-radius:50%;transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}.btn:hover::before{width:300px;height:300px}.btn-primary{background-color:var(--btn-primary-bg);color:white;border-color:var(--btn-primary-bg)}.btn-primary:hover{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--btn-secondary-bg);color:white;border-color:var(--btn-secondary-bg)}.btn-secondary:hover{background-color:#3a6b8a;border-color:#3a6b8a;transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary);color:white}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem;min-height:3.25rem}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:0.75rem;min-height:2.25rem}.card{background-color:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base);border:1px solid var(--color-neutral-200)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-header{padding:var(--spacing-lg);background-color:white;border-bottom:1px solid var(--color-neutral-200)}.card-body{padding:var(--spacing-lg)}.card-footer{padding:var(--spacing-lg);background-color:var(--color-neutral-100);border-top:1px solid var(--color-neutral-200)}.card-title{margin-bottom:var(--spacing-sm);color:var(--text-primary)}.card-text{color:var(--text-secondary)}.card .logo-container{padding:var(--spacing-md);background:white;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);display:flex;align-items:center;justify-content:center;min-height:80px;border:2px solid var(--color-neutral-200)}.card .logo-container img{max-width:100%;max-height:60px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.1))}.table-container{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:white}.table{width:100%;border-collapse:collapse;margin:0;background:white}.table th{background-color:var(--table-header-bg);color:var(--text-primary);font-weight:600;padding:var(--spacing-md) var(--spacing-lg);text-align:left;border-bottom:2px solid var(--color-neutral-300);font-family:var(--font-heading)}.table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-neutral-200);color:var(--text-secondary);vertical-align:middle}.table tbody tr{transition:background-color var(--transition-base)}.table tbody tr:hover{background-color:var(--list-hover-bg)}.table tbody tr:nth-child(even){background-color:rgba(241,245,249,0.5)}.table .logo-cell{width:120px;padding:var(--spacing-sm)}.table .logo-cell .logo-wrapper{background:white;border-radius:var(--radius-sm);padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;min-height:50px;border:1px solid var(--color-neutral-300)}.table .logo-cell img{max-width:100px;max-height:40px;object-fit:contain}.list{list-style:none;margin:0;padding:0;background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.list-item{padding:var(--spacing-lg);border-bottom:1px solid var(--color-neutral-200);transition:all var(--transition-base);cursor:pointer;position:relative}.list-item:last-child{border-bottom:none}.list-item:hover{background-color:var(--list-hover-bg);padding-left:calc(var(--spacing-lg)+var(--spacing-sm))}.list-item::before{content:'';position:absolute;left:0;top:0;height:100%;width:0;background-color:var(--color-primary);transition:width var(--transition-base)}.list-item:hover::before{width:4px}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--text-primary)}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--text-primary);background-color:white;border:2px solid var(--color-neutral-300);border-radius:var(--radius-md);transition:all var(--transition-base);min-height:2.75rem}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(193,18,31,0.1)}.form-control::placeholder{color:var(--text-muted)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.container-fluid{width:100%;padding:0 var(--spacing-md)}.row{display:flex;flex-wrap:wrap;margin:0 calc(-1 * var(--spacing-sm))}.col{flex:1;padding:0 var(--spacing-sm);margin-bottom:var(--spacing-md)}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-6{flex:0 0 50%;max-width:50%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-12{flex:0 0 100%;max-width:100%}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-3{margin:var(--spacing-md)}.m-4{margin:var(--spacing-lg)}.m-5{margin:var(--spacing-xl)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.p-5{padding:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.text-primary{color:var(--color-primary) !important}.text-secondary{color:var(--color-secondary) !important}.text-muted{color:var(--text-muted) !important}.text-dark{color:var(--text-primary) !important}.text-light{color:var(--text-inverse) !important}.bg-primary{background-color:var(--color-primary) !important}.bg-secondary{background-color:var(--color-secondary) !important}.bg-light{background-color:var(--color-neutral-100) !important}.bg-white{background-color:white !important}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-grid{display:grid}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.align-items-center{align-items:center}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.woodgrain{background-image:repeating-linear-gradient(90deg,rgba(139,69,19,0.1) 0px,rgba(139,69,19,0.1) 2px,transparent 2px,transparent 4px ),repeating-linear-gradient(0deg,rgba(160,82,45,0.05) 0px,rgba(160,82,45,0.05) 1px,transparent 1px,transparent 3px )}.rustic-border{border:3px solid var(--color-primary);border-image:repeating-linear-gradient(45deg,var(--color-primary) 0px,var(--color-primary) 10px,transparent 10px,transparent 20px ) 3}.fade-in{animation:fadeIn 0.5s ease-in-out}.slide-up{animation:slideUp 0.6s ease-out}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{position:fixed;top:20px;right:20px;background:var(--color-primary);color:white;border:none;border-radius:50%;width:50px;height:50px;cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow-lg);transition:all var(--transition-base);z-index:1000}.theme-toggle:hover{transform:scale(1.1);background:var(--color-primary-dark)}@media (max-width:768px){.container{padding:0 var(--spacing-sm)}.col-1,.col-2,.col-3,.col-4,.col-6,.col-8{flex:0 0 100%;max-width:100%}.table-container{margin:0 calc(-1 * var(--spacing-sm))}.btn{width:100%;margin-bottom:var(--spacing-sm)}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}.card{margin-bottom:var(--spacing-md)}.theme-toggle{width:45px;height:45px;font-size:1rem}}@media (max-width:480px){html{font-size:14px}.container{padding:0 var(--spacing-xs)}.row{margin:0 calc(-1 * var(--spacing-xs))}.col{padding:0 var(--spacing-xs)}}@media print{.theme-toggle{display:none}.btn{border:1px solid #000;background:white !important;color:#000 !important}.card{border:1px solid #000;box-shadow:none}}*:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast:high){:root{--color-neutral-300:#999999;--color-neutral-400:#666666}.card{border-width:2px}.table th{border-width:3px}}@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.btn::before{transition:none}}.bistro-header{background:linear-gradient(135deg,var(--color-neutral-100) 0%,white 100%);border-bottom:3px solid var(--color-primary);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.bistro-header::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient( 90deg,rgba(193,18,31,0.02) 0px,rgba(193,18,31,0.02) 1px,transparent 1px,transparent 20px );pointer-events:none}.bistro-logo-container{display:flex;flex-direction:column;align-items:flex-start;padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:all var(--transition-base)}.bistro-logo-container:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.bistro-logo-container::after{content:'';position:absolute;top:-50%;right:-50%;width:100%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,0.1),transparent);transform:rotate(45deg);transition:all 0.8s ease;opacity:0}.bistro-logo-container:hover::after{animation:shine 0.8s ease}@keyframes shine{0%{transform:translateX(-100%) rotate(45deg);opacity:0}50%{opacity:1}100%{transform:translateX(100%) rotate(45deg);opacity:0}}.bistro-logo-text{font-family:var(--font-heading);font-size:1.8rem;font-weight:700;line-height:1;letter-spacing:-0.02em;text-shadow:0 2px 4px rgba(0,0,0,0.2)}.bistro-logo-subtitle{font-family:var(--font-body);font-size:0.75rem;font-weight:400;letter-spacing:0.1em;text-transform:uppercase;opacity:0.9;margin-top:-2px}.bistro-navigation{display:flex;justify-content:center}.bistro-menu-list{display:flex;list-style:none;margin:0;padding:0;background:rgba(255,255,255,0.7);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);backdrop-filter:blur(10px);overflow:hidden}.bistro-menu-item{position:relative}.bistro-menu-link{display:block;padding:var(--spacing-md) var(--spacing-lg);font-family:var(--font-body);font-weight:500;font-size:0.9rem;color:var(--text-primary);text-decoration:none;transition:all var(--transition-base);position:relative;overflow:hidden}.bistro-menu-link::before{content:'';position:absolute;bottom:0;left:50%;width:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:all var(--transition-base);transform:translateX(-50%)}.bistro-menu-link:hover{color:var(--color-primary);background:rgba(193,18,31,0.05);transform:translateY(-1px)}.bistro-menu-link:hover::before{width:80%}.bistro-slogan{font-family:var(--font-body);font-style:italic;font-size:0.85rem;color:var(--text-muted);line-height:1.3;text-align:right;opacity:0.8;transition:all var(--transition-base)}.bistro-header:hover .bistro-slogan{opacity:1;color:var(--color-secondary)}@media (max-width:768px){.bistro-header{max-height:none !important}.bistro-menu-list{flex-direction:column;background:white;margin-top:var(--spacing-md)}.bistro-menu-link{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-neutral-200)}.bistro-menu-item:last-child .bistro-menu-link{border-bottom:none}.bistro-slogan{text-align:center;margin-top:var(--spacing-md);font-size:0.8rem}.bistro-logo-text{font-size:1.5rem}.bistro-logo-subtitle{font-size:0.7rem}}@media (max-width:576px){.bistro-navigation{width:100%}.bistro-menu-list{width:100%}.bistro-header .row{flex-direction:column}.bistro-header .col-md-3,.bistro-header .col-md-6{width:100%;max-width:100%;flex:none}}
