html { scroll-behavior: smooth; }
body { margin: 0; background: #F4F6F9; }
* { box-sizing: border-box; }
a { color: #0066FF; text-decoration: none; }
input, textarea, select, button { font-family: 'IBM Plex Sans', sans-serif; }
input:focus, textarea:focus, select:focus { outline: 2px solid #0066FF; outline-offset: 1px; }

/* nav links */
.nav-link { color: #9FB2C6; }
.nav-link.active { color: #FFFFFF; }
.nav-link:hover { color: #FFFFFF; }

.mobile-nav-link { color: #9FB2C6; }
.mobile-nav-link.active { color: #FFFFFF; }

.footer-link, .footer-cap-link { color: #9FB2C6; }
.footer-link:hover, .footer-cap-link:hover { color: #FFFFFF; }

.footer-phone { color: #FFFFFF; }
.footer-phone:hover { color: #0066FF; }

.footer-bottom-link { color: #7C90A6; }
.footer-bottom-link:hover { color: #FFFFFF; }

.hero-cta { background: #0066FF; color: #FFFFFF; transform: translateY(0); transition: background .25s, transform .25s, color .25s; }
.hero-cta:hover { background: #FFFFFF; color: #003A7A; transform: translateY(-2px); }

.service-card { background: #FFFFFF; transition: background .3s, transform .3s; transform: translateY(0); }
.service-card:hover { background: #0A1B2E; transform: translateY(-2px); }
.service-card:hover .service-card-title,
.service-card:hover .service-card-desc { color: #FFFFFF; }

.outline-link { border: 1px solid #D6DEE8; color: #0A1B2E; transition: border-color .2s, color .2s; }
.outline-link:hover { border-color: #0066FF; color: #0066FF; }

.contact-phone { color: #FFFFFF; }
.contact-phone:hover { color: #0066FF; }

.muted-link { color: #C3CFDC; }
.muted-link:hover { color: #0066FF; }

.lang-btn { border: none; cursor: pointer; transition: background .2s, color .2s; }

[data-reveal] { will-change: opacity, transform; }

/* fluid grids stay inline via clamp()/minmax(); just a couple of small helpers */
.faq-answer, .legal-answer { overflow: hidden; transition: max-height .35s ease, opacity .3s ease; }
