/* ═══════════════════════════════════════════════════════
   OUTREACH CONSULT — Shared Stylesheet
   ═══════════════════════════════════════════════════════ */

/* ── RESET ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
img{display:block;max-width:100%;height:auto}

/* ── BRAND TOKENS ──────────────────────────────────────── */
:root{
  --primary:    #0a1628;
  --primary-mid:#102040;
  --primary-lt: #1a3355;
  --accent:     #00a896;
  --accent-dk:  #008a7c;
  --accent-lt:  #e0f5f3;
  --white:      #ffffff;
  --off-white:  #f8f9fb;
  --gray-100:   #eef1f5;
  --gray-200:   #d8dde6;
  --gray-500:   #7a8799;
  --gray-700:   #3d4a5c;
  --ink:        #111820;
  --red:        #e05252;
  --serif:  'Playfair Display', Georgia, serif;
  --sans:   'Jost', system-ui, sans-serif;
  --r:  6px;
  --rl: 12px;
  --rx: 20px;
  --nav-h: 70px;
}

/* ── BASE ───────────────────────────────────────────────── */
body{font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased}

/* ── UTILITY ────────────────────────────────────────────── */
.container{max-width:1160px;margin:0 auto;padding:0 2rem}
.label{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--accent);display:block;margin-bottom:.65rem}
.section-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:600;color:var(--primary);line-height:1.15;margin-bottom:1.1rem}
.section-title em{font-style:italic;color:var(--accent);font-weight:400}
.section-body{font-size:1rem;color:var(--gray-700);line-height:1.85;max-width:580px}
section{padding:5.5rem 2rem}

/* ── BUTTONS ────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:.85rem 2rem;border-radius:var(--r);text-decoration:none;transition:all .22s;cursor:pointer;border:none}
.btn-teal{background:var(--accent);color:var(--white)}
.btn-teal:hover{background:var(--accent-dk);transform:translateY(-2px)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.4);color:var(--white);background:transparent}
.btn-ghost:hover{border-color:var(--white);background:rgba(255,255,255,.08)}
.btn-dark{background:var(--primary);color:var(--white)}
.btn-dark:hover{background:var(--primary-mid);transform:translateY(-2px)}
.btn-outline-teal{border:1.5px solid var(--accent);color:var(--accent);background:transparent}
.btn-outline-teal:hover{background:var(--accent);color:var(--white)}

/* ══════════════════════════════════════════════════════════
   NAV
   ══════════════════════════════════════════════════════════ */
nav{position:fixed;top:0;left:0;right:0;z-index:200;transition:background .3s,box-shadow .3s}
nav.scrolled{background:rgba(10,22,40,.97);box-shadow:0 2px 24px rgba(0,0,0,.3)}
nav.opaque{background:rgba(10,22,40,.97)}
.nav-inner{max-width:1160px;margin:0 auto;padding:0 2rem;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;text-decoration:none}
.nav-links{display:flex;align-items:center;gap:2.25rem;list-style:none}
.nav-links a{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;text-decoration:none;color:rgba(255,255,255,.8);transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--accent)}
.nav-cta{background:var(--accent)!important;color:var(--white)!important;padding:.5rem 1.35rem!important;border-radius:var(--r)!important}
.nav-cta:hover{background:var(--accent-dk)!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
.hamburger span{display:block;width:24px;height:2px;background:var(--white);border-radius:2px;transition:.25s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(10,22,40,.98);padding:1.5rem 2rem 2rem;gap:1.25rem;border-top:1px solid rgba(255,255,255,.1);z-index:199}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.8);text-decoration:none;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
.mobile-menu a:hover{color:var(--accent)}

/* ══════════════════════════════════════════════════════════
   PAGE HERO (inner pages — not full video)
   ══════════════════════════════════════════════════════════ */
.page-hero{background:var(--primary);padding:8rem 2rem 4.5rem;text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 40%,rgba(0,168,150,.12) 0%,transparent 65%)}
.page-hero .label{justify-content:center;display:flex}
.page-hero h1{font-family:var(--serif);font-size:clamp(2.4rem,5vw,4rem);font-weight:700;color:var(--white);line-height:1.1;margin-bottom:1rem}
.page-hero h1 em{font-style:italic;color:var(--accent)}
.page-hero p{font-size:1.05rem;color:rgba(255,255,255,.65);max-width:580px;margin:0 auto;line-height:1.85}
.breadcrumb{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:1.25rem}
.breadcrumb a{color:rgba(255,255,255,.4);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb span{color:rgba(255,255,255,.2)}

/* ══════════════════════════════════════════════════════════
   TICKER
   ══════════════════════════════════════════════════════════ */
.ticker{background:var(--accent);padding:.8rem 0;overflow:hidden}
.ticker-track{display:flex;white-space:nowrap;animation:ticker 30s linear infinite}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-item{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--primary);padding:0 2.5rem}
.ticker-dot{color:rgba(10,22,40,.35)}

/* ══════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════ */
footer{background:var(--primary);color:rgba(255,255,255,.55);padding:4rem 2rem 2rem}
.footer-grid{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem}
.footer-tagline{font-size:.84rem;color:rgba(255,255,255,.4);line-height:1.8;max-width:250px;margin-top:.75rem}
.footer-col h4{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:1rem;font-weight:600}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.5rem}
.footer-col a{font-size:.84rem;color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{max-width:1160px;margin:2.5rem auto 0;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-size:.76rem;flex-wrap:wrap;gap:.5rem}
.footer-bottom a{color:rgba(255,255,255,.4);text-decoration:none}
.footer-bottom a:hover{color:var(--accent)}
.social-links{display:flex;gap:.65rem;margin-top:1.25rem}
.social-links a{width:34px;height:34px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.45);text-decoration:none;font-size:.72rem;font-weight:600;transition:all .2s}
.social-links a:hover{border-color:var(--accent);color:var(--accent)}

/* ══════════════════════════════════════════════════════════
   FORM SHARED STYLES
   ══════════════════════════════════════════════════════════ */
.form-wrap{background:var(--off-white);border:1px solid var(--gray-200);border-radius:var(--rx);padding:2.5rem}
.form-title{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--primary);margin-bottom:.3rem}
.form-subtitle{font-size:.85rem;color:var(--gray-500);margin-bottom:2rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fld{margin-bottom:1.2rem}
.fld label{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--gray-700);margin-bottom:.4rem}
.fld input,.fld select,.fld textarea{width:100%;padding:.78rem 1rem;border:1px solid var(--gray-200);border-radius:var(--r);font-family:var(--sans);font-size:.9rem;color:var(--ink);background:var(--white);outline:none;transition:border .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,168,150,.12)}
.fld textarea{resize:vertical;min-height:120px;line-height:1.65}
.fld select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a8799' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.fld input::placeholder,.fld textarea::placeholder{color:#b0b8c5}
.fld input.invalid,.fld select.invalid,.fld textarea.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(224,82,82,.1)}
.fld .err{font-size:.74rem;color:var(--red);margin-top:.3rem;display:none}
.fld.has-error .err{display:block}
.check-row{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:1.4rem}
.check-row input[type=checkbox]{width:17px;height:17px;margin-top:2px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}
.check-row span{font-size:.8rem;color:var(--gray-500);line-height:1.65}
.btn-submit{width:100%;background:var(--accent);color:var(--white);border:none;padding:1rem;border-radius:var(--r);font-family:var(--sans);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:all .22s;display:flex;align-items:center;justify-content:center;gap:.5rem}
.btn-submit:hover{background:var(--accent-dk)}
.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.form-success{display:none;background:#e0f5f3;border:1px solid rgba(0,168,150,.3);border-radius:var(--r);padding:1.5rem;text-align:center;color:var(--primary);margin-top:1rem}
.form-success strong{display:block;font-family:var(--serif);font-size:1.3rem;margin-bottom:.35rem;color:var(--accent)}
.form-error-msg{display:none;background:#fdf0f0;border:1px solid rgba(224,82,82,.3);border-radius:var(--r);padding:1rem 1.25rem;font-size:.85rem;color:#b03030;margin-top:.75rem}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════ */
@media(max-width:960px){
  .footer-grid{grid-template-columns:1fr 1fr}
  nav .nav-links{display:none}
  .hamburger{display:flex}
  .frow{grid-template-columns:1fr}
}
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr}
  section{padding:3.5rem 1.25rem}
  .page-hero{padding:6.5rem 1.25rem 3rem}
}

/* ══════════════════════════════════════════════════════════
   PERFORMANCE — font display, paint hints, reduced motion
   ══════════════════════════════════════════════════════════ */
@font-face { font-display: swap; }

/* Reduce repaints on animated elements */
nav, #oc-chat-box, #oc-chat-btn { will-change: transform; }

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
  .ticker-track { animation: none; }
  html { scroll-behavior: auto; }
}

/* Prevent layout shift on images */
img { aspect-ratio: attr(width) / attr(height); }
.sf-img { aspect-ratio: 16/9; }
.ap-img-main, .mission-img-main, .why-img { aspect-ratio: 4/3; }
.ib-item img { aspect-ratio: 1/1; }

/* Critical: hide offscreen images until observed */
img[loading="lazy"] { content-visibility: auto; }
