:root{--navy:#203467;--deep:#203467;--green:#8bc63f;--sky:#f3f5f8;--ink:#231f20;--gray:#58595b;--white:#fff;--serif:"Libre Baskerville",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;background:white}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);line-height:1.12}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,76px);position:relative;z-index:20;background:rgba(255,255,255,.97);box-shadow:0 2px 18px rgba(0,35,63,.08)}.brand,.footer-brand{display:flex;align-items:center;gap:12px}.brand>img{display:block;width:270px;max-width:31vw;height:auto}.brand-mark{width:54px;height:58px;border-radius:10px;background:var(--deep);color:white;font-family:var(--serif);font-size:39px;display:grid;place-items:center;border-right:9px solid var(--green);font-style:italic}.brand strong,.footer-brand strong{display:block;font:700 25px/1 var(--serif);letter-spacing:.02em}.brand small,.footer-brand small{display:block;font:700 14px/1.3 var(--serif);letter-spacing:.1em}.site-header nav{display:flex;align-items:center;gap:27px;font-weight:600;font-size:14px}.site-header nav a:hover{color:#4e9d28}.nav-cta{background:var(--green);padding:12px 20px;border-radius:7px;color:#06233b!important}.menu-toggle{display:none;background:var(--navy);color:white;border:0;border-radius:6px;padding:10px 14px;font:600 14px var(--sans)}
.hero{min-height:650px;position:relative;display:flex;align-items:center;color:white;background:linear-gradient(110deg,rgba(0,28,50,.35),rgba(0,28,50,.1)),url('mountains.webp') center 42%/cover no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,24,43,.94) 0%,rgba(2,36,63,.78) 47%,rgba(2,35,62,.15) 78%)}.hero-content{position:relative;z-index:1;width:min(760px,90%);margin-left:clamp(24px,7vw,105px);padding:80px 0 62px}.eyebrow,.section-kicker{font-weight:700;letter-spacing:.13em;font-size:14px;color:var(--green)}.eyebrow span{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;margin:0 8px 2px}.hero h1{font-size:clamp(43px,6vw,78px);margin:17px 0 8px;letter-spacing:-.04em}.hero h1 em{color:var(--green);font-style:normal}.tagline{font:italic clamp(22px,2.8vw,33px)/1.3 var(--serif);margin-bottom:18px}.specialty{max-width:690px;color:#b9f28f;font-weight:700;font-size:clamp(17px,2vw,21px)}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 20px;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:.035em;font-size:14px;transition:.2s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.18)}.button.primary{background:var(--green);color:#06233b}.button.outline{border:2px solid rgba(255,255,255,.85);color:white}.button.dark{background:var(--navy);color:white}.trust-row{display:flex;gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,.25);padding-top:20px;color:#e2edf3;font-weight:600}.trust-row span{padding:0 22px;border-right:1px solid rgba(255,255,255,.3)}.trust-row span:first-child{padding-left:0}.trust-row span:last-child{border:0}
.split-services{display:grid;grid-template-columns:1.12fr .88fr}.service{padding:72px clamp(28px,5vw,76px)}.service h2,.approach h2,.team h2,.cta h2{font-size:clamp(34px,4.2vw,54px);margin-bottom:20px;letter-spacing:-.03em}.service>p:not(.section-kicker){font-size:18px;max-width:650px}.service ul{list-style:none;padding:0;margin:27px 0 34px}.service li{padding:11px 0 11px 34px;position:relative}.service li:before{content:"✓";position:absolute;left:0;top:10px;color:var(--green);font-weight:800;font-size:19px}.employers{background:var(--navy);color:white}.candidates{background:linear-gradient(145deg,#fff 35%,#e7f3f6)}.candidates .section-kicker{color:#58ad31}.approach{padding:90px clamp(28px,7vw,110px);display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;background:#f4f8f9}.approach-copy{font-size:18px}.steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:15px}.steps div{background:white;padding:30px;border-top:5px solid var(--green);box-shadow:0 12px 35px rgba(8,43,72,.08)}.steps span{font-weight:700;color:#64b83a;letter-spacing:.12em}.steps h3{font-size:25px;margin:9px 0}.steps p{margin:0}.team{padding:90px clamp(26px,6vw,96px)}.section-title{text-align:center;max-width:760px;margin:0 auto 48px}.section-title>p:last-child{font-size:18px}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;max-width:1150px;margin:auto}.person{display:grid;grid-template-columns:minmax(180px,43%) 1fr;gap:28px;align-items:center}.portrait{position:relative}.person .headshot{display:block;width:100%;height:auto;object-fit:contain;border-radius:9px;box-shadow:0 14px 34px rgba(5,39,67,.14)}.person h3{font-size:28px;margin-bottom:3px}.role{font:italic 18px var(--serif);color:#4c8d2c;border-bottom:3px solid var(--green);padding-bottom:11px}.cta{text-align:center;padding:88px 24px;color:white;background:linear-gradient(rgba(1,28,50,.87),rgba(1,28,50,.87)),url('mountains.webp') center 64%/cover}.cta p:not(.section-kicker){font-size:19px;max-width:650px;margin:0 auto 28px}.cta .button{min-width:220px}footer{background:var(--deep);color:white;padding:50px clamp(24px,6vw,90px) 28px;display:grid;grid-template-columns:1fr 1.5fr;gap:30px;align-items:center}.footer-brand>img{display:block;width:270px;max-width:100%;height:auto}.contact-links{display:flex;justify-content:flex-end;gap:25px;flex-wrap:wrap;color:#e5eef4}.contact-links a:hover{color:var(--green)}footer>p{grid-column:1/-1;text-align:center;border-top:1px solid rgba(255,255,255,.18);padding-top:22px;margin:8px 0 0;font-size:13px;color:#b8c9d4}
@media(max-width:900px){.site-header{height:76px}.brand-mark{width:45px;height:48px;font-size:31px}.brand strong{font-size:20px}.brand small{font-size:11px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;background:white;padding:22px 26px;gap:0;box-shadow:0 14px 22px rgba(0,0,0,.12)}.site-header nav.open{display:flex}.site-header nav a{padding:12px}.hero{min-height:630px}.hero-content{margin:auto;padding:60px 0}.trust-row{flex-direction:column;gap:8px}.trust-row span{border:0;padding:0}.split-services,.approach,.team-grid{grid-template-columns:1fr}.approach{gap:20px}.steps{grid-template-columns:1fr}.person{grid-template-columns:190px 1fr}.candidates{order:2}footer{grid-template-columns:1fr;text-align:center}.footer-brand{justify-content:center}.contact-links{justify-content:center}footer>p{grid-column:auto}}
@media(max-width:590px){.brand>img{max-width:none;width:215px}.hero{min-height:700px}.hero h1{font-size:45px}.hero-actions{flex-direction:column}.hero-actions .button{width:100%}.split-services .service{padding:58px 25px}.person{grid-template-columns:1fr}.person .headshot{max-width:330px;margin:auto}.person>div:not(.portrait){text-align:center}.team-grid{gap:60px}.approach,.team{padding:68px 24px}.eyebrow{font-size:12px}.trust-row{font-size:14px}}

/* Official Vine brand alignment */
.site-header{height:112px;padding-left:clamp(28px,5vw,76px)}
.brand>img{width:290px;max-width:34vw}
.site-header nav a:hover,.contact-links a:hover{color:var(--green)}
.nav-cta,.button.primary{color:var(--navy)!important}
.specialty,.candidates .section-kicker,.steps span,.role{color:var(--green)}
.hero-overlay{background:linear-gradient(90deg,rgba(32,52,103,.96) 0%,rgba(32,52,103,.78) 47%,rgba(32,52,103,.14) 78%)}
.cta{background:linear-gradient(rgba(32,52,103,.9),rgba(32,52,103,.9)),url('mountains.webp') center 64%/cover}
.footer-brand{justify-self:start;background:#fff;border-radius:8px;padding:8px 14px}
.footer-brand>img{width:310px}
footer>p{color:#fff}
@media(max-width:900px){.site-header{height:88px}.site-header nav{top:88px}.brand>img{width:235px;max-width:45vw}.footer-brand{justify-self:center}}
@media(max-width:590px){.brand>img{width:210px;max-width:62vw}.footer-brand>img{width:255px}}

/* Contact forms */
button.button{border:0;cursor:pointer;font-family:var(--sans)}
button.button:disabled{cursor:wait;opacity:.72;transform:none}
.contact-dialog{width:min(760px,calc(100% - 32px));max-height:90vh;margin:auto;border:0;border-radius:14px;padding:clamp(28px,5vw,52px);color:var(--ink);box-shadow:0 28px 80px rgba(16,28,58,.34);overflow:auto}
.contact-dialog::backdrop{background:rgba(17,28,55,.78);backdrop-filter:blur(3px)}
.dialog-close{position:absolute;right:18px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:#edf0f5;color:var(--navy);font:500 28px/1 var(--sans);cursor:pointer}
.dialog-intro{padding-right:42px;margin-bottom:26px}
.dialog-intro h2{font-size:clamp(30px,4vw,44px);margin:7px 0 10px;color:var(--navy)}
.dialog-intro p:last-child{margin:0;color:var(--gray)}
.contact-form[hidden]{display:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}
.contact-form label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:var(--navy);font-size:14px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #b9c0cd;border-radius:7px;background:#fff;color:var(--ink);padding:12px 13px;font:500 16px/1.35 var(--sans)}
.contact-form textarea{resize:vertical;min-height:112px}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid rgba(139,198,63,.25);border-color:var(--green)}
.contact-form input[type="file"]{padding:10px;background:#f7f8fa;border-style:dashed;cursor:pointer}.contact-form input[type="file"]::file-selector-button{border:0;border-radius:5px;background:var(--navy);color:#fff;padding:9px 12px;margin-right:12px;font:700 13px var(--sans);cursor:pointer}.field-note{font-weight:500;color:var(--gray);font-size:12px}
.form-wide{grid-column:1/-1}.honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-submit{min-width:230px}.form-status{margin:14px 0 0;color:#a12a2a;font-weight:700}
@media(max-width:590px){.contact-dialog{padding:30px 22px}.dialog-intro{padding-right:30px}.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.form-submit{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
