/* =========================================================
   Rural Consult Design System (Elementor-first)
   Brand tokens + theme/plugin polish only.
   Layout, alignment, colors, buttons → Elementor controls.
   ========================================================= */

:root {
  --rc-primary: #0067FF;
  --rc-primary-dark: #0052CC;
  --rc-primary-hover: #005EE9;
  --rc-primary-soft: #E7F6FF;
  --rc-primary-soft-2: #F3F9FF;
  --rc-heading: #0F172A;
  --rc-text: #364151;
  --rc-muted: #64748B;
  --rc-border: #D5DEE8;
  --rc-border-soft: #E8EEF5;
  --rc-surface: #FFFFFF;
  --rc-bg: #F7FBFF;
  --rc-dark: #0B1220;
  --rc-success: #0F8A5F;
  --rc-danger: #C0392B;
  --rc-radius: 16px;
  --rc-radius-sm: 12px;
  --rc-radius-lg: 24px;
  --rc-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  --rc-shadow-hover: 0 16px 40px rgba(0, 103, 255, 0.12);
  --rc-container: 1200px;
  --rc-gutter: 24px;
  --rc-transition: 200ms ease;
  --rc-focus: 0 0 0 3px rgba(0, 103, 255, 0.28);
}

html { scroll-behavior: smooth; }

body {
  color: var(--rc-text);
  background: var(--rc-surface);
  -webkit-font-smoothing: antialiased;
}

/* Astra: let Elementor sections go full-bleed */
.elementor-page .site-content > .ast-container,
.ast-page-builder-template .site-content > .ast-container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ---------- Header (theme chrome, not Elementor widgets) ---------- */
.ast-primary-header-bar,
.site-header {
  transition: box-shadow var(--rc-transition), background-color var(--rc-transition);
}

.ast-primary-header-bar.rc-header-scrolled,
.site-header.rc-header-scrolled {
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.98);
}

.site-header .custom-logo-link img,
.ast-header-logo img {
  max-height: 56px;
  width: auto;
  max-width: 210px;
  height: auto;
}

/* Header CTA — Astra button, not page widgets */
.main-header-bar .ast-button,
.ast-header-button-1 .ast-custom-button,
.ast-builder-button .menu-link {
  background: var(--rc-primary);
  color: #fff;
  border-radius: 999px;
  padding: 12px 22px;
  font-weight: 600;
  font-size: 14px;
  border: none;
  transition: background var(--rc-transition), transform var(--rc-transition);
}

.main-header-bar .ast-button:hover,
.ast-header-button-1 .ast-custom-button:hover {
  background: var(--rc-primary-dark);
  color: #fff;
}

/* ---------- Footer polish ---------- */
.site-footer a:focus-visible,
.site-header a:focus-visible,
.elementor a:focus-visible,
.elementor button:focus-visible {
  outline: none;
  box-shadow: var(--rc-focus);
  border-radius: 4px;
}

/* ---------- Fluent Forms (plugin UI, not Elementor) ---------- */
.fluentform .ff-el-form-control,
.fluentform input[type="text"],
.fluentform input[type="email"],
.fluentform input[type="tel"],
.fluentform input[type="number"],
.fluentform select,
.fluentform textarea {
  border: 1px solid var(--rc-border);
  border-radius: var(--rc-radius-sm);
  padding: 12px 14px;
  color: var(--rc-heading);
  background: #fff;
  transition: border-color var(--rc-transition), box-shadow var(--rc-transition);
}

.fluentform .ff-el-form-control:focus,
.fluentform input:focus,
.fluentform select:focus,
.fluentform textarea:focus {
  border-color: var(--rc-primary);
  box-shadow: var(--rc-focus);
  outline: none;
}

.fluentform .ff-btn-submit,
.fluentform button[type="submit"] {
  background: var(--rc-primary);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 14px 28px;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  transition: background var(--rc-transition);
}

.fluentform .ff-btn-submit:hover,
.fluentform button[type="submit"]:hover {
  background: var(--rc-primary-dark);
}

.fluentform .ff-el-input--label label {
  color: var(--rc-heading);
  font-weight: 600;
}

.fluentform .ff-el-form-check-label,
.fluentform .ff-el-form-check {
  color: var(--rc-text);
}

/* Form page shell: gentle surface only — spacing/align from Elementor */
.elementor-element-rc-form-shell {
  background: var(--rc-bg);
}

/* ---------- Soft motion helpers (opt-in classes) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .rc-reveal {
    animation: rc-fade-up 0.55s ease both;
  }
}

@keyframes rc-fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

/* === RC CONTENT RAIL (theme header only; page layout via Elementor) === */
.ast-container, .ast-container-fluid { max-width: 1000px; }
@media (min-width: 922px) {
  .ast-container { max-width: 1000px; padding-left: 24px; padding-right: 24px; }
}
.site-content > .ast-container { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }

/* === RC AUTO POSTS === */
.elementor-widget-posts .elementor-post {
  background: #fff;
  border: 1px solid #E2E8F0;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  transition: box-shadow 200ms ease, transform 200ms ease;
}
.elementor-widget-posts .elementor-post:hover {
  box-shadow: 0 12px 32px rgba(0, 103, 255, 0.1);
  transform: translateY(-2px);
}
.elementor-widget-posts .elementor-post__title,
.elementor-widget-posts .elementor-post__title a {
  color: #0F172A;
  font-family: Poppins, sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.35;
}
.elementor-widget-posts .elementor-post__excerpt p {
  color: #364151;
  font-size: 15px;
  line-height: 1.6;
}
.elementor-widget-posts .elementor-post__read-more {
  color: #0067FF;
  font-weight: 600;
  text-decoration: none;
}
.elementor-widget-posts .elementor-post__badge {
  background: #E7F6FF;
  color: #0067FF;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 10px;
}
.elementor-widget-posts .elementor-pagination .page-numbers {
  color: #0067FF;
  border-radius: 8px;
}
.elementor-widget-posts .elementor-pagination .page-numbers.current {
  background: #0067FF;
  color: #fff;
}
/* === RC AUTO POSTS THUMB === */
.elementor-widget-posts .elementor-post { overflow: hidden; padding: 0; }
.elementor-widget-posts .elementor-post__thumbnail { border-radius: 16px 16px 0 0; overflow: hidden; }
.elementor-widget-posts .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; display: block; }
.elementor-widget-posts .elementor-post__text { padding: 22px 22px 24px; }
.elementor-widget-posts .elementor-post__badge { margin: 12px 12px 0; }
