/**
 * Sequential Nav Pro - Frontend Base Styles
 * File: assets/style.css
 * Directory: /wp-content/plugins/sequential-nav-pro/assets/
 *
 * This file provides the core layout and structure for the navigation.
 * Specific colors, fonts, and spacing are controlled by dynamic inline
 * styles generated from the plugin settings.
 */

/* --- Root Variables & Main Wrapper --- */
.snp-navigation {
  display: flex;
  flex-direction: column;
  background-color: var(--snp-secondary);
  border: 1px solid var(--snp-border);
  border-radius: var(--snp-radius);
  box-shadow: var(--snp-shadow);
  transition: background-color 0.3s, border-color 0.3s;
}

.snp-nav-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 1em;
}

/* --- Navigation Items & Links --- */
.snp-nav-item {
  flex: 1;
  display: flex;
  min-width: 0; /* Prevents flex items from overflowing */
}

.snp-nav-item a,
.snp-nav-item .snp-disabled {
  display: flex;
  align-items: center;
  width: 100%;
  padding: var(--snp-padding);
  text-decoration: none;
  border-radius: var(--snp-radius);
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, background-color 0.2s, color 0.2s;
}

.snp-nav-item a {
  color: var(--snp-text);
  cursor: pointer;
}

.snp-nav-item a:hover {
  background-color: var(--snp-primary);
  color: var(--snp-hover);
}

.snp-nav-item .snp-disabled {
  color: var(--snp-disabled);
  cursor: not-allowed;
  opacity: 0.6;
}

/* --- Content (Labels, Title, Arrow) --- */
.snp-content {
  flex: 1;
  min-width: 0;
}

.snp-label {
  display: block;
  font-size: var(--snp-label-size);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.7;
  margin-bottom: 0.25em;
}

.snp-title {
  display: block;
  font-size: var(--snp-title-size);
  font-weight: 600;
  line-height: 1.3;
}

.snp-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.snp-arrow svg {
  width: 1.25em;
  height: 1.25em;
  /* [FIX] Removed 'fill: currentColor' to allow SVG's own attributes to work correctly for stroke/fill. */
}

.snp-nav-prev a,
.snp-nav-prev .snp-disabled {
  text-align: left;
}
.snp-nav-prev .snp-arrow {
  margin-right: 0.75em;
}

.snp-nav-next a,
.snp-nav-next .snp-disabled {
  /* [FIX] Aligns the flex items (content and arrow) to the right side of the container. */
  justify-content: flex-end;
  text-align: right;
}
.snp-nav-next .snp-arrow {
  margin-left: 0.75em;
}

/* --- Group Selector Dropdown --- */
.snp-group-selector {
  padding: 0.75em 1em;
  border-bottom: 1px solid var(--snp-border);
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.snp-group-selector label {
  font-size: 0.9em;
  font-weight: 600;
  color: var(--snp-text);
  opacity: 0.8;
}
.snp-group-selector select {
  font-size: 0.9em;
  border: 1px solid var(--snp-border);
  border-radius: var(--snp-radius);
  padding: 0.4em 0.6em;
  background-color: var(--snp-secondary);
  color: var(--snp-text);
  cursor: pointer;
}

/* --- Layout Variations --- */
.snp-layout-horizontal .snp-nav-wrapper {
  padding: 0.5em;
}

.snp-layout-vertical .snp-nav-wrapper {
  flex-direction: column;
  padding: 0.5em;
}

.snp-layout-compact .snp-nav-wrapper {
  padding: 0.25em;
}
.snp-layout-compact .snp-nav-item a,
.snp-layout-compact .snp-nav-item .snp-disabled {
  padding: calc(var(--snp-padding) * 0.5);
}

.snp-layout-floating {
  position: fixed;
  top: 50%;
  left: 0;
  width: 100%;
  transform: translateY(-50%);
  z-index: 999;
  background: transparent;
  border: none;
  box-shadow: none;
  pointer-events: none; /* Allows clicks to pass through wrapper */
  padding: 0 1.5em;
  box-sizing: border-box;
}
.snp-layout-floating .snp-nav-wrapper {
  justify-content: space-between;
}
.snp-layout-floating .snp-nav-item {
  flex: 0 1 auto; /* Don't grow, just fit content */
}
.snp-layout-floating .snp-nav-item a {
  background-color: var(--snp-secondary);
  border: 1px solid var(--snp-border);
  box-shadow: var(--snp-shadow);
  border-radius: 50%;
  padding: 0.75em;
  pointer-events: auto; /* Re-enable clicks on the links themselves */
}
.snp-layout-floating .snp-content {
  display: none; /* Hide text labels in floating mode */
}
.snp-layout-floating .snp-arrow {
  margin: 0;
}

/* --- Responsive Adjustments --- */
@media (max-width: 600px) {
  .snp-nav-wrapper {
    flex-direction: column;
  }
}