/*
Theme Name: RAST Project Elementor Ready Full Fixed
Theme URI: https://example.com/rast-project-wp-theme
Author: OpenAI for Maja Homen
Description: Elementor-ready WordPress theme for the RAST project website. Keeps the RAST header, footer, colors, menus and custom post types, while allowing the homepage and regular pages to be built freely in Elementor. Includes optional legacy Customizer homepage template, full-width and canvas page templates, shortcodes and AJAX news loading.
Version: 4.2.0-full-fixed
License: GPL-2.0-or-later
Text Domain: rast-project-wp
Tags: education, project, custom-logo, custom-menu, featured-images, customizer, blog, elementor, full-width-template, responsive-layout
*/

:root {
  --urwp-primary: #c8474f;
  --urwp-secondary: #555a78;
  --urwp-accent: #c8474f;
}

body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0,0,0,.6); clip: auto !important; clip-path: none; color: #21759b; display: block; font-size: 14px; font-weight: 700; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }

header, footer, .badge, .btn-default.btn1, .thumb-box3 { background-color: var(--urwp-primary); }
h2, h3, nav.tm_navbar li a:hover, nav.tm_navbar li.current-menu-item > a { color: var(--urwp-secondary); }
.btn-default.btn1:hover { background-color: var(--urwp-secondary); color: #fff; }

.urwp-skip-link { position:absolute; left:-999px; top:auto; }
.urwp-skip-link:focus { left: 1rem; top: 1rem; z-index: 999999; background:#fff; padding:.75rem 1rem; }

.urwp-page-header { background: #f2f2f2; padding: 60px 0 20px; }
.urwp-page-content { background:#f2f2f2; padding: 50px 0 70px; min-height: 360px; }
.urwp-entry { background:#fff; padding:30px; margin-bottom:30px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.urwp-entry h1, .urwp-entry h2, .urwp-entry h3 { margin-top: 0; }
.urwp-entry-meta { color:#777; font-size:12px; text-transform:uppercase; margin-bottom:18px; }
.urwp-featured-image { margin-bottom:25px; }
.urwp-sidebar .widget { background:#fff; padding:25px; margin-bottom:25px; }
.urwp-sidebar .widget-title { margin-top:0; }

.urwp-card-link { display:block; color:inherit; }
.urwp-card-link:hover { color:inherit; }
.urwp-grid-gap { margin-bottom:30px; }
.urwp-load-more-wrap { text-align:center; margin-top: 20px; }
.urwp-load-more[disabled] { opacity:.6; cursor:not-allowed; }

.urwp-notice { padding: 16px 20px; background: #fff; border-left: 4px solid var(--urwp-accent); margin: 20px 0; }
.urwp-contact-form input, .urwp-contact-form textarea { width: 100%; padding: 12px 14px; border: 1px solid #ddd; margin-bottom: 12px; }
.urwp-contact-form button { border: 0; color:#fff; padding: 12px 22px; background: var(--urwp-primary); text-transform: uppercase; font-weight: bold; }

@media (max-width: 767px) {
  h1.navbar-brand_ { position: static; text-align:center; margin-bottom: 10px; }
  nav.tm_navbar { float:none; width:100%; margin: 10px 0 20px; }
  nav.tm_navbar li { float:none; display:block; margin:0; text-align:center; }
  .global { padding-top: 45px; }
  .bg_pic .title { font-size: 34px; line-height: 36px; }
  .urwp-entry { padding:20px; }
}

/* RAST project adaptation */
:root {
  --urwp-primary: #24785b;
  --urwp-secondary: #1f3f52;
  --urwp-accent: #d99b3d;
  --rast-light: #f4f8f5;
}

body { color: #263238; }
header { background: #ffffff; border-bottom: 1px solid rgba(31,63,82,.12); }
.navbar-brand_ a { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.rast-logo-mark { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: linear-gradient(135deg, var(--urwp-primary), var(--urwp-secondary)); color: #fff; font-weight: 800; letter-spacing: .08em; font-size: 18px; }
.rast-logo-text { color: var(--urwp-secondary); font-size: 18px; font-weight: 700; line-height: 1.15; max-width: 220px; display: inline-block; }
nav.tm_navbar li a { color: var(--urwp-secondary); }
nav.tm_navbar li a:hover, nav.tm_navbar li.current-menu-item > a { color: var(--urwp-primary); }

.bg_pic.rast-hero { min-height: 520px; background: radial-gradient(circle at top left, rgba(217,155,61,.26), transparent 34%), linear-gradient(135deg, rgba(31,63,82,.94), rgba(36,120,91,.86)); display: flex; align-items: center; }
.bg_pic.rast-hero .title { color: #fff; max-width: 980px; margin-left: auto; margin-right: auto; text-shadow: 0 3px 18px rgba(0,0,0,.22); }
.bg_pic.rast-hero .description { color: #eef7f1; font-size: 20px; }
.bg_pic.rast-hero .description i, .bg_pic.rast-hero .description em { background: rgba(255,255,255,.55); }

.global.rast-home { background: #fff; }
.rast-section-intro { max-width: 860px; margin-left: auto; margin-right: auto; }
.rast-feature-row { margin-top: 35px; }
.rast-card { border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(31,63,82,.10); border: 1px solid rgba(31,63,82,.08); background: #fff; }
.rast-goal-card { position: relative; padding-top: 20px; }
.rast-number { position: absolute; top: 16px; left: 22px; font-size: 42px; font-weight: 800; color: rgba(36,120,91,.16); line-height: 1; }
.thumb-pad1.rast-card .badge, .thumb-pad2.rast-card .badge { background: var(--urwp-primary); }
.thumb-pad1.rast-card .caption .title { color: var(--urwp-secondary); }
.thumb-pad2.rast-card figure img { width: 100%; height: 190px; object-fit: cover; }
.thumb-box1.rast-focus-section { background: var(--rast-light); }

.rast-timeline-section { background: #fff; padding: 75px 0; }
.rast-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 30px; }
.rast-timeline > div { background: var(--rast-light); border: 1px solid rgba(36,120,91,.16); border-radius: 18px; padding: 24px; text-align: left; position: relative; overflow: hidden; }
.rast-timeline > div:before { content: ''; position: absolute; left: 0; top: 0; width: 6px; height: 100%; background: var(--urwp-accent); }
.rast-timeline strong { display:block; color: var(--urwp-secondary); font-size: 18px; margin-bottom: 12px; }
.rast-timeline span { display:block; margin-bottom: 12px; line-height: 1.55; }
.rast-timeline em { color: var(--urwp-primary); font-style: normal; font-weight: 700; }

.rast-news-section, .thumb-box2 { background: #f0f5f4; }
.rast-cta-section { background: linear-gradient(135deg, var(--urwp-primary), var(--urwp-secondary)); }
.rast-cta-section h2, .rast-cta-section p { color: #fff; }
.btn-default.btn1 { border-radius: 999px; background: var(--urwp-accent); color: #fff; border: 0; }
.btn-default.btn1:hover { background: var(--urwp-secondary); color: #fff; }
footer { background: var(--urwp-secondary); }
footer p, footer a, footer .foo_address { color: rgba(255,255,255,.86); }
.urwp-entry a, .thumb-pad2 h3 a { color: var(--urwp-primary); }

@media (max-width: 991px) {
  .rast-timeline { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .rast-logo-mark { width: 58px; height: 58px; font-size: 15px; }
  .rast-logo-text { font-size: 16px; max-width: 180px; }
  .bg_pic.rast-hero { min-height: 420px; padding: 70px 0; }
  .rast-timeline { grid-template-columns: 1fr; }
}

/* Elementor-ready additions */
.urwp-has-elementor .urwp-page-header,
.urwp-has-elementor .urwp-page-content { padding: 0; background: transparent; }
.urwp-elementor-fullwidth { width: 100%; margin: 0; padding: 0; overflow: hidden; }
.urwp-elementor-entry { margin: 0; padding: 0; }
.urwp-elementor-entry .elementor { width: 100%; }
.urwp-elementor-entry > *:first-child { margin-top: 0; }
.urwp-elementor-entry > *:last-child { margin-bottom: 0; }
.elementor-page main#content { display: block; }
.elementor-section.elementor-section-boxed > .elementor-container { max-width: 1140px; }
.urwp-elementor-canvas { margin: 0; padding: 0; background: #fff; }
.urwp-elementor-canvas .elementor { min-height: 100vh; }

.rast-starter-hero { padding: 110px 0 95px; background: radial-gradient(circle at top left, rgba(217,155,61,.28), transparent 34%), linear-gradient(135deg, #1f3f52, #24785b); color: #fff; text-align: center; }
.rast-starter-hero h1 { color: #fff; font-size: clamp(38px, 6vw, 72px); line-height: 1.05; margin: 0 auto 22px; max-width: 980px; }
.rast-starter-hero p { color: #eef7f1; font-size: 21px; max-width: 820px; margin-left: auto; margin-right: auto; }
.rast-eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .16em; font-weight: 700; font-size: 13px !important; color: #fff !important; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: 9px 16px; margin-bottom: 22px; }
.rast-starter-section { padding: 70px 0; background: #fff; }

/* Make the theme behave politely when Elementor controls spacing. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4 { margin-top: 0; }

/* Header/footer remain available but are neutral enough for Elementor layouts. */
body.urwp-has-elementor header { position: relative; z-index: 10; }
body.urwp-has-elementor footer { margin-top: 0; }

/* Full package: includes original template fonts, demo HTML reference files and screenshots, excluding PSD source files and PHP mail/search scripts. */

/* 4.2 mobile/layout fix: clean RAST header and visible three-circle homepage cards. */
html, body { max-width: 100%; overflow-x: hidden; }
body { background: #fff !important; }
header {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  background: #ffffff !important;
  border-bottom: 1px solid rgba(31,63,82,.12);
  z-index: 50;
}
header .box {
  background: #ffffff !important;
  padding: 18px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
h1.navbar-brand_ {
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  height: auto !important;
}
h1.navbar-brand_ a { min-height: 72px; }
nav.tm_navbar {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}
nav.tm_navbar li a {
  color: var(--urwp-secondary) !important;
  font-weight: 800;
  letter-spacing: .02em;
}
nav.tm_navbar li a::before,
nav.tm_navbar li a::after { background: var(--urwp-primary) !important; }
nav.tm_navbar li.active > a,
nav.tm_navbar li.current-menu-item > a,
nav.tm_navbar li:hover > a { color: var(--urwp-primary) !important; }

.rast-home-hero {
  background: radial-gradient(circle at top left, rgba(217,155,61,.30), transparent 36%), linear-gradient(135deg, #1f3f52 0%, #24785b 100%);
  color: #fff;
  padding: clamp(78px, 9vw, 132px) 0 clamp(88px, 10vw, 145px);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.rast-home-hero::after {
  content: '';
  position: absolute;
  width: 420px;
  height: 420px;
  right: -160px;
  bottom: -210px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
}
.rast-home-hero h1 {
  color: #fff;
  font-size: clamp(42px, 7vw, 82px);
  line-height: 1.04;
  margin: 0 auto 24px;
  max-width: 1050px;
  letter-spacing: -.035em;
}
.rast-home-hero .rast-hero-lead {
  color: rgba(255,255,255,.90);
  font-size: clamp(18px, 2.5vw, 25px);
  line-height: 1.55;
  max-width: 850px;
  margin: 0 auto 34px;
}
.rast-hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.rast-outline-btn {
  display: inline-block;
  border-radius: 999px;
  padding: 0 23px;
  font: bold 13px/36px 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.64);
  text-decoration: none !important;
}
.rast-outline-btn:hover { background: rgba(255,255,255,.14); }

.rast-three-circles {
  background: #f4f8f5;
  padding: 0 0 80px;
}
.rast-three-circles .row {
  margin-top: -58px;
  position: relative;
  z-index: 3;
}
.rast-circle-card {
  background: #fff;
  border: 1px solid rgba(31,63,82,.08);
  box-shadow: 0 16px 40px rgba(31,63,82,.12);
  border-radius: 20px;
  padding: 78px 28px 32px;
  min-height: 320px;
  text-align: center;
  position: relative;
  margin-bottom: 32px;
}
.rast-circle-icon {
  width: 112px;
  height: 112px;
  position: absolute;
  top: -56px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
  background: linear-gradient(135deg, var(--urwp-primary), var(--urwp-secondary));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 26px rgba(31,63,82,.20);
  border: 6px solid #f4f8f5;
}
.rast-circle-icon img {
  max-width: 48px;
  max-height: 48px;
  filter: brightness(0) invert(1);
}
.rast-circle-card h2 {
  color: var(--urwp-secondary);
  font-size: 26px;
  line-height: 1.15;
  margin: 0 0 16px;
  text-transform: none;
}
.rast-circle-card p {
  font-size: 15px;
  line-height: 1.65;
  color: #52656d;
  margin-bottom: 22px;
}
.rast-circle-card a {
  color: var(--urwp-primary);
  font-weight: 800;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .08em;
  text-decoration: none;
}
.rast-circle-card a:hover { color: var(--urwp-accent); }
.rast-info-section { padding: 78px 0; background: #fff; }
.rast-info-section h2 { color: var(--urwp-secondary); margin-top: 0; }
.rast-photo-card {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 42px rgba(31,63,82,.12);
}
.rast-photo-card img { display: block; width: 100%; height: auto; }

@media (max-width: 991px) {
  header .box { display: block; text-align: center; }
  h1.navbar-brand_ a { justify-content: center; }
  nav.tm_navbar { margin-top: 18px !important; }
}
@media (max-width: 767px) {
  header { background: #fff !important; }
  header .box { padding: 16px 0 18px; }
  .navbar-brand_ a { gap: 10px; }
  .rast-logo-mark { width: 66px; height: 66px; font-size: 17px; }
  .rast-logo-text { color: var(--urwp-secondary) !important; font-size: 17px; max-width: 210px; text-align: left; }
  .select-menu {
    display: block !important;
    width: 100% !important;
    height: 44px !important;
    margin: 18px 0 0 !important;
    padding: 8px 14px !important;
    border: 1px solid rgba(36,120,91,.35) !important;
    border-radius: 999px !important;
    background: #f4f8f5 !important;
    color: var(--urwp-secondary) !important;
    font-size: 16px !important;
  }
  .rast-home-hero { padding: 62px 0 104px; }
  .rast-home-hero h1 { font-size: clamp(36px, 11vw, 52px); }
  .rast-three-circles { padding-bottom: 46px; }
  .rast-three-circles .row { margin-top: -46px; }
  .rast-circle-card { min-height: 0; padding: 72px 22px 28px; }
  .rast-circle-icon { width: 96px; height: 96px; top: -48px; }
  .rast-circle-icon img { max-width: 40px; max-height: 40px; }
  .rast-info-section, .rast-timeline-section { padding: 56px 0; }
  footer { padding-bottom: 30px; }
  footer p { float: none !important; text-align: center; margin-bottom: 12px; }
}
