:root {
    --green: #ADCE3A; --green-dark: #8fab1f; --navy: #2c3e5a; --teal: #5BBCD0;
    --gray-light: #f4f4f2; --gray-mid: #e0e0de; --text: #333; --text-light: #666; --white: #ffffff;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'Source Sans 3',sans-serif; color:var(--text); overflow-x:hidden; }

  .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;
  }

  /* NAV */
  nav#main-nav { position:fixed; top:0; left:0; right:0; z-index:1000; background:var(--navy); padding:0 40px; height:62px; display:flex; align-items:center; justify-content:space-between; transition:background 0.3s,box-shadow 0.3s; }
  nav#main-nav.scrolled { background:var(--teal); box-shadow:0 2px 20px rgba(0,0,0,0.2); }
  .nav-links { display:flex; align-items:center; gap:30px; list-style:none; }
  .nav-links a { color:var(--white); text-decoration:none; font-family:'Oswald',sans-serif; font-size:13.5px; letter-spacing:1.2px; font-weight:600; transition:color 0.2s; }
  .nav-links a:hover { color:var(--green); }
  nav#main-nav .mobile-lang-switch { display:none; }
  .lang-flags { display:flex; align-items:center; gap:8px; }
  .lang-btn { background:none; border:none; cursor:pointer; padding:2px; opacity:0.6; transition:opacity 0.2s; line-height:1; border-radius:2px; }
  .lang-btn img { display:block; border-radius:2px; height:14px; width:auto; }
  .lang-btn.active { opacity:1; }
  .lang-btn:hover { opacity:1; }

.desktop-lang-switch {
  display:flex;
}

