html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;min-height:100vh;font-family:Inter,sans-serif;background:#f8fafc;line-height:1.6;overflow-x:hidden}#root,.container,.max-w-7xl,.footer-inner,.navbar-container{overflow-x:hidden}button,input,textarea,select{font:inherit}.hero-gradient{background:linear-gradient(135deg,#065f46,#047857,#059669)}.text-gradient{background:linear-gradient(135deg,#059669,#d97706);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.card-hover{transition:all .3s ease}.card-hover:hover{transform:translateY(-5px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.animate-fade-in{animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.event-card{transition:all .3s ease}.event-card:hover{transform:translateY(-2px)}.guideline-card{transition:all .3s ease}.guideline-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px -5px #0000001a}.navbar{background:#fff;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:100}.navbar-container{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;max-width:100%;margin:0 auto}@media (min-width: 768px){.navbar-container{padding:.5rem 2rem}}@media (min-width: 1280px){.navbar-container{padding:.5rem 3rem}}.navbar-brand-wrapper{flex-shrink:0}.navbar-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}.navbar-logo{height:4.375rem;width:auto;border-radius:.75rem;object-fit:contain}.navbar-brand-text{display:flex;flex-direction:column}.navbar-title{margin:0;font-size:1.5rem;font-weight:700;color:#065f46;line-height:1.2}@media (min-width: 768px){.navbar-title{font-size:1.75rem}}.navbar-tagline{margin:0;font-size:.7rem;font-weight:500;color:#059669;letter-spacing:.025em}@media (min-width: 768px){.navbar-tagline{font-size:.75rem}}.navbar-admin-wrapper{flex-shrink:0}@media (max-width: 1023px){.navbar-admin-wrapper{display:none}}.navbar-desktop-menu{display:none;flex:1;justify-content:center;align-items:center;gap:1.5rem;margin:0 1rem}@media (min-width: 1024px){.navbar-desktop-menu{display:flex;gap:1.25rem}}@media (min-width: 1280px){.navbar-desktop-menu{gap:2rem;margin:0 1.5rem}}.navbar-link{color:#4b5563;text-decoration:none;padding:.5rem .25rem;font-size:.8125rem;font-weight:500;border-radius:.375rem;transition:all .2s ease;white-space:nowrap}@media (min-width: 1280px){.navbar-link{padding:.5rem;font-size:.875rem}}.navbar-link:hover{color:#059669;background-color:#f0fdf4}.navbar-link-active{color:#047857;font-weight:600;border-bottom:2px solid #059669;padding-bottom:calc(.5rem - 2px)}.navbar-link-admin{background-color:#f59e0b;color:#fff;padding:.5rem 1.25rem;border-radius:9999px;font-weight:600;font-size:.875rem;white-space:nowrap;text-decoration:none;transition:all .2s ease}.navbar-link-admin:hover{background-color:#d97706;color:#fff}.navbar-link-admin-active{background-color:#b45309}.navbar-mobile-toggle{display:flex;align-items:center}@media (min-width: 1024px){.navbar-mobile-toggle{display:none}}.navbar-toggle-btn{color:#4b5563;background:none;border:none;cursor:pointer;padding:.5rem;border-radius:.375rem;transition:all .2s ease;min-height:44px;min-width:44px}.navbar-toggle-btn:hover{color:#059669;background-color:#f3f4f6}.navbar-mobile-menu{display:none;background-color:#fff;border-top:1px solid #e5e7eb}.navbar-mobile-menu-open{display:block}@media (min-width: 1024px){.navbar-mobile-menu{display:none!important}}.navbar-mobile-menu-inner{padding:.5rem 1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.navbar-mobile-link{display:block;padding:.75rem 1rem;color:#4b5563;text-decoration:none;font-weight:500;border-radius:.5rem;transition:all .2s ease}.navbar-mobile-link:hover{background-color:#f9fafb;color:#059669}.navbar-mobile-link-active{color:#047857;font-weight:600;background-color:#ecfdf5}.navbar-mobile-link-admin{display:block;padding:.75rem 1rem;background-color:#f59e0b;color:#fff;text-decoration:none;font-weight:600;border-radius:.5rem;transition:all .2s ease}.navbar-mobile-link-admin:hover{background-color:#d97706}.navbar-mobile-link-admin-active{background-color:#b45309}.footer{background:#06070d;color:#e5e7eb;padding:2rem 1rem 1rem}@media (min-width: 768px){.footer{padding:2.5rem 1.5rem 1rem}}.footer-inner{max-width:1280px;margin:0 auto}.footer-main{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width: 768px){.footer-main{grid-template-columns:1fr 1.2fr;gap:2rem}}@media (min-width: 1024px){.footer-main{grid-template-columns:1fr 1.5fr;gap:2.5rem}}.footer-map{border-radius:1rem;overflow:hidden;min-height:180px;width:100%}@media (min-width: 768px){.footer-map{min-height:100%}}.footer-map iframe{display:block;width:100%;height:100%;min-height:180px}.footer-content{display:flex;flex-direction:column;gap:1.5rem}.footer-brand-section{display:flex;flex-direction:column;gap:1rem}.footer-brand-header{display:flex;align-items:flex-start;gap:.75rem}.footer-logo{height:2.75rem;width:auto;border-radius:.5rem;background:#fff;padding:.25rem;flex-shrink:0}.footer-brand-title{margin:0 0 .25rem;font-size:1.125rem;color:#f8fafc;line-height:1.3}.footer-brand-tagline{margin:0;color:#cbd5e1;font-size:.75rem;line-height:1.4}@media (min-width: 768px){.footer-brand-tagline{font-size:.8125rem}}.footer-description{margin:0;color:#cbd5e1;line-height:1.5;font-size:.8125rem}@media (min-width: 768px){.footer-description{font-size:.875rem}}.footer-address{margin:0;font-style:normal;color:#cbd5e1;line-height:1.5;font-size:.8125rem}@media (min-width: 768px){.footer-address{font-size:.875rem}}.footer-address strong{color:#e5e7eb}.footer-social{display:flex;gap:.75rem;margin-top:.25rem}.footer-social-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ffffff14;color:#cbd5e1;transition:all .2s ease}.footer-social-link:hover{background:#059669;color:#fff;transform:translateY(-2px)}.footer-links-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 480px){.footer-links-grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (min-width: 768px){.footer-links-grid{gap:1.5rem}}.footer-links-column{min-width:0}.footer-heading{margin:0 0 .75rem;font-size:.9375rem;color:#fff;font-weight:700}.footer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.footer-link{color:#cbd5e1;text-decoration:none;transition:color .2s ease;display:flex;align-items:flex-start;font-size:.8125rem;line-height:1.4;word-break:break-word}@media (min-width: 768px){.footer-link{font-size:.875rem}}.footer-link:hover{color:#86efac}.footer-link-icon{flex-shrink:0;width:1rem;height:1rem;margin-right:.5rem;margin-top:.125rem}.footer-link-text{flex:1;min-width:0}.footer-link-simple{padding:.125rem 0}.footer-bottom{margin-top:2rem;border-top:1px solid rgba(148,163,184,.15);padding-top:1rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;font-size:.75rem;color:#94a3b8}@media (min-width: 640px){.footer-bottom{flex-direction:row;justify-content:space-between;text-align:left;font-size:.8125rem}}.footer-bottom p{margin:0}.footer-bottom-link{color:#e5e7eb;text-decoration:none;font-weight:600;transition:color .2s ease}.footer-bottom-link:hover{color:#86efac;text-decoration:underline}@media (max-width: 768px){body{font-size:16px}.container{padding:0 1rem}h1{font-size:1.875rem;line-height:1.2}h2{font-size:1.5rem}h3{font-size:1.25rem}p{font-size:1rem;line-height:1.6}.btn{padding:.75rem 1.5rem;font-size:1rem;min-height:44px}.card{margin-bottom:1rem}.grid{grid-template-columns:1fr;gap:1rem}.grid-cols-2,.grid-cols-3,.grid-cols-4,.grid-cols-6{grid-template-columns:1fr}.hidden-mobile{display:none}.show-mobile{display:block}.text-center-mobile{text-align:center}.p-mobile{padding:1rem}.m-mobile{margin:1rem}.mb-mobile{margin-bottom:1rem}.mt-mobile{margin-top:1rem}.mx-auto-mobile{margin-left:auto;margin-right:auto}.w-full-mobile{width:100%}.max-w-sm-mobile{max-width:20rem}.rounded-lg-mobile{border-radius:.5rem}.shadow-lg-mobile{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.modal{padding:1rem}.modal-content{max-width:90%;margin:0 auto;border-radius:1rem}.modal-close{top:.5rem;right:.5rem}.form-control{padding:.75rem;font-size:1rem}.form-label{font-size:.875rem}.alert{padding:.75rem 1rem;font-size:.875rem}.card-hover{transition:all .3s ease;border:1px solid #e5e7eb;border-radius:1.5rem;overflow:hidden}.card-hover:hover{transform:translateY(-8px);box-shadow:0 25px 50px -12px #00000040,0 10px 10px -5px #0000001a}}.services-grid{grid-template-columns:repeat(3,1fr);gap:2rem;margin:0 -1rem}.services-grid .card-hover{margin:1rem;border-radius:1.5rem;padding:2rem}@media (max-width: 768px){.services-grid{grid-template-columns:1fr;gap:1.5rem;margin:0}.services-grid .card-hover{margin:0;padding:1.5rem}}@media (min-width: 769px) and (max-width: 1024px){.services-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:0 -.5rem}.services-grid .card-hover{margin:.5rem;padding:1.5rem}}h1{font-size:2.25rem}h2{font-size:1.875rem}h3{font-size:1.5rem}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}.grid-cols-6{grid-template-columns:repeat(3,1fr)}@media (hover: none) and (pointer: coarse){.card-hover{transition:none}.card-hover:active{transform:scale(.98)}button,.btn{min-height:44px}.touch-target{min-height:44px;min-width:44px}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.spinner{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #059669;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:4rem 2rem;color:#94a3b8}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#374151}.empty-state-description{font-size:1rem;line-height:1.6;margin-bottom:2rem}.search-container{position:relative}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#94a3b8;z-index:10}.search-input{padding-left:3rem;padding-right:1rem;border-radius:2rem;border:1px solid #d1d5db;background-color:#fff;transition:all .3s ease}.search-input:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #0596691a}.modal-overlay{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;border-radius:1.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;max-height:90vh}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-body{padding:1.5rem;overflow-y:auto;max-height:60vh}.modal-footer{padding:1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;transition:color .2s ease}.modal-close:hover{color:#374151}.image-container{position:relative;overflow:hidden;border-radius:.75rem}.image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.image-container:hover .image{transform:scale(1.05)}.image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);display:flex;align-items:flex-end;padding:1rem;color:#fff;opacity:0;transition:opacity .3s ease}.image-container:hover .image-overlay{opacity:1}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-success{background-color:#dcfce7;color:#166534}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-error{background-color:#fee2e2;color:#991b1b}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s ease;min-height:44px}.btn-primary{background-color:#059669;color:#fff}.btn-primary:hover{background-color:#047857;transform:translateY(-1px)}.btn-secondary{background-color:#f3f4f6;color:#374151}.btn-secondary:hover{background-color:#e5e7eb}.btn-outline{background-color:transparent;color:#059669;border:1px solid #059669}.btn-outline:hover{background-color:#059669;color:#fff}.card{background:#fff;border-radius:1rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;transition:all .3s ease;overflow:hidden}.card:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;transform:translateY(-2px)}.card-header{padding:1.5rem;border-bottom:1px solid #e5e7eb}.card-body{padding:1.5rem}.card-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:600;color:#374151}.form-control{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.5rem;background-color:#fff;transition:all .3s ease}.form-control:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #0596691a}.form-control::placeholder{color:#94a3b8}.form-text{margin-top:.25rem;font-size:.875rem;color:#94a3b8}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb}.table th{font-weight:600;color:#242424;background-color:#f9fafb}.table tbody tr:hover{background-color:#f9fafb}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.filter-btn{cursor:pointer;-webkit-user-select:none;user-select:none}.filter-btn:focus{outline:2px solid #059669;outline-offset:2px}.gallery-card{transition:all .3s ease;cursor:pointer}.gallery-card:hover{transform:translateY(-5px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1024px){.container{padding-left:2rem;padding-right:2rem}}
