/*
  Tavi Nexus — tavinexus.css
  A TiyaGolfClub template alapján, TaviNexus színekkel
*/

/*---------------------------------------
  CUSTOM PROPERTIES
-----------------------------------------*/
:root {
  --white-color:                  #ffffff;
  --primary-color:                #1AACAC;
  --secondary-color:              #1B3A5C;
  --section-bg-color:             #EAF6F6;
  --custom-btn-bg-color:          #1AACAC;
  --custom-btn-bg-hover-color:    #0D8A8A;
  --dark-color:                   #0d1b2a;
  --p-color:                      #5a6a7a;
  --link-hover-color:             #4EC9C9;

  --body-font-family:             'DM Sans', sans-serif;

  --h1-font-size:                 42px;
  --h2-font-size:                 36px;
  --h3-font-size:                 28px;
  --h4-font-size:                 24px;
  --h5-font-size:                 22px;
  --h6-font-size:                 20px;
  --p-font-size:                  18px;
  --menu-font-size:               16px;
  --btn-font-size:                14px;

  --border-radius-large:          100px;
  --border-radius-medium:         20px;
  --border-radius-small:          10px;

  --font-weight-normal:           400;
  --font-weight-medium:           500;
  --font-weight-bold:             700;
}

body {
  background-color: var(--white-color);
  font-family: var(--body-font-family);
}

/*---------------------------------------
  TYPOGRAPHY
-----------------------------------------*/
h2, h3, h4, h5, h6 {
  color: var(--dark-color);
}

h1, h2, h3, h4, h5, h6 {
  font-weight: var(--font-weight-medium);
  letter-spacing: -1px;
}

h1 { font-size: var(--h1-font-size); font-weight: var(--font-weight-bold); }
h2 { font-size: var(--h2-font-size); font-weight: var(--font-weight-bold); }
h3 { font-size: var(--h3-font-size); }
h4 { font-size: var(--h4-font-size); }
h5 { font-size: var(--h5-font-size); }
h6 { font-size: var(--h6-font-size); }

p {
  color: var(--p-color);
  font-size: var(--p-font-size);
  font-weight: var(--font-weight-normal);
}

ul li {
  color: var(--p-color);
  font-size: var(--p-font-size);
  font-weight: var(--font-weight-normal);
}

a, button { touch-action: manipulation; transition: all 0.3s; }

a {
  display: inline-block;
  color: var(--secondary-color);
  text-decoration: none;
}

a:hover { color: var(--link-hover-color); }

b, strong { font-weight: var(--font-weight-bold); }

/*---------------------------------------
  SECTION
-----------------------------------------*/
.section-bg { background-color: var(--section-bg-color); }

.section-padding {
  padding-top: 100px;
  padding-bottom: 100px;
}

.section-overlay {
  content: "";
  background: rgba(0,0,0,0) linear-gradient(rgba(27,58,92,0.15) 0%, rgb(27,58,92) 100%) repeat scroll 0% 0%;
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
}

::selection {
  background-color: var(--primary-color);
  color: var(--white-color);
}

/*---------------------------------------
  ANIMATED HEADLINE
-----------------------------------------*/
.cd-words-wrapper {
  display: inline-block;
  position: relative;
  text-align: left;
}

.cd-words-wrapper b {
  color: var(--link-hover-color);
  display: inline-block;
  position: absolute;
  white-space: nowrap;
  left: 0; top: 0;
}

.cd-words-wrapper b.is-visible { position: relative; }

.no-js .cd-words-wrapper b { opacity: 0; }
.no-js .cd-words-wrapper b.is-visible { opacity: 1; }

.cd-headline.rotate-1 .cd-words-wrapper {
  -webkit-perspective: 300px;
  perspective: 300px;
}

.cd-headline.rotate-1 b {
  opacity: 0;
  transform-origin: 50% 100%;
  transform: rotateX(180deg);
}

.cd-headline.rotate-1 b.is-visible {
  opacity: 1;
  transform: rotateX(0deg);
  animation: cd-rotate-1-in 1.2s;
}

.cd-headline.rotate-1 b.is-hidden {
  transform: rotateX(180deg);
  animation: cd-rotate-1-out 1.2s;
}

@keyframes cd-rotate-1-in {
  0%   { transform: rotateX(180deg); opacity: 0; }
  35%  { transform: rotateX(120deg); opacity: 0; }
  65%  { opacity: 0; }
  100% { transform: rotateX(360deg); opacity: 1; }
}

@keyframes cd-rotate-1-out {
  0%   { transform: rotateX(0deg);   opacity: 1; }
  35%  { transform: rotateX(-40deg); opacity: 1; }
  65%  { opacity: 0; }
  100% { transform: rotateX(180deg); opacity: 0; }
}

/*---------------------------------------
  CUSTOM BUTTON
-----------------------------------------*/
.custom-btn {
  background: var(--custom-btn-bg-color);
  border: 2px solid transparent;
  border-radius: var(--border-radius-large);
  color: var(--white-color);
  font-size: var(--btn-font-size);
  font-weight: var(--font-weight-bold);
  line-height: normal;
  transition: all 0.3s;
  padding: 10px 20px;
}

.custom-btn:hover {
  background: var(--custom-btn-bg-hover-color);
  color: var(--white-color);
}

.custom-border-btn {
  background: transparent;
  border: 2px solid var(--custom-btn-bg-color);
  color: var(--custom-btn-bg-color);
}

.custom-border-btn:hover {
  background: var(--custom-btn-bg-color);
  border-color: transparent;
  color: var(--white-color);
}

.custom-btn-bg-white {
  border-color: var(--white-color);
  color: var(--white-color);
}

.custom-btn-group .link {
  color: var(--white-color);
  font-weight: var(--font-weight-medium);
}

.custom-btn-group .link:hover { color: var(--link-hover-color); }

/*---------------------------------------
  NAVBAR & OFFCANVAS
-----------------------------------------*/
.offcanvas {
  background-color: var(--secondary-color);
  padding: 30px;
}

.offcanvas.offcanvas-end { border-left: 0; }

.offcanvas-header .btn-close { transition: all 0.3s; filter: invert(1); }
.offcanvas-header .btn-close:hover { transform: rotate(180deg); }

.offcanvas svg { position: absolute; bottom: 0; right: 0; left: 0; }

.offcanvas-title { color: var(--white-color); }

.navbar {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--secondary-color);
  box-shadow: 0 2px 16px rgba(0,0,0,0.25);
  padding-top: 15px;
  padding-bottom: 15px;
}

.navbar-brand,
.navbar-brand:hover {
  font-size: var(--h4-font-size);
  font-weight: var(--font-weight-bold);
  display: block;
  color: var(--white-color);
  max-width: 160px;
}

.navbar-brand-image {
  height: 52px;
  width: auto;
  border-radius: 10px;
  background: rgba(255,255,255,0.9);
  padding: 4px 8px;
}

.navbar-brand-text {
  line-height: normal;
  margin-left: 10px;
  position: relative;
  bottom: 5px;
  color: var(--white-color);
}

.navbar-brand-text small {
  display: block;
  font-size: 10px;
  line-height: 1;
  text-transform: uppercase;
  opacity: 0.7;
}

.navbar-expand-lg .navbar-nav .nav-link {
  border-radius: var(--border-radius-large);
  margin: 10px;
  padding: 10px;
}

