
/*
  Lightened site theme (header intentionally unchanged).
  Goal: keep the rugged Recon look, but move pages out of "dark mode".
*/
body{margin:0;font-family:system-ui;background:#f5f7fa;color:#16232b}
header{background:rgba(7,17,21,.85);border-bottom:1px solid #2a3a44;position:sticky;top:0}
.wrap{max-width:1100px;margin:auto;padding:16px}
.brand{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#1b4,#39f);padding:6px 14px;border-radius:999px}
.brand img{height:46px;background:#fff;border-radius:10px;padding:6px}
.brand span{font-weight:900;letter-spacing:.05em}
nav a{color:#b7c7d6;margin-left:14px;text-decoration:none}
nav a.active{color:#fff}
.hero img{width:100%;border-radius:22px;margin:28px 0}
.card{background:#ffffff;border-radius:16px;padding:22px;margin-bottom:18px;border:1px solid #d8e1e8;box-shadow:0 10px 26px rgba(0,0,0,0.08)}
footer{border-top:1px solid #d8e1e8;color:#4a5d68;background:#f1f4f6;padding:22px;margin-top:40px}
input,textarea{width:100%;padding:10px;margin:6px 0;background:#ffffff;border:1px solid #cfd9e0;border-radius:12px;color:#16232b}

/* General typography (hero keeps its own light text rules) */
h1,h2,h3{color:#0b1c22;margin-top:0}
main p{color:#22323c}
main a{color:#0b6d5a}
main a:hover{opacity:.9}

/* Light borders for image frames */
.hero img,.wide-photo,.hero-bg{border-color:#d8e1e8 !important}

/* Keep buttons readable on light background */
button{box-shadow:0 10px 22px rgba(0,0,0,0.12)}
button{padding:12px 18px;border-radius:12px;border:0;background:#4cf2c6;font-weight:800}


/* --- Subtle animations (respect reduced motion) --- */
@media (prefers-reduced-motion: no-preference){
  .brand{ opacity:0; transform: translateY(-4px); animation: brandIn .8s ease-out forwards; }
  @keyframes brandIn{ to{ opacity:1; transform: translateY(0);} }

  .hero img{ will-change: transform; }
  .fadeUp{ opacity:0; transform: translateY(10px); }
  .fadeUp.in{ opacity:1; transform: translateY(0); transition: opacity .7s ease, transform .7s ease; }
}

/* Smoother hero image */
.hero img{
  display:block;
  border:1px solid #2a3a44;
}

.hero{
  position: relative;
  overflow: hidden;
}
.hero img{
  
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to bottom, rgba(7,17,21,0.55), rgba(7,17,21,0.88));
  pointer-events:none;
}

/* --- Prominent brand logo --- */
.brand{
  display:flex;
  align-items:center;
  gap:18px;
  padding:12px 20px 12px 12px;
  border-radius:999px;
  background: linear-gradient(135deg, rgba(255,255,255,0.14), rgba(255,255,255,0.06));
  border:1px solid rgba(255,255,255,0.28);
  box-shadow:0 12px 30px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.18);
}

.brand img{
  height:72px;
  width:auto;
  background:#ffffff;
  padding:10px;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}

.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}

.brand-name{
  font-weight:900;
  font-size:1.05rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.brand-sub{
  font-size:.75rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#b7c7d6;
}

@media (max-width:700px){
  .brand img{ height:56px; }
  .brand-name{ font-size:.95rem; }
}

/* --- Craft-style editable hero text over image --- */


.hero-content{
  max-width: 760px;
  padding: 28px;
}

.hero-kicker{
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
  color: #b7c7d6;
  font-size: .8rem;
}

.hero-title{
  margin: 10px 0 10px;
  font-size: clamp(2.1rem, 3.1vw, 3.2rem);
  line-height: 1.05;
  color: #ecf6ff;
}

.hero-lead{
  margin: 0;
  margin-top: 8px;
  color: #d4e2ef;
  max-width: 65ch;
}

.hero-actions{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

@media (max-width: 700px){
  
  .hero-content{ padding: 20px; }
}

/* --- Fix: brand readability --- */
.brand{
  background: rgba(255,255,255,0.14) !important;
  border: 1px solid rgba(255,255,255,0.30) !important;
}
.brand-name{
  letter-spacing: .04em !important;
  font-size: 1.08rem !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.65);
}
.brand-sub{
  color: rgba(236,246,255,0.78) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,0.65);
}
.brand img{
  height: 78px !important;
  padding: 12px !important;
}

/* --- Bottom large image banner --- */
.wide-photo{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  margin: 26px 0 8px;
  border: 1px solid #2a3a44;
}
.wide-photo img{
  width: 100%;
  height: auto;
  display: block;
  
}
.wide-kicker{
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
  color: #b7c7d6;
  font-size: .8rem;
}
.wide-photo-text h2{
  margin: 8px 0 8px;
  font-size: 1.6rem;
  color: #ecf6ff;
}
.wide-photo-text p{
  margin: 0;
  color: #d4e2ef;
}


/* --- Fully clear images: text directly over image --- */
.hero-content{
  background: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  padding: 28px;
}

.hero-title,
.hero-lead,
.hero-kicker{
  text-shadow: 0 3px 14px rgba(0,0,0,0.75);
}

.wide-photo-overlay{
  display:none;
}


/* --- Hero base (per-page background-image set in HTML inline style) --- */


/* --- Hero images: boxed/rounded, fully clear (no overlays, no dimming) --- */
.hero-bg{
  position: relative;
  min-height: 72vh;
  display:flex;
  align-items: center;
  border-radius: 22px;
  overflow:hidden;
  margin: 28px 0;
  background-size: cover;
  background-position: center 60%;
  background-repeat: no-repeat;
  border: 1px solid #2a3a44;
  background-color: transparent;
  filter: none !important;
  opacity: 1 !important;
}
.hero-bg::before,
.hero-bg::after{
  content: none !important;
  display: none !important;
}
/* Text sits directly on image */
.hero-content{
  background: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}
.hero-kicker, .hero-title, .hero-lead{
  color: #ecf6ff;
  text-shadow: 0 3px 14px rgba(0,0,0,0.75);
}

/* --- Header always on top (fix poke-behind) --- */
header{
  position: sticky;
  top: 0;
  z-index: 9999;
}
/* Ensure hero never overlaps the header */
.hero-bg{
  z-index: 0;
}
.hero-bg .hero-content{
  position: relative;
  z-index: 1;
}


/* --- Prominent clickable RECON logo --- */
.brand-link{
  text-decoration: none;
}
.brand{
  display:flex;
  align-items:center;
  gap:16px;
  background: rgba(255,255,255,0.92);
  padding: 10px 18px 10px 10px;
  border-radius: 14px;
  box-shadow:
    0 8px 24px rgba(0,0,0,0.35),
    inset 0 1px 0 rgba(255,255,255,0.6);
}
.brand img{
  height: 64px;
  width: auto;
  display:block;
}
.brand-title{
  display:flex;
  flex-direction:column;
  font-weight:700;
  letter-spacing:0.02em;
  color:#0b1c22;
  line-height:1.1;
}
.brand-title small{
  font-weight:500;
  font-size:0.75rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:#4a6a73;
}
.brand-link:focus-visible{
  outline: 2px solid #4fa3ff;
  outline-offset: 4px;
}


/* --- Active nav link --- */
nav a.active{
  color:#ffffff;
  font-weight:700;
  text-decoration: underline;
  text-underline-offset: 6px;
}

/* --- Header layout: logo left, nav right (v26-style) --- */
header .header-inner,
header .topbar,
header .header,
header .wrap {
  display: flex;
  align-items: center;
}

header nav {
  margin-left: auto; /* pushes nav to the right */
}

nav a {
  margin-left: 18px;
}

/* --- Logo text white for stronger contrast --- */
.brand{
  background: rgba(20, 35, 45, 0.92);
}

.brand-title{
  color: #ffffff;
}

.brand-title small{
  color: #d6e4ea;
}

/* --- Header (v26-style): logo left, links right, never off-screen --- */
.site-header{
  position: sticky;
  top: 0;
  z-index: 9999;
  background: rgba(7, 16, 20, 0.92);
  backdrop-filter: blur(10px);
}

.site-header .header-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.nav-links{
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;          /* prevents off-screen */
  justify-content: flex-end;
}

.nav-links a{
  white-space: nowrap;
}

/* Keep nav tidy on smaller screens */
@media (max-width: 820px){
  .site-header .header-inner{
    flex-wrap: wrap;
  }
  .nav-links{
    width: 100%;
    margin-left: 0;
    justify-content: center;
    gap: 16px;
    padding-top: 6px;
  }
}


/* --- Helpers --- */
.muted{ color:#4a5d68; }

/* --- About V2: Team toggle --- */
.team-toggle{
  display: inline-flex;
  gap: 8px;
  padding: 6px;
  border: 1px solid #d8e1e8;
  border-radius: 999px;
  background: #f1f4f6;
  flex-wrap: wrap;
  margin: 10px 0 16px;
}
.team-tab{
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 10px 14px;
  background: transparent;
  color: #0b1c22;
  font-weight: 900;
  box-shadow: none;
  cursor: pointer;
}
.team-tab.is-active{
  background: #0b6d5a;
  color: #ffffff;
}
.team-grid{
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 18px;
  align-items: start;
}
.team-photo img{
  width: 100%;
  height: auto;
  border-radius: 18px;
  border: 1px solid #d8e1e8;
}
.team-bio h3{ margin-top: 0; }
@media (max-width: 700px){
  .team-grid{ grid-template-columns: 1fr; }
  .team-photo{ max-width: 320px; }
}

/* --- Careers: simple accordion --- */
.job-posting{ border-top: 1px solid #d8e1e8; padding-top: 10px; margin-top: 10px; }
.job-posting:first-of-type{ border-top: 0; padding-top: 0; margin-top: 0; }
.accordion-trigger{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #d8e1e8;
  background: #ffffff;
  font-weight: 900;
  box-shadow: none;
  cursor: pointer;
}
.accordion-icon{ font-weight: 900; }
.accordion-panel{
  padding: 12px 14px 14px;
  border: 1px solid #d8e1e8;
  border-top: 0;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  background: #ffffff;
}
.accordion-trigger[aria-expanded="true"]{
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.accordion-panel h4{ margin: 14px 0 8px; }
.accordion-panel ul{ margin: 6px 0 12px 18px; padding: 0; }
.accordion-panel li{ margin: 6px 0; }


/* === Contact Form Overflow Fix === */
form textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

form input {
    box-sizing: border-box;
}

.contact-form {
    overflow: hidden;
}


/* === Global box-sizing to prevent 100% width overflow (inputs/textarea) === */
*, *::before, *::after {
  box-sizing: border-box;
}

input, textarea {
  box-sizing: border-box;
  max-width: 100%;
}

textarea {
  resize: vertical;
}

/* Safety badge styling */
.safety-badges {
  margin-top: 2rem;
  text-align: center;
}

.badge-row {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.badge-row img {
  max-height: 140px;
  width: auto;
}

.safe-support-line {
  margin-top: 1rem;
  font-weight: 500;
  text-align: center;
}