@media (max-width:900px) {
  .desktop-lang-switch {
    display:none;
  }
}

  .nav-toggle {
    display:none;
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.08);
    border-radius:10px;
    cursor:pointer;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    padding:0;
  }
  .nav-toggle span {
    width:20px;
    height:2px;
    background:var(--white);
    border-radius:2px;
    transition:transform 0.25s ease, opacity 0.25s ease;
  }
  nav#main-nav.nav-open .nav-toggle span:nth-child(1) {
    transform:translateY(7px) rotate(45deg);
  }
  nav#main-nav.nav-open .nav-toggle span:nth-child(2) {
    opacity:0;
  }
  nav#main-nav.nav-open .nav-toggle span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg);
  }

  /* HERO */
  #hero { position:relative; height:100vh; min-height:620px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
  .hero-bg { position:absolute; inset:0; background-image:url('../../images/teniso-treneris-900.jpg'); background-size:cover; background-position:center 30%; }
  .hero-overlay { position:absolute; inset:0; background:rgba(15,25,35,0.35); }
  .hero-content { position:relative; z-index:2; max-width:700px; padding:0 20px; animation:fadeInUp 1s ease both; }
  .hero-logo { margin-bottom:28px; }
  .hero-logo img { width:140px; filter:drop-shadow(0 4px 20px rgba(0,0,0,0.5)); }
  .hero-text { color:var(--white); font-size:18px; font-weight:300; line-height:1.75; margin-bottom:34px; text-shadow:0 2px 12px rgba(0,0,0,0.6); }
  .btn-hero { display:inline-block; border:2px solid rgba(255,255,255,0.85); color:var(--white); padding:12px 38px; font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:2px; text-decoration:none; transition:all 0.3s; background:transparent; cursor:pointer; }
  .btn-hero:hover { background:rgba(255,255,255,0.15); transform:translateY(-2px); }
  .hero-socials { margin-top:30px; display:flex; justify-content:center; gap:22px; }
  .hero-socials a { color:rgba(255,255,255,0.75); font-size:20px; transition:color 0.2s,transform 0.2s; text-decoration:none; }
  .hero-socials a:hover { color:var(--white); transform:translateY(-3px); }
  .hero-arrow { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,0.6); font-size:24px; animation:bounce 2s infinite; z-index:2; text-decoration:none; }

  /* SECTIONS */
  section { padding:80px 40px; scroll-margin-top: 150px; }
  .section-header {padding:26px 40px; text-align:center; border-top:1px solid var(--gray-mid);  background:  #EAF2F6;   border-top: 1px solid rgba(0,0,0,0.04);   border-bottom: 1px solid rgba(0,0,0,0.04); }
  .section-header h2 { font-family:'Oswald',sans-serif; font-size:28px; font-weight:700; color:var(--navy); letter-spacing:4px; }
  .section-title { font-family:'Oswald',sans-serif; font-size:34px; font-weight:700; text-align:center; color:var(--navy); letter-spacing:3px; margin-bottom:50px; }

  /* NEWS */
  #news { background: linear-gradient(180deg,#ffffff 0%,#f7f9fc 100%); }
  .news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; max-width:1200px; margin:0 auto 48px; }
  .news-card { border-radius:12px; overflow:hidden; background:var(--white); box-shadow:0 2px 15px rgba(0,0,0,0.08); transition:transform 0.3s,box-shadow 0.3s; display:block; text-decoration:none; color:inherit; }
  .news-card:hover { transform:translateY(-6px); box-shadow:0 12px 35px rgba(0,0,0,0.15); }
  .news-card-img { width:100%; height:220px; object-fit:cover; display:block; }
  .news-card-body { padding:20px; }
  .news-card-title { font-family:'Oswald',sans-serif; font-size:14px; font-weight:600; letter-spacing:0.8px; color:var(--navy); margin-bottom:8px; text-transform:uppercase; text-align:center; }
  .news-card-date { text-align:center; font-size:13px; color:var(--text-light); margin-bottom:12px; }
  .news-card-date i { margin-right:4px; }
  .news-card-text { font-size:14px; line-height:1.65; color:var(--text); }
  .btn-green { display:block; width:fit-content; margin:0 auto; background:var(--green); color:var(--navy); padding:13px 42px; font-family:'Oswald',sans-serif; font-size:15px; font-weight:600; letter-spacing:2px; text-decoration:none; border-radius:3px; transition:background 0.2s,transform 0.2s; border:none; cursor:pointer; }
  .btn-green:hover { background:var(--green-dark); transform:translateY(-2px); }

  /* ABOUT */
  #about {  background:    linear-gradient(      135deg,      #f4f7fa 0%,      #eef3f7 100%    );	 text-align:center;}
  .about-inner {  max-width:900px; margin:0 auto;}
  .about-photo { width:100%; max-width:720px; border-radius:12px; margin:0 auto 28px; display:block; object-fit:cover; max-height:480px; }
  .about-subtitle { font-family:'Oswald',sans-serif; color:var(--green-dark); font-size:22px; font-weight:600; margin-bottom:12px; }
  .about-lead { font-size:18px; line-height:1.75; color:var(--text); margin-bottom:32px; }
  .about-lists { text-align:left; display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:24px; }
  .about-list h4 { font-family:'Oswald',sans-serif; font-size:15px; font-weight:600; letter-spacing:1px; margin-bottom:10px; color:var(--navy); }
  .about-list p { font-size:14px; line-height:2.1; color:var(--text); }

  /* COACHES */
  #coaches { background:var(--white); padding-top:20px; }
  .coaches-title { font-family:'Oswald',sans-serif; font-size:30px; text-align:center; letter-spacing:4px; color:var(--navy); margin-bottom:48px; padding-top:10px; }
  .coaches-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:36px; max-width:1150px; margin:0 auto; }
  .coach-card { text-align:center; }
  .coach-photo { width:100%; aspect-ratio:3/4; object-fit:cover; object-position:top; border-radius:12px; margin-bottom:18px; display:block; }
  .coach-name { font-family:'Oswald',sans-serif; font-size:16px; letter-spacing:2px; color:var(--navy); margin-bottom:12px; }
  .coach-text { font-size:13px; line-height:1.7; color:var(--text); text-align:justify; }
  .coach-text strong { font-weight:600; }

  /* TRAINING */
  #training { position:relative; background:var(--gray-light); overflow:hidden; }
