/*
Theme Name: Moore IT Services Custom
Theme URI: https://mooreitsvcs.com/
Author: Moore IT Services
Description: Custom responsive theme for Moore IT Services.
Version: 1.0.0
Text Domain: moore-it-custom
*/
/* ============================================================
   Moore IT Services design tokens
   ============================================================ */
:root{
  --navy: #0B2A4A;
  --navy-deep: #061B32;
  --paper: #F5F7FB;
  --paper-dim: #EAF0F7;
  --ink: #111827;
  --ink-soft: #475569;
  --brass: #2439E8;
  --brass-bright: #38BDF8;
  --teal: #2563EB;
  --line: rgba(23,27,32,0.14);
  --line-on-navy: rgba(237,234,231,0.18);
  --serif: 'Josefin Sans', 'Trebuchet MS', sans-serif;
  --sans: 'Proxima Nova', 'Avenir Next', Avenir, Arial, sans-serif;
  --mono: 'Proxima Nova', 'Avenir Next', Avenir, Arial, sans-serif;
  --max: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.12;
  margin:0 0 .4em;
  color:var(--navy);
}
p{margin:0 0 1em; max-width:62ch;}
.container{max-width:var(--max); margin:0 auto; padding:0 32px;}

@media (max-width:640px){
  .container{padding:0 20px;}
}

/* focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
}

/* ---------------- Header / Nav ---------------- */
.site-header{
  background:var(--navy);
  color:var(--paper);
  border-bottom:1px solid var(--line-on-navy);
}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 0;
  gap:24px;
  flex-wrap:wrap;
}
.brand{
  font-family:var(--serif);
  font-size:1.28rem;
  font-weight:600;
  color:var(--paper);
  letter-spacing:.01em;
  white-space:nowrap;
}
.brand small{
  display:block;
  font-family:var(--sans);
  font-size:.62rem;
  font-weight:400;
  letter-spacing:.14em;
  color:var(--brass-bright);
  margin-top:3px;
}
.nav-links{
  display:flex;
  gap:26px;
  flex-wrap:wrap;
  font-size:.92rem;
}
.nav-links a{
  color:var(--paper-dim);
  padding:4px 0;
  border-bottom:1px solid transparent;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  color:var(--paper);
  border-bottom-color:var(--brass);
}
.nav-cta{
  background:var(--brass);
  color:var(--navy-deep);
  padding:9px 18px;
  border-radius:2px;
  font-weight:600;
  font-size:.88rem;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--brass-bright);}

/* ---------------- Hero / title block ---------------- */
.hero{
  background:
    linear-gradient(180deg, var(--navy) 0%, var(--navy) 100%);
  background-image:
    repeating-linear-gradient(0deg, var(--line-on-navy) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, var(--line-on-navy) 0 1px, transparent 1px 64px),
    linear-gradient(180deg, var(--navy) 0%, var(--navy) 100%);
  color:var(--paper);
  padding:76px 0 54px;
}
.title-block{
  border:1px solid var(--line-on-navy);
  padding:22px 26px;
  max-width:640px;
  margin-bottom:34px;
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--paper-dim);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 24px;
}
.title-block div span{display:block; color:var(--brass-bright); margin-bottom:2px;}
.hero h1{
  color:var(--paper);
  font-size:clamp(2.1rem, 4.4vw, 3.4rem);
  max-width:16ch;
  margin-bottom:.3em;
}
.hero .lede{
  color:var(--paper-dim);
  font-size:1.12rem;
  max-width:56ch;
}
.hero-actions{
  display:flex;
  gap:16px;
  margin-top:28px;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:13px 24px;
  font-weight:600;
  font-size:.92rem;
  border-radius:2px;
  border:1px solid transparent;
}
.btn-brass{background:var(--brass); color:var(--navy-deep);}
.btn-brass:hover{background:var(--brass-bright);}
.btn-outline{border-color:var(--line-on-navy); color:var(--paper);}
.btn-outline:hover{border-color:var(--brass-bright); color:var(--brass-bright);}
.btn-outline-dark{border-color:var(--line); color:var(--navy);}
.btn-outline-dark:hover{border-color:var(--brass); color:var(--brass);}

