html {font-size:16px;}
:root {color-scheme: light dark;}
* {box-sizing: border-box;}
body {min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img {max-width:100%;height:auto;display:block;object-fit:cover}
button, a, input, textarea {font-family:inherit}
h1, h2, h3, h4, h5, h6 {line-height:1.15}
:focus {outline: none}
:focus-visible {outline: none; box-shadow: 0 0 0 4px rgba(99,102,241,0.18); border-radius:8px}
.container {max-width:1200px}
header a, footer a {text-decoration: none}
header {backdrop-filter: blur(6px)}
/* mobile menu visibility helpers */
#mobileMenu[aria-hidden="true"] {display:none}
#mobileMenu {display:block}
#mobileMenu .animate-slide-up {animation: slideUp 520ms cubic-bezier(.22,.9,.38,1) both}
@keyframes slideUp {0% {opacity:0; transform: translateY(18px)} 100% {opacity:1; transform: translateY(0)}}
@keyframes cookiePulse {0% {transform: translateY(0)} 50% {transform: translateY(-3px)} 100% {transform: translateY(0)}}
#cookieConsent {animation: cookiePulse 3500ms ease-in-out infinite; will-change: transform}
.card-focus:focus-visible {box-shadow: 0 6px 18px rgba(99,102,241,0.12); transform: translateY(-4px)}
.rounded-2xl {border-radius:1rem}
.rounded-xl {border-radius:0.75rem}
.shadow-md {box-shadow: 0 6px 18px rgba(15,23,42,0.06)}
.shadow-lg {box-shadow: 0 12px 30px rgba(15,23,42,0.08)}
.btn-primary {display:inline-flex;align-items:center;gap:0.5rem;padding:0.75rem 1.25rem;border-radius:0.75rem;font-weight:600}
.btn-primary:disabled {opacity:0.6;cursor:not-allowed}
.btn-outline {background:transparent;border:1px solid rgba(148,163,184,0.18);padding:0.7rem 1.15rem;border-radius:0.75rem}
.header-logo {display:flex;align-items:center;gap:0.5rem}
.hero-media {border-radius:1rem;overflow:hidden}
.grid-responsive {display:grid;grid-template-columns:repeat(1,1fr);gap:1.25rem}
@media (min-width:640px) { .grid-responsive {grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px) { .grid-responsive {grid-template-columns:repeat(12,1fr)} }
.card {background-color:var(--tw-bg-opacity, 1);transition:transform 220ms ease, box-shadow 220ms ease}
.card:hover, .card:focus-within {transform: translateY(-6px)}
.header-sticky {position:sticky;top:0;z-index:40}
.focus-ring {box-shadow: 0 0 0 4px rgba(99,102,241,0.14);border-radius:8px}
.iconify {vertical-align:middle}
footer address {white-space:pre-line}
.form-input {width:100%;padding:0.75rem;border-radius:0.5rem;border:1px solid rgba(148,163,184,0.12);background-color:#fff}
.form-input:focus-visible {box-shadow: 0 6px 18px rgba(99,102,241,0.12);border-color:rgba(99,102,241,0.6)}
.error-message {color:#dc2626;font-size:0.95rem;margin-top:0.5rem}
.success-message {color:#16a34a;font-size:0.95rem;margin-top:0.5rem}
.modal {position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1.25rem}
.modal-backdrop {position:fixed;inset:0;background:rgba(2,6,23,0.45);backdrop-filter: blur(4px)}
.modal-panel {background:white;border-radius:1rem;padding:1.25rem;max-width:720px;width:100%;box-shadow:0 14px 40px rgba(2,6,23,0.18)}
@media (prefers-reduced-motion: reduce) { * {animation-duration: 0.01ms !important; animation-iteration-count: 1 !important} }
.skip-link {position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus {left:1rem;top:1rem;width:auto;height:auto;padding:0.5rem 0.75rem;background:white;border-radius:6px;box-shadow:0 6px 18px rgba(15,23,42,0.08)}
.burger-btn {display:inline-flex;align-items:center;justify-content:center;padding:0.5rem;border-radius:8px}
.lock-scroll {height:100vh;overflow:hidden}
.small-text {font-size:0.95rem;color:#475569}
.footer-grid {display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:768px) { .footer-grid {grid-template-columns:repeat(3,1fr)} }
.hero-heading {font-family: 'Merriweather', serif}
.card-title {font-weight:600}
.icon-decorative {opacity:0.95;transition:transform 320ms ease, opacity 320ms ease}
.icon-decorative:hover, .icon-decorative:focus {transform: rotate(6deg) scale(1.03);opacity:1}
.badge {display:inline-flex;align-items:center;gap:0.5rem;padding:0.35rem 0.6rem;border-radius:9999px;background:linear-gradient(90deg,#eef2ff,#f0f9ff);font-size:0.85rem}
.visually-hidden {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
