/**
 * RAK — Reusable components (buttons, cards). Uses design-system tokens.
 */

/* ============================================================
   BUTTONS
   ============================================================ */

.rak-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  font-family: var(--font-base);
  font-size: var(--fs-button);
  font-weight: var(--fw-semibold);
  line-height: 1;
  padding: var(--space-sm) var(--space-lg);
  border-radius: var(--radius-sm);
  border: var(--border-width-strong) solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

/* Primary — solid green */
.rak-btn--primary {
  background: var(--btn-primary-bg);
  color: var(--btn-primary-text);
  border-color: var(--btn-primary-bg);
}
.rak-btn--primary:hover {
  background: var(--btn-primary-hover);
  border-color: var(--btn-primary-hover);
  color: var(--color-text-inverse);
}

/* Accent — gold, dark text */
.rak-btn--accent {
  background: var(--btn-accent-bg);
  color: var(--btn-accent-text);
  border-color: var(--btn-accent-bg);
}
.rak-btn--accent:hover {
  background: var(--btn-accent-hover);
  border-color: var(--btn-accent-hover);
}

/* Outline — transparent, green border */
.rak-btn--outline {
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.rak-btn--outline:hover {
  background: var(--color-primary);
  color: var(--color-text-inverse);
}

/* Light outline — for dark backgrounds (e.g. hero over image) */
.rak-btn--light {
  background: transparent;
  color: var(--color-text-inverse);
  border-color: rgba(255, 255, 255, 0.7);
}
.rak-btn--light:hover {
  background: var(--color-text-inverse);
  color: var(--color-primary);
  border-color: var(--color-text-inverse);
}

/* ============================================================
   CARDS
   ============================================================ */

.rak-card {
  background: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-xl);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.rak-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.rak-card__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  color: var(--color-heading);
  margin-bottom: var(--space-sm);
}

.rak-card__text {
  color: var(--color-text-muted);
  font-size: var(--fs-body);
}
/* ============================================================
   PAGE HEADER (inner page banner)
   ============================================================ */

.rak-page-header {
  position: relative;
  padding: var(--space-3xl) var(--gutter);
  background: var(--color-primary-dark);
  text-align: center;
  overflow: hidden;
}

.rak-page-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url('../images/hero.jpg') center/cover no-repeat;
  opacity: 0.18;
}

.rak-page-header__inner {
  position: relative;
  max-width: var(--container);
  margin: 0 auto;
}

.rak-page-header__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  color: var(--color-text-inverse);
  margin: 0 0 var(--space-xs);
}

.rak-page-header__subtitle {
  color: var(--color-accent-light);
  font-size: var(--fs-lead);
  margin: 0;
}
/* ============================================================
   PAGE CONTENT (inner page body)
   ============================================================ */

.rak-page {
  padding: var(--section-y) var(--gutter);
  background: var(--color-background);
}

.rak-page__inner {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

.rak-page__inner h2 {
  font-size: var(--fs-h2);
  color: var(--color-heading);
  margin: var(--space-xl) 0 var(--space-md);
}

.rak-page__inner h3 {
  font-size: var(--fs-h3);
  color: var(--color-heading);
  margin: var(--space-lg) 0 var(--space-sm);
}

.rak-page__inner p {
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
}

.rak-page__inner ul {
  color: var(--color-text-muted);
  margin-bottom: var(--space-md);
  padding-inline-start: var(--space-lg);
}
.rak-page__inner li {
  margin-bottom: var(--space-xs);
}
/* ============================================================
   SECTION HEAD + SERVICES GRID (shared across pages)
   ============================================================ */

.rak-section-head {
  text-align: center;
  margin-bottom: var(--space-2xl);
}

.rak-section-title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  color: var(--color-heading);
}

.rak-section-head--light .rak-section-title {
  color: var(--color-text-inverse);
}

.rak-services {
  padding: var(--section-y) var(--gutter);
}

.rak-services__inner {
  max-width: var(--container);
  margin: 0 auto;
}

.rak-services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-xl);
}

@media (max-width: 782px) {
  .rak-services__grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
}
/* Hide Astra's default page title (we use our own page-header banner) */
.ast-single-post .entry-title,
.page .entry-title,
h1.entry-title.ast-page-title,
.ast-archive-description .ast-archive-title,
.page:not(.home) .ast-container > article > .entry-header {
  display: none;
}
/* ============================================================
   INDUSTRIES GRID (shared across pages)
   ============================================================ */

.rak-industries {
  padding: var(--section-y) var(--gutter);
}

.rak-industries__inner {
  max-width: var(--container);
  margin: 0 auto;
}

.rak-industries__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

.rak-industry {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 96px;
  padding: var(--space-lg);
  background: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-md);
  border-inline-start: 3px solid var(--color-accent);
  transition: background var(--transition-fast), transform var(--transition-fast);
}

.rak-industry:hover {
  background: var(--color-primary-tint);
  transform: translateY(-3px);
}

.rak-industry__name {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  color: var(--color-primary);
}

@media (max-width: 782px) {
  .rak-industries__grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* ============================================================
   GALLERY GRID
   ============================================================ */

.rak-gallery {
  padding: var(--section-y) var(--gutter);
  background: var(--color-background);
}

.rak-gallery__inner {
  max-width: var(--container);
  margin: 0 auto;
}

.rak-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

.rak-gallery__item {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.rak-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-base);
}

.rak-gallery__item:hover img {
  transform: scale(1.06);
}

@media (max-width: 782px) {
  .rak-gallery__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-sm);
  }
}