:root {
  --hero-primary: #6B8E23;
  --hero-primary-strong: rgba(107, 142, 35, 0.85);
  --hero-primary-soft: rgba(107, 142, 35, 0.12);
  --hero-overlay: linear-gradient(135deg, rgba(107,142,35,0.28), rgba(107,142,35,0.08));
  --primary: #698B22;
  --background: #FFFFFF;
  --background-alt: #f8f9fa;
  --text-dark: #1a1a1a;
}

/* Content Section Styles */
.content-section {
  background: var(--background-alt);
  padding: 80px 0;
}

.content-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 40px;
}

.section-title-decorator-v2 {
  margin-bottom: 40px;
}

.decorator-header-line {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}

.decorator-number-v2 {
  font-size: 1.3rem;
  font-weight: 600;
  color: white;
  background-color: var(--primary);
  padding: 4px 10px;
  border-radius: 4px;
  margin-right: 12px;
  line-height: 1;
  flex-shrink: 0;
}

.decorator-line-v2 {
  flex-grow: 1;
  height: 3px;
  background: linear-gradient(to right, transparent 0%, transparent 100%);
  border-radius: 10px;
}

.decorator-title-v2 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--text-dark);
  margin-top: 0;
}

/* Back to Top Button */
#back-to-top-btn {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #698B22;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  z-index: 1000;
}

#back-to-top-btn.visible {
  opacity: 1;
  visibility: visible;
}

#back-to-top-btn:hover {
  background: #556b1c;
  transform: translateY(-3px);
}

/* Hero */
.sem-hero {
  position: relative;
  min-height: 48vh;
  background: var(--primary);
  margin-top: 0;
  display: flex;
  align-items: flex-start;
  padding-top: 60px;
  overflow: hidden;
}
.sem-hero-bg {
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, rgba(105, 139, 34, 0.75), rgba(85, 107, 28, 0.85));
  z-index: 1;
}
.sem-hero-img {
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  opacity: 1;
  z-index: 0;
}
.sem-hero-inner {
  position:relative;
  z-index:2;
  padding-top: 0;
  padding-bottom: 36px;
  display:flex;
  flex-direction:column;
  gap:28px;
}
.sem-hero-head{
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  padding: 40px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.sem-hero-head h1{
  color: white;
  margin: 0 0 12px 0;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
}
.sem-hero-head p{
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 0;
  font-size: 1.05rem;
  line-height: 1.5;
}
.sem-hero-highlights{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(300px,1fr));
  gap:20px;
  max-width: 1320px;
  width: 100%;
  margin-right: auto;
}

/* Buttons - Global */
.contact-btn,
.btn-secondary {
  position: relative;
  overflow: hidden;
  transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease, border-color 0.3s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 8px;
  font-size: 15px;
  cursor: pointer;
  font-weight: 500;
  padding: 12px 24px;
}

.contact-btn {
  background: #1a1a1a;
  color: white;
  border: none !important;
  font-weight: 600;
}

.btn-secondary {
  background: #1a1a1a;
  color: white;
  border: 1px solid #1a1a1a !important;
  font-weight: 500;
}

.contact-btn:hover,
.btn-secondary:hover {
  transform: scale(1.03);
}

.contact-btn:hover {
  background-color: #333;
  border-color: #333 !important;
}

.btn-secondary:hover {
  background-color: #333;
  border-color: #333 !important;
}

