html {box-sizing: border-box; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}
*,*::before,*::after{box-sizing:inherit}
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;}
body{margin:0;font-size:16px;line-height:1.5;color:rgba(17,24,39,1);background-color:white;}
img{max-width:100%;height:auto;display:block;object-fit:cover}
button, a, input, textarea, select{font-family:inherit}
.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}}
.iconify{display:inline-block;vertical-align:middle}
.iconify:focus{outline:none}
[role="dialog"]{outline:none}
.focus-ring{outline:2px solid transparent;box-shadow:0 0 0 4px rgba(0,191,255,0.15);border-radius:0.5rem}
:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,191,255,0.15);border-radius:0.375rem}
.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}
.no-scroll{overflow:hidden;height:100vh}
/* mobile menu transitions */
#mobileMenu{transition:opacity 320ms ease, transform 320ms ease}
#mobileMenu.hidden{opacity:0;pointer-events:none}
#mobileMenu.show{opacity:1}
#mobileBackdrop{transition:opacity 320ms ease}
#mobileMenu .relative{transform:translateX(0);transition:transform 360ms cubic-bezier(.2,.8,.2,1)}
@media (max-width:1023px){#mobileMenu .relative{width:min(420px,92vw);transform:translateX(-8px)}}
/* interactive card hover */
.card-hover{transition:transform 220ms ease, box-shadow 220ms ease}
.card-hover:hover{transform:translateY(-6px)}
/* buttons */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.1rem;border-radius:1rem;font-weight:600}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-ghost{background:transparent;border-width:1px}
/* cookie dialog subtle animation */
@keyframes cookieIn{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:none}}
#cookieConsent{animation:cookieIn 420ms ease both}
/* forms */
input[type="text"],input[type="email"],input[type="tel"],textarea,select{border:1px solid rgba(226,232,240,1);padding:.6rem .75rem;border-radius:.5rem;background:white}
input:focus,textarea:focus,select:focus{box-shadow:0 0 0 4px rgba(0,191,255,0.12);border-color:rgba(0,153,204,0.9);outline:none}
.form-error{color:#b91c1c;background:#fff1f2;padding:.5rem;border-radius:.5rem;border:1px solid rgba(185,28,28,0.08)}
.form-success{color:#065f46;background:#ecfdf5;padding:.5rem;border-radius:.5rem;border:1px solid rgba(6,95,70,0.06)}
/* modal common */
.modal-backdrop{position:fixed;inset:0;background-color:rgba(0,0,0,0.5);backdrop-filter:blur(6px);z-index:60}
.modal-panel{background:white;border-radius:1rem;max-width:900px;margin:3rem auto;padding:1.25rem;box-shadow:0 10px 30px rgba(2,6,23,0.2)}
/* responsive layout helpers consistent with Tailwind grid 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-12{grid-template-columns:repeat(12,minmax(0,1fr))}}
/* ensure footer links have sufficient contrast */
footer a{color:rgba(17,24,39,1);text-decoration:none}
footer a:hover{text-decoration:underline}
/* small utility for visually balancing hero and media */
.hero-media{border-radius:1rem;overflow:hidden}
/* accessible skip link */
.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;background:#fff;border-radius:.25rem;box-shadow:0 4px 20px rgba(2,6,23,0.08);padding:.5rem .75rem}
/* ensure footer contact details are readable on small devices */
.footer-contact{font-size:0.95rem;color:rgba(55,65,81,1)}
/* small reduction for very small screens */
@media (max-width:360px){body{font-size:15px}}