/* Companion styling for the included Safer Tomorrows Elementor template. */

/* Normalize Elementor page width inside this theme. */
.elementor { --st-navy:#071D36; --st-navy-2:#0D2D4D; --st-blue:#173D63; --st-green:#D4AF37; --st-green-dark:#B58A1F; --st-ink:#102B47; --st-muted:#647182; --st-soft:#F8F5ED; --st-line:#E8DFC9; }
.elementor .st-shell { max-width:1180px; margin-inline:auto; width:100%; }

/* Hero */
.elementor .st-hero {
  min-height: 535px;
  display:grid !important;
  grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);
  align-items:stretch;
  background:linear-gradient(115deg,#071D36 0%,#0E3152 54%,#174267 100%);
  color:#fff;
  overflow:hidden;
}
.elementor .st-hero-left {
  padding:56px 42px 38px 50px;
  display:flex !important;
  flex-direction:column;
  justify-content:center;
  gap:0;
  position:relative;
  z-index:2;
}
.elementor .st-hero-image {
  min-height:535px;
  background-image:linear-gradient(90deg,rgba(6,43,73,.45),rgba(6,43,73,.06)),url('../images/hero-trainer.jpg');
  background-size:cover;
  background-position:center;
  position:relative;
}
.elementor .st-hero-image:after {
  content:'TRAIN\A EMPOWER\A PREVENT';
  white-space:pre;
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  font-size:22px;
  line-height:1.25;
  text-align:center;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
  pointer-events:none;
}
.elementor .st-eyebrow .elementor-heading-title {
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.28em;
  margin-bottom:19px;
  position:relative;
  display:inline-block;
}
.elementor .st-eyebrow .elementor-heading-title:after { content:''; display:block; width:78px; height:3px; background:var(--st-green); margin-top:12px; }
.elementor .st-hero-title .elementor-heading-title { color:#fff; font-size:44px; line-height:.98; font-weight:900; letter-spacing:-.035em; text-transform:uppercase; margin:0; max-width:660px; }
.elementor .st-hero-green .elementor-heading-title { color:var(--st-green); font-size:38px; line-height:1; font-weight:900; letter-spacing:-.03em; text-transform:uppercase; margin:8px 0 0; max-width:670px; }
.elementor .st-hero-copy { max-width:590px; }
.elementor .st-hero-copy, .elementor .st-hero-copy p { color:#fff; font-size:15px; line-height:1.55; margin:17px 0 0; }
.elementor .st-button-row { display:flex !important; flex-direction:row; flex-wrap:wrap; gap:14px; margin-top:20px; }
.elementor .st-btn-primary .elementor-button { background:var(--st-green); color:#071D36; border:2px solid var(--st-green); border-radius:4px; font-weight:800; text-transform:uppercase; font-size:12px; padding:14px 22px; }
.elementor .st-btn-primary .elementor-button:hover { background:#fff; border-color:#fff; color:#071D36; }
.elementor .st-btn-outline .elementor-button { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.9); border-radius:4px; font-weight:800; text-transform:uppercase; font-size:12px; padding:14px 22px; }
.elementor .st-btn-outline .elementor-button:hover { background:#fff; color:#071D36; }

/* Stats */
.elementor .st-stats { background:#071D36; color:#fff; display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)); padding:0 50px; }
.elementor .st-stat { min-height:88px; padding:20px 16px; display:flex !important; flex-direction:row; align-items:center; gap:13px; border-right:1px solid rgba(255,255,255,.12); }
.elementor .st-stat:last-child { border-right:0; }
.elementor .st-stat-icon .elementor-heading-title { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#173D63; font-size:19px; margin:0; }
.elementor .st-stat-text .elementor-heading-title { color:#fff; font-size:11px; line-height:1.35; font-weight:800; text-transform:uppercase; margin:0; }

/* About + topics */
.elementor .st-about { display:grid !important; grid-template-columns:1.05fr .78fr 1.05fr; gap:28px; padding:52px 50px; background:#fff; align-items:stretch; }
.elementor .st-about-copy, .elementor .st-topics { display:flex !important; flex-direction:column; justify-content:center; }
.elementor .st-section-kicker .elementor-heading-title { color:#173D63; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.22em; margin:0 0 8px; }
.elementor .st-section-kicker .elementor-heading-title:after { content:''; display:block; height:3px; width:120px; margin-top:8px; background:var(--st-green); }
.elementor .st-section-title .elementor-heading-title { color:#102B47; font-size:27px; line-height:1.05; font-weight:900; text-transform:uppercase; letter-spacing:-.02em; margin:0 0 12px; }
.elementor .st-body-copy, .elementor .st-body-copy p { color:#263F55; font-size:13px; line-height:1.55; }
.elementor .st-about-image { min-height:360px; background:url('../images/teamwork.jpg') center/cover no-repeat; display:flex !important; align-items:flex-end; justify-content:stretch; overflow:hidden; }
.elementor .st-image-quote { width:100%; background:rgba(6,43,73,.93); padding:19px 20px; }
.elementor .st-image-quote .elementor-heading-title { color:#fff; font-size:16px; line-height:1.4; font-weight:700; text-align:center; text-transform:uppercase; letter-spacing:.06em; margin:0; }
.elementor .st-topics { border-left:1px solid #D9C9A8; padding-left:28px; }
.elementor .st-topics-list ol { margin:0; padding-left:30px; }
.elementor .st-topics-list li { color:#173552; font-size:13px; line-height:1.35; margin:7px 0; padding-left:5px; }
.elementor .st-topics-list li::marker { color:#fff; background:#173D63; font-weight:800; }
.elementor .st-topics-note, .elementor .st-topics-note p { font-size:11px; line-height:1.45; color:#3E5266; margin-top:10px; }

/* Who we train + CTA */
.elementor .st-who-cta { display:grid !important; grid-template-columns:1fr 1fr; background:#F8F5ED; }
.elementor .st-who { padding:38px 36px 38px 50px; }
.elementor .st-who-grid { display:grid !important; grid-template-columns:repeat(4,1fr); gap:18px 12px; margin-top:18px; }
.elementor .st-audience { text-align:center; display:flex !important; flex-direction:column; align-items:center; gap:4px; }
.elementor .st-audience-icon .elementor-heading-title { color:#173D63; font-size:26px; margin:0; }
.elementor .st-audience-text .elementor-heading-title { color:#173552; font-size:12px; line-height:1.3; margin:0; font-weight:700; }
.elementor .st-invest { padding:38px 50px 38px 42px; background-image:linear-gradient(90deg,rgba(6,43,73,.98),rgba(6,43,73,.72)),url('../images/classroom.jpg'); background-size:cover; background-position:center; color:#fff; display:flex !important; flex-direction:column; justify-content:center; align-items:flex-start; }
.elementor .st-invest-title .elementor-heading-title { color:#fff; font-size:30px; line-height:1.02; font-weight:900; text-transform:uppercase; margin:0; max-width:420px; }
.elementor .st-invest-green .elementor-heading-title { color:var(--st-green); font-size:28px; line-height:1; font-weight:900; text-transform:uppercase; margin:3px 0 0; }
.elementor .st-invest-copy, .elementor .st-invest-copy p { color:#fff; max-width:430px; font-size:13px; margin:13px 0 15px; }

/* Testimonials */
.elementor .st-testimonials { padding:42px 50px 48px; background:#fff; }
.elementor .st-testimonial-grid { display:grid !important; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px; }
.elementor .st-testimonial-card { border:1px solid #E7DECA; border-radius:10px; padding:23px 22px; box-shadow:0 5px 18px rgba(6,43,73,.04); background:#fff; min-height:190px; }
.elementor .st-testimonial-quote, .elementor .st-testimonial-quote p { color:#364E63; font-size:13px; line-height:1.45; font-style:italic; margin:0; }
.elementor .st-testimonial-role .elementor-heading-title { color:#173552; font-size:12px; line-height:1.35; margin:15px 0 0; font-weight:800; }
.elementor .st-stars .elementor-heading-title { color:#C18E19; font-size:17px; letter-spacing:.08em; margin:7px 0 0; }

/* Smaller button from about section */
.elementor .st-read-bio .elementor-button { background:#071D36; color:#fff; border-radius:3px; font-size:11px; font-weight:800; text-transform:uppercase; padding:12px 18px; }
.elementor .st-read-bio .elementor-button:hover { background:#173D63; }

/* Prevent Elementor default spacing from fighting the template */
.elementor .st-hero .elementor-widget,
.elementor .st-about .elementor-widget,
.elementor .st-who-cta .elementor-widget,
.elementor .st-testimonials .elementor-widget { margin-bottom:0; }

@media (max-width: 1000px) {
  .elementor .st-hero { grid-template-columns:1fr .82fr; }
  .elementor .st-hero-title .elementor-heading-title { font-size:38px; }
  .elementor .st-hero-green .elementor-heading-title { font-size:32px; }
  .elementor .st-stats { grid-template-columns:repeat(3,1fr); }
  .elementor .st-stat { border-bottom:1px solid rgba(255,255,255,.12); }
  .elementor .st-about { grid-template-columns:1fr 1fr; }
  .elementor .st-about-image { min-height:340px; }
  .elementor .st-topics { grid-column:1 / -1; border-left:0; border-top:1px solid #D9C9A8; padding:26px 0 0; }
  .elementor .st-who-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 760px) {
  .elementor .st-hero { display:flex !important; flex-direction:column; min-height:0; }
  .elementor .st-hero-left { padding:42px 22px 34px; }
  .elementor .st-hero-image { min-height:330px; order:-1; background-position:center 35%; }
  .elementor .st-hero-image:after { font-size:18px; }
  .elementor .st-hero-title .elementor-heading-title { font-size:34px; }
  .elementor .st-hero-green .elementor-heading-title { font-size:29px; }
  .elementor .st-stats { grid-template-columns:1fr 1fr; padding:0 12px; }
  .elementor .st-stat { min-height:78px; padding:14px 10px; }
  .elementor .st-about { display:flex !important; flex-direction:column; padding:38px 22px; }
  .elementor .st-about-image { min-height:390px; }
  .elementor .st-who-cta { display:flex !important; flex-direction:column; }
  .elementor .st-who, .elementor .st-invest { padding:38px 22px; }
  .elementor .st-testimonials { padding:38px 22px; }
  .elementor .st-testimonial-grid { grid-template-columns:1fr; }
}

@media (max-width: 480px) {
  .elementor .st-hero-title .elementor-heading-title { font-size:30px; }
  .elementor .st-hero-green .elementor-heading-title { font-size:26px; }
  .elementor .st-stats { grid-template-columns:1fr; }
  .elementor .st-who-grid { grid-template-columns:1fr 1fr; }
  .elementor .st-section-title .elementor-heading-title { font-size:24px; }
}


/* ===== Interior Elementor pages ===== */
.elementor .st-page-hero { padding:72px 50px; background:linear-gradient(115deg,#071D36,#174267); color:#fff; }
.elementor .st-page-kicker .elementor-heading-title { color:var(--st-green); font-size:12px; font-weight:900; letter-spacing:.22em; text-transform:uppercase; margin:0 0 12px; }
.elementor .st-page-title .elementor-heading-title { color:#fff; font-size:46px; line-height:1.02; letter-spacing:-.035em; font-weight:900; text-transform:uppercase; margin:0; max-width:880px; }
.elementor .st-page-subtitle, .elementor .st-page-subtitle p { max-width:820px; color:#fff; font-size:17px; line-height:1.6; margin:18px 0 0; }
.elementor .st-page-section { padding:58px 50px; background:#fff; }
.elementor .st-soft-section { background:var(--st-soft); }
.elementor .st-page-section .st-section-title .elementor-heading-title { max-width:850px; font-size:32px; }
.elementor .st-page-section .st-body-copy, .elementor .st-page-section .st-body-copy p { max-width:930px; font-size:15px; line-height:1.7; }
.elementor .st-card-grid { display:grid !important; gap:18px; margin-top:28px; }
.elementor .st-card-grid.st-cols-2 { grid-template-columns:repeat(2,1fr); }
.elementor .st-card-grid.st-cols-3 { grid-template-columns:repeat(3,1fr); }
.elementor .st-card-grid.st-cols-4 { grid-template-columns:repeat(4,1fr); }
.elementor .st-info-card { background:#fff; border:1px solid #E7DECA; border-radius:10px; padding:25px 23px; box-shadow:0 8px 20px rgba(6,43,73,.05); }
.elementor .st-soft-section .st-info-card { background:#fff; }
.elementor .st-card-title .elementor-heading-title { color:var(--st-navy); font-size:19px; line-height:1.2; font-weight:900; margin:0 0 10px; }
.elementor .st-card-copy, .elementor .st-card-copy p { color:#45596A; font-size:13px; line-height:1.55; margin:0; }
.elementor .st-card-link .elementor-button { background:transparent; padding:11px 0 0; color:var(--st-blue); font-weight:900; font-size:11px; text-transform:uppercase; }
.elementor .st-card-link .elementor-button:hover { color:var(--st-green-dark); }
.elementor .st-callout { padding:38px 50px; background:linear-gradient(90deg,#071D36,#163E61); display:grid !important; grid-template-columns:1fr auto; align-items:center; gap:30px; }
.elementor .st-callout-title .elementor-heading-title { color:#fff; font-size:29px; line-height:1.05; font-weight:900; text-transform:uppercase; margin:0; }
.elementor .st-callout-copy, .elementor .st-callout-copy p { color:#fff; font-size:14px; margin:8px 0 0; }
.elementor .st-btn-secondary .elementor-button { background:#173D63; color:#fff; border:2px solid #173D63; border-radius:4px; font-weight:800; text-transform:uppercase; font-size:12px; padding:14px 22px; }
.elementor .st-number-list, .elementor .st-check-list { max-width:880px; color:#263F55; font-size:15px; line-height:1.65; }
.elementor .st-number-list li, .elementor .st-check-list li { margin:8px 0; }
.elementor .st-form-layout { padding:58px 50px; display:grid !important; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:34px; background:#fff; }
.elementor .st-side-panel { background:var(--st-soft); padding:28px; border-radius:10px; border:1px solid #E8DFC9; align-self:start; }
.elementor .st-form-column .st-section-title .elementor-heading-title, .elementor .st-side-panel .st-section-title .elementor-heading-title { font-size:27px; }

@media (max-width:900px) {
  .elementor .st-page-title .elementor-heading-title { font-size:39px; }
  .elementor .st-card-grid.st-cols-4, .elementor .st-card-grid.st-cols-3 { grid-template-columns:repeat(2,1fr); }
  .elementor .st-form-layout { grid-template-columns:1fr; }
}
@media (max-width:650px) {
  .elementor .st-page-hero { padding:52px 22px; }
  .elementor .st-page-title .elementor-heading-title { font-size:32px; }
  .elementor .st-page-subtitle, .elementor .st-page-subtitle p { font-size:15px; }
  .elementor .st-page-section { padding:42px 22px; }
  .elementor .st-card-grid.st-cols-4, .elementor .st-card-grid.st-cols-3, .elementor .st-card-grid.st-cols-2 { grid-template-columns:1fr; }
  .elementor .st-callout { display:flex !important; flex-direction:column; align-items:flex-start; padding:34px 22px; }
  .elementor .st-form-layout { padding:42px 22px; }
}


/* ===== v1.4 centered site layout ===== */
body.elementor-page .elementor {
  width:100%;
  max-width:1280px;
  margin-left:auto;
  margin-right:auto;
}
.elementor .st-hero,
.elementor .st-stats,
.elementor .st-about,
.elementor .st-who-cta,
.elementor .st-testimonials,
.elementor .st-page-hero,
.elementor .st-page-section,
.elementor .st-callout,
.elementor .st-form-layout {
  width:100%;
  max-width:1280px;
  margin-left:auto !important;
  margin-right:auto !important;
}
.elementor .st-shell {
  width:100%;
  max-width:1180px;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media (max-width: 760px) {
  .elementor .st-hero-left { padding-left:22px; padding-right:22px; }
  .elementor .st-stats { padding-left:12px; padding-right:12px; }
  .elementor .st-about,
  .elementor .st-page-section,
  .elementor .st-page-hero,
  .elementor .st-form-layout,
  .elementor .st-testimonials,
  .elementor .st-who,
  .elementor .st-invest,
  .elementor .st-callout {
    padding-left:22px;
    padding-right:22px;
  }
}

/* v1.5 navy / gold refinements. All selectors are inside site classes. */
.elementor .st-hero,
.elementor .st-page-hero { background:linear-gradient(115deg,#071D36 0%,#0D2D4D 65%,#173D63 100%); }
.elementor .st-hero-green .elementor-heading-title,
.elementor .st-invest-green .elementor-heading-title,
.elementor .st-page-kicker .elementor-heading-title { color:#F2D174; }
.elementor .st-eyebrow .elementor-heading-title:after,
.elementor .st-section-kicker .elementor-heading-title:after { background:#D4AF37; }
.elementor .st-btn-primary .elementor-button,
.elementor .st-btn-primary .elementor-button:visited { background:#D4AF37; border-color:#D4AF37; color:#071D36; }
.elementor .st-btn-primary .elementor-button:hover { background:#F2D174; border-color:#F2D174; color:#071D36; }
.elementor .st-btn-secondary .elementor-button { background:#D4AF37; border-color:#D4AF37; color:#071D36; }
.elementor .st-btn-secondary .elementor-button:hover { background:#F2D174; border-color:#F2D174; color:#071D36; }
.elementor .st-card-link .elementor-button:hover { color:#85610F; }
.elementor .st-testimonial-card, .elementor .st-info-card { border-color:#E7DECA; }
.elementor .st-stat-icon .elementor-heading-title { color:#85610F; }
.elementor .st-callout { border-top:3px solid #D4AF37; }
.elementor .st-read-bio .elementor-button:hover { background:#173D63; }

/* v1.7: native Elementor-editable gallery mosaic. */
.elementor .st-photo-section{padding:48px 50px 54px;background:#F8F5ED;display:flex!important;flex-direction:column;gap:18px}
.elementor .st-photo-eyebrow .elementor-heading-title{color:#997417;font-size:12px;font-weight:900;letter-spacing:.19em;text-transform:uppercase;margin:0}
.elementor .st-photo-heading .elementor-heading-title{color:#071D36;font-size:35px;font-weight:900;line-height:1.08;margin:0}
.elementor .st-photo-description,.elementor .st-photo-description p{color:#52606F;font-size:15px;line-height:1.65;margin:0;max-width:780px}
.elementor .st-photo-grid{display:grid!important;grid-template-columns:1.24fr 1fr 1fr;gap:15px;align-items:stretch;min-width:0}
.elementor .st-photo-card{display:flex!important;flex-direction:column;gap:9px;min-width:0}
.elementor .st-gallery-image{width:100%;margin:0!important}
.elementor .st-gallery-image .elementor-widget-container{height:100%;overflow:hidden;border-radius:12px;box-shadow:0 10px 25px rgba(7,29,54,.11);border:1px solid #E9DDBE}
.elementor .st-gallery-image img{display:block;width:100%;height:310px!important;object-fit:cover;object-position:center;transition:transform .35s ease}
.elementor .st-gallery-image img:hover{transform:scale(1.035)}
.elementor .st-photo-grid .st-photo-card:first-child img{height:370px!important}
.elementor .st-gallery-caption .elementor-heading-title{color:#0D2D4D;font-size:14px;line-height:1.3;font-weight:800;margin:0;padding:0 2px}
.elementor .st-photo-action .elementor-button{background:#071D36;color:#fff;border:1px solid #071D36;border-radius:4px;text-transform:uppercase;font-size:12px;font-weight:800;padding:13px 22px}
.elementor .st-photo-action .elementor-button:hover{background:#D4AF37;color:#071D36;border-color:#D4AF37}
.elementor .st-events-highlight{border-left:5px solid #D4AF37;background:#F8F5ED;padding:25px 29px;border-radius:0 9px 9px 0}
.elementor .st-events-highlight .elementor-heading-title{color:#071D36;font-size:23px;font-weight:900}
.elementor .st-events-highlight p{color:#31475D;font-size:15px;line-height:1.6}
@media(max-width:900px){.elementor .st-photo-grid{grid-template-columns:1fr 1fr}.elementor .st-photo-grid .st-photo-card:first-child{grid-column:1/-1}.elementor .st-photo-grid .st-photo-card:first-child img{height:370px!important}}
@media(max-width:650px){.elementor .st-photo-section{padding:38px 22px}.elementor .st-photo-heading .elementor-heading-title{font-size:28px}.elementor .st-photo-grid{grid-template-columns:1fr;gap:22px}.elementor .st-photo-grid .st-photo-card:first-child{grid-column:auto}.elementor .st-photo-grid .st-photo-card:first-child img,.elementor .st-gallery-image img{height:260px!important}}
