/* Shared layout primitives and lightweight utility styles */

.container {
  width: 100%;
  max-width: var(--width-large);
  margin: 0 auto;
  padding-inline: var(--section-gutter);
}

@media (max-width: 1200px) {
  .container {
    padding-inline: var(--section-gutter);
  }
}

@media (max-width: 768px) {
  .container {
    padding-inline: var(--section-gutter);
  }
}

@media (max-width: 480px) {
  .container {
    padding-inline: var(--section-gutter);
  }
}

h1::selection,
h2::selection {
  color: #111;
  background: var(--primary-color);
}

.content-text {
  text-align: center;
  margin: 2.5rem auto;
  max-width: min(100%, var(--width-large));
}

.content-text h2 {
  font-size: clamp(2.4rem, 3.6vw, 3.6rem);
  line-height: 1.18;
  font-weight: var(--weight-bold);
  letter-spacing: 0.03em;
  transition: color 0.3s ease, transform 0.3s ease;
}

.content-text p {
  margin: 1.25rem auto 0;
  max-width: clamp(320px, 70vw, 880px);
  color: var(--text-color-muted);
  line-height: 1.8;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.9rem 2.4rem;
  border-radius: 999px;
  border: 1px solid transparent;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.92rem;
  font-weight: var(--weight-semibold);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  cursor: pointer;
  will-change: transform, box-shadow;
}

.btn i {
  font-size: 1rem;
}

.btn:hover {
  transform: translateY(-2px);
}

.btn:focus-visible {
  outline: 3px solid rgba(var(--secondary-rgb), 0.4);
  outline-offset: 3px;
}

.btn-secondary {
  color: var(--text-color-two);
  background: linear-gradient(135deg, rgba(var(--secondary-rgb), 0.9), rgba(var(--primary-rgb), 0.75));
  border: 1px solid rgba(var(--secondary-rgb), 0.6);
  box-shadow: 0 28px 65px rgba(var(--secondary-rgb), 0.22);
}

.btn-secondary:hover {
  box-shadow: 0 38px 80px rgba(var(--secondary-rgb), 0.28);
  border-color: rgba(var(--secondary-rgb), 0.75);
}

@media (max-width: 640px) {
  .btn {
    width: 100%;
    padding: 0.85rem 1.8rem;
    letter-spacing: 0.06em;
  }
}

[data-theme="dark"] .btn-secondary {
  background: linear-gradient(135deg, rgba(var(--secondary-rgb), 0.88), rgba(var(--primary-rgb), 0.72));
  border-color: rgba(var(--secondary-rgb), 0.7);
  box-shadow: 0 32px 75px rgba(var(--secondary-rgb), 0.35);
}

[data-theme="dark"] .btn-secondary:hover {
  box-shadow: 0 42px 95px rgba(var(--secondary-rgb), 0.45);
}

/* Dark mode toggle */
#switch {
  display: none;
}

.toggle-icons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  gap: 0.6rem;
}

.toggle-icons>img {
  transition: 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  width: 30px;
}

.moon {
  transform: rotate(10deg);
}

#switch:checked+.toggle-icons .moon {
  transform: rotate(250deg);
}

#switch:checked+.toggle-icons .sun {
  transform: rotate(100deg);
}