.navbar-nav .nav-link {
  display: inline-block;
  color: var(--white-color);
  font-size: var(--menu-font-size);
  font-weight: var(--font-weight-medium);
  padding-top: 15px;
  padding-bottom: 15px;
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover { color: var(--link-hover-color); }

.navbar .dropdown-menu {
  background: var(--white-color);
  box-shadow: 0 8px 32px rgba(0,0,0,0.14);
  border: 0;
  border-radius: 12px;
  min-width: 10rem;
  margin-top: 0;
  padding: 8px 0;
}

.navbar .dropdown-menu::before { content: none; }

.navbar .dropdown-item {
  display: block;
  color: var(--p-color);
  font-size: var(--menu-font-size);
  font-weight: var(--font-weight-medium);
  padding: 9px 20px;
  white-space: nowrap;
}

.navbar .dropdown-item.active,
.navbar .dropdown-item:active,
.navbar .dropdown-item:focus,
.navbar .dropdown-item:hover {
  background: var(--section-bg-color);
  color: var(--link-hover-color);
}

.navbar .nav-link:focus,
.navbar .nav-link:focus-visible { outline: none; box-shadow: none; }

.navbar .dropdown-toggle::after {
  content: "\f282";
  display: inline-block;
  font-family: bootstrap-icons !important;
  font-style: normal;
  font-weight: normal !important;
  font-size: 0.7em;
  border: 0;
  vertical-align: middle;
  margin-left: 2px;
}

@media screen and (min-width: 992px) {
  .navbar .dropdown:hover > .dropdown-menu {
    display: block;
  }
}

.navbar-toggler {
  border: 0; padding: 0; cursor: pointer;
  margin: 0; width: 30px; height: 35px; outline: none;
}

.navbar-toggler:focus { outline: none; box-shadow: none; }

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon { background: transparent; }

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before,
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after {
  transition: top 300ms 50ms ease, transform 300ms 350ms ease;
  top: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:before { transform: rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon:after  { transform: rotate(-45deg); }

.navbar-toggler .navbar-toggler-icon {
  background: var(--white-color);
  transition: background 10ms 300ms ease;
  display: block; width: 30px; height: 2px; position: relative;
}

.navbar-toggler .navbar-toggler-icon:before,
.navbar-toggler .navbar-toggler-icon:after {
  transition: top 300ms 350ms ease, transform 300ms 50ms ease;
  position: absolute; right: 0; left: 0;
  background: var(--white-color);
  width: 30px; height: 2px; content: '';
}

.navbar-toggler .navbar-toggler-icon::before { top: -8px; }
.navbar-toggler .navbar-toggler-icon::after  { top: 8px; }

/*---------------------------------------
  HERO
-----------------------------------------*/
.hero-section {
  background: linear-gradient(135deg, #0d2340 0%, #1B3A5C 40%, #1AACAC 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
  padding-top: 80px;
  padding-bottom: 100px;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-wave {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 90px;
  display: block;
}

.hero-section .row {
  position: relative;
  z-index: 22;
}

/* Logo helyett videó container */
.hero-logo-box {
  background: rgba(255,255,255,0.96);
  border-radius: var(--border-radius-medium);
  padding: 32px 36px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-logo-box img {
  max-width: 100%;
  height: auto;
  display: block;
}

/*---------------------------------------
  ABOUT SECTION
-----------------------------------------*/
.about-section { padding-bottom: 70px; }

.feat-block {
  background: var(--white-color);
  border-radius: var(--border-radius-medium);
  border: 1px solid #e0eef0;
  padding: 30px 25px;
  height: 100%;
  transition: all 0.3s;
}

.feat-block:hover {
  box-shadow: 0 8px 32px rgba(26,172,172,0.12);
  border-color: var(--primary-color);
}

.feat-block-icon {
  background: var(--section-bg-color);
  border-radius: var(--border-radius-medium);
  width: 60px; height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 16px;
  color: var(--primary-color);
}

.feat-block h5 {
  color: var(--secondary-color);
  font-weight: var(--font-weight-bold);
  margin-bottom: 10px;
}

/*---------------------------------------
  CTA / SECTION-BG-IMAGE
-----------------------------------------*/
.section-bg-image {
  background: linear-gradient(135deg, #1B3A5C 0%, #1AACAC 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.section-wave-top,
.section-wave-bottom {
  display: block;
  width: 100%;
  height: 70px;
  line-height: 0;
}

.section-wave-top svg,
.section-wave-bottom svg {
  display: block;
  width: 100%;
  height: 70px;
}

.section-bg-image-block {
  backdrop-filter: blur(5px) saturate(180%);
  -webkit-backdrop-filter: blur(5px) saturate(180%);
  background-color: rgba(255,255,255,0.15);
  border-radius: var(--border-radius-medium);
  border: 1px solid rgba(255,255,255,0.3);
  padding: 50px;
}

.section-bg-image-block h2 { color: var(--white-color); }
.section-bg-image-block p  { color: rgba(255,255,255,0.85); }

/*---------------------------------------
  MEMBERSHIP / CSATLAKOZÁS
-----------------------------------------*/
.membership-section .container { position: relative; z-index: 2; }

.table-responsive {
  border-radius: var(--border-radius-medium);
}

.table-responsive tbody,
.table-responsive td,
.table-responsive tfoot,
.table-responsive th,
.table-responsive thead,
.table-responsive tr { border: 0; }

.table-responsive thead tr {
  background-color: var(--secondary-color);
  color: var(--white-color);
}

.table-responsive thead th { padding: 22px 16px !important; }

.table-responsive tbody tr:nth-child(even) {
  background-color: var(--section-bg-color);
}

.table>:not(caption)>*>* { padding: 18px 16px; }

.table-responsive .bi-check-circle-fill { color: var(--primary-color); }
.table-responsive .bi-x-circle-fill     { color: #e07a5f; }

.membership-form {
  background-color: var(--secondary-color);
  border-radius: var(--border-radius-medium);
  padding: 35px;
}

.membership-form .form-floating > textarea {
  border-radius: var(--border-radius-medium);
  height: 100px;
}

/*---------------------------------------
  KATEGÓRIÁK
-----------------------------------------*/
.cat-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.cat-card {
  background: var(--white-color);
  border: 1px solid #dce8ec;
  border-radius: var(--border-radius-medium);
  padding: 24px 12px;
  text-align: center;
  transition: all 0.3s;
  cursor: default;
}

.cat-card:hover {
  background: var(--section-bg-color);
  border-color: var(--primary-color);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(26,172,172,0.15);
}

.cat-card i {
  font-size: 2rem;
  color: var(--primary-color);
  display: block;
  margin-bottom: 10px;
}

.cat-card span {
  font-size: 13px;
  font-weight: var(--font-weight-medium);
  color: var(--secondary-color);
}

/*---------------------------------------
  CONTACT
-----------------------------------------*/
.contact-form .form-floating > textarea {
  border-radius: var(--border-radius-medium);
  height: 120px;
}

.contact-info { position: relative; }

.contact-info-item {
  background: var(--secondary-color);
  border-radius: var(--border-radius-medium);
  overflow: hidden;
  text-align: center;
  width: 100%;
  margin-bottom: 20px;
}

.contact-info-body { padding: 20px 30px; }

.contact-info-body strong,
.contact-info-item a { color: var(--white-color); }

.contact-info-footer {
  background-color: var(--primary-color);
  padding: 10px 20px;
  transition: all 0.3s;
}

.contact-info-footer:hover { background-color: var(--custom-btn-bg-hover-color); }

.contact-info-footer a {
  display: block;
  font-weight: var(--font-weight-bold);
  color: var(--white-color);
}

/*---------------------------------------
  FOOTER
-----------------------------------------*/
.site-footer {
  background-color: var(--primary-color);
  position: relative;
}

.site-footer .container { position: relative; z-index: 2; }

.site-footer-wave {
  display: block;
  width: 100%;
  height: 200px;
}

.site-footer-title { color: var(--white-color); }

.site-footer p,
.site-footer ul li { color: rgba(255,255,255,0.75); }

.site-footer a { color: rgba(255,255,255,0.75); }
.site-footer a:hover { color: var(--white-color); }

.site-footer p span {
  font-weight: var(--font-weight-medium);
  margin-right: auto;
}

/*---------------------------------------
  FORM
-----------------------------------------*/
.custom-form .form-control {
  border-radius: var(--border-radius-large);
  border-width: 2px;
  box-shadow: none;
  color: var(--p-color);
  margin-bottom: 20px;
  padding: 10px;
  padding-left: 20px;
  outline: none;
}

.custom-form .form-control:focus,
.custom-form .form-control:hover { border-color: var(--primary-color); }

.form-floating > label { padding-left: 20px; }

.custom-form button[type="submit"] {
  background: var(--custom-btn-bg-color);
  border: none;
  border-radius: var(--border-radius-large);
  color: var(--white-color);
  font-size: var(--p-font-size);
  font-weight: var(--font-weight-medium);
  transition: all 0.3s;
  margin-bottom: 0;
  padding-left: 10px;
}

.custom-form button[type="submit"]:hover,
.custom-form button[type="submit"]:focus {
  background: var(--custom-btn-bg-hover-color);
  border-color: transparent;
}

/*---------------------------------------
  SOCIAL ICONS
-----------------------------------------*/
.social-icon { margin: 0; padding: 0; }

.social-icon-item {
  list-style: none;
  display: inline-block;
  vertical-align: top;
}

.social-icon-link {
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: var(--border-radius-large);
  color: var(--white-color);
  font-size: var(--btn-font-size);
  display: block;
  margin-right: 5px;
  text-align: center;
  width: 35px; height: 35px; line-height: 36px;
  transition: background 0.2s, color 0.2s;
}

.social-icon-link:hover {
  background: rgba(255,255,255,0.4);
  color: var(--white-color);
}

/*---------------------------------------
  RESPONSIVE
-----------------------------------------*/
@media screen and (max-width: 991px) {
  h1 { font-size: 32px; }
  h2 { font-size: 26px; }
  h3 { font-size: 22px; }
  h4 { font-size: 20px; }
  h5 { font-size: 18px; }
  h6 { font-size: 16px; }

  .section-padding { padding-top: 50px; padding-bottom: 50px; }

  .navbar { background-color: var(--secondary-color); }

  .navbar-brand { font-size: 18px; max-width: 150px; }

  .navbar-expand-lg .navbar-nav { padding-top: 15px; padding-bottom: 10px; }
  .navbar-expand-lg .navbar-nav .nav-link { margin: 5px; padding: 0; }

  .navbar .dropdown-menu {
    background: rgba(255,255,255,0.06);
    box-shadow: none;
    border-radius: 8px;
    margin: 4px 0 8px 12px;
    padding: 4px 0;
  }
  .navbar .dropdown-item {
    color: rgba(255,255,255,0.8);
    padding: 8px 16px;
    font-size: 0.9rem;
  }
  .navbar .dropdown-item:hover {
    background: rgba(255,255,255,0.1);
    color: var(--link-hover-color);
  }

  .hero-section { padding-top: 60px; padding-bottom: 90px; }

  .hero-logo-box { margin-top: 30px; padding: 20px; }

  .cat-grid { grid-template-columns: repeat(2, 1fr); }

  .contact-info-item { width: 100%; }

  .section-bg-image { margin-bottom: 0; }
  .section-bg-image-block { padding: 30px; }

  .site-footer { padding-top: 0; padding-bottom: 100px; }
}

@media screen and (max-width: 480px) {
  .cat-grid { grid-template-columns: repeat(2, 1fr); }

  .custom-btn { font-size: 13px; padding: 8px 16px; }

  .navbar-brand { font-size: 16px; max-width: 130px; }
  .navbar-brand-text small { display: none; }
}

/* =====================================================
   NEUMORPHISM — Soft UI kártyák és inputok
   Háttér: #EAF6F6 | Fény: bal-felső | Árnyék: jobb-lenti
   ===================================================== */
:root {
  /* Raised (kiemelkedő) — kártyákhoz */
  --nm-shadow:
    -14px -14px 28px rgba(255,255,255,0.82),
     14px  14px 28px rgba(27,58,92,0.10);
  --nm-shadow-hover:
    -18px -18px 36px rgba(255,255,255,0.90),
     18px  18px 36px rgba(27,58,92,0.13);
  --nm-shadow-sm:
    -8px -8px 16px rgba(255,255,255,0.80),
     8px  8px 16px rgba(27,58,92,0.09);
  /* Inset (benyomott) — inputokhoz, aktív gombokhoz */
  --nm-shadow-inset:
    inset -6px -6px 12px rgba(255,255,255,0.72),
    inset  6px  6px 12px rgba(27,58,92,0.09);
  --nm-shadow-inset-focus:
    inset -6px -6px 12px rgba(255,255,255,0.72),
    inset  6px  6px 12px rgba(27,58,92,0.09),
    0 0 0 3px rgba(26,172,172,0.20);

  /* Kártyaháttér = oldalháttér */
  --tn-card-bg: #EAF6F6;
  --tn-card-border: 1px solid rgba(255,255,255,0.65);
}

/* ── Fő kártyastílus (tagok, profil, tag oldal) ── */
.tn-nm-card {
  background: var(--tn-card-bg);
  border: var(--tn-card-border);
  border-radius: 16px;
  box-shadow: var(--nm-shadow);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.tn-nm-card:hover {
  box-shadow: var(--nm-shadow-hover);
  transform: translateY(-2px);
}

/* ── Kis kártya (badge, stat) ── */
.tn-nm-card-sm {
  background: var(--tn-card-bg);
  border: var(--tn-card-border);
  border-radius: 12px;
  box-shadow: var(--nm-shadow-sm);
}

/* ── Input / Textarea — inset stílus ── */
.tn-input.nm,
.tn-textarea.nm,
.tn-select.nm {
  background: var(--tn-card-bg);
  border: none;
  box-shadow: var(--nm-shadow-inset);
}
.tn-input.nm:focus,
.tn-textarea.nm:focus,
.tn-select.nm:focus {
  box-shadow: var(--nm-shadow-inset-focus);
  outline: none;
}

/* ── Tagok kártyái ── */
.tn-member-card {
  background: var(--tn-card-bg) !important;
  border: var(--tn-card-border) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}
.tn-member-card:hover {
  box-shadow: var(--nm-shadow-hover) !important;
  transform: translateY(-3px);
}

/* ── Hirdetés kártyák ── */
.ad-card {
  background: var(--tn-card-bg) !important;
  border: var(--tn-card-border) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}
.ad-card:hover {
  box-shadow: var(--nm-shadow-hover) !important;
  border-color: rgba(26,172,172,0.35) !important;
}

/* ══════════════════════════════════════════════════
   NEUMORPHIZMUS — ÖSSZES KÁRTYAOSZTÁLY GLOBÁLISAN
   ══════════════════════════════════════════════════ */

/* Állás kártyák */
.tn-job-card,
.tn-job-detail-card,
.tn-job-poster-card,
.tn-jf-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-job-card:hover,
.tn-jf-card:hover {
  box-shadow: var(--nm-shadow-hover) !important;
  transform: translateY(-2px);
}

/* Esemény kártyák */
.tn-event-card,
.tn-past-item,
.tn-ev-card,
.tn-ev-sidebar-card,
.tn-ev-reg-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-event-card:hover { box-shadow: var(--nm-shadow-hover) !important; transform: translateY(-2px); }

/* Fórum kártyák */
.tn-forum-card,
.tn-forum-topic-body,
.tn-forum-reply,
.tn-forum-reply-form,
.tn-quote-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s !important;
}
.tn-forum-card:hover { box-shadow: var(--nm-shadow-hover) !important; }

/* Kérdések / igények */
.need-card,
.kerdes-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.need-card:hover { box-shadow: var(--nm-shadow-hover) !important; border-color: rgba(26,172,172,0.35) !important; transform: translateY(-2px); }

/* Pályázat kártyák */
.tn-tender-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-tender-card:hover { box-shadow: var(--nm-shadow-hover) !important; transform: translateY(-2px); }

/* Kedvezmény kártyák */
.tn-offer-card,
.tn-kedv-card,
.tn-kedv-poster {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-offer-card:hover,
.tn-kedv-poster:hover { box-shadow: var(--nm-shadow-hover) !important; transform: translateY(-2px); }

/* Kapcsolat kártyák */
.tn-kapcsolat-form-card,
.tn-kapcsolat-info-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}

/* Hír kártyák */
.tn-news-card,
.tn-news-detail-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-news-card:hover { box-shadow: var(--nm-shadow-hover) !important; transform: translateY(-2px); }

/* Üzenet kártyák */
.tn-conv-list,
.tn-thread-header,
.tn-reply-card,
.tn-prose-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}

/* Hirdetés detail kártya */
.hirdetes-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}

/* Értékelés kártyák */
.tn-ert-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}

/* Toplista rangkártyák */
.tn-rank-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow-sm) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s !important;
}
.tn-rank-card:hover  { box-shadow: var(--nm-shadow) !important; }
.tn-rank-card.is-me  {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border-color: rgba(26,172,172,0.45) !important;
  box-shadow: var(--nm-shadow), 0 0 0 2px rgba(26,172,172,0.25) !important;
}

/* Achievement kártyák */
.ach-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1.5px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow-sm) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s !important;
}
.ach-card:hover   { box-shadow: var(--nm-shadow) !important; }
.ach-card.completed {
  background: #fffbeb !important;
  border-color: rgba(245,158,11,0.45) !important;
  box-shadow: -8px -8px 16px rgba(255,255,255,0.80), 8px 8px 16px rgba(180,120,0,0.12) !important;
}

/* Auth kártyák (login, register) */
.auth-center-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 18px !important;
}

/* Regisztráció típuskártya */
.reg-type-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 2px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow-sm) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s, border-color 0.2s !important;
}
.reg-type-card.active,
.reg-type-card:hover {
  border-color: var(--tn-teal, #1AACAC) !important;
  box-shadow: var(--nm-shadow) !important;
}

/* Kategória kártyák */
.cat-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow-sm) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s !important;
}
.cat-card:hover { box-shadow: var(--nm-shadow) !important; }

