/* =========================================================================
   Red Horizon Group — site styles
   Light, institutional umbrella brand: white/ghost canvas, azure accent, navy
   ink, soft shadows. Signature: the horizon line with three company points.
   Built on Bootstrap 5.
   ========================================================================= */

:root{
  --azure:#0075FA;
  --azure-700:#0A56C2;
  --navy:#0B2A4A;
  --ink:#16263A;
  --muted:#5B6B7E;
  --faint:#8A98A8;
  --white:#FFFFFF;
  --ghost:#F7F9FC;
  --line:#E3E9F1;
  --maxw:1180px;
  --r:14px;
  --shadow-sm:0 1px 2px rgba(11,42,74,.06),0 1px 3px rgba(11,42,74,.05);
  --shadow-lg:0 12px 34px rgba(11,42,74,.10),0 2px 8px rgba(11,42,74,.06);
  --font-display:'Archivo',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-body:'Public Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.7;
  margin:0;
  -webkit-font-smoothing:antialiased;
}
.container{max-width:var(--maxw);}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.12;letter-spacing:-.02em;color:var(--navy);}
h1{font-weight:800;}
h2{font-size:clamp(1.75rem,3vw,2.6rem);}
h3{font-size:1.2rem;font-weight:700;}
p{margin:0 0 1rem;}
a{color:var(--azure);text-decoration:none;transition:color .15s ease;}
a:hover{color:var(--azure-700);}

/* ---- Skip link & focus ---- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--azure);color:#fff;padding:.6rem 1rem;border-radius:0 0 10px 0;font-weight:600;z-index:200;}
.skip-link:focus{left:0;}
:focus-visible{outline:2px solid var(--azure);outline-offset:3px;border-radius:4px;}

/* ---- Eyebrow (tracked caps, not mono) ---- */
.eyebrow{
  font-family:var(--font-body);font-weight:600;font-size:.74rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--azure);
  display:inline-flex;align-items:center;gap:.55rem;
}
.eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--azure);}

.lead-muted{color:var(--muted);font-size:1.15rem;max-width:54ch;}

/* ---- Buttons (rounded-rect, corporate) ---- */
.btn-rh{
  display:inline-block;background:var(--azure);color:#fff;font-weight:600;
  border:0;border-radius:10px;padding:.7rem 1.45rem;font-family:var(--font-body);
  line-height:1.2;cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.btn-rh:hover{background:var(--azure-700);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-lg);}
.btn-ghost-rh{
  display:inline-block;background:var(--white);color:var(--navy);
  border:1px solid var(--line);border-radius:10px;padding:.7rem 1.45rem;line-height:1.2;font-weight:600;
  transition:border-color .15s ease,color .15s ease;
}
.btn-ghost-rh:hover{border-color:var(--azure);color:var(--azure);}

/* ---- Header / nav ---- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .2s ease,box-shadow .2s ease;}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm);}
.navbar{padding:.8rem 0;}
.brand-word{font-family:var(--font-display);font-weight:800;font-size:1.12rem;color:var(--navy);letter-spacing:-.02em;line-height:1;display:inline-flex;align-items:baseline;gap:.4rem;}
.brand-word--light{color:#fff;}
.brand-sub{font-weight:600;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--azure);}
.brand-word--light .brand-sub{color:#7FB6FF;}
.site-nav .nav-link{color:var(--ink);font-size:.96rem;padding:.4rem .9rem;border-radius:8px;transition:color .15s ease;}
.site-nav .nav-link:hover{color:var(--azure);}
.site-nav .nav-link[aria-current="page"]{color:var(--azure);}
.navbar-toggler{border-color:var(--line);}
.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(0,117,250,.25);}

/* ---- Sections ---- */
.section{padding:clamp(3.5rem,8vw,6.5rem) 0;}
.section--ghost{background:var(--ghost);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.section--navy{background:var(--navy);color:#fff;}
.section--navy h2{color:#fff;}
.section-head{max-width:62ch;}
.section-head h2{margin-top:.7rem;}

/* ---- Hero + horizon signature ---- */
.hero{position:relative;overflow:hidden;padding:clamp(4rem,11vw,7.5rem) 0 0;}
.hero__content{position:relative;z-index:1;text-align:center;max-width:62ch;margin:0 auto;}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.3rem);}
.hero .accent{color:var(--azure);}
.hero .lead-muted{margin-left:auto;margin-right:auto;}
.hero__cta{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;}
.horizon{display:block;width:100%;max-width:1000px;margin:clamp(2rem,5vw,3.5rem) auto -1px;}

/* ---- Company cards ---- */
.company{
  position:relative;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:1.7rem;height:100%;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease;
}
.company::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--accent,var(--azure));}
.company:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.company .c-tag{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.company .c-tag .dot{width:9px;height:9px;border-radius:50%;background:var(--accent,var(--azure));}
.company h3{margin:.7rem 0 .55rem;font-size:1.3rem;}
.company p{color:var(--muted);font-size:.98rem;margin:0 0 1.1rem;}
.company .c-link{font-weight:600;}

/* ---- Value points ---- */
.value{padding:1.4rem 0;border-top:1px solid rgba(255,255,255,.14);}
.value:first-child{border-top:0;}
.value h3{color:#fff;font-size:1.15rem;margin:0 0 .35rem;}
.value p{color:rgba(255,255,255,.75);margin:0;}

/* ---- Companies page rows ---- */
.arm-row{border-top:1px solid var(--line);padding:clamp(2rem,5vw,3rem) 0;}
.arm-row:first-of-type{border-top:0;padding-top:.5rem;}
.arm-row .c-tag{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.arm-row .c-tag .dot{width:9px;height:9px;border-radius:50%;background:var(--accent,var(--azure));}
.arm-row h2{margin:.6rem 0 .6rem;}

/* ---- Forms ---- */
.form-label{font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;display:block;}
.form-control{background:var(--white);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:.72rem .9rem;font-size:1rem;}
.form-control:focus{background:var(--white);border-color:var(--azure);box-shadow:0 0 0 3px rgba(0,117,250,.16);color:var(--ink);}
.form-control::placeholder{color:var(--faint);}
.honeypot{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}

/* ---- Banners ---- */
.banner{border-radius:12px;padding:.9rem 1.1rem;border:1px solid var(--line);margin-bottom:1.6rem;font-size:.98rem;}
.banner--ok{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08);color:#14532d;}
.banner--err{border-color:rgba(220,38,38,.4);background:rgba(220,38,38,.07);color:#7f1d1d;}

/* ---- Footer (navy) ---- */
.site-footer{background:var(--navy);color:#fff;padding:3.5rem 0 2rem;}
.footer-tag{color:rgba(255,255,255,.72);max-width:34ch;font-size:.95rem;}
.footer-head{font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#7FB6FF;margin-bottom:.9rem;}
.footer-list{list-style:none;padding:0;margin:0;}
.footer-list li{margin-bottom:.5rem;}
.footer-list a{color:rgba(255,255,255,.78);font-size:.95rem;}
.footer-list a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:2.5rem;padding-top:1.5rem;}
.footer-copy{color:rgba(255,255,255,.6);font-size:.85rem;}

/* ---- Responsive ---- */
@media (max-width:991.98px){
  .navbar-collapse{padding-top:.75rem;}
}

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