/* Cards */
.sem-card { background:#fff; border:1px solid #e8e8e8; border-radius:18px; overflow:hidden; box-shadow:0 14px 28px rgba(15,23,42,.08); transition: transform .2s ease, box-shadow .2s ease; display:grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); min-height:260px }
.sem-card:hover { transform: translateY(-2px); box-shadow:0 16px 32px rgba(0,0,0,.06); }
.sem-card-img { background:#f5f6f8; background-image: radial-gradient(circle at 20% 10%, rgba(123,171,30,.16) 0 40%, transparent 41%), radial-gradient(circle at 80% 20%, rgba(59,130,246,.18) 0 30%, transparent 31%); background-size:cover; background-position:center; min-height:260px }
.sem-card-body { padding:22px 24px 20px 24px; display:flex; flex-direction:column; gap:14px; min-width:0; word-break:break-word; }
.sem-card-body > * { max-width:100%; }
.sem-card-body p{ overflow-wrap:anywhere; }
.sem-chip { display:inline-block; padding:4px 10px; border-radius:999px; background:#eef2ff; border:1px solid #e5e7eb; color:#1e3a8a; font-size:.8rem; font-weight:600; }
.sem-chip.ok { background:#ecfdf5; border-color:#a7f3d0; color:#065f46 }
.sem-chip.low { background:#fef2f2; border-color:#fecaca; color:#7f1d1d }
.sem-meta { color:#666; font-size:.95rem; word-break:break-word }
.sem-price { font-weight:700 }
.sem-price-strong{ font-weight:800; font-size:1.2rem; color:#698B22 }
.sem-card-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px }
.sem-card-title{ margin:0; font-size:1.15rem; font-weight:700; word-break:break-word }
.sem-card-chips{ display:flex; flex-wrap:wrap; gap:8px; align-items:center }
.sem-trainer-row{ display:flex; align-items:center; gap:10px; margin-top:2px }
.sem-trainer-avatar{ width:48px; height:48px; border-radius:999px; border:2px solid #e5e7eb; overflow:hidden; background:#eef2ff; color:#1e3a8a; display:flex; align-items:center; justify-content:center; font-weight:800 }
.sem-trainer-avatar img{ width:100%; height:100%; object-fit:cover }
.sem-trainer-name{ font-weight:600; color:#333 }
.sem-card-actions{ margin-top:auto; display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:space-between; width:100%; }
.sem-card-actions .btn-secondary{ margin-left:auto }
.sem-card-price-block{ font-weight:700; color:#0f172a; white-space:nowrap; display:flex; align-items:center; font-size:1.1rem; background:rgba(59,130,246,0.14); padding:6px 12px; border-radius:12px; }
.sem-card-price-block strong{ font-weight:inherit; }
.sem-card-price{ font-weight:700; color:#1a1a1a }

.sem-card-agenda{ margin-top:14px; border-top:1px solid #e5e7eb; padding-top:10px; font-size:.92rem; display:flex; flex-direction:column; align-items:flex-start }
.sem-card-agenda summary{ cursor:pointer; font-weight:600; color:#1e3a8a; list-style:none; display:inline-flex; align-items:center; gap:6px; justify-content:flex-start; width:100%; text-align:left; }
.sem-card-agenda summary::-webkit-details-marker{ display:none }
.sem-card-agenda summary::after{ content:'+'; margin-left:8px; font-weight:700 }
.sem-card-agenda[open] summary::after{ content:'−'; }
.sem-card-agenda summary:focus-visible{ outline:2px solid #3b82f6; outline-offset:4px }
.sem-card-agenda ul{ align-self:stretch; margin:10px 0 0 0; padding-left:20px; display:grid; gap:6px; color:#475569; list-style:disc; text-align:left }

.sem-list{ display:grid; grid-template-columns: 1fr; gap:20px }

@media (max-width: 860px){
  .sem-card{ grid-template-columns: 1fr }
  .sem-card-img{ height: 220px }
}
@media (max-width: 640px){
  .sem-card-actions{ flex-wrap:wrap; justify-content:flex-start; }
}

/* Filters & Form Inputs */
.sem-filters input,
.sem-filters select,
input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(105, 139, 34, 0.1);
}

/* Validation States */
input.field-valid,
select.field-valid,
textarea.field-valid {
  border-color: #10b981;
  background-color: #f0fdf4;
}

input.field-invalid,
select.field-invalid,
textarea.field-invalid {
  border-color: #ef4444;
  background-color: #fef2f2;
}

input.field-invalid:focus,
select.field-invalid:focus,
textarea.field-invalid:focus {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.field-error {
  color: #dc2626;
  font-size: 0.875rem;
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: 500;
}

.field-error::before {
  content: '⚠';
  font-size: 1rem;
}

.field-hint {
  color: #6b7280;
  font-size: 0.8rem;
  margin-top: 4px;
  font-style: italic;
}
.sem-filter-toggle{ display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; color:#333; font-size:.9rem; cursor:pointer; transition: background .2s ease, border-color .2s ease; }
.sem-filter-toggle:hover{ background:#f7f9ff; border-color:#dbeafe; }
.sem-filter-toggle:focus-within{ outline:2px solid #9cc24a; outline-offset:2px; }
.sem-filter-checkbox{ width:16px; height:16px; accent-color:#698B22; }
.sem-filters select#filterSort{ min-width:200px; }
.sem-selected-totals{ border-top:1px solid #e5e7eb; padding-top:12px; font-size:.95rem; color:#1f2937; }
.sem-selected-totals strong{ display:block; margin-top:4px; font-size:1.05rem; }
.sem-selected-notice{ font-size:.85rem; color:#b91c1c; background:#fee2e2; border:1px solid #fecaca; border-radius:8px; padding:8px 12px; }
.sem-selected-notice.hidden{ display:none; }
.sem-selected-agenda{ margin-top:12px; font-size:.9rem; color:#475569 }
.sem-selected-agenda span{ display:block; font-weight:600; color:#1f2937; margin-bottom:4px }
.sem-selected-agenda ul{ margin:0; padding-left:18px; display:grid; gap:4px; list-style:disc }
.sem-side-agenda{ margin-top:8px; font-size:.85rem; color:#475569 }
.sem-side-agenda strong{ display:block; margin-bottom:2px; color:#1f2937 }
.sem-side-agenda ul{ margin:4px 0 0 16px; padding:0; display:grid; gap:3px; list-style:disc }
.form-status{ min-height:1.25rem; }
.form-status.error{ color:#b91c1c; }
.form-status.success{ color:#166534; }
.form-message{ color:#1f2937; }
.form-message.success{ color:#166534; }
.form-message.error{ color:#b91c1c; }
.sem-highlights{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap:20px; }
.sem-highlight{
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 12px;
  padding: 25px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  min-height: 180px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: all 0.3s ease;
}
.sem-highlight:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
  background: rgba(0, 0, 0, 0.5);
}
.sem-highlight > div{ flex:1; display:flex; flex-direction:column; gap:8px }
.sem-highlight-icon{
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  color: white;
  flex-shrink: 0;
  margin-bottom: 0;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.sem-highlight i{ color: inherit; }
.sem-highlight h3{
  margin: 0 0 8px 0;
  font-size: 1.15rem;
  color: white;
  font-weight: 700;
  letter-spacing: .01em;
}
.sem-highlight p{
  margin: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.6;
}
.sem-timeline{ margin:24px 0; border:1px solid #e5e7eb; border-radius:12px; padding:16px; background:#fff; box-shadow:0 6px 16px rgba(15, 23, 42, 0.04) }
.sem-timeline h3{ margin:0 0 12px 0; font-size:1.1rem; font-weight:600; color:#1f2937 }
.sem-timeline ol{ list-style:none; padding:0; margin:0; display:grid; gap:12px }
.sem-timeline li{ display:flex; gap:14px; align-items:flex-start }
.sem-timeline li span{ flex:0 0 62px; font-family:ui-monospace,sfmono-regular,Menlo,Monaco,Consolas,monospace; background:#eef2ff; border-radius:999px; padding:6px 10px; font-weight:600; color:#1e3a8a; text-align:center }
.sem-timeline li div{ flex:1; }
.sem-timeline li div strong{ display:block; color:#111827; margin-bottom:2px }
.sem-timeline li div p{ margin:0; color:#4b5563; font-size:.92rem }
@media (max-width: 640px){
  .sem-timeline li{ flex-direction:column; }
  .sem-timeline li span{ width:auto; display:inline-flex; }
}

/* Registration */
.sem-form-card { background:#fff; border:1px solid #e8e8e8; border-radius:12px; padding:16px; box-shadow:0 10px 24px rgba(0,0,0,.04) }
.sem-metrics { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; margin: 12px 0 10px; }
.sem-metric { background:#fff; border:1px solid #e8e8e8; border-radius:12px; padding:12px 14px; box-shadow:0 10px 24px rgba(0,0,0,.04) }
.sem-metric .label{ color:#666; font-size:.85rem }
.sem-metric .value{ font-size:1.25rem; font-weight:700 }

.sem-form-success { margin-top:18px; padding:16px 18px; border-radius:14px; border:1px solid rgba(107,142,35,0.3); background:rgba(107,142,35,0.08); display:flex; gap:14px; align-items:flex-start; box-shadow:0 12px 24px rgba(107,142,35,0.12); }
.sem-form-success.hidden { display:none; }
.sem-form-success-icon { flex:0 0 40px; width:40px; height:40px; border-radius:999px; background:var(--hero-primary); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:1.3rem; font-weight:700; box-shadow:0 10px 18px rgba(107,142,35,0.25); }
.sem-form-success-title { display:block; color:#102a12; font-size:1.05rem; }
.sem-form-success-text { margin:4px 0 0; color:rgba(16,42,18,0.75); font-size:.95rem; line-height:1.55; }

.sem-chips { display:flex; flex-wrap:wrap; gap:8px; margin: 12px 0; }
.sem-trainers { display:flex; flex-wrap:wrap; gap:8px; margin: 4px 0 18px; }
.sem-trainer { background:#f5f7fb; border:1px solid #e5e7eb; border-radius:999px; padding:6px 10px; font-size:.9rem }

.sem-faq { margin-top: 24px }
.sem-faq details { border:1px solid #e8e8e8; border-radius:10px; background:#fff; padding:10px 12px }
.sem-faq details+details{ margin-top:8px }
.sem-faq summary{ cursor:pointer; font-weight:600 }

/* Sticky filters on large screens */
@media (min-width: 1024px){
  .sem-filters{ position: sticky; top: 86px; z-index: 10; background: var(--background-alt); padding-top: 8px }
}

/* Stepper */
.sem-steps{ display:flex; gap:16px; align-items:center; margin: 10px 0 24px; position:relative }
.sem-step{ display:flex; align-items:center; gap:10px; position:relative; flex:1 1 0; cursor:pointer }
.sem-step .dot{ width:42px; height:42px; border-radius:999px; background:#eef2ff; border:2px solid #e5e7eb; display:inline-flex; align-items:center; justify-content:center; font-weight:800; color:#1e3a8a; font-size:1.05rem; box-shadow:0 2px 6px rgba(0,0,0,.06) }
.sem-step .name{ color:#444; font-size:1.05rem; font-weight:600 }
.sem-step.active .dot{ background:#1a1a1a; color:#fff; border-color:#1a1a1a }
.sem-step.completed .dot{ background:#698B22; color:#fff; border-color:#698B22 }
.sem-step:not(:last-child)::after{ content:''; position:absolute; height:8px; background:#e5e7eb; top:50%; left: calc(42px + 12px); right: -8px; transform: translateY(-50%); border-radius:6px; z-index:0; pointer-events:none }
.sem-step .dot, .sem-step .name{ position:relative; z-index:1 }
.sem-step .name{ color:#fff; background:#1a1a1a; padding:6px 12px; border-radius:999px }
.sem-step.completed .name{ background:#698B22 }
.sem-step.active .name{ background:#1a1a1a }
.sem-step.completed:not(:last-child)::after{ background: linear-gradient(90deg, #698B22, #9cc24a) }
@media (max-width: 768px){ .sem-step .name{ font-size:.95rem } .sem-step .dot{ width:36px; height:36px; } }

@media (max-width: 768px){
  .sem-metrics{ grid-template-columns: 1fr; }
  .sem-hero {
    min-height: 52vh;
    padding-top: 50px;
  }
  .sem-hero-head {
    padding: 25px;
    width: 100%;
  }
  .sem-hero-head h1 {
    font-size: 2rem;
  }
  .sem-hero-head p {
    font-size: 0.95rem;
  }
  .sem-hero-head .flex {
    flex-direction: column;
  }
  .sem-hero-head .gap-2 {
    width: 100%;
  }
  .sem-hero-head .gap-2 a {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  .sem-highlights,
  .sem-hero-highlights {
    grid-template-columns: 1fr;
  }
}
