/* ==========================================================================
   CS-BASE — CSS Custom Properties
   
   Foundation variables for all CasStudio cs-* components.
   Must be loaded before cs-header.css, cs-footer.css, cs-service.css.
   @package CasStudio_Child
   ========================================================================== */

:root {
  /* Brand colours */
  --cs-red:              #9B2335;
  --cs-red-dark:         #7A1C2A;
  --cs-red-light:        rgba(155, 35, 53, 0.06);
  --cs-dark:             #1C1C1C;
  --cs-muted:            #606060;
  --cs-white:            #ffffff;
  --cs-light:            #f8f7f4;
  --cs-border:           rgba(0, 0, 0, 0.06);

  /* Typography */
  --cs-font-heading:     'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --cs-font-body:        'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;

  /* Layout */
  --cs-container-wide:   1280px;
  --cs-container:        1140px;
  --cs-gutter:           1.5rem;

  /* Spacing */
  --cs-space-xs:         0.5rem;
  --cs-space-sm:         0.75rem;
  --cs-space-md:         1.25rem;
  --cs-space-lg:         2rem;
  --cs-space-xl:         3rem;
  --cs-space-2xl:        4rem;
  --cs-space-3xl:        5rem;

  /* Shadows */
  --cs-shadow-sm:        0 1px 4px rgba(0, 0, 0, 0.06);
  --cs-shadow-md:        0 4px 20px rgba(0, 0, 0, 0.12);
  --cs-shadow-lg:        0 12px 40px rgba(0, 0, 0, 0.16);

  /* Borders */
  --cs-radius:           6px;
  --cs-radius-sm:        4px;
  --cs-radius-md:        8px;
  --cs-radius-lg:        12px;
  --cs-radius-full:      999px;

  /* Transitions */
  --cs-transition:       0.25s ease;
  --cs-transition-slow:  0.4s ease;
  --cs-ease:             cubic-bezier(0.22, 1, 0.36, 1);
}

/* Base reset */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--cs-font-body);
  color: var(--cs-dark);
  background: #fcfbf9;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

a {
  text-decoration: none;
  color: inherit;
}

img {
  max-width: 100%;
  display: block;
}

/* Screen reader only utility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Container */
.cs-container {
  max-width: var(--cs-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--cs-gutter);
  padding-right: var(--cs-gutter);
  width: 100%;
}

/* Buttons */
.cs-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--cs-font-heading);
  font-weight: 600;
  border-radius: var(--cs-radius-md);
  transition: all var(--cs-transition);
  cursor: pointer;
  text-decoration: none !important;
  letter-spacing: 0.01em;
  border: none;
  outline: none;
}

.cs-btn--primary {
  background: var(--cs-red);
  color: #fff !important;
  padding: 0.875rem 2rem;
  font-size: 0.9375rem;
  font-weight: 700;
}

.cs-btn--primary:hover {
  background: var(--cs-red-dark);
  transform: translateY(-1px);
  color: #fff !important;
}

.cs-btn--ghost {
  color: rgba(255, 255, 255, 0.85) !important;
  padding: 0.875rem 2rem;
  font-size: 0.9375rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.cs-btn--ghost:hover {
  border-color: rgba(255, 255, 255, 0.6);
  color: #fff !important;
}

.cs-btn--sm {
  padding: 0.5625rem 1.25rem;
  font-size: 0.8125rem;
}

/* Label / eyebrow */
.cs-label {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cs-red);
  margin-bottom: 0.75rem;
}

/* Main content landmark */
.cs-main {
  display: block;
}