/* ---------------- Sections ---------------- */
section{padding:64px 0;}
.section-tight{padding:44px 0;}
.section-navy{background:var(--navy); color:var(--paper);}
.section-navy h2, .section-navy h3{color:var(--paper);}
.section-dim{background:var(--paper-dim);}

.kicker{
  font-family:var(--mono);
  font-size:.74rem;
  color:var(--brass);
  letter-spacing:.04em;
  margin-bottom:10px;
  display:block;
}
.section-navy .kicker{color:var(--brass-bright);}

h2{font-size:clamp(1.6rem, 2.6vw, 2.2rem);}

.rule{border:none; border-top:1px solid var(--line); margin:0;}
.section-navy .rule{border-top-color:var(--line-on-navy);}

/* ledger list: replaces generic card grids where content is a spec/line-item list */
.ledger{border-top:1px solid var(--line);}
.ledger-row{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.ledger-row h4{margin:0; font-size:1.05rem; color:var(--navy);}
.ledger-row p{margin:0; color:var(--ink-soft); max-width:60ch;}
@media (max-width:720px){
  .ledger-row{grid-template-columns:1fr; gap:6px;}
}

/* two column */
.grid-2{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:56px;
  align-items:start;
}
@media (max-width:820px){
  .grid-2{grid-template-columns:1fr;}
}

/* stat row */
.stat-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line-on-navy);
  border:1px solid var(--line-on-navy);
  margin-top:36px;
}
.stat{
  background:var(--navy);
  padding:26px 22px;
}
.stat .num{
  font-family:var(--serif);
  font-size:2.4rem;
  color:var(--brass-bright);
  line-height:1;
}
.stat .label{
  font-size:.84rem;
  color:var(--paper-dim);
  margin-top:8px;
}
@media (max-width:640px){
  .stat-row{grid-template-columns:1fr;}
}

/* sector / service cards: deliberately plain, bordered not shadowed */
.plain-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.plain-card{
  background:var(--paper);
  padding:28px 26px;
}
.plain-card h3{font-size:1.1rem; margin-bottom:8px;}
.plain-card p{color:var(--ink-soft); font-size:.95rem; margin-bottom:14px;}
.plain-card a{font-size:.86rem; font-weight:600; color:var(--brass); border-bottom:1px solid var(--brass);}

/* service-area strip */
.area-strip{
  font-family:var(--mono);
  font-size:.82rem;
  color:var(--ink-soft);
  padding:16px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.section-navy .area-strip{color:var(--paper-dim); border-color:var(--line-on-navy);}

/* case study teaser */
.cs-teaser{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line);
}
.cs-teaser > div{padding:34px;}
.cs-teaser .cs-meta{
  background:var(--navy);
  color:var(--paper);
}
.cs-teaser .kicker{color:var(--brass-bright);}
@media (max-width:760px){
  .cs-teaser{grid-template-columns:1fr;}
}

/* pull quote */
.pull{
  font-family:var(--serif);
  font-size:1.5rem;
  color:var(--navy);
  border-left:3px solid var(--brass);
  padding-left:22px;
  margin:28px 0;
  max-width:52ch;
}
.section-navy .pull{color:var(--paper);}

/* footer */
.site-footer{
  background:var(--navy-deep);
  color:var(--paper-dim);
  padding:48px 0 28px;
  font-size:.88rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:32px;
  padding-bottom:32px;
  border-bottom:1px solid var(--line-on-navy);
}
.footer-grid h5{
  color:var(--paper);
  font-family:var(--sans);
  font-size:.8rem;
  letter-spacing:.06em;
  margin:0 0 14px;
}
.footer-grid a{
  display:block;
  color:var(--paper-dim);
  margin-bottom:9px;
}
.footer-grid a:hover{color:var(--brass-bright);}
.footer-bottom{
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:.8rem;
  color:var(--ink-soft);
  color:#8A93A0;
}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr 1fr;}
}