section#training {  scroll-margin-top: 40px; }
  .training-bg-dots { position:absolute; inset:0; background-image:radial-gradient(circle,#ccc 1px,transparent 1px); background-size:28px 28px; opacity:0.4; pointer-events:none; }
  .training-inner { position:relative; max-width:980px; margin:0 auto; text-align:center; }
  .training-lead { font-size:16px; line-height:1.75; margin-bottom:14px; color:var(--text); }
  .training-contact-line { font-style:italic; font-size:15px; color:var(--text); margin-bottom:48px; font-weight:600; }
  .training-contact-line a { color:var(--teal); text-decoration:none; }
  .training-subtitle { font-family:'Oswald',sans-serif; font-size:22px; font-weight:700; margin-bottom:40px; color:var(--navy); }
  .training-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px 70px; text-align:center; }
  .training-item-icon { font-size:44px; color:var(--green-dark); margin-bottom:12px; }
  .training-item h3 { font-size:17px; font-weight:400; color:var(--text); margin-bottom:12px; }
  .training-item p { font-size:14px; line-height:1.7; color:var(--text); }

  /* GALLERY */
  #gallery { background:linear-gradient(     180deg,      #f8fafc 0%,      #edf2f7 100%    ); padding-top:60px; }
  .gallery-title { font-family:'Oswald',sans-serif; font-size:28px; font-weight:700; letter-spacing:3px; text-align:center; color:#555; margin-bottom:36px; }
  .gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:1100px; margin:0 auto; }
  .gallery-item { aspect-ratio:4/3; border-radius:12px; overflow:hidden; }
  .gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.4s; }
  .gallery-item:hover img { transform:scale(1.05); }

  /* REVIEWS */
  #reviews { background:var(--white); }
  .reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; max-width:1100px; margin:0 auto; }
  .review-quote { font-size:52px; color:var(--gray-mid); font-family:Georgia,serif; line-height:0.7; margin-bottom:8px; display:block; }
  .review-text { font-size:15px; line-height:1.75; color:var(--text); margin-bottom:20px; }
  .review-author { display:flex; align-items:center; gap:12px; }
  .review-avatar { width:48px; height:48px; border-radius:50%; overflow:hidden; flex-shrink:0; }
  .review-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
  .review-name { font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:1px; color:var(--navy); }

  /* CONTACTS DARK */
  #contacts { background-image:url('../../images/teniso-kontaktai.jpg'); background-size:cover; background-position:center; position:relative; padding:80px 40px; }
  #contacts::before { content:''; position:absolute; inset:0; background:rgba(18,18,18,0.83); }
  .contacts-inner { position:relative; z-index:1; max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.5fr; gap:80px; align-items:start; }
  .contacts-info h3 { font-family:'Oswald',sans-serif; font-size:28px; font-weight:700; margin-bottom:28px; color:var(--white); }
  .contacts-info p { font-size:15px; line-height:2.3; color:#ccc; }
  .contacts-info a { color:var(--green); text-decoration:none; }
  .contacts-form-title { font-size:17px; font-weight:300; color:var(--white); margin-bottom:24px; }
  .form-field { width:100%; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25); color:var(--white); padding:12px 16px; font-size:14px; font-family:'Source Sans 3',sans-serif; margin-bottom:14px; border-radius:2px; outline:none; transition:border-color 0.2s; }
  .form-field:focus { border-color:var(--teal); }
  .form-field::placeholder { color:rgba(255,255,255,0.5); }
  textarea.form-field { height:160px; resize:vertical; }
  .btn-send { width:100%; background:var(--green); border:none; color:var(--navy); font-family:'Oswald',sans-serif; font-size:16px; font-weight:600; letter-spacing:2px; padding:15px; cursor:pointer; margin-top:8px; transition:background 0.2s; }
  .btn-send:hover { background:var(--green-dark); }


  /* REGISTRATION */
  #registration { padding:60px 40px;  background:    linear-gradient(      135deg,      #f3f7fb 0%,      #edf2f7 100%    );}

  /* CONTACTS PAGE */
  #contacts-page { background:var(--white); padding:60px 40px; }
  .contacts-page-inner { position:relative; z-index:1;  max-width:1200px; margin:0 auto; }
  .contacts-page-info { margin-bottom:36px; font-size:15px; line-height:2.1; color:var(--white);}
  .contacts-page-info strong { font-weight:600; }
  .contacts-page-info a { color:var(--green); text-decoration:none; }
  .locations-title { font-size:22px; font-weight:300; margin-top:0; margin-bottom:24px; color:var(--white); }
  .location-entry { margin-bottom:28px; display:flex; flex-direction:column; }
  .location-entry h4 { font-weight:600; font-size:15px; margin-bottom:4px; color:var(--white);}
  .location-entry p { font-size:14px; line-height:1.85; color:var(--white); }
  .location-entry a { color:var(--green); text-decoration:none; }
  .locations-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; align-items:stretch; }
  .location-map { width:100%; height:220px; border:1px solid #ddd; border-radius:8px; overflow:hidden; margin-top:auto; }
  .location-map iframe { width:100%; height:100%; border:0; }

  footer { background:var(--navy); color:rgba(255,255,255,0.5); text-align:center; padding:22px 40px; font-size:13px; }
  footer a { color:var(--teal); text-decoration:none; }

  @keyframes fadeInUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
  @keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

  .lang-lt .en-text { display:none !important; }
  .lang-en .lt-text { display:none !important; }

  .mobile-lang-switch {
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid rgba(255,255,255,0.12);
  }
  .mobile-lang-switch .lang-flags {
    justify-content:center;
    margin:0;
  }

  @media (max-width:900px) {
    .news-grid,.reviews-grid,.gallery-grid,.training-grid,.about-lists,.locations-grid { grid-template-columns:1fr; }
    .coaches-grid { grid-template-columns:repeat(2,1fr); gap:24px; }
    .contacts-inner { grid-template-columns:1fr; gap:48px; }

    nav#main-nav {
      height:64px;
      padding:0 16px;
    }

    .nav-toggle {
      display:flex;
      order:3;
    }

    .nav-links {
      position:fixed;
      top:64px;
      left:16px;
      right:16px;
      display:flex;
      flex-direction:column;
      align-items:stretch;
      gap:0;
      padding:12px;
      background:rgba(44,62,90,0.96);
      backdrop-filter:blur(12px);
      border:1px solid rgba(255,255,255,0.12);
      border-radius:0;
      box-shadow:0 18px 45px rgba(0,0,0,0.25);
      opacity:0;
      visibility:hidden;
      transform:translateY(-10px);
      transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
    }

    nav#main-nav.nav-open .nav-links {
      opacity:1;
      visibility:visible;
      transform:translateY(0);
    }

    .nav-links li {
      width:100%;
    }

    .nav-links a {
      display:block;
      width:100%;
      padding:14px 16px;
      border-radius:0;
      font-size:15px;
      letter-spacing:1px;
    }

    .nav-links a:hover {
      background:rgba(255,255,255,0.08);
      color:var(--green);
    }

    nav#main-nav .mobile-lang-switch {
      display:block;
    }

    section { padding:60px 20px; }
  }
  @media (max-width:500px) {
    .coaches-grid { grid-template-columns:1fr; }
  }
  