/* Általános tn-card */
.tn-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow) !important;
  border-radius: 16px !important;
}

/* Hirdetés index kártyák */
.tn-idx-ev-card {
  background: var(--tn-card-bg, #EAF6F6) !important;
  border: 1px solid rgba(255,255,255,0.65) !important;
  box-shadow: var(--nm-shadow-sm) !important;
  border-radius: 14px !important;
  transition: box-shadow 0.25s, transform 0.25s !important;
}
.tn-idx-ev-card:hover {
  box-shadow: var(--nm-shadow) !important;
  transform: translateY(-2px);
}

/* ── Globális tn-shadow változó frissítése ── */
.tn-shadow-update,
[style*="var(--tn-shadow)"] {
  box-shadow: var(--nm-shadow);
}

/* ── Globális mobil kiegészítések ── */
@media screen and (max-width: 768px) {
  .page-hero { padding: 20px 0 22px; }
  .page-hero h1 { font-size: 1.35rem; }

  /* Érintési célterület minimum */
  .tn-btn, .tn-btn-outline, .custom-btn {
    min-height: 44px;
  }

  /* Vízszintes scroll a kategória pilleknek */
  .tn-cat-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .tn-cat-pills::-webkit-scrollbar { display: none; }
  .tn-cat-pill { flex-shrink: 0; }
}

@media screen and (max-width: 480px) {
  .page-hero { padding: 16px 0 18px; }
  .page-hero h1 { font-size: 1.2rem; }
  .page-hero p  { font-size: .85rem; }

  .tn-btn, .tn-btn-outline {
    font-size: .88rem;
    padding: 10px 18px;
  }
}

/*---------------------------------------
  Navigáció gombok (Google Maps / Waze)
  — a site kártya-stílusát követi, a háttérszín
  a saját logó márkaszínéhez illesztve
-----------------------------------------*/
.tn-nav-btns {
  display: flex;
  gap: 12px;
  margin-top: 14px;
}
.tn-nav-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: var(--border-radius-large);
  padding: 9px 16px;
  font-size: .88rem;
  font-weight: 700;
  font-family: var(--body-font-family);
  text-decoration: none;
  line-height: normal;
  border: 2px solid transparent;
  transition: all .25s;
}
.tn-nav-btn img { display: block; border-radius: 7px; flex-shrink: 0; }
.tn-nav-btn:hover, .tn-nav-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(27,58,92,.12);
  text-decoration: none;
}