/* process steps: genuinely sequential, numbering earned here */
.steps{counter-reset:step;}
.step{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:18px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
.step::before{
  counter-increment:step;
  content:counter(step);
  font-family:var(--serif);
  font-size:1.6rem;
  color:var(--brass);
}
.step h4{margin:0 0 4px; font-size:1.02rem;}
.step p{margin:0; color:var(--ink-soft); font-size:.94rem;}

/* forms */
.form-field{margin-bottom:16px;}
.form-field label{
  display:block;
  font-size:.82rem;
  color:var(--ink-soft);
  margin-bottom:6px;
  font-family:var(--mono);
}
.form-field input, .form-field textarea, .form-field select{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:var(--sans);
  font-size:.95rem;
  color:var(--ink);
  border-radius:2px;
}
.form-field textarea{min-height:120px; resize:vertical;}


/* WordPress integration */
body.admin-bar .site-header{top:32px}
body,button,input,select,textarea{font-family:var(--sans)}
h1,h2,h3,h4,h5,h6,.brand{font-family:var(--serif);font-weight:700}
.kicker,.hero-kicker,.area-strip,.title-block,.review-card footer{font-family:var(--sans);font-weight:700}
.site-header{position:sticky;top:0;z-index:1000;background:#fff;color:var(--navy);border-bottom:1px solid rgba(11,42,74,.12);box-shadow:0 4px 18px rgba(6,27,50,.06)}
.brand{display:flex;align-items:center;gap:12px;color:var(--navy)}
.brand-logo{width:54px;height:auto;display:block;flex:none}
.brand-copy{display:block;line-height:1.08}
.brand small{color:var(--brass);margin-top:5px}
.nav-links a{color:#26384c}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--brass);border-bottom-color:var(--brass)}
.nav-toggle{display:none;background:transparent;border:1px solid rgba(11,42,74,.22);color:var(--navy);padding:8px 10px;font:600 .82rem var(--sans)}
.nav-cta{background:var(--brass);color:#fff}
.nav-cta:hover{background:#142FD6;color:#fff}
.btn-brass{color:#fff}
.wp-site-blocks,.site-content{padding:0!important;margin:0!important}
.wpcf7 p{max-width:none;margin:0 0 14px}
.wpcf7 label{display:block;font:500 .82rem var(--mono);color:var(--ink-soft)}
.wpcf7 input:not([type=submit]),.wpcf7 textarea,.wpcf7 select{width:100%;padding:12px 14px;margin-top:6px;border:1px solid var(--line);background:var(--paper);font:400 .95rem var(--sans);color:var(--ink);border-radius:2px}
.wpcf7 input[type=submit]{display:inline-block;padding:13px 24px;border:0;border-radius:2px;background:var(--brass);color:var(--navy-deep);font:600 .92rem var(--sans);cursor:pointer}
.content-shell{min-height:55vh}
.content-shell article{max-width:900px;margin:0 auto;padding:64px 32px}
.content-shell article h1{font-size:clamp(2rem,4vw,3.2rem)}
.content-shell article h2{margin-top:1.5em}
.content-shell article p,.content-shell article li{color:var(--ink-soft)}
.hero-home{position:relative;overflow:hidden;padding:88px 0 72px;isolation:isolate}
.hero-home .container{position:relative;z-index:2}
.hero-home h1{font-size:clamp(2.65rem,5.5vw,4.6rem);max-width:18ch;letter-spacing:-.025em}
.hero-supporting{max-width:32ch;margin:16px 0 18px;color:var(--paper);font:600 clamp(1.25rem,2.3vw,1.8rem)/1.35 var(--sans)}
.hero-home .lede{font-size:clamp(1.08rem,1.7vw,1.3rem);line-height:1.65;max-width:68ch}
.hero-kicker{display:block;margin-bottom:18px;font:600 .78rem var(--mono);letter-spacing:.1em;color:var(--brass-bright)}
.hero-capabilities{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;margin:26px 0 0;padding:0;color:var(--paper);font-size:1rem;font-weight:600}
.hero-capabilities li{position:relative;padding-left:18px}
.hero-capabilities li:before{content:"";position:absolute;left:0;top:.58em;width:7px;height:7px;border-radius:50%;background:var(--brass-bright);box-shadow:0 0 16px rgba(192,143,82,.8)}
.hero-motion{position:absolute;z-index:1;right:-6%;top:5%;width:min(46vw,650px);height:90%;opacity:.58;pointer-events:none}
.reviews-section{overflow:hidden;background:#fff}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}
.reviews-heading h2{margin-bottom:0;max-width:20ch}
.review-controls{display:flex;gap:10px}
.review-control{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(11,42,74,.18);border-radius:50%;background:#fff;color:var(--navy);font-size:1.25rem;cursor:pointer;transition:.2s ease}
.review-control:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.review-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(320px,calc((100% - 40px)/3));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 18px;scrollbar-width:none}
.review-track::-webkit-scrollbar{display:none}
.review-card{scroll-snap-align:start;display:flex;flex-direction:column;min-height:285px;padding:30px;border:1px solid rgba(11,42,74,.13);border-radius:14px;background:linear-gradient(145deg,#fff,#f5f7fb);box-shadow:0 12px 34px rgba(6,27,50,.07)}
.review-stars{color:#F4B400;letter-spacing:4px;font-size:1.08rem;margin-bottom:20px}
.review-card blockquote{margin:0;font-size:1.08rem;line-height:1.7;color:var(--ink);font-style:normal}
.review-card footer{margin-top:auto;padding-top:24px;color:var(--ink-soft);font:600 .78rem var(--mono);letter-spacing:.06em}
.reviews-source{display:flex;align-items:center;gap:9px;margin-top:24px;color:var(--ink-soft);font-size:.94rem}
.google-wordmark{display:inline-flex;font:600 1.14rem Arial,sans-serif;letter-spacing:-.04em}.google-wordmark span:nth-child(1),.google-wordmark span:nth-child(4){color:#4285F4}.google-wordmark span:nth-child(2),.google-wordmark span:nth-child(6){color:#EA4335}.google-wordmark span:nth-child(3){color:#FBBC05}.google-wordmark span:nth-child(5){color:#34A853}
.contact-home{background:var(--paper-dim)}
.contact-home-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr);gap:70px;align-items:start}
.contact-home-copy h2{max-width:14ch}
.contact-home-copy p{color:var(--ink-soft);font-size:1.08rem;line-height:1.7}
.home-contact-form{padding:34px;border-top:5px solid var(--brass);background:#fff;box-shadow:0 18px 50px rgba(6,27,50,.1)}
.home-contact-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.home-contact-form label{display:block;margin-bottom:7px;color:var(--navy);font-weight:600;font-size:.86rem}
.home-contact-form input,.home-contact-form select,.home-contact-form textarea{width:100%;padding:13px 14px;border:1px solid rgba(11,42,74,.2);border-radius:4px;background:#fff;color:var(--ink);font:400 1rem var(--sans)}
.home-contact-form textarea{min-height:125px;resize:vertical}
.home-contact-form .form-full{grid-column:1/-1}
.home-contact-form .form-note{margin:15px 0 0;font-size:.78rem;color:var(--ink-soft)}
.form-status{margin-bottom:18px;padding:12px 14px;border-left:4px solid #34A853;background:#eef9f1;color:#14532d;font-weight:600}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.step{grid-template-areas:"number title" "number copy";align-items:start}
.step::before{grid-area:number}
.step h4{grid-area:title}
.step p{grid-area:copy}
.founder-profile{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:58px;align-items:center}
.founder-photo{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center;border-radius:16px;box-shadow:0 20px 50px rgba(6,27,50,.14)}
.founder-role{margin:8px 0 22px;color:var(--brass);font-weight:700;letter-spacing:.04em}
.collaborator-grid .plain-card{border-top:4px solid var(--brass)}
.collaborator-grid .plain-card p{margin-bottom:0}
.service-detail-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.service-detail-nav a{padding:9px 13px;border:1px solid var(--line);border-radius:999px;color:var(--navy);font-size:.85rem;font-weight:600;background:#fff}
.service-detail-nav a:hover{border-color:var(--brass);color:var(--brass)}
.service-proof{padding:26px;border-left:5px solid var(--brass);background:#fff;box-shadow:0 14px 34px rgba(6,27,50,.08)}
.faq-list{border-top:1px solid var(--line)}
.faq-item{padding:23px 0;border-bottom:1px solid var(--line)}
.faq-item h3{margin:0 0 8px;font-size:1.15rem}.faq-item p{margin:0;color:var(--ink-soft);max-width:76ch}
.check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 28px;padding:0;list-style:none}
.check-list li{position:relative;padding:14px 0 14px 28px;border-bottom:1px solid var(--line);color:var(--ink-soft)}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--brass);font-weight:700}
.section-navy .check-list li{color:var(--paper-dim);border-color:var(--line-on-navy)}
.city-link-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:24px}
.city-link-grid a{display:flex;align-items:center;justify-content:center;min-height:62px;padding:12px;text-align:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:700;line-height:1.25}
.city-link-grid a:hover{border-color:var(--brass);color:var(--brass);transform:translateY(-2px)}
.city-context{padding:30px;border-top:5px solid var(--brass);background:#fff;box-shadow:0 14px 34px rgba(6,27,50,.08)}
.breadcrumbs{padding:16px 0 0;font-size:.88rem;color:var(--ink-soft)}
.breadcrumbs a{color:var(--navy);font-weight:600}.breadcrumbs span{margin:0 7px;color:var(--brass)}
.article-byline{margin:12px 0 30px;color:var(--ink-soft);font-size:.95rem}.article-byline a{font-weight:700}
.motion-orbit,.motion-line,.motion-node{position:absolute;display:block}
.motion-orbit{border:1px solid rgba(192,143,82,.34);border-radius:50%;animation:mit-orbit 22s linear infinite}
.orbit-one{width:410px;height:410px;right:25px;top:20px}
.orbit-two{width:260px;height:260px;right:100px;top:95px;animation-direction:reverse;animation-duration:16s}
.motion-line{height:1px;background:linear-gradient(90deg,transparent,rgba(237,234,231,.5),transparent);transform-origin:left center;animation:mit-pulse 4s ease-in-out infinite}
.line-one{width:460px;right:20px;top:230px;transform:rotate(24deg)}
.line-two{width:400px;right:45px;top:300px;transform:rotate(-21deg);animation-delay:1.2s}
.motion-node{width:13px;height:13px;border:2px solid var(--brass-bright);border-radius:50%;background:var(--navy);box-shadow:0 0 0 8px rgba(192,143,82,.1),0 0 24px rgba(192,143,82,.65);animation:mit-node 3.8s ease-in-out infinite}
.node-one{right:78px;top:105px}.node-two{right:310px;top:190px;animation-delay:.7s}.node-three{right:165px;top:355px;animation-delay:1.4s}.node-four{right:415px;top:330px;animation-delay:2.1s}
@keyframes mit-orbit{to{transform:rotate(360deg)}}
@keyframes mit-pulse{0%,100%{opacity:.2;filter:blur(.3px)}50%{opacity:1;filter:blur(0)}}
@keyframes mit-node{0%,100%{transform:scale(.82);opacity:.55}50%{transform:scale(1.18);opacity:1}}
@media(max-width:1000px){
  .nav-toggle{display:block}
  .nav-links{display:none;flex-basis:100%;order:4;padding-top:14px;border-top:1px solid var(--line-on-navy)}
  .nav-links.is-open{display:flex}
  .nav-cta{margin-left:auto}
  .review-track{grid-auto-columns:minmax(320px,calc((100% - 20px)/2))}
  .contact-home-grid{grid-template-columns:1fr;gap:36px}
  .founder-profile{grid-template-columns:1fr;gap:34px}
  .check-list{grid-template-columns:1fr}
  .city-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){.city-link-grid{grid-template-columns:1fr}}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
@media(max-width:640px){
  .nav-row{gap:12px}
  .brand{font-size:1.05rem}
  .brand small{font-size:.52rem}
  .nav-cta{display:none}
  .nav-links{flex-direction:column;gap:10px}
  .hero{padding:52px 0 40px}
  .hero-home h1{font-size:clamp(2.35rem,11vw,3.25rem)}
  .hero-home .lede{font-size:1.06rem}
  .hero-capabilities{display:grid;grid-template-columns:1fr;font-size:.96rem}
  .hero-motion{right:-55%;width:140vw;opacity:.28}
  .reviews-heading{align-items:start;flex-direction:column}
  .review-track{grid-auto-columns:88%}
  .review-card{min-height:300px;padding:24px}
  .contact-home-grid{grid-template-columns:1fr}
  .home-contact-form{padding:24px}
  .home-contact-form .form-grid{grid-template-columns:1fr}
  .home-contact-form .form-full{grid-column:auto}
  section{padding:48px 0}
  .title-block{grid-template-columns:1fr;padding:18px}
  .footer-grid{grid-template-columns:1fr}
}