#form-message,
#contact-form-message {
  margin-top:20px;
  font-weight:600;
  font-size:15px;
}

#form-message.success,
#contact-form-message.success {
  color:#8dc63f;
}

#form-message.error,
#contact-form-message.error {
  color:#ff4d4f;
}




/* NEWS DETAIL PAGE */
.news-page { max-width:800px; margin:0 auto; padding:100px 24px 60px; }
.news-back-btn { display:flex; align-items:center; gap:8px; background:none; border:none; cursor:pointer; font-family:'Oswald',sans-serif; font-size:14px; letter-spacing:1px; color:var(--navy); margin-bottom:32px; padding:0; text-decoration:none; }
.news-back-btn:hover { color:var(--teal); }
.news-full-img { width:100%; max-height:420px; object-fit:cover; border-radius:12px; margin-bottom:28px; display:block; }
.news-full-title { font-family:'Oswald',sans-serif; font-size:26px; font-weight:700; color:var(--navy); text-transform:uppercase; margin-bottom:12px; text-align:center; }
.news-full-date { text-align:center; font-size:13px; color:var(--text-light); margin-bottom:28px; }
.news-full-body { font-size:15px; line-height:1.85; color:var(--text); }
.news-full-body p { margin-bottom:16px; }
.news-full-body ul { padding-left:20px; margin-bottom:16px; }
.news-full-body ul li { margin-bottom:8px; }
.news-full-body a { color:var(--teal); }
.news-full-body strong { font-weight:700; }