.tn-nav-btn-gmaps { background: #fff; border-color: #e3ecf5; color: var(--tn-navy, #1B3A5C); }
.tn-nav-btn-gmaps:hover, .tn-nav-btn-gmaps:focus-visible { border-color: #4285F4; color: #1a73e8; }

.tn-nav-btn-waze { background: #e3faff; border-color: #b9edf8; color: #067890; }
.tn-nav-btn-waze:hover, .tn-nav-btn-waze:focus-visible { border-color: #33ccff; background: #d3f5ff; color: #05748a; }

.tn-nav-btn-sm {
  gap: 7px;
  padding: 6px 12px;
  font-size: .74rem;
  border-width: 1.5px;
}
.tn-nav-btn-sm img { width: 18px; height: 18px; border-radius: 5px; }

/*---------------------------------------
  INNER PAGE — utility classes
-----------------------------------------*/
:root {
  --tn-navy:      var(--secondary-color);
  --tn-teal:      var(--primary-color);
  --tn-teal-pale: var(--section-bg-color);
  --tn-bg:        var(--section-bg-color);
  --tn-white:     var(--white-color);
  --tn-border:    #dce8ec;
  --tn-muted:     var(--p-color);
  --tn-text:      var(--dark-color);
  --tn-radius:    var(--border-radius-medium);
  --tn-shadow:
    -14px -14px 28px rgba(255,255,255,0.82),
     14px  14px 28px rgba(27,58,92,0.10);
  --tn-header-h:  0px;
}

.page-hero {
  background: var(--secondary-color);
  padding: 28px 0 32px;
  text-align: center;
}
.page-hero h1 { color: #fff; font-weight: 700; margin-bottom: 6px; font-size: 1.85rem; }
.page-hero p  { color: rgba(255,255,255,0.7); font-size: 0.93rem; margin: 0; }

.tn-section { padding: 60px 0; }
.tn-section-bg { background: var(--section-bg-color); }

.tn-form-group { margin-bottom: 20px; }

.tn-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--secondary-color);
  margin-bottom: 7px;
  font-family: var(--body-font-family);
}

.tn-input,
.tn-textarea,
.tn-select {
  display: block;
  width: 100%;
  padding: 11px 16px;
  border: none;
  border-radius: 10px;
  font-size: 16px;
  font-family: var(--body-font-family);
  color: var(--dark-color);
  background: var(--tn-card-bg, #EAF6F6);
  outline: none;
  transition: box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: inset -5px -5px 10px rgba(255,255,255,0.75), inset 5px 5px 10px rgba(27,58,92,0.08);
}
.tn-input:focus,
.tn-textarea:focus,
.tn-select:focus {
  box-shadow: inset -5px -5px 10px rgba(255,255,255,0.75), inset 5px 5px 10px rgba(27,58,92,0.08), 0 0 0 3px rgba(26,172,172,0.20);
}
.tn-textarea { resize: vertical; min-height: 120px; }

.tn-form-error {
  color: #c0392b;
  font-size: 0.82rem;
  margin-top: 5px;
  display: block;
}
.tn-form-hint {
  color: var(--p-color);
  font-size: 0.82rem;
  margin-top: 5px;
  display: block;
}

.tn-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--primary-color);
  color: var(--white-color);
  border: 2px solid transparent;
  border-radius: var(--border-radius-large);
  padding: 10px 24px;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: var(--body-font-family);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s;
  line-height: normal;
}
.tn-btn:hover { background: var(--custom-btn-bg-hover-color); color: var(--white-color); }
.tn-btn-sm   { padding: 7px 16px; font-size: 0.83rem; }

.tn-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--primary-color);
  border: 2px solid var(--primary-color);
  border-radius: var(--border-radius-large);
  padding: 10px 24px;
  font-size: 0.9rem;
  font-weight: 700;
  font-family: var(--body-font-family);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s;
  line-height: normal;
}
.tn-btn-outline:hover { background: var(--primary-color); color: var(--white-color); }
.tn-btn-outline.tn-btn-sm { padding: 7px 16px; font-size: 0.83rem; }

