/* Fonts: Boxed Heavy */
@font-face {
	font-family: "Boxed Heavy";
	src: url("fonts/Boxed-Heavy.woff2") format("woff2"),
		 url("fonts/Boxed-Heavy.woff") format("woff");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
  }
  @font-face {
	font-family: "Boxed Heavy";
	src: url("fonts/Boxed-Heavy.woff2") format("woff2"),
		 url("fonts/Boxed-Heavy.woff") format("woff");
	font-style: normal;
	font-weight: 700; /* use same file if single weight */
	font-display: swap;
  }
  
  /* Base */
  body {
	font-family: "Boxed Heavy", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	color: #3a3f52;
  }
  
  h2 { font-size: 44px; font-weight: 700; }
  h3 { font-size: 24px; font-weight: 500; margin-bottom: 25px; }
  h5 { font-size: 16px; }
  
  p {
	font-size: 14px;
	font-weight: 400;
	letter-spacing: .05em;
	color: #53627C;
  }
  
  ul { list-style-type: none; padding-left: 0; }
  b { font-weight: 700; }
  section { padding: 100px 0; }
  
  /* Titles */
  .title-block {
	max-width: 700px;
	margin: 0 auto 30px;
	text-align: center;
  }
  .title-block p { font-size: 20px; font-weight: 300; color: #8da2b5; margin-bottom: 0; }
  
  /* Dividers */
  .divider { padding: 2rem 0 0; margin: 2rem 0 0; border-top: 1px solid #3c3f45; }
  .divider-light { padding: 2rem 0 0; margin: 2rem 0 0; border-top: 1px solid #edf1f2; }
  
  /* Navbar */
  .custom-navbar {
	background-color: #ffffff!important;
	box-shadow: 0 2px 4px 0 rgba(0,0,0,.09);
	height: 70px;
	max-height: 70px;
  }
  .navbar-toggler { font-size: 40px; background-color: transparent; }
  .navbar-toggler:focus { text-decoration: none; outline: none; }
  .navbar-toggler-icon { color: #ffffff; }
  .navbar-collapse { background-color: #ffffff; }
  .nav-custom-link { font-size: 18px; font-weight: 400; letter-spacing: .05em; margin-top: 15px; }
  .navbar a { color: #53627C !important; }
  .nav-right { float: right; }
  
  /* Optional logo visibility fallback (Bootstrap classes already handle this) */
  .nav-logo-mobile { display: none; }
  @media (max-width: 991.98px) {
	.nav-logo-mobile { display: block; }
	.nav-logo-desktop { display: none; }
  }
  @media (min-width: 992px) {
	.nav-logo-desktop { display: block; }
  }
  
  /* Buttons */
  .btn { font-size: 14px; font-weight: 400; border-radius: 3px!important; box-shadow: 0 2px 3px 0 rgba(0,0,0,.05), 0 1px 2px 0 rgba(0,0,0,.08); }
  .btn:hover { text-decoration: none; }
  .btn-regular { background-color: #0095f7; color: #ffffff; padding: 10px 25px; letter-spacing: .1em; margin-top: 25px; display: inline-block; }
  .btn-regular:hover { background-color: #0191f0; color: #ffffff; }
  .btn-demo { color: #ffffff; background-color: #6772e5; letter-spacing: .1em; padding: 15px 48px; display: inline-block; width: 100%; margin-top: 20px; }
  .btn-demo:hover { color: #ffffff; background-color: #636ee1; }
  .btn-demo-small { font-size: 12px; background-color: #6772e5; padding: 1px 4px; }
  .btn-demo-small:hover { background-color: #636ee1; }
  .btn-demo-small a { color: #ffffff!important; }
  .btn-buy { color: #ffffff; background-color: #0095f7; letter-spacing: .1em; padding: 15px 48px; display: inline-block; width: 100%; margin-top: 20px; }
  .btn-buy:hover { background-color: #0191f0; color: #ffffff; }
  
  /* Hero */
  #hero { background-color: #f6f8f9; }
  #hero h1 { font-size: 50px; font-weight: 300; }
  #hero p { font-size: 24px; font-weight: 300; color: #8da2b5; margin-bottom: 0; padding: 0; }
  #hero span { font-weight: 400; color: #0095f7; text-transform: uppercase; letter-spacing: .05em; }
  
  /* Marketing */
  #marketing p { font-size: 20px; font-weight: 300; color: #8da2b5; margin-bottom: 0; padding: 0; }
  #marketing span { font-weight: 400; color: #0095f7; text-transform: uppercase; letter-spacing: .05em; }
  .content-box { padding: 60px 20px; }
  
  /* Palvelut (services) */
  #palvelut { background-color: #ffffff; }
  #palvelut .card { border: none; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.08); }
  #palvelut .card + .card { margin-left: 1rem; }
  #palvelut .card img {
	height: 120px; width: 100%; object-fit: cover;
	border-top-left-radius: 10px; border-top-right-radius: 10px;
  }
  #palvelut .card-title { font-size: 18px; font-weight: 700; color: #3a3f52; }
  #palvelut .card-text { font-size: 14px; color: #53627C; }
  
  /* Partners (auto-scrolling logos) */
  #kumppanit { background-color: #ffffff; padding-top: 40px; padding-bottom: 80px; }
  .partner-rail { position: relative; overflow: hidden; max-width: 100%; padding: 10px 0; }
  .partner-track {
	display: flex; align-items: center; gap: 48px; width: max-content;
	animation: partners-marquee 28s linear infinite;
  }
  .partner-track img {
	height: 56px; width: auto; object-fit: contain;
	filter: grayscale(100%); opacity: 0.8;
	transition: filter .2s ease, opacity .2s ease, transform .2s ease;
	user-select: none; pointer-events: none;
  }
  .partner-rail:hover .partner-track { animation-play-state: paused; }
  .partner-track img:hover { filter: grayscale(0%); opacity: 1; transform: scale(1.02); }
  .partner-rail::before, .partner-rail::after {
	content: ""; position: absolute; top: 0; width: 80px; height: 100%;
	pointer-events: none; z-index: 2;
  }
  .partner-rail::before { left: 0; background: linear-gradient(to right, #fff, rgba(255,255,255,0)); }
  .partner-rail::after  { right: 0; background: linear-gradient(to left, #fff, rgba(255,255,255,0)); }
  @keyframes partners-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @media (min-width: 992px) { .partner-track img { height: 72px; } }
  @media (prefers-reduced-motion: reduce) { .partner-track { animation: none; } }
  
  /* Testimonials */
  #testimonials { background-color: #f6f8f9; border-top: 1px solid #F8F9FB; border-bottom: 1px solid #F8F9FB; }
  .testimonial-box {
	background-color: #ffffff;
	box-shadow: 0 0 1px 0 rgba(0,12,32,0.04), 0 10px 16px 0 rgba(10,31,68,0.06);
	border-radius: 20px; padding: 20px 30px; margin-top: 30px;
  }
  .testimonial-box h6 { font-size: 22px; font-weight: 700; letter-spacing: .05em; margin-top: 5px; margin-bottom: 0; }
  .testimonial-box p { font-size: 16px; font-weight: 300; margin-top: 25px; line-height: 1.8; padding: 0; }
  .testimonial-box i { color: #ffffff; }
  .testimonial-box small { color: #8da2b5; }
  
  /* Footer */
  footer { background-color: #ffffff; padding: 60px 0; }
  footer h5 { font-size: 18px; margin-top: 30px; }
  footer p  { font-size: 16px; }
  footer li { font-size: 16px; margin-bottom: 15px; }
  footer a { color: #0095f7; text-decoration: none; }
  footer a:hover { color: #007ad1; text-decoration: underline; }
  footer i { font-size: 30px; margin-right: 20px; }
  footer small { display: block; margin-top: 20px; }
  
  /* ==============================================
	 Media Queries
  ===============================================*/
  @media (max-width: 575.98px) {
	h2 { font-size: 34px!important; margin-bottom: 20px; line-height: 1.6; }
	.title-block h2, .title-block p { text-align: left; padding: 0 20px; }
	#call-to-action h2, #call-to-action p { text-align: left!important; padding: 0 20px; }
	#call-to-action { background-image: none; background-color: #0095f7; }
	footer { padding: 60px 25px; }
	footer h5 { font-size: 18px; margin-top: 30px; }
	footer li, footer p { font-size: 16px; }
	footer i { font-size: 30px; margin-right: 20px; }
  }
  
  @media (max-width: 768px) {
	#hero h1 { font-size: 34px!important; margin-bottom: 20px; }
	#hero p { font-size: 20px!important; }
  }
  
  @media (max-width: 991px) {
	.nav-right { float: left; }
	.nav-custom-link { border-bottom: 1px solid #EEE; }
	.navbar-nav { width: 100%; }
  }