/* MODERN REGISTRATION FORM */
.registration-inner {
  max-width: 760px;
  margin: 0 auto;
  background: #ffffff;
  border-radius: 28px;
  padding: 56px;
  box-shadow: 0 18px 50px rgba(44, 62, 90, 0.10);
}

.contacts-reg-title {
  font-size: 28px;
  line-height: 1.25;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 34px;
}

.contacts-reg-form input[type="text"],
.contacts-reg-form input[type="email"],
.contacts-reg-form input[type="tel"] {
  display: block;
  width: 100%;
  max-width: 520px;
  height: 58px;
  border: 1px solid #d8dee6;
  border-radius: 10px;
  padding: 0 18px;
  margin-bottom: 16px;
  font-size: 16px;
  font-family: 'Source Sans 3', sans-serif;
  color: var(--text);
  background: #fbfcfd;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.contacts-reg-form input[type="text"]:focus,
.contacts-reg-form input[type="email"]:focus,
.contacts-reg-form input[type="tel"]:focus {
  border-color: var(--teal);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(91, 188, 208, 0.16);
}

.radio-group,
.checkbox-group {
  margin-top: 24px;
  margin-bottom: 24px;
}

.radio-group > label,
.checkbox-group > label {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 14px;
}

.options {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.options label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 16px;
  border: 1px solid #d8dee6;
  border-radius: 999px;
  background: #fbfcfd;
  font-size: 15px;
  color: var(--text);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.options label:hover {
  border-color: var(--teal);
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(44, 62, 90, 0.06);
}

.options input[type="radio"],
.options input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--teal);
  margin: 0;
}

.btn-send-simple {
  margin-top: 16px;
  background: var(--green);
  color: var(--navy);
  border: none;
  border-radius: 10px;
  padding: 14px 34px;
  font-family: 'Oswald', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1.5px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.btn-send-simple:hover {
  background: var(--green-dark);
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(143, 171, 31, 0.22);
}

#form-message {
  margin-top: 18px;
}

@media (max-width: 768px) {
  .registration-inner {
    padding: 34px 22px;
    border-radius: 20px;
  }

  .contacts-reg-title {
    font-size: 24px;
  }

  .contacts-reg-form input[type="text"],
  .contacts-reg-form input[type="email"],
  .contacts-reg-form input[type="tel"] {
    max-width: 100%;
  }

  .options {
    flex-direction: column;
    gap: 10px;
  }

  .options label {
    width: 100%;
    border-radius: 12px;
  }

  .btn-send-simple {
    width: 100%;
  }
}