.tn-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--section-bg-color);
  color: var(--primary-color);
  border: 1px solid rgba(26,172,172,0.3);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.78rem;
  font-weight: 600;
}

.tn-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 18px;
  border-radius: var(--border-radius-small);
  font-size: 0.92rem;
  margin-bottom: 20px;
}
.tn-alert-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; }
.tn-alert-error   { background: #fdecea; color: #c62828; border: 1px solid #ef9a9a; }

.tn-readonly-field {
  display: block;
  background: var(--section-bg-color);
  border: 2px solid var(--tn-border);
  border-radius: var(--border-radius-small);
  padding: 11px 16px;
  font-size: 0.95rem;
  color: var(--p-color);
  font-family: var(--body-font-family);
}

.tn-pending-banner {
  background: #fef9e7;
  border: 1px solid #f8d7a0;
  border-left: 4px solid #f0a500;
  border-radius: var(--border-radius-small);
  padding: 14px 20px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #7d5a04;
  font-size: 0.93rem;
}

/*---------------------------------------
  MOBILE NAV DRAWER
-----------------------------------------*/
#tn-mobile-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 1050;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
#tn-mobile-overlay.open { display: block; }

#tn-mobile-drawer {
  position: fixed;
  top: 0;
  right: -100%;
  width: min(340px, 100vw);
  height: 100vh;
  background: #fff;
  z-index: 1051;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: -8px 0 32px rgba(0,0,0,0.18);
  transition: right .3s cubic-bezier(.4,0,.2,1);
}
#tn-mobile-drawer.open { right: 0; }

