:root{
  --brand-500:#5a67d8;
  --brand-600:#4b54b4;
  --focus-ring: 0 0 0 4px rgba(90,103,216,0.16);
  --surface-1:#ffffff;
  --text-1:#111827;
}
*{box-sizing:border-box}
html,body{height:100%}
body{font-family:Inter,ui-sans-serif,system-ui;line-height:1.5;color:var(--text-1);background-color:var(--surface-1);font-size:16px;-webkit-font-smoothing:antialiased}
img,video,iframe{max-width:100%;height:auto;display:block}
.iconify{display:inline-block;vertical-align:middle}
a,button{transition:all .18s ease}
:focus{outline:none}
:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:0.5rem}
button, a[role="button"]{cursor:pointer}
button[disabled],.disabled{opacity:.6;cursor:not-allowed}
.container{max-width:1200px;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:2.5rem;padding-right:2.5rem}}
.card-hover{transition:transform .28s cubic-bezier(.22,.9,.27,1),box-shadow .28s}
.card-hover:hover,.card-hover:focus-within{transform:translateY(-6px);box-shadow:0 20px 40px rgba(15,23,42,0.12)}
.rounded-2xl{border-radius:1rem}
.rounded-xl{border-radius:.75rem}
.shadow-md{box-shadow:0 8px 20px rgba(15,23,42,0.06)}
.shadow-lg{box-shadow:0 20px 40px rgba(15,23,42,0.08)}
.bg-contrast{background:linear-gradient(135deg,rgba(90,103,216,0.08),rgba(236,72,153,0.04))}
.text-contrast{color:#0f172a}
.header-sticky{position:sticky;top:0;z-index:40}
/* mobile menu transitions handled by attribute selectors to avoid JS-only classes */
#mobileMenu{display:none}
#mobileMenu[aria-hidden="false"]{display:block}
#mobileMenu #mobilePanel{transform:translateY(12px);opacity:0;transition:transform .28s cubic-bezier(.22,.9,.27,1),opacity .28s;max-width:420px}
#mobileMenu[aria-hidden="false"] #mobilePanel{transform:translateY(0);opacity:1}
#mobileBackdrop{opacity:0;transition:opacity .28s}
#mobileMenu[aria-hidden="false"] #mobileBackdrop{opacity:1}
.scroll-lock{overflow:hidden;height:100%}
.cookie-hidden{display:none !important}
#cookieConsent{max-width:420px;background:var(--surface-1);border-radius:1rem;box-shadow:0 12px 40px rgba(2,6,23,0.08);padding:1rem;display:flex;align-items:flex-start;gap:0.75rem;animation:slideUp .42s ease both}
@keyframes slideUp{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:translateY(0)}}
/* ensure clear focus outlines for interactive list items */
nav a:focus-visible,nav button:focus-visible{box-shadow:var(--focus-ring);border-radius:.5rem}
/* Buttons with gradients already use white text in markup; ensure sufficient contrast of focus ring */
.btn-focus{box-shadow:var(--focus-ring)}
/* Utility for accessible hidden headings for screen readers */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ensure footer links have adequate hit area */
footer a{display:inline-block;padding:4px 0}
/* subtle decorative motion for iconify icons used decoratively */
.icon-decorative{transition:transform .6s ease,opacity .6s ease}
.icon-decorative:hover{transform:translateY(-4px) rotate(-4deg);opacity:.95}
/* Accessibility: increase tappable area for small controls */
button.small, .small-btn{padding:.5rem .75rem}
/* Ensure images cover containers without overflow */
img.object-cover{object-fit:cover}
/* form validation states */
.input-error{border-color:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,0.06)}
.input-success{border-color:#16a34a;box-shadow:0 0 0 4px rgba(16,163,127,0.06)}
/* keyboard focus visible for links styled as buttons */
a[role="button"]:focus-visible{box-shadow:var(--focus-ring)}
/* utility for visually prominent headings on dark gradients */
.heading-contrast{color:var(--text-1);text-shadow:0 1px 0 rgba(255,255,255,0.02)}
/* responsive grid helpers aligning with tailwind usage */
.grid-cols-1{grid-template-columns:repeat(1, minmax(0,1fr))}
@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0,1fr))}}
@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0,1fr))}}
/* ensure interactive accordions, modals and panels have visible focus */
.panel:focus-within{box-shadow:0 6px 30px rgba(15,23,42,0.06)}
/* ensure high contrast text on dark backgrounds */
.text-on-dark{color:#f9fafb}
/* ensure no overflow issues on small screens */
html,body{overflow-x:hidden}