.tn-md-header {
  background: linear-gradient(135deg, #1B3A5C 0%, #1AACAC 100%);
  padding: 20px 16px 20px;
  flex-shrink: 0;
}
.tn-md-toprow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.tn-md-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.tn-md-brand span {
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
  letter-spacing: -.01em;
}
.tn-md-close {
  background: rgba(255,255,255,0.15);
  border: none;
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s;
}
.tn-md-close:hover { background: rgba(255,255,255,0.25); }

.tn-md-user {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: 10px 12px;
  text-decoration: none;
}
.tn-md-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,0.35);
}
.tn-md-avatar img { width: 100%; height: 100%; object-fit: cover; }
.tn-md-uname {
  color: #fff;
  font-weight: 700;
  font-size: .88rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}
.tn-md-urole {
  color: rgba(255,255,255,0.65);
  font-size: .72rem;
  margin-top: 1px;
}
.tn-md-join {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 10px;
  padding: 11px 16px;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  transition: background .15s;
}
.tn-md-join:hover { background: rgba(255,255,255,0.25); color: #fff; }

.tn-md-body {
  flex: 1;
  overflow-y: auto;
  padding: 10px 10px 24px;
  -webkit-overflow-scrolling: touch;
}
.tn-md-section-label {
  font-size: .68rem;
  font-weight: 700;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: .09em;
  padding: 14px 10px 5px;
}
.tn-md-item {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 11px 10px;
  border-radius: 10px;
  text-decoration: none;
  color: #1B3A5C;
  font-size: .9rem;
  font-weight: 500;
  transition: background .15s, color .15s;
  position: relative;
}
.tn-md-item:hover { background: #EAF6F6; color: #1AACAC; }
.tn-md-item.active { background: #EAF6F6; color: #1AACAC; font-weight: 700; }
.tn-md-item i {
  font-size: .95rem;
  width: 22px;
  text-align: center;
  color: #1AACAC;
  flex-shrink: 0;
}
.tn-md-item.active i { color: #1AACAC; }
.tn-md-item.danger { color: #dc2626; }
.tn-md-item.danger i { color: #dc2626; }
.tn-md-item.danger:hover { background: #fff0f0; color: #dc2626; }
.tn-md-item.admin-link { color: #1AACAC; font-weight: 700; }
.tn-md-divider {
  height: 1px;
  background: #f3f4f6;
  margin: 8px 0;
}
.tn-md-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #1AACAC;
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  border-radius: 10px;
  padding: 12px;
  text-decoration: none;
  margin: 8px 0;
  transition: background .15s;
}
.tn-md-login-btn:hover { background: #0D8A8A; color: #fff